算機(jī)系統(tǒng)結(jié)構(gòu)練習(xí)題+筆記)
習(xí)題第二章第三章一個(gè)虛擬存儲(chǔ)系統(tǒng)最多有64個(gè)用戶(hù)每個(gè)用戶(hù)程序最大不超過(guò)8192頁(yè)每頁(yè)4KB主存儲(chǔ)器的容量為64MB。為了加快地址變換過(guò)程采用快慢表結(jié)構(gòu)快表的容量為64個(gè)存儲(chǔ)字快表地址經(jīng)散列函數(shù)交換得到。為避免散列沖突需要一個(gè)相等比較器。(1)寫(xiě)出虛擬地址的格式標(biāo)出各字段的名稱(chēng)和長(zhǎng)度。(2)寫(xiě)出主存地址的格式標(biāo)出各字段的名稱(chēng)和長(zhǎng)度。(3)散列變換部件的輸入位數(shù)和輸出位數(shù)各為多少。(4)相等比較器的位數(shù)是多少。(5)寫(xiě)出快表每個(gè)存儲(chǔ)字的格式標(biāo)出各字段的名稱(chēng)和長(zhǎng)度。散列變換部件的輸入是多用戶(hù)虛頁(yè)號(hào)Pv用戶(hù)號(hào)虛頁(yè)號(hào)散列變換部件的輸出是快表地址Ah相等比較器的位數(shù)是多用戶(hù)虛頁(yè)號(hào)Pv用戶(hù)號(hào)虛頁(yè)號(hào)快表字段多用戶(hù)虛頁(yè)號(hào)用戶(hù)號(hào)虛頁(yè)號(hào)實(shí)頁(yè)號(hào)沒(méi)寫(xiě)完回頭寫(xiě)第四章練 習(xí)在程序查詢(xún)的輸入輸出方式的系統(tǒng)中有三個(gè)不同的外圍設(shè)備。假定一個(gè)查詢(xún)操作需要100個(gè)時(shí)鐘周期CPU的時(shí)鐘頻率為50MHz。求CPU在以下三種情況下為I/O查詢(xún)所花費(fèi)的時(shí)間比率假定進(jìn)行足夠的查詢(xún)以避免數(shù)據(jù)丟失。(1) 鼠標(biāo)器必須在每秒進(jìn)行30次查詢(xún)。(2) 軟盤(pán)與CPU的數(shù)據(jù)傳輸以16位的單位進(jìn)行數(shù)據(jù)傳輸速率為50KB/S。(3) 硬盤(pán)傳輸數(shù)據(jù)以32位的字為單位傳輸速率為2MB/S。下面又是一道題題目沒(méi)記大致題目就是中斷優(yōu)先級(jí)1234開(kāi)始32來(lái)之后4來(lái)1再來(lái)...第五章期末復(fù)習(xí)-1的移碼怎么算-11001假如4位2的3次冪8-1877變成二進(jìn)制是0111所以-1的移碼是01114的移碼怎么算40100假如4位2的4-1次8481212變成二進(jìn)制是1100所以4的移碼是1100補(bǔ)充負(fù)數(shù)的補(bǔ)碼原碼取反1-69的補(bǔ)碼就是先算69的二進(jìn)制數(shù)01000101每位取反10111010最后1101111011浮點(diǎn)數(shù)的舍入處理pg只要p位恒舍法截?cái)喾ㄖ灰皃位恒置法恒指r/2強(qiáng)制最后一位最低位是1不是計(jì)組學(xué)的隱藏最高位的1下舍上入法4舍5入、0舍1入法被舍棄的部分最高位是0不變不進(jìn)位是1進(jìn)位。R*舍入法書(shū)上是下舍上入恒置1尋址操作尋找操作數(shù)和它們的地址的方式我們這個(gè)指令肯定要先有指令所以我們先編址編址之后就可以找了我們叫尋址。哦還有定位。堆棧沒(méi)有零地址尋址方式寄存器的尋址有一地址、二地址、三地址、寄存器和內(nèi)存面向主存儲(chǔ)器尋址有立即數(shù)尋址、間接尋址、變址尋址、基址尋址、相對(duì)尋址、自動(dòng)變址立即數(shù)尋址咋回事呢直接指出操作數(shù)在內(nèi)存的地址間接尋址呢指出操作數(shù)地址的地址變址尋址呢有效地址變址寄存器內(nèi)容指令格式的形式地址基址尋址呢有效地址基址寄存器內(nèi)容指令格式的形式地址相對(duì)尋址呢有效地址PC的內(nèi)容指令格式中的地址自動(dòng)變址支持?jǐn)?shù)組運(yùn)算每訪問(wèn)一次下標(biāo)自動(dòng)增加或減少這個(gè)定位是怎么回事呢就是把邏輯地址轉(zhuǎn)換成物理地址。有直接定位還沒(méi)把程序裝進(jìn)主存儲(chǔ)器物理位置就確定了、靜態(tài)定位裝的過(guò)程隨機(jī)進(jìn)行地址變換、動(dòng)態(tài)定位當(dāng)訪問(wèn)到響應(yīng)指令或數(shù)據(jù)時(shí)才進(jìn)行地址變換。前面咱們一直提指令這個(gè)指令一般由兩部分組成操作碼OPC和地址碼A我們的操作碼需要優(yōu)化有三種操作碼編碼方式固定長(zhǎng)度Huffman編碼擴(kuò)展編碼Huffman編碼我們要學(xué)會(huì)計(jì)算操作碼的最短平均長(zhǎng)度、固定長(zhǎng)編碼的信息冗余量例題基本就是讓你設(shè)計(jì)n種操作碼固定碼長(zhǎng)你可以算出來(lái)log以2為底n的對(duì)數(shù)可能1正好就不加。然后給你頻率各種指令頻率I1~In你計(jì)算一下采用Huffman編碼的操作碼平均長(zhǎng)度計(jì)算固定長(zhǎng)操作碼和Huffman操作碼的信息冗余量給了指令概率我們就排序吧構(gòu)造一棵哈夫曼樹(shù)。Huffman編碼法平均長(zhǎng)度為H所有指令概率*長(zhǎng)度的和而操作碼的最短平均長(zhǎng)度是有一個(gè)公式的而且操作碼最短平均長(zhǎng)度肯定比Huffman編碼平均長(zhǎng)度要短信息冗余量我們一般用字母R來(lái)表示例題我沒(méi)抄H是最短平均長(zhǎng)度1.951.97是Huffman算出來(lái)的平均長(zhǎng)度[log以2為底7題中n7的對(duì)數(shù)]是固定長(zhǎng)度算出來(lái)的平均長(zhǎng)度然后是擴(kuò)展編碼法比如1-2-3-5擴(kuò)展編碼法一般這種題先指令設(shè)計(jì)好然后H還是概率*長(zhǎng)度平均長(zhǎng)度信息冗余量R還是1-(最短的H/你算出來(lái)的平均長(zhǎng)度H)然后指令是包括兩部分一個(gè)操作碼一個(gè)地址碼剛剛編碼編的是操作碼。地址碼可以按照個(gè)數(shù)劃分零地址、一地址、二地址、三地址我們有三種方法來(lái)縮短地址碼長(zhǎng)度間接尋址方式、變址尋址方式、寄存器間接尋址方式如果你想要設(shè)計(jì)一個(gè)指令系統(tǒng)要知道通用計(jì)算機(jī)一般有5類(lèi)基本指令數(shù)據(jù)傳送類(lèi)指令、運(yùn)算類(lèi)指令、程序控制指令、輸入輸出指令、處理機(jī)控制和調(diào)試指令了解精簡(jiǎn)指令集系統(tǒng)RISC從復(fù)雜指令系統(tǒng)計(jì)算機(jī)CISC到精簡(jiǎn)指令集系統(tǒng)計(jì)算機(jī)RISCCISC有問(wèn)題比如28定理還有技術(shù)上的進(jìn)步更適合RISC、軟硬件功能分配減少CPI是RISC的精華實(shí)現(xiàn)RISC的關(guān)鍵技術(shù)延遲轉(zhuǎn)移技術(shù)、指令取消技術(shù)、重疊寄存器窗口技術(shù)、流水線調(diào)整技術(shù)16右上角的4是怎么來(lái)的e0001004rm16rm是位數(shù)的基值接下來(lái)是存儲(chǔ)系統(tǒng)終于到第三章了前面我跳了就是Cache和虛擬存儲(chǔ)系統(tǒng)我們看存儲(chǔ)系統(tǒng)的好壞有幾個(gè)指標(biāo)容量、單位容量平均價(jià)格、命中率H、等效訪問(wèn)周期THT1(1-H)T2、訪問(wèn)效率eT1/T先講虛擬存儲(chǔ)這個(gè)設(shè)計(jì)到虛擬存儲(chǔ)器工作原理地址映像/變換如何加快內(nèi)部地址變換頁(yè)面替換算法如何提高主存命中率映像就是虛地址和實(shí)地址如何對(duì)應(yīng)變換就是多用戶(hù)虛地址變換成主存實(shí)地址內(nèi)部地址變換、磁盤(pán)存儲(chǔ)器地址外部地址變換內(nèi)部地址變換外部地址變換地址映像、地址變換地址映像把虛擬地址空間影響到主存地址空間地址變換在程序運(yùn)行時(shí)把虛地址變換成主存實(shí)地址或磁盤(pán)存儲(chǔ)器地址三種虛擬存儲(chǔ)器段式虛擬存儲(chǔ)器、頁(yè)式虛擬存儲(chǔ)器、段頁(yè)式虛擬存儲(chǔ)器頁(yè)表級(jí)數(shù)計(jì)算公式第三章cache、虛擬存儲(chǔ)各種頁(yè)面替換cache加速比頁(yè)面命中率虛擬地址和主存地址的格式標(biāo)出長(zhǎng)度和名稱(chēng)虛地址用戶(hù)號(hào)、虛頁(yè)號(hào)、頁(yè)內(nèi)地址主存實(shí)地址主存實(shí)頁(yè)號(hào)、頁(yè)內(nèi)地址地址映像和變換方法全相聯(lián)、直接、組相聯(lián)第四章輸入輸出系統(tǒng)程序控制、中斷、DMA中斷給你中斷源優(yōu)先級(jí)有時(shí)候有屏蔽碼算一下請(qǐng)求處理的圖處理機(jī)與外部設(shè)備連接方式想一想那個(gè)圖下面這個(gè)圖還有下面第三個(gè)圖直接連接、通道處理機(jī)、輸入輸出處理機(jī)通道的3個(gè)種類(lèi)下面第二個(gè)圖通道流量分析感覺(jué)不能考有點(diǎn)像計(jì)網(wǎng)說(shuō)的那個(gè)流量計(jì)網(wǎng)有一個(gè)知識(shí)是流量控制和擁塞處理水龍頭我一科也沒(méi)復(fù)習(xí)感覺(jué)有的極限了不同種通道可能會(huì)有計(jì)算題算流量、工作周期時(shí)間這種。直接連和通道三種通道輸入輸出處理機(jī)連接還是這種快速看一眼不細(xì)看來(lái)得快一點(diǎn)不然卡死了。可惜知識(shí)不進(jìn)腦但是慢慢看也不進(jìn)腦這樣起碼還能快點(diǎn)。接下來(lái)是第五章第五章標(biāo)量處理機(jī)流水線處理機(jī)、超流水線處理機(jī)和超標(biāo)量處理機(jī)這仨是這章的主要內(nèi)容時(shí)間并行性和空間并行性倆概念指令重疊執(zhí)行和流水線性能分析重疊順序、一次重疊、二次重疊時(shí)空?qǐng)D一般用來(lái)算Tk也就是所用時(shí)間指標(biāo)吞吐率TPn/Tk任務(wù)數(shù)n除以完成n個(gè)任務(wù)所用的時(shí)間、最大吞吐率吞吐率max為1/derta t、加速比S、效率E剛剛說(shuō)的這個(gè)肯定有計(jì)算非流水線有前饋或反饋超標(biāo)量超流水線超標(biāo)量超流水線超標(biāo)量是每個(gè)時(shí)鐘周期可并發(fā)多條獨(dú)立指令配置多個(gè)功能部件。超流水線是在一個(gè)時(shí)鐘周期內(nèi)分段在一個(gè)時(shí)鐘周期內(nèi)一個(gè)部件使用多次流水線的分類(lèi)有單功能多功能的能完成幾種功能運(yùn)算。靜態(tài)動(dòng)態(tài)的是看同一時(shí)間內(nèi)只能用一種功能還是多種功能同時(shí)。標(biāo)量or向量?一般數(shù)據(jù)還是矢量數(shù)據(jù)。流水線or非流水線有無(wú)反饋。超標(biāo)量超流水線超標(biāo)量超流水線第三章 存儲(chǔ)系統(tǒng)本章主要介紹兩種存儲(chǔ)系統(tǒng)一種是由Cache高速緩存存儲(chǔ)器/緩存和主存儲(chǔ)器內(nèi)存構(gòu)成的Cache存儲(chǔ)系統(tǒng)另一種是由主存儲(chǔ)器和磁盤(pán)存儲(chǔ)器構(gòu)成的虛擬存儲(chǔ)系統(tǒng)。Cache存儲(chǔ)系統(tǒng)的主要目標(biāo)是為了提高存儲(chǔ)器的速度而虛擬存儲(chǔ)系統(tǒng)的只要目標(biāo)是為了增加存儲(chǔ)器的存儲(chǔ)容量。Cache存儲(chǔ)系統(tǒng)不存在進(jìn)程切換而虛擬存儲(chǔ)系統(tǒng)會(huì)切換到其他進(jìn)程。從應(yīng)用程序員看這個(gè)存儲(chǔ)器的速度接近速度最快的那個(gè)存儲(chǔ)器存儲(chǔ)容量與容量最大的那個(gè)存儲(chǔ)器相等或接近單位容量的價(jià)格接近最便宜的那個(gè)存儲(chǔ)器。很明顯接下來(lái)要學(xué)的是Cache替換算法Cache頁(yè)面替換算法虛擬速度寄存器buffer緩沖棧cache主存磁盤(pán)虛擬存儲(chǔ)器3種地址映象是把虛擬地址空間映象到主存地址空間。地址變換是在程序被裝入主存儲(chǔ)器之后在實(shí)際運(yùn)行時(shí)把用戶(hù)虛地址變換成主存實(shí)地址內(nèi)部地址變換或磁盤(pán)存儲(chǔ)器地址外部地址變換。段式頁(yè)式段頁(yè)式加快內(nèi)部地址變換的方法PS.什么是內(nèi)部地址映像和變換把虛擬地址空間映象到主存物理地址空間、以及把虛擬地址變換成主存實(shí)地址的方法。PS.什么是外部地址變換找到輔存磁盤(pán)存儲(chǔ)器的實(shí)地址并且把需要訪問(wèn)的那一頁(yè)或那一個(gè)程序段調(diào)入到主存儲(chǔ)器中。多級(jí)頁(yè)表一個(gè)公式計(jì)算頁(yè)表的級(jí)數(shù)g重點(diǎn)目錄表快慢表散列函數(shù)目錄表的基本思想壓縮頁(yè)表的存儲(chǔ)容量用一個(gè)容量比較小的高速存儲(chǔ)器來(lái)存放頁(yè)表從而加快查表的速度。由于程序在執(zhí)行過(guò)程中具有局限性因此對(duì)頁(yè)表中各存儲(chǔ)字的訪問(wèn)并不是完全隨機(jī)的。也就是說(shuō)在一段時(shí)間內(nèi)對(duì)頁(yè)表的訪問(wèn)只是局限在少數(shù)幾個(gè)存儲(chǔ)字內(nèi)。慢表是一個(gè)全表快表是常用的幾個(gè)??毂聿捎孟嗦?lián)方式訪問(wèn)慢表用地址訪問(wèn)。散列函數(shù)的目的把相聯(lián)訪問(wèn)變成地址訪問(wèn)。散列變換實(shí)現(xiàn)快表按地址訪問(wèn)。多對(duì)1避免散列沖突相等比較器。頁(yè)面替換算法隨機(jī)算法RAND先進(jìn)先出FIFO最近最少使用算法LRU最久沒(méi)有使用算法LFU最優(yōu)替換算法OPT(選擇將來(lái)最久不被訪問(wèn)的頁(yè)面替換最好讓程序先執(zhí)行一遍記錄頁(yè)地址流順序)命中率的計(jì)算影響命中率因素頁(yè)面大小的選擇頁(yè)面調(diào)度方法高速緩沖存儲(chǔ)器CacheCache全部用硬件來(lái)調(diào)度因此它不僅對(duì)應(yīng)用程序員是透明的而且對(duì)系統(tǒng)程序員也是透明的。相鄰層之間的數(shù)據(jù)傳送單位CPU與高速緩存之間字高速緩存與主存之間塊主存與硬盤(pán)之間頁(yè)面磁盤(pán)與磁帶之間段Cache與虛擬存儲(chǔ)系統(tǒng)區(qū)別信息交換單位不同一個(gè)塊一個(gè)是頁(yè)速度不同主存是磁盤(pán)的倍cache是主存的3到5倍。CPU與Cache及主存均有直接通路主存可以不通過(guò)Cache直接裝CPUcache-主存硬件實(shí)現(xiàn)。主-輔存軟件。Cache-主對(duì)應(yīng)用程序員和系統(tǒng)程序員是透明的。主-輔對(duì)應(yīng)用程序員透明。還有就是不命中時(shí)的處理關(guān)系Cache是等待主存儲(chǔ)器、直接訪存虛擬存儲(chǔ)器是任務(wù)/進(jìn)程切換。地址映象與變換方法在Cache中地址映象是指把主存地址空間映象到Cache地址空間具體地說(shuō)就是把存放在主存中的程序按照某種規(guī)則裝入到Cache中并建立主存地址與Cache地址之間的對(duì)應(yīng)關(guān)系。而地址變換則是指當(dāng)程序已經(jīng)裝入到Cache之后在實(shí)際運(yùn)行過(guò)程中把主存地址如何變換成Cache地址。全相聯(lián)映像及其變換直接映像及其變換組相聯(lián)映像及其變換全相聯(lián)主存中任意一塊可以映象到Cache中任意一塊的位置上。映像關(guān)系有種Cache塊容量主存塊容量目錄表每一個(gè)存儲(chǔ)字由三部分組成主存塊號(hào)、Cache塊號(hào)、一個(gè)有效位。直接映像組相聯(lián)一種折中的方式組與組間采用直接相聯(lián)組內(nèi)采用全相聯(lián)。Cache替換算法及其實(shí)現(xiàn)直接映象及變換方式實(shí)際上不需要替換算法這是因?yàn)橹鞔嬷械囊粔K只能轉(zhuǎn)入到Cache的唯一一個(gè)塊中。如果Cache的這一塊是空的則可以裝入如果Cache的這一塊已經(jīng)被占用唯一的辦法是把它替換出去。在全相聯(lián)映象及變換方式中由于主存中的一塊可以裝入到Cache中任意一塊的位置上因此它的替換算法也就最復(fù)雜。在組相聯(lián)和位選擇組相聯(lián)映象及地址變換方式中需要從Cache同一組內(nèi)的幾個(gè)塊中選擇一塊替換出去。1.輪換法類(lèi)似FIFO通常用于組相聯(lián)映象及地址變換方式中。P187每塊一個(gè)計(jì)數(shù)器那個(gè)塊的計(jì)數(shù)器最大說(shuō)明時(shí)間最久每組一個(gè)計(jì)數(shù)器2.LFU算法最久沒(méi)有使用算法LFU與前兩種輪換法比控制邏輯更復(fù)雜增加了判斷和處理命中的情況。因此LFU算法的命中率是比較高的。Cache性能分析Cache的加速比Cache命中率與容量的關(guān)系Cache命中率隨它的容量的增加而提高。當(dāng)Cache容量怎加到無(wú)窮大時(shí)命中率可望達(dá)到100%但是這實(shí)際上是做不到的。Cache命中率與塊大小的關(guān)系Cache命中率與組數(shù)的關(guān)系隨著組數(shù)的增加Cache的命中率要降低。當(dāng)組數(shù)不太大時(shí)如512組以下命中率降低的少當(dāng)組數(shù)超過(guò)一定數(shù)量時(shí)命中率下降的快。Cache的一致性由于主存和Cache都可直接裝CPUCache更新算法有兩種寫(xiě)直達(dá)法和寫(xiě)回法。寫(xiě)直達(dá)法又稱(chēng)為寫(xiě)通過(guò)法寫(xiě)回法又稱(chēng)為抵觸修改法。寫(xiě)回法是指CPU在執(zhí)行寫(xiě)操作時(shí)被寫(xiě)數(shù)據(jù)只寫(xiě)入Cache不寫(xiě)入主存。僅當(dāng)需要替換時(shí)才把已經(jīng)修改過(guò)的Cache塊寫(xiě)回主存。寫(xiě)直達(dá)法是指CPU在執(zhí)行寫(xiě)操作時(shí)必須把數(shù)據(jù)同時(shí)寫(xiě)入Cache和主存。優(yōu)缺點(diǎn)1.可靠性寫(xiě)直達(dá)法優(yōu)于寫(xiě)回法。2.與主存的通信量一般情況下寫(xiě)回法少于寫(xiě)直達(dá)法。據(jù)統(tǒng)計(jì)在訪問(wèn)存儲(chǔ)器的操作中寫(xiě)操作一般要占 10%到 34%。這里假設(shè)為 20%Cache 的命中率為 99%。每塊為 4 個(gè)字主存的字長(zhǎng)為一個(gè)字。當(dāng) Cache 發(fā)生塊替換時(shí)有 30%的塊需要寫(xiě)回到主存其余的塊因?yàn)闆](méi)有被修改過(guò)而不必寫(xiě)回主存。對(duì)于寫(xiě)直達(dá)法寫(xiě)主存次數(shù)占總訪存次數(shù)的 20%。而對(duì)于寫(xiě)回法寫(xiě)主存次數(shù)占總訪存次數(shù)的比例可以這樣計(jì)算(1 - 99%)×30%×4 1.2%。因此與主存的通信量寫(xiě)回法僅是寫(xiě)直達(dá)法的十幾分之一。3.控制的復(fù)雜性寫(xiě)直達(dá)法比寫(xiě)回法簡(jiǎn)單。4.硬件實(shí)現(xiàn)的代價(jià)寫(xiě)回法要比寫(xiě)直達(dá)好。因?yàn)樵趯?xiě)直達(dá)中通常要采用一個(gè)高速小容量的緩沖存儲(chǔ)器。Cache的預(yù)取算法預(yù)期能大幅度提高Cache的命中率。預(yù)期算法有下面幾種按需取恒預(yù)取不命中預(yù)取采用不命中預(yù)取能使 Cache 的不命中率降低 75%~85%而采用不命中預(yù)取能使 Cache 的不命中率降低 30%~40%。但是恒預(yù)取所增加的 Cache 與主存之間的通信量要比不命中預(yù)取大很多??偨Y(jié)本章講了存儲(chǔ)系統(tǒng)。涉及到內(nèi)存地址和主存實(shí)地址的相互轉(zhuǎn)換內(nèi)部/外部地址變換///地址映像和地址變換比如頁(yè)式段式段頁(yè)式。講了常用的頁(yè)面替換算法。然后還有高速緩存cache...第四章 輸入輸出系統(tǒng)在計(jì)算機(jī)系統(tǒng)中通常把處理機(jī)和主存儲(chǔ)器之外的部分統(tǒng)稱(chēng)為輸入輸出系統(tǒng)它包括輸入輸出設(shè)備輸入輸出接口和輸入輸出軟件??偩€屬于輸入輸出系統(tǒng)輸入輸出系統(tǒng)的特點(diǎn)集中反映在異步性、實(shí)時(shí)性和與設(shè)備無(wú)關(guān)性三個(gè)基本要求上。1.異步性輸入輸出設(shè)備的工作在很大程度上獨(dú)立于處理機(jī)之外通常不使用統(tǒng)一的中央時(shí)鐘各個(gè)設(shè)備按照自己的時(shí)鐘工作但又要在某些時(shí)刻接受處理機(jī)的控制。2.實(shí)時(shí)性3.與設(shè)備無(wú)關(guān)性根據(jù)各種外圍設(shè)備的不同特點(diǎn)處理好這三方面的關(guān)系就成為輸入輸出系統(tǒng)組織的基本內(nèi)容輸入輸出系統(tǒng)的組織方式。具體地說(shuō)針對(duì)異步法采用自治控制的方法針對(duì)實(shí)時(shí)性采用層次結(jié)構(gòu)的方法針對(duì)與設(shè)備無(wú)關(guān)性采用分類(lèi)處理的方法。自治控制在一般計(jì)算機(jī)系統(tǒng)中輸入輸出系統(tǒng)是一個(gè)獨(dú)立于處理機(jī)之外的自治系統(tǒng)。層次結(jié)構(gòu)在外圍設(shè)備比較多的情況下輸入輸出系統(tǒng)一般要采用層次結(jié)構(gòu)來(lái)進(jìn)行組織。對(duì)于工作速度、工作方式和工作性質(zhì)不同的外圍設(shè)備通常要采用不同的輸入輸出方式。目前常用的基本輸入輸出設(shè)備方式有如下三種1.程序控制輸入輸出方式處理機(jī)輪詢(xún)方式分時(shí)訪問(wèn)多臺(tái)外圍設(shè)備。CPU隔一段時(shí)間就來(lái)問(wèn)外圍設(shè)備你有事嗎2.中斷輸入輸出方式它的特點(diǎn)CPU與外圍設(shè)備能夠并行工作能夠處理例外事件數(shù)據(jù)的輸入和輸出都要經(jīng)過(guò)CPU一般用于連接低速外圍設(shè)備。CPU說(shuō)有事你說(shuō)話(huà)。3.直接存儲(chǔ)器訪問(wèn)DMA方式DMA方式特點(diǎn)1.主存儲(chǔ)器既可以被CPU訪問(wèn)也可以被外圍設(shè)備訪問(wèn)。2.由于在外圍設(shè)備與主存儲(chǔ)器直接傳送數(shù)據(jù)不需要執(zhí)行程序也不動(dòng)用CPU中的數(shù)據(jù)寄存器和指令計(jì)數(shù)器等因此不需要做保存現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)等工作從而使DMA方式的工作速度大大加快。3.在DMA控制器中除了需要設(shè)置數(shù)據(jù)緩沖寄存器、設(shè)備狀態(tài)寄存器或控制寄存器之外還要設(shè)置主存儲(chǔ)器地址寄存器、設(shè)備地址寄存器和數(shù)據(jù)交換個(gè)數(shù)計(jì)數(shù)器。4.不需要CPU的干預(yù)。目前使用的DMA方式有三種1.周期竊取方式只是借用了一個(gè)CPU的周期來(lái)完成DMA流程。因此其工作速度是極快的。而且它的硬件結(jié)構(gòu)很簡(jiǎn)單比較容易實(shí)現(xiàn)。缺點(diǎn)是數(shù)據(jù)輸入或輸出過(guò)程中實(shí)際上占用了CPU的時(shí)間。2.直接存取方式(不用CPU)DMA控制器的數(shù)據(jù)傳送申請(qǐng)不是發(fā)向CPU而是直接發(fā)往主存儲(chǔ)器。它的優(yōu)點(diǎn)與缺點(diǎn)正好和周期竊取方式相反。3.數(shù)據(jù)塊傳送方式在設(shè)備控制器中設(shè)置一個(gè)比較大的數(shù)據(jù)緩沖存儲(chǔ)器設(shè)備控制器與主存儲(chǔ)器之間的數(shù)據(jù)交換以數(shù)據(jù)塊為單位并采用程序中斷方式進(jìn)行。中斷系統(tǒng)需要硬件和軟件共同來(lái)實(shí)現(xiàn)中斷源的組織來(lái)個(gè)中斷我們知道了它的種類(lèi)第一時(shí)間就可以找到它。引起中斷的各種事件稱(chēng)為中斷源。中斷系統(tǒng)的復(fù)雜性實(shí)際上是由中斷源的多樣性引起的。中斷源可以來(lái)自系統(tǒng)外部也可以來(lái)自機(jī)器內(nèi)部甚至處理機(jī)本身。中斷可以是硬件引起的也可以是軟件引起的。把各種各樣的中斷源分類(lèi)、分級(jí)組織好是設(shè)計(jì)中斷系統(tǒng)時(shí)首先要做好的一件事情。1.中斷源的種類(lèi)由外圍設(shè)備引起的中斷由處理機(jī)產(chǎn)生的中斷由存儲(chǔ)器產(chǎn)生的中斷由控制器產(chǎn)生的中斷由總線產(chǎn)生的中斷實(shí)時(shí)過(guò)程控制產(chǎn)生的中斷實(shí)時(shí)鐘的定時(shí)中斷多處理機(jī)系統(tǒng)中從其他處理機(jī)發(fā)送來(lái)的中斷程序調(diào)試過(guò)程中事先設(shè)置的斷點(diǎn)硬件故障中斷電源故障中斷2.中斷源的分類(lèi)組織為了在響應(yīng)中斷后處理機(jī)能夠盡快找到中斷入口必須對(duì)這些中斷源進(jìn)行分類(lèi)。通常根據(jù)中斷事件的緊迫程度、中斷源工作速度的高低、中斷源的性質(zhì)等進(jìn)行分類(lèi)。對(duì)每一類(lèi)中斷源分配一個(gè)硬件的中斷入口在進(jìn)入這個(gè)入口之后再通過(guò)軟件找到具體的中斷源。IBM公司的機(jī)器通常把中斷源分成6類(lèi)重新啟動(dòng)中斷機(jī)器檢驗(yàn)出錯(cuò)中斷。當(dāng)硬件或軟件故障時(shí)產(chǎn)生。程序性錯(cuò)誤引起的中斷訪問(wèn)管理程序錯(cuò)誤外部事件中斷輸入輸出中斷3.中斷優(yōu)先級(jí)中斷源的中斷請(qǐng)求一般是隨機(jī)的在中斷源比較多的情況下很可能同時(shí)發(fā)生多個(gè)中斷請(qǐng)求。CPU必須安排一個(gè)響應(yīng)和處理中斷的優(yōu)先順序。中斷優(yōu)先級(jí)由下列因素決定1.中斷源的急迫性2.設(shè)備的工作速度3.數(shù)據(jù)恢復(fù)的難易程度4.要求處理機(jī)提供的服務(wù)量中斷服務(wù)順序和中斷優(yōu)先級(jí)不是一個(gè)概念而且前者時(shí)基于軟件實(shí)現(xiàn)的后者是基于硬件實(shí)現(xiàn)的。中斷系統(tǒng)的軟硬件功能分配從中斷源發(fā)出的中斷服務(wù)請(qǐng)求到這個(gè)中斷服務(wù)請(qǐng)求被處理機(jī)響應(yīng)并全部處理完成其過(guò)程是相當(dāng)復(fù)雜的。其中有些功能必須用硬件來(lái)實(shí)現(xiàn)有的功能必須用軟件來(lái)實(shí)現(xiàn)而中間的大部分功能既可以用硬件實(shí)現(xiàn)也可以用軟件實(shí)現(xiàn)。因此在設(shè)計(jì)一臺(tái)計(jì)算機(jī)的中斷系統(tǒng)時(shí)如何恰當(dāng)?shù)胤峙渲袛嘞到y(tǒng)的軟件與硬件功能是設(shè)計(jì)一個(gè)好的中斷系統(tǒng)最關(guān)鍵的一個(gè)問(wèn)題。中斷系統(tǒng)中軟件和硬件的功能分配主要考慮2個(gè)因素1.中斷響應(yīng)時(shí)間2.靈活性一般情況下用硬件實(shí)現(xiàn)速度快但靈活性差。用軟件實(shí)現(xiàn)正好相反靈活性好但速度低。中斷處理過(guò)程第一次CPU中斷是為了保護(hù)現(xiàn)場(chǎng)第二次是為了恢復(fù)現(xiàn)場(chǎng)中斷響應(yīng)時(shí)間從一個(gè)中斷源向處理機(jī)發(fā)出中斷服務(wù)請(qǐng)求開(kāi)始到處理機(jī)實(shí)際開(kāi)始執(zhí)行這個(gè)中斷源的中斷服務(wù)程序?yàn)橹惯@一段時(shí)間稱(chēng)為中斷響應(yīng)時(shí)間。影響中斷響應(yīng)時(shí)間的因素主要有四個(gè)1.最長(zhǎng)指令執(zhí)行時(shí)間2.在一條指令執(zhí)行完成后處理其他更緊急的任務(wù)所用時(shí)間3.從第一次“關(guān)CPU中斷”到第一次“開(kāi)CPU中斷”所經(jīng)歷的時(shí)間4.多個(gè)中斷源同時(shí)請(qǐng)求中斷服務(wù)時(shí)通過(guò)軟件找到相關(guān)中斷源的中斷服務(wù)程序入口所經(jīng)歷的時(shí)間中斷現(xiàn)場(chǎng)的保存和恢復(fù)中斷現(xiàn)場(chǎng)的保存和恢復(fù)分別是中斷處理機(jī)過(guò)程開(kāi)始和結(jié)束時(shí)必須執(zhí)行的步驟。現(xiàn)場(chǎng)信息可分為三類(lèi)第一類(lèi)主要指程序計(jì)數(shù)器PC中的內(nèi)容它必須由硬件來(lái)完成保存。第二類(lèi)是指記錄當(dāng)前程序狀態(tài)的有關(guān)信息包括處理機(jī)狀態(tài)字、堆棧指針、基址寄存器、中斷屏蔽碼等。第三類(lèi)是指在中斷服務(wù)程序中將要被破壞的通用寄存器中內(nèi)容。對(duì)于軟件現(xiàn)場(chǎng)大多數(shù)機(jī)器都采用軟件來(lái)保存和恢復(fù)即在中斷服務(wù)程序的開(kāi)始保存在中斷服務(wù)程序中將要用到的那些通用寄存器中的內(nèi)容在中斷服務(wù)程序結(jié)束前恢復(fù)那些通用寄存器中的內(nèi)容。中斷屏蔽設(shè)置中斷屏蔽由如下三個(gè)用處在中斷優(yōu)先級(jí)已經(jīng)由硬件確定了的情況下改變中斷源的中斷服務(wù)順序。決定設(shè)備是否采用中斷方式工作。前面介紹了外圍設(shè)備由三種基本的輸入輸出方式可以讓某些外圍設(shè)備不采用中斷方式工作而采用DMA方式工作在多處理機(jī)系統(tǒng)中可以通過(guò)中斷屏蔽把對(duì)外圍設(shè)備的輸入輸出服務(wù)工作分配到各個(gè)處理機(jī)中。通道處理機(jī)把外圍設(shè)備的管理工作從CPU中分離出來(lái)普遍采用通道處理機(jī)技術(shù)。通道的作用和功能如果僅僅采用前面說(shuō)的程序控制、中斷和DMA這三種基本的輸入輸出方式來(lái)管理外圍設(shè)備會(huì)引起如下兩個(gè)問(wèn)題1.所有外圍設(shè)備的輸入輸出工作全部都要由CPU來(lái)承擔(dān)CPU的輸入輸出負(fù)擔(dān)都很重不能專(zhuān)心于用戶(hù)程序的計(jì)算。低速外圍設(shè)備每傳送一個(gè)字符都要由CPU通過(guò)執(zhí)行一段程序來(lái)完成而告訴外圍設(shè)備雖然使用DMA方式減少了CPU的干預(yù)但初始化如DMA等工作仍然需要CPU用程序來(lái)完成。2.大型計(jì)算機(jī)系統(tǒng)中的外圍設(shè)備臺(tái)數(shù)雖然很多但是一般并不同時(shí)工作。采用DMA方式傳送數(shù)據(jù)一個(gè)問(wèn)題硬件的利用率。為了使CPU擺脫繁重的輸入輸出負(fù)擔(dān)和共享輸入輸出接口在大型計(jì)算機(jī)系統(tǒng)中采用通道處理機(jī)是一種比較好的選擇。一般來(lái)說(shuō)通道的功能有1.接受CPU發(fā)來(lái)的輸入輸出指令根據(jù)指令要求選擇一臺(tái)指定的外圍設(shè)備于通道相連接。2.執(zhí)行CPU為通道組織的通道程序。3.給出外圍設(shè)備的有關(guān)地址。4.給出主存緩沖區(qū)的首地址。5.控制外圍設(shè)備與主存緩沖區(qū)之間數(shù)據(jù)交換的個(gè)數(shù)。6.指定傳送工作結(jié)束時(shí)要進(jìn)行的操作。7.檢查外圍設(shè)備的工作狀態(tài)是正?;蚬收?。8.在數(shù)據(jù)傳輸過(guò)程中完成必要的格式變換。以前這些工作都是CPU來(lái)做現(xiàn)在由通道來(lái)做這樣CPU就可以從輸入輸出中脫離出來(lái)。通道的工作過(guò)程3步1.在用戶(hù)程序中使用訪管指令進(jìn)入管理程序由CPU通過(guò)管理程序組織一個(gè)通道程序并啟動(dòng)通道。2.通道處理機(jī)執(zhí)行CPU為它組織的通道程序完成指定的數(shù)據(jù)輸入輸出工作。3.通道程序結(jié)束后向CPU發(fā)中斷請(qǐng)求CPU響應(yīng)這個(gè)中斷請(qǐng)求后第二次進(jìn)入操作系統(tǒng)調(diào)用管理程序?qū)斎胼敵鲋袛嗾?qǐng)求進(jìn)行處理。這樣每完成一次輸入輸出工作CPU只需要兩次調(diào)用管理程序大大減少了對(duì)用戶(hù)程序的打擾。通道種類(lèi)3種字節(jié)多路通道、選擇通道、數(shù)組多路通道。字節(jié)多路通道慢無(wú)法為高速設(shè)備服務(wù)主要為多臺(tái)低速或中速的外圍設(shè)備服務(wù)。通常采用分時(shí)方式工作。傳輸一個(gè)字節(jié)。選擇通道快、一旦占了就要做完、別的事都要等通道利用率低高速外圍設(shè)備必須設(shè)置專(zhuān)門(mén)的通道在一段時(shí)間內(nèi)單獨(dú)為一臺(tái)外圍設(shè)備服務(wù)。一旦選中某一設(shè)備通道就進(jìn)入“忙”狀態(tài)直到該設(shè)備的數(shù)據(jù)傳輸工作全部結(jié)束為止。數(shù)組多路通道不會(huì)一直占著會(huì)交叉著傳把上面的字節(jié)多路通道和選擇通道的特性結(jié)合起來(lái)就成為了數(shù)組多路通道。從磁盤(pán)存儲(chǔ)器讀出一個(gè)文件的過(guò)程為例分為三步1.找定位2.找扇區(qū)3.讀出數(shù)據(jù)像選擇通道那樣一個(gè)高速通道始終職位一臺(tái)高速外圍設(shè)備服務(wù)并沒(méi)有能夠充分發(fā)揮高速通道的數(shù)據(jù)傳輸潛力數(shù)組多路通道正是為了解決這一問(wèn)題而提出來(lái)的。通道中斷數(shù)據(jù)傳輸過(guò)程字節(jié)多路通道選擇通道數(shù)組多路通道通道的流量控制輸入輸出處理機(jī)能夠獨(dú)立承擔(dān)輸入輸出工作的專(zhuān)用處理機(jī)所以輸入輸出處理機(jī)也可以存和執(zhí)行指令有CPU的功能相當(dāng)于小型CPU輸入輸出處理機(jī)作用如果仍采用通道處理機(jī)就會(huì)存在如下問(wèn)題1.每調(diào)用一次輸入輸出的前處理和后處理仍然要CPU來(lái)完成需要兩次用中斷方式中斷CPU的現(xiàn)行程序。2.外圍設(shè)備或通道處理機(jī)出現(xiàn)異常時(shí)通道處理機(jī)本身不能處理要通過(guò)中斷方式請(qǐng)求CPU來(lái)處理。3.對(duì)所傳送數(shù)據(jù)的格式轉(zhuǎn)換、碼制轉(zhuǎn)換、數(shù)據(jù)塊整體的正確性檢驗(yàn)等工作仍然要CPU來(lái)實(shí)現(xiàn)。4.文件的管理、設(shè)備的管理等操作系統(tǒng)上的工作通道處理機(jī)本身無(wú)能為力需要CPU來(lái)實(shí)現(xiàn)。而輸入輸出處理機(jī)除了能夠完成通道處理機(jī)的全部功能之外還具有以下功能1.碼制轉(zhuǎn)換2.數(shù)據(jù)校驗(yàn)和校正3.故障處理4.文件管理5.診斷和顯示系統(tǒng)狀態(tài)6.處理人機(jī)對(duì)話(huà)7.連接網(wǎng)絡(luò)或遠(yuǎn)程終端除了以上工作輸入輸出處理機(jī)還可以根據(jù)需要完成分配給它的其他任務(wù)如數(shù)據(jù)庫(kù)和知識(shí)庫(kù)的管理工作等。輸入輸出處理機(jī)除了具有數(shù)據(jù)的輸入輸出功能之外還具有運(yùn)算功能和程序控制等功能。不僅能夠執(zhí)行輸入輸出指令還能夠執(zhí)行算術(shù)邏輯指令和程序控制指令就像一個(gè)一般的處理機(jī)那樣??傊斎胼敵鎏幚頇C(jī)通常是一臺(tái)獨(dú)立的處理機(jī)具有一定的運(yùn)算功能可以承擔(dān)一般外圍處理機(jī)的輸入輸出、控制操作和運(yùn)算處理等任務(wù)。另外由于輸入輸出處理機(jī)具有自己的處理器因此不必通過(guò)主存就能完成與外圍設(shè)備的數(shù)據(jù)交換提高了計(jì)算機(jī)系統(tǒng)效率。輸入輸出處理機(jī)種類(lèi)根據(jù)是否共享主存儲(chǔ)器可以把輸入輸出處理機(jī)分成兩類(lèi)共享主存儲(chǔ)器的輸入輸出處理機(jī)、不共享主存儲(chǔ)器的輸入輸出處理機(jī)。根據(jù)運(yùn)算部件和指令控制部件是否為各個(gè)輸入輸出處理機(jī)共享也可以把輸入輸出處理機(jī)分為兩類(lèi)合用同一個(gè)運(yùn)算部件和指令控制部件的輸入輸出處理機(jī)造價(jià)低但控制相對(duì)復(fù)雜、獨(dú)立運(yùn)算部件和指令控制部件的輸入輸出處理機(jī)采用獨(dú)立運(yùn)算部件和指令控制部件的處理機(jī)已經(jīng)成為主流獨(dú)立性強(qiáng)輸入輸出處理機(jī)的結(jié)構(gòu)有多種組織方式1.有些計(jì)算機(jī)系統(tǒng)有多個(gè)輸入輸出處理機(jī)而且從功能上進(jìn)行分工。每個(gè)處理機(jī)有自己專(zhuān)門(mén)干的活。2.在許多并行計(jì)算機(jī)和超級(jí)計(jì)算機(jī)系統(tǒng)中以輸入輸出處理機(jī)作為主處理機(jī)。3.有的計(jì)算機(jī)系統(tǒng)中用一臺(tái)與中央處理機(jī)相同型號(hào)的處理機(jī)作為輸入輸出處理機(jī)相當(dāng)于有兩個(gè)CPU輸入輸出性能特別高4.很多計(jì)算機(jī)系統(tǒng)采用連接的微處理器來(lái)專(zhuān)門(mén)承擔(dān)輸入輸出任務(wù)。輸入輸出處理機(jī)特點(diǎn)沒(méi)畫(huà)啊沒(méi)畫(huà)家人們。第五章 標(biāo)量處理機(jī)只有標(biāo)量數(shù)據(jù)表示和標(biāo)量指令系統(tǒng)的處理機(jī)成為標(biāo)量處理機(jī)。提高指令執(zhí)行速度的三種途徑1.提高處理機(jī)的工作主頻2.采用更好的算法和設(shè)計(jì)更好的功能部件3.多種指令并行執(zhí)行稱(chēng)為指令級(jí)并行技術(shù)。這是目前和將來(lái)提高處理機(jī)指令執(zhí)行速度的一條主要路徑。其中又包括三種方法1.流水線技術(shù)、2.多操作部件處理機(jī)或超標(biāo)量處理機(jī)、3.超長(zhǎng)指令字技術(shù)先行重疊技術(shù)1.指令的重疊執(zhí)行方式總之順序執(zhí)行方式T3nt一次重疊執(zhí)行方式T(12n)t二次重疊執(zhí)行方式T(2n)t2.先行控制方式的原理和結(jié)構(gòu)采用二次重疊執(zhí)行方式要使指令能夠正確地重疊執(zhí)行。第一為了實(shí)現(xiàn)取指令、分析指令和執(zhí)行指令同時(shí)進(jìn)行需要有獨(dú)立的取指令部件、指令分析部件和指令執(zhí)行部件。第二要解決訪問(wèn)主存儲(chǔ)器的沖突問(wèn)題。1.主存分兩塊指存和數(shù)存2.指令和數(shù)據(jù)仍放在一個(gè)主存儲(chǔ)器里低位交叉存取一個(gè)周期可訪問(wèn)多個(gè)存儲(chǔ)單元3.根本解決方法還是先行控制技術(shù)該技術(shù)的關(guān)鍵是緩沖技術(shù)和預(yù)處理技術(shù)流水線處理機(jī)從兩個(gè)方面來(lái)開(kāi)發(fā)處理機(jī)內(nèi)部的并行性一個(gè)是空間并行性一個(gè)處理機(jī)內(nèi)設(shè)置多個(gè)獨(dú)立的操作部件這類(lèi)處理機(jī)也叫多操作部件處理機(jī)和超標(biāo)量處理機(jī)一個(gè)是時(shí)間并行性分時(shí)使用同一部件的不同部分就是采用流水線技術(shù)。流水線工作原理指令的執(zhí)行過(guò)程可以采用流水線稱(chēng)為指令流水線。運(yùn)算器中的操作部件也可以采用流水線稱(chēng)為操作部件流水線。時(shí)空?qǐng)D流水線的特點(diǎn)1.流水線中處理的必須是連續(xù)任務(wù)只有連續(xù)不斷的提供同類(lèi)任務(wù)才能充分發(fā)揮流水線的效率。2.在流水線的每一個(gè)功能部件的后面都要有一個(gè)緩沖寄存器流水寄存器。3.流水線中各段的時(shí)間應(yīng)盡量相等否則將引起“堵塞”、“斷流”等。4.流水線需要有“裝入時(shí)間”和“排空時(shí)間”。流水線的分類(lèi)1.按照流水線的各個(gè)功能段之間是否有反饋信號(hào)可以把流水線分為線性流水線和非流水線兩類(lèi)。線性流水線每一個(gè)功能段都流過(guò)一次而且僅僅流過(guò)一次。非線性流水線除了有串行之外還有反饋回路。2.按照流水線使用的不同級(jí)別可以把流水線分為功能部件級(jí)、處理機(jī)級(jí)和處理機(jī)間級(jí)等多種類(lèi)型。處理機(jī)流水線又稱(chēng)為指令流水線。功能部件級(jí)流水線也成為運(yùn)算操作流水線。指令執(zhí)行部件中采用了流水線的處理機(jī)稱(chēng)為流水線處理機(jī)或超流水線處理機(jī)而把指令執(zhí)行部件中設(shè)置多個(gè)操作部件的處理機(jī)稱(chēng)為多操作部件處理機(jī)或超標(biāo)量處理機(jī)。3.一條流水線只能完成一種固定的功能這種流水線稱(chēng)為單功能流水線。多功能流水線是指流水線的各段可以進(jìn)行不同的連接。4.在多功能流水線中按照在同一時(shí)間內(nèi)是否能夠連接成多種方式同時(shí)執(zhí)行多種功能可以把多功能流水線分成靜態(tài)流水線和動(dòng)態(tài)流水線兩種。按連接方式分所謂靜態(tài)流水線是指在同一段時(shí)間內(nèi)多功能流水線中的各個(gè)功能段只能按照一種固定的方式連接。動(dòng)態(tài)流水線是指在同一段時(shí)間內(nèi)多功能流水線中的各段可以按照不同/多種方式連接同時(shí)執(zhí)行多種功能。線性流水線性能分析對(duì)影響流水線性能的吞吐率、加速比和效率等三個(gè)主要指標(biāo)進(jìn)行分析。1.吞吐率最大吞吐率咋推出來(lái)的2.加速比如果不使用流水線順序執(zhí)行所用時(shí)間為T(mén)0使用流水線執(zhí)行所用時(shí)間為T(mén)k則流水線的加速比一般這個(gè)說(shuō)法指硬件為3.效率一般是軟件的叫法在時(shí)空?qǐng)D上流水線的效率是n個(gè)任務(wù)占用的時(shí)空區(qū)與k個(gè)功能段總的時(shí)空區(qū)之比。流水線性能分析例題跳到前面看