計(jì)算機(jī)體系結(jié)構(gòu)_第1頁(yè)
計(jì)算機(jī)體系結(jié)構(gòu)_第2頁(yè)
計(jì)算機(jī)體系結(jié)構(gòu)_第3頁(yè)
計(jì)算機(jī)體系結(jié)構(gòu)_第4頁(yè)
計(jì)算機(jī)體系結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Chapter 1計(jì)算題l 需求篩選的依據(jù)是成本性能比l 直接實(shí)現(xiàn)一般指用硬件實(shí)現(xiàn),而間接實(shí)現(xiàn)是指用軟件實(shí)現(xiàn)l 軟件和硬件要綜合考慮,要以價(jià)格性能比高低為取舍原則。l 常用的基本功能或產(chǎn)量很大的功能才適宜于用硬件實(shí)現(xiàn)。l 設(shè)計(jì)者最終要用成本性能比作為軟、硬件實(shí)現(xiàn)功能的取舍標(biāo)準(zhǔn);消費(fèi)者要用價(jià)格性能比作為選購(gòu)計(jì)算機(jī)系統(tǒng)的取舍標(biāo)準(zhǔn)。l 設(shè)計(jì)人員的參考原則:n 考慮用戶應(yīng)用領(lǐng)域n 設(shè)計(jì)周期長(zhǎng)的硬件不宜采用n 常用的功能盡量采用硬件實(shí)現(xiàn)n 實(shí)現(xiàn)功能的成本性能比(或價(jià)格性能比)要低n 超前設(shè)計(jì)l 某一計(jì)算機(jī)用于商業(yè)外貿(mào)的事務(wù)處理,有大量的字符串處理操作。由于這種商務(wù)處理很普遍,有較大的市場(chǎng),故而設(shè)計(jì)人員決

2、定在下一代計(jì)算機(jī)的CPU中加入字符串操作的功能。經(jīng)測(cè)試應(yīng)用軟件調(diào)查發(fā)現(xiàn),字符串操作的使用占整個(gè)程序運(yùn)行時(shí)間的50%。而增加此功能如用軟件(如微程序)實(shí)現(xiàn),則快5倍,增加CPU成本1/5倍;如果用硬件實(shí)現(xiàn),則快100倍,CPU成本增加到5倍。問(wèn)設(shè)計(jì)人員提出增加此功能是否恰當(dāng)?如恰當(dāng)則此功能應(yīng)該用軟件實(shí)現(xiàn)還是用硬件實(shí)現(xiàn)?設(shè)CPU成本占整機(jī)成本的1/3解: 首先來(lái)計(jì)算機(jī)在兩種情況下提高的性能和成本性能比。 設(shè): S為CPU未增加字符串功能時(shí)的CPU平均速度,Told為此時(shí)運(yùn)行程序的時(shí)間,Tnew為增加字符串功能后程序運(yùn)行的時(shí)間,則l Amdahl定律 (性能遞減規(guī)則)n 某部件應(yīng)用越頻繁,當(dāng)提高該部

3、件性能時(shí),整機(jī)性能也提高的越多。但不管該部件性能提高多大,整機(jī)的性能加速不可能大于在原機(jī)器中除該部件外所有其它部件運(yùn)行時(shí)間的百分比的倒數(shù)1/(1-F)n 計(jì)算機(jī)性能的改善程度受其采用的快速部件(被提高性能的部件)在原任務(wù)中使用所占的時(shí)間百分比的限制nl 采用新器件使某一功能性能提高10倍,但該功能的使用只占原程序運(yùn)行時(shí)間的40%。請(qǐng)計(jì)算新計(jì)算機(jī)性能改善了多少?ll 高頻事件高速處理(大概率事件優(yōu)先的原則)l 局部性原理n 最重要的是90/10局部性規(guī)則n 時(shí)間局部性n 空間局部性l 適應(yīng)計(jì)算機(jī)發(fā)展趨勢(shì)l 在指令系統(tǒng)中指令的確定是屬于計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的,而指令操作的實(shí)現(xiàn),如取指令、取操作數(shù)、運(yùn)算、

4、送結(jié)果等具體操作及排序方式是屬于計(jì)算機(jī)組成的,而實(shí)現(xiàn)這些指令功能的具體電路、器件的設(shè)計(jì)及裝配技術(shù)是計(jì)算機(jī)物理實(shí)現(xiàn)的l 計(jì)算機(jī)的性能是指在計(jì)算機(jī)上完成用戶的應(yīng)用任務(wù)所需的時(shí)間長(zhǎng)短l 響應(yīng)(實(shí)耗)時(shí)間是指計(jì)算機(jī)系統(tǒng)完成某一任務(wù)(程序)所花費(fèi)的時(shí)間n 速度,即用響應(yīng)時(shí)間的倒數(shù)n 用速度來(lái)評(píng)價(jià)性能,我們稱(chēng)“高”為性能好;如果用響應(yīng)時(shí)間來(lái)評(píng)價(jià)性能,我們稱(chēng)“短”為性能好l 計(jì)算機(jī)整機(jī)性能分成兩部分:一是CPU執(zhí)行程序的時(shí)間,二是等待時(shí)間。提高計(jì)算機(jī)性能就是提高CPU性能和減少等待時(shí)間。l CPU時(shí)間也包含兩部分,即用戶CPU時(shí)間(user CPU time)和系統(tǒng)CPU時(shí)間(system CPU time

5、)l CPUtime =整個(gè)程序的總時(shí)鐘數(shù)×時(shí)鐘周期l 每條指令的平均時(shí)鐘周期數(shù)(Clock cycles Per Instruction),簡(jiǎn)稱(chēng)為CPIl 指令數(shù)×CPI代替總時(shí)鐘數(shù)l 設(shè)條件轉(zhuǎn)移指令的實(shí)現(xiàn)有兩種方案可以選擇。機(jī)器A:用兩條指令完成。由比較指令建立條件碼,再在轉(zhuǎn)移指令中測(cè)試條件碼。機(jī)器B:只用一條指令。比較和轉(zhuǎn)移一起執(zhí)行。對(duì)于這兩種機(jī)器來(lái)說(shuō),條件轉(zhuǎn)移指令用2個(gè)時(shí)鐘,所有其它指令花費(fèi)一個(gè)時(shí)鐘。在機(jī)器A上有20%的執(zhí)行指令是條件轉(zhuǎn)移指令,因此每個(gè)轉(zhuǎn)移都需要比較,有20%是比較指令。由于機(jī)器A在轉(zhuǎn)移指令中沒(méi)有比較功能,這樣時(shí)鐘頻率比機(jī)器B快25%,問(wèn)哪個(gè)機(jī)器快?

6、解:忽略所有等待及系統(tǒng)時(shí)間,我們可以用CPU時(shí)間來(lái)比較機(jī)器的性能。 機(jī)器A: CPIA20%×2 80%×11.2 CPUtimeA指令數(shù)A×1.2×時(shí)鐘周期A 1.2IA A機(jī)器B: 無(wú)比較指令,則指令數(shù)要比機(jī)器A少20%,只有機(jī)器A指令數(shù)的80%,即指令數(shù)B=80%指令數(shù)A。在機(jī)器A的指令中有20%指令是轉(zhuǎn)移指令,它占機(jī)器B的指令數(shù)的百分比是20%80%=25%。因此機(jī)器B的CPIB25%×275%×11.25。同時(shí)A機(jī)器時(shí)鐘比B機(jī)器快25%,故時(shí)鐘周期B(1+25%)A1.25ACPUtimeB指令數(shù)B×CPIB

7、15;時(shí)鐘周期B 0.80IA×1.25×1.25A 1.25IAA 從計(jì)算中我們看出機(jī)器A雖然比機(jī)器B多執(zhí)行了20%的指令,但由于它的時(shí)鐘周期短,同時(shí)CPI也小,反而比機(jī)器B快l 某臺(tái)計(jì)算機(jī)的指令集原來(lái)進(jìn)行存儲(chǔ)器訪問(wèn)的指令只有Load/Store,其它指令只能在寄存器之間操作。這種機(jī)器我們稱(chēng)為L(zhǎng)oad/Store型機(jī)器。現(xiàn)測(cè)得這臺(tái)Load/Store計(jì)算機(jī)指令的使用頻率和時(shí)鐘數(shù)如表1-5所示。在ALU操作中,有25%的操作數(shù)是由Load指令取得。現(xiàn)在ALU操作中使其有一個(gè)操作數(shù)可以在存儲(chǔ)器內(nèi),即register-memory指令,這條指令執(zhí)行的時(shí)鐘數(shù)是2。假設(shè)擴(kuò)展指令集后

8、使轉(zhuǎn)移指令增加1個(gè)時(shí)鐘數(shù),但不影響時(shí)鐘周期,問(wèn)這樣改變后計(jì)算機(jī)性能是否提高? ll 對(duì)于例1-6的計(jì)算機(jī),我們采用優(yōu)化編譯來(lái)改善其性能。編譯可以減少50%的ALU指令,但它不能減少Load,Store和Branch指令,忽略系統(tǒng)因素,并假設(shè)時(shí)鐘周期是20ns(50MHz頻率),請(qǐng)問(wèn)優(yōu)化編譯后的MIPS和沒(méi)有優(yōu)化編譯時(shí)的MIPS各為多少?MIPS的變化和執(zhí)行時(shí)間的變化是否一致?ll 基準(zhǔn)程序的一般設(shè)計(jì)原則n 具有代表性 n 不能對(duì)基準(zhǔn)程序進(jìn)行優(yōu)化。n 復(fù)現(xiàn)性。n 可移植性。n 緊湊性。n 成本-效率要高l 性能報(bào)告相關(guān)參數(shù)的計(jì)算l 哈夫曼壓縮的基本思想是:出現(xiàn)頻率最大的事件用最少的位(或最短的時(shí)

9、間)來(lái)表示(或處理),而頻率較小的事件用較多的位(較長(zhǎng)的時(shí)間)來(lái)表示(或處理),從而達(dá)到平均位數(shù)(或時(shí)間)縮短的目的l 操作碼的信息源熵(entropy 系統(tǒng)包含的平均信息量)公式 H=pilog2pi式中pi為事件出現(xiàn)的頻率lChapter 2l 計(jì)算機(jī)的三種機(jī)器結(jié)構(gòu)n 堆棧u 優(yōu)點(diǎn):賦值表達(dá)式簡(jiǎn)單,指令長(zhǎng)度較短,代碼密度高;u 缺點(diǎn):不能隨機(jī)訪問(wèn)存儲(chǔ)器,代碼效率低。n 累加器u 優(yōu)點(diǎn):機(jī)器內(nèi)部狀態(tài)最少,指令長(zhǎng)度最短(9bytes);u 缺點(diǎn):僅一個(gè)暫存器,和存儲(chǔ)器的通信頻繁。n 通用寄存器u 優(yōu)點(diǎn):最一般的指令模型,第一類(lèi),寄存器利用率最高,代碼長(zhǎng)度MAX15字節(jié)。第二類(lèi),和累加器形式相似

10、,暫存器個(gè)數(shù)多;u 缺點(diǎn):寄存器要顯示說(shuō)明,導(dǎo)致指令字較長(zhǎng)。l 在ALU指令中不對(duì)內(nèi)存進(jìn)行操作的計(jì)算機(jī)稱(chēng)為載入-存儲(chǔ)(Load-Store)或者寄存器-寄存器(register-register)機(jī)器。ALU指令中有一個(gè)內(nèi)存操作數(shù)的指令稱(chēng)為寄存器-存儲(chǔ)器(register- memory)指令。有多個(gè)內(nèi)存操作數(shù)的指令稱(chēng)為存儲(chǔ)器-存儲(chǔ)器(memory-memory)指令。l 我們是在確定了計(jì)算機(jī)應(yīng)有的功能后,并確定了哪些功能是由硬件來(lái)實(shí)現(xiàn)(直接提供指令),哪些功能是由軟件實(shí)現(xiàn)(由基本指令組合實(shí)現(xiàn))后,再來(lái)進(jìn)行指令集的設(shè)計(jì)。l 最常用的指令操作:存儲(chǔ)器訪問(wèn)(memory references)、算

11、術(shù)邏輯單元(ALU operation)操作和轉(zhuǎn)移指令(branch)操作三類(lèi)。l 控制操作、算術(shù)操作和數(shù)據(jù)傳輸三大類(lèi)指令是最常用的,可以認(rèn)為也是各種計(jì)算機(jī)必不可少的指令。l 假定反向條件轉(zhuǎn)移指令90%是成功的,用表2-4平均數(shù)計(jì)算正向條件轉(zhuǎn)移的成功率。ll 正向條件轉(zhuǎn)移大部分是不成功的,它滿足條件的概率較低l 在字單元地址內(nèi)有兩種字節(jié)排列次序:第一種為低位收尾(little endian),其字節(jié)次序是低字節(jié)在最低位的排列;第二種為高位收尾(big endian),其字節(jié)次序是高字節(jié)在最低位的排列l(wèi) 假設(shè)訪問(wèn)的數(shù)據(jù)字節(jié)數(shù)是S,而訪問(wèn)的字節(jié)地址是A,那么A mod S =0,則稱(chēng)為地址A所訪問(wèn)

12、的S字節(jié)是對(duì)齊的。l 只要是跨CPU字地址的寄存器總線訪問(wèn)一定要兩個(gè)總線訪問(wèn)周期才能完成l 寄存器分配策略1. 假設(shè)計(jì)算機(jī)具有無(wú)窮多個(gè)寄存器,根據(jù)需要分配寄存器的變量個(gè)數(shù),以出現(xiàn)時(shí)間先后為序建立一個(gè)寄存器變量圖。圖中每個(gè)變量用小圓圈表示,圈內(nèi)標(biāo)上變量名,每個(gè)變量稱(chēng)為一個(gè)節(jié)點(diǎn)。2. 用弧連接各相鄰節(jié)點(diǎn)。連接的原則是可能同時(shí)出現(xiàn)的變量節(jié)點(diǎn)作為相鄰節(jié)點(diǎn),用弧連接起來(lái)。從變量角度來(lái)講,線段連接的是時(shí)空上重疊出現(xiàn)的變量生存范圍。此時(shí)稱(chēng)整個(gè)圖為相干圖。3. 編譯程序給相干圖著色。著色的顏色數(shù)應(yīng)小于等于能分配給變量的寄存器數(shù),著色的條件是相鄰節(jié)點(diǎn)不可以用同樣的顏色。這種限制使兩個(gè)同時(shí)出現(xiàn)的變量不會(huì)爭(zhēng)用同一個(gè)

13、寄存器。沒(méi)有線段相連的節(jié)點(diǎn),可以是同一種顏色,即允許不重疊出現(xiàn)的變量使用同一個(gè)寄存器。著色后每一種顏色對(duì)應(yīng)一個(gè)活動(dòng)變量或一個(gè)寄存器。根據(jù)相干圖分配物理寄存器。l RISC設(shè)計(jì)思想是:指令集設(shè)計(jì)時(shí)根據(jù)Amdahl定律選擇使用概率高的指令構(gòu)成指令集,這些大概率指令一般是簡(jiǎn)單指令,因此控制器可以設(shè)計(jì)的簡(jiǎn)單、高速,且占CPU集成電路芯片的面積少,空出較多的集成電路芯片面積用來(lái)增加寄存器數(shù)量。在編譯的配合下減少訪存次數(shù),減少指令間的各種相關(guān)和競(jìng)爭(zhēng),盡可能得到最佳指令序列,從而提高計(jì)算機(jī)系統(tǒng)的整體性能。l 某應(yīng)用程序,簡(jiǎn)單的基本指令占80%,而復(fù)雜指令占20%,在傳統(tǒng)CISC計(jì)算機(jī)上運(yùn)行,簡(jiǎn)單指令的CPI

14、=4,復(fù)雜指令的CPI=8,而在RISC計(jì)算機(jī)上運(yùn)行只有簡(jiǎn)單指令,其CPI=1,復(fù)雜指令用簡(jiǎn)單指令合成實(shí)現(xiàn)。假設(shè)平均每條復(fù)雜指令需14條基本指令組合,請(qǐng)比較個(gè)計(jì)算機(jī)系統(tǒng)運(yùn)行該應(yīng)用程序的性能。解:設(shè)CISC計(jì)算機(jī)的時(shí)鐘周期為 TCISC,RISC計(jì)算機(jī)的時(shí)鐘周期為T(mén)RISC,則: CISC計(jì)算機(jī)的平均 CPI=0.8×4+0.2×8=4.8RISC計(jì)算機(jī)的指令數(shù)增加為 IRISC=0.8ICISC+0.2ICISC×14=3.6ICISC因 CPUtime=I×CPI×T故 CPUtime-CISC=ICISC ×4.8×TC

15、ISC=4.8ICISC×TCISC CPUtime-RISC=IRISC×1×TRISC=3.6ICISC×TRISC 若TCISC=TRISC ,則RISC計(jì)算機(jī)比CISC計(jì)算機(jī)性能提高33%。實(shí)際上,減少TRISC比減少TCISC要來(lái)的容易。Chapter 3畫(huà)圖題l 處理器可分為兩部分n 數(shù)據(jù)通路n 控制器ll 一條指令的執(zhí)行分為以下五個(gè)步驟:n 1. 取指令(instruction fetch) 。n 2. 指令譯碼/寄存器讀出(instruction decode/register fetch)。n 3. 執(zhí)行/有效地址計(jì)算(executio

16、n/effective address)。u a. 訪存指令(access instruction)u b. ALU指令(ALU instruction )u c. 無(wú)條件轉(zhuǎn)移/條件轉(zhuǎn)移指令(jump instruction / branch)n 4. 存儲(chǔ)器訪問(wèn)/完成轉(zhuǎn)移(memory access/branch completion)u a. 訪存指令(access instruction)u b. 轉(zhuǎn)移指令(branch instruction)n 5. 寫(xiě)回(write-back)。llChapter 4計(jì)算題 簡(jiǎn)答題l 流水線(pipeline)是指在程序執(zhí)行時(shí)多條指令重疊進(jìn)行的操作

17、的一種準(zhǔn)并行處理實(shí)現(xiàn)技術(shù)l 流水線的特點(diǎn):n 一條流水線由多個(gè)流水級(jí)組成;n 每個(gè)流水級(jí)有專(zhuān)門(mén)的功能部件對(duì)指令進(jìn)行某種加工;n 各流水級(jí)所需時(shí)間是一樣的(同時(shí));n 流水線工作階段可分為建立、滿載和排空三個(gè)階段;n 單位時(shí)間內(nèi)流出流水線的指令數(shù)即吞吐率。l 流水線設(shè)計(jì)最難的任務(wù)是確定每個(gè)流水級(jí)功能部件處理事件的時(shí)間l 每條指令平均執(zhí)行時(shí)間=l 流水線深度是指流水線中總的流水級(jí)的數(shù)目。在這種條件下,流水線計(jì)算機(jī)的加速比(speedup)就等于流水級(jí)的深度。l 流水線只能減少每條指令的平均執(zhí)行時(shí)間,一條指令的實(shí)際執(zhí)行時(shí)間要經(jīng)過(guò)所有流水級(jí),其實(shí)際執(zhí)行時(shí)間有可能比未流水時(shí)還要長(zhǎng)l 流水線有多種分類(lèi)方法

18、n 按處理的級(jí)別分類(lèi)u 操作部件級(jí)u 指令級(jí)u 處理器級(jí)n 按完成的功能分類(lèi)u 單功能流水線u 多功能流水線n 按連接的方式分類(lèi)u 靜態(tài)流水線u 動(dòng)態(tài)流水線靜態(tài)流水線是指在同一個(gè)時(shí)間內(nèi),多功能結(jié)構(gòu)只能按一種功能的連接方式工作,這對(duì)于大量數(shù)據(jù)進(jìn)行相同處理來(lái)說(shuō),具有很好的效果。但是遇到不同功能交替處理時(shí),流水線就失去了其優(yōu)點(diǎn),運(yùn)算速度與順序處理方式?jīng)]有什么區(qū)別。 動(dòng)態(tài)流水線是指在同一個(gè)時(shí)間內(nèi),可以有多種功能的連接方式同時(shí)工作。如圖4-5中多個(gè)功能段,其中一些功能段正在實(shí)現(xiàn)乘法運(yùn)算,同時(shí)其它功能段還可以進(jìn)行浮點(diǎn)加減運(yùn)算,這種方式的流水工作效率最高,但是控制也變得更復(fù)雜。n 按處理的數(shù)據(jù)類(lèi)型分類(lèi)u 標(biāo)

19、量流水線u 向量流水線n 從流水線結(jié)構(gòu)上分類(lèi)u 線性流水線u 非線性流水線l 假定RISC流水線計(jì)算機(jī),時(shí)鐘周期是10ns,ALU操作和條件轉(zhuǎn)移要4個(gè)時(shí)鐘周期,而存儲(chǔ)器訪問(wèn)操作要5個(gè)時(shí)鐘周期。這三種指令操作的使用概率相應(yīng)是40%,20%和40%。假設(shè)由于時(shí)鐘上升和建立,流水線機(jī)器周期要增加1ns的開(kāi)銷(xiāo)。忽略任何其它延時(shí)影響,問(wèn)5級(jí)流水線機(jī)器可以獲得的加速比是多少?解:非流水線計(jì)算機(jī)平均每條指令執(zhí)行時(shí)間為: Timeup×CPI10×(40%+20%)×4+40%×510×4.4=44ns 流水線計(jì)算機(jī)每條指令平均執(zhí)行時(shí)間為: Timep(10+

20、1)×5/511ns 則流水線計(jì)算機(jī)的Speedup為:Speedup=44/11=4倍l 假定機(jī)器指令執(zhí)行需要5個(gè)功能單元,這5個(gè)單元的操作所需時(shí)間分別是10,8,10,10,7ns。假定流水要增加1ns的開(kāi)銷(xiāo)。求出流水相對(duì)于單周期指令機(jī)器的加速比 解:非流水計(jì)算機(jī)執(zhí)行所有指令都用單個(gè)時(shí)鐘,它的每條指令平均時(shí)間直接是一個(gè)時(shí)鐘周期。時(shí)鐘周期等于每一步的執(zhí)行時(shí)間之和,即 timeup=10+8+10+10+7=45ns 在流水線機(jī)器上的時(shí)鐘周期必須是流水線中執(zhí)行時(shí)間最長(zhǎng)的流水部件的執(zhí)行時(shí)間,再加上1ns的開(kāi)銷(xiāo),總共是 timep=10+1=11ns Speedup=45/11=4.1(

21、倍) 一般認(rèn)為,流水線改善了CPI,也可以把它看作是提高了時(shí)鐘頻率。l 流水線競(jìng)爭(zhēng)有三種n 結(jié)構(gòu)競(jìng)爭(zhēng)(structure hazard)(資源競(jìng)爭(zhēng)):由資源缺乏引起n 數(shù)據(jù)競(jìng)爭(zhēng)(data hazard):由指令間數(shù)據(jù)相關(guān)而引起n 控制競(jìng)爭(zhēng)(control hazard):由程序指針PC值的改變而引起l 計(jì)算存儲(chǔ)器結(jié)構(gòu)競(jìng)爭(zhēng)的代價(jià)。假定程序中存儲(chǔ)器數(shù)據(jù)訪問(wèn)有40%。計(jì)算機(jī)流水線忽略結(jié)構(gòu)沖突的理想CPI等于1。又假設(shè)有結(jié)構(gòu)競(jìng)爭(zhēng)的計(jì)算機(jī)時(shí)鐘頻率是沒(méi)有結(jié)構(gòu)競(jìng)爭(zhēng)時(shí)的1.05倍。不考慮其它性能損失。流水線有結(jié)構(gòu)競(jìng)爭(zhēng)和無(wú)結(jié)構(gòu)競(jìng)爭(zhēng)哪一個(gè)執(zhí)行速度快?快多少?解: 有許多方法可以解這個(gè)問(wèn)題,最簡(jiǎn)單的方法是計(jì)算平均指

22、令的運(yùn)行時(shí)間 TaverI×CPI× 兩機(jī)器和時(shí)鐘關(guān)系 f有結(jié)構(gòu)競(jìng)爭(zhēng)1.05×f理想 有結(jié)構(gòu)競(jìng)爭(zhēng)理想/1.05無(wú)結(jié)構(gòu)競(jìng)爭(zhēng),即沒(méi)有插入Stall,由于理想CPI1,故平均指令執(zhí)行時(shí)間 Ta無(wú)結(jié)構(gòu)競(jìng)爭(zhēng)I×CPI×理想I×理想有結(jié)構(gòu)競(jìng)爭(zhēng)平均指令執(zhí)行時(shí)間為 Ta有結(jié)構(gòu)競(jìng)爭(zhēng)I×CPI×(1+0.4×1)I×理想/1.051.3I×理想很明顯,無(wú)結(jié)構(gòu)競(jìng)爭(zhēng)的計(jì)算機(jī)運(yùn)行速度要快,且要快1.3倍。l 允許結(jié)構(gòu)競(jìng)爭(zhēng)存在n 減少成本n 降低單元電路的延時(shí)時(shí)間n 減少電路的復(fù)雜程度l 現(xiàn)代許多RISC計(jì)算機(jī),

23、浮點(diǎn)操作都沒(méi)有采用完全流水方式。假設(shè)在5級(jí)RISC流水處理器中,浮點(diǎn)乘法操作沒(méi)用流水方式實(shí)現(xiàn),有4個(gè)時(shí)鐘的等待時(shí)間。已知浮點(diǎn)乘法指令使用頻率為14%,且假設(shè)浮點(diǎn)乘法指令在程序中完全均勻分布,請(qǐng)分析結(jié)構(gòu)競(jìng)爭(zhēng)對(duì)性能影響的程度。分兩種極端情況分析: 1. 浮點(diǎn)乘法操作均勻分布,這是最佳情況,此時(shí)每7條指令有一個(gè)浮點(diǎn)乘法操作,大于5,故所有浮點(diǎn)乘法都可以和其它指令重疊執(zhí)行,這種情況始終沒(méi)有關(guān)于浮點(diǎn)乘法器的結(jié)構(gòu)競(jìng)爭(zhēng),也不需插入Stall,性能沒(méi)有損失。 2. 浮點(diǎn)乘法操作成串出現(xiàn),且中間沒(méi)有其它指令間隔,這是最差的情況。這時(shí)局部相當(dāng)于每條指令都是浮點(diǎn)乘法操作(即100%),結(jié)構(gòu)競(jìng)爭(zhēng)最嚴(yán)重。在這種情況下,

24、14%的浮點(diǎn)乘法都要延時(shí)4個(gè)時(shí)鐘才能進(jìn)入浮點(diǎn)乘法執(zhí)行部件。假定理想CPI1,此時(shí)的CPI為 CPI14×14%1.6l 旁路技術(shù)l 插入Stalll 假定30%的指令是Load指令,其中一半情況是緊跟Load后面的指令依賴Load指令的結(jié)果。如果出現(xiàn)數(shù)據(jù)競(jìng)爭(zhēng)要停頓一個(gè)流水節(jié)拍。那么相對(duì)于理想流水線機(jī)器(CPI=1),實(shí)際流水線性能損失多少?忽略其它流水停頓。解: 當(dāng)有數(shù)據(jù)競(jìng)爭(zhēng)時(shí),Load后面的指令其CPI=2,這種情況Load指令的一半,即15%,而其余指令的CPI值仍為1,沒(méi)有變化,故實(shí)際機(jī)器的CPI為 CPI(100%15%)×115%×21.15由于指令總數(shù)

25、和時(shí)鐘周期均未變化,故實(shí)際機(jī)器性能損失 (1.151)115%即與理想機(jī)器相比性能損失了15%。l 靜態(tài)調(diào)度(避免插入Stall的性能損失)l 假定由Load指令引起的數(shù)據(jù)競(jìng)爭(zhēng)有一個(gè)流水節(jié)拍的停頓,采用指令調(diào)度方法生成代碼,避免下列語(yǔ)句序列出現(xiàn)流水等待 abc defl 指令從ID級(jí)流入EX級(jí),一般稱(chēng)指令發(fā)射(instruction issue)。一條指令已建立了這一過(guò)程,稱(chēng)為已發(fā)射(issued)l 把碰到轉(zhuǎn)移指令到轉(zhuǎn)移行為明確之間的時(shí)間間隔稱(chēng)為轉(zhuǎn)移的延時(shí)時(shí)間,后繼指令組成的轉(zhuǎn)移延時(shí)時(shí)間稱(chēng)為轉(zhuǎn)移延時(shí)槽l 對(duì)延時(shí)槽的處理有三種編譯調(diào)度方法n 取自轉(zhuǎn)移指令前。這是最佳選擇。n 取自目標(biāo)指令。一般用于轉(zhuǎn)移成功概率高的地方,如循環(huán)語(yǔ)句。n 取自轉(zhuǎn)移指令后。一般用于

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論