《計算機系統(tǒng)結(jié)構(gòu)》電子教案(課).ppt

上傳人:za****8 文檔編號:14543732 上傳時間:2020-07-23 格式:PPT 頁數(shù):26 大小:388.06KB
收藏 版權(quán)申訴 舉報 下載
《計算機系統(tǒng)結(jié)構(gòu)》電子教案(課).ppt_第1頁
第1頁 / 共26頁
《計算機系統(tǒng)結(jié)構(gòu)》電子教案(課).ppt_第2頁
第2頁 / 共26頁
《計算機系統(tǒng)結(jié)構(gòu)》電子教案(課).ppt_第3頁
第3頁 / 共26頁

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《計算機系統(tǒng)結(jié)構(gòu)》電子教案(課).ppt》由會員分享,可在線閱讀,更多相關(guān)《《計算機系統(tǒng)結(jié)構(gòu)》電子教案(課).ppt(26頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、2014.2.17,計算機系統(tǒng)結(jié)構(gòu),1,3.4 RISC的基本流水線(P70),下面是RISC的指令流水線簡化結(jié)構(gòu)圖(5段結(jié)構(gòu)),每段1個時鐘周期。,2014.2.17,計算機系統(tǒng)結(jié)構(gòu),2,(1)流水運行方式,RISC流水線5段功能的初步定義(時鐘周期圖Cycle),IF,ID,EX,Mem,WB,IF,ID,EX,Mem,WB,指令K,指令K+1,取指 PC+4,譯碼 取數(shù),計算 判斷,訪存 送PC,寫回,(2)順序運行方式,IF,ID,EX,Mem,WB,IF,ID,EX,Mem,WB,指令K,指令K+1,取指,譯碼 取數(shù),計算 判斷,訪存 送PC,寫回,2014.2.17,計算機系統(tǒng)結(jié)構(gòu)

2、,3,RISC流水線5段功能的初步定義,2014.2.17,計算機系統(tǒng)結(jié)構(gòu),4,為了簡單,先考慮順序處理方式下的工作過程(即不考慮并行處理多條指令): (1) IF 取指周期(后來稱IM) (2) ID 指令譯碼/讀寄存器周期 (3) EX 執(zhí)行/地址計算周期 做4種操作之一:存儲器地址計算、寄存器/寄存器ALU運算、寄存器/立即數(shù)ALU運算、分支地址計算與條件判斷。 (4) MEM 存儲器訪問/分支完成周期(ALU指令不需要)(后來稱DM) 做2種操作之一:存儲器訪問、根據(jù)分支條件對PC賦值。 (5) WB 寫回寄存器周期(分支指令不需要) 做2種操作之一:ALU結(jié)果寫寄存器、LOAD結(jié)果寫

3、寄存器。 總周期數(shù) = n CPI(ALU和分支指令的CPI=4,其它指令的CPI=5),3.4.1 用順序方式實現(xiàn)RISC詳解,2014.2.17,計算機系統(tǒng)結(jié)構(gòu),5,按流水方式運行需要解決的問題: 存儲周期每個時鐘周期都至少訪問一次存儲器,所以存儲器件的訪問周期必須縮短為順序方式的1/5(流水線必須配用高速存儲系統(tǒng))。 沖突前面指令在MEM修改PC與后面指令在IF做PC+4發(fā)生PC沖突; 前面指令在MEM訪存與后面指令在IF取指發(fā)生存儲器沖突; 前面指令在WB寫寄存器與后面指令在ID讀寄存器發(fā)生寄存器沖突。(下頁圖) 對策用多路器選擇PC+4送PC,還是ALUout送PC;IF改成訪問指令

4、存儲器IM,MEM改成訪問數(shù)據(jù)存儲器DM,以避免存儲器沖突;或者雖共用一個存儲器,但是分別連到指令Cache、數(shù)據(jù)Cache; 寄存器沖突留待下文解決。 寄存器文件每條指令啟動后就被分配一組暫存器,稱為“寄存器文件”,用以保存自己的臨時數(shù)據(jù),如NPC、IR等,它們伴隨指令逐段推進,直至指令結(jié)束。在沒有操作的段,寄存器文件被直接拷貝到下一段。(P119) 總周期數(shù) = n + m 1 + stall總數(shù)(無相關(guān)、無沖突情況下),3.5 基本的MIPS流水線(P87),2014.2.17,計算機系統(tǒng)結(jié)構(gòu),6,(1)3種沖突,流水方式運行帶來的結(jié)構(gòu)沖突,IF,ID,EX,Mem,WB,IF,ID,E

5、X,Mem,WB,指令K,指令K+1,譯碼 取數(shù),訪存 送PC,寫回,(2)存儲器哈佛結(jié)構(gòu)、分離Cache結(jié)構(gòu),CPU,指令K+3,指令K,IF,ID,EX,Mem,WB,指令K+2,IF,ID,EX,Mem,WB,指令K+3,取指 PC+4,指令存儲器,數(shù)據(jù)存儲器,CPU,指令Cache,數(shù)據(jù)Cache,內(nèi)存,2014.2.17,計算機系統(tǒng)結(jié)構(gòu),7,3.5.1 MIPS的一種簡單實現(xiàn),2014.2.17,計算機系統(tǒng)結(jié)構(gòu),8,3.4.2 相關(guān)與沖突(P72),相關(guān)dependence :一條指令依賴另一條指令的結(jié)果。 沖突hazard :由于相關(guān)或其它原因,一條指令暫時停下來等待另一條指令執(zhí)行

6、,不然就會產(chǎn)生錯誤的結(jié)果(與程序員預(yù)期的不一致)。 相關(guān)的分類 1. 數(shù)據(jù)相關(guān):前面指令的結(jié)果作為后面指令的操作數(shù)(真數(shù)據(jù)相關(guān)) 2. 名相關(guān):兩條指令使用了同一個寄存器或存儲單元,并非要傳送數(shù)據(jù) 3. 控制相關(guān):分支指令等改變PC值的情況 反相關(guān) 名相關(guān) 輸出相關(guān) 沖突的分類 1. 結(jié)構(gòu)沖突:即資源爭用 寫后讀:RAW 2. 數(shù)據(jù)沖突:由數(shù)據(jù)相關(guān)、或者名相關(guān)造成 寫后寫:WAW 3. 控制沖突:由控制相關(guān)造成 讀后寫:WAR 實例:P73P83;多種相關(guān)、沖突演示程序Lesson-5.s,2014.2.17,計算機系統(tǒng)結(jié)構(gòu),9,3種相關(guān)與3種沖突的關(guān)系,?,數(shù)據(jù)相關(guān),名相關(guān),控制相關(guān),3種相

7、關(guān),結(jié)構(gòu)沖突,數(shù)據(jù)沖突,控制沖突,3種沖突,原因,結(jié)果,2014.2.17,計算機系統(tǒng)結(jié)構(gòu),10,沖突的通用處理方法暫停,沖突的通用處理方法:為了不出現(xiàn)錯誤結(jié)果,相關(guān)檢測硬件會自動插入所需個數(shù)的暫停周期stall(又稱為“流水線氣泡”),圖3.21和圖3.22是等效的表示法,后者比較緊湊; MIPS流水線的暫停:在ID段之后分支,在MEM段之前匯合。 如果一條指令在非分支的IF、ID、MEM、WB段暫停,它后面的指令只能順序流動;如果一條指令在任一分支內(nèi)暫停,它后面的其它種類指令可以亂序流動(繞過它先流向出口)。 MIPS暫停演示程序Lesson-5.s: dmul r1,r2,r3 dmul

8、 r4,r5,r1 sub.d f1,f2,f3,2014.2.17,計算機系統(tǒng)結(jié)構(gòu),11,1. 結(jié)構(gòu)沖突特異處理方法(P75),“設(shè)備重復(fù)”方法,又稱“完全流水化功能單元”方法:即為不同指令的同一操作分別設(shè)置獨立的設(shè)備。比如 IF 段訪問指令存儲器,MEM 段訪問數(shù)據(jù)存儲器(見課件P108)。 這種方法需要顯著增加成本,對經(jīng)常發(fā)生的沖突類型值得采用。而不常發(fā)生的結(jié)構(gòu)相關(guān),因為導(dǎo)致的程序平均執(zhí)行時間增加并不多,可以放任不管,見下頁例子。,2014.2.17,計算機系統(tǒng)結(jié)構(gòu),12,例3.5(不用“完全流水化功能單元”的例子,2版教材),已知DLX處理機(MIPS的前身)中其它指令的 CPI =

9、1,浮點乘法指令的 CPI = 7,因為非流水的浮點乘法部件用時 7 拍。如果下一條指令也要使用浮點乘法部件,則必須比上一條指令推遲7 拍啟動,除非增加一個浮點乘法部件。在mdljdp2基準(zhǔn)測試程序中,浮點乘法指令出現(xiàn)的概率為14%,試分析不采用“完全流水化功能單元” 方法帶來的 CPI 增量。 分析: 不采用“完全流水化功能單元” 方法,即系統(tǒng)中只有一個浮點乘法部件,那么當(dāng)浮點乘法指令的下一條指令不是浮點乘法指令時 CPI 仍為 1(應(yīng)為2,林老師注),當(dāng)下一條指令是浮點乘法指令時 CPI 增大到 7。最壞情況是這14%的浮點乘法指令連續(xù)出現(xiàn),那么整個程序的平均 CPI 將增加 14% 6

10、= 0.84拍。 該教材說當(dāng)浮點乘法指令服從均勻分布時,采用“完全流水化功能單元” 獲得的好處可能很少,原因是實際 CPI 的增量比0.84小得多(見下頁例3.5 的進一步推導(dǎo)”)。,2014.2.17,計算機系統(tǒng)結(jié)構(gòu),13,例3.5 的進一步推導(dǎo),記:浮點乘法指令的出現(xiàn)概率,= 14%; 由于浮點乘法指令出現(xiàn)導(dǎo)致的平均 CPI 增量(節(jié)拍數(shù));n 指令總數(shù)。 分析:1條單獨出現(xiàn)的概率為1(1-),對應(yīng)的= 0;2條連續(xù)出現(xiàn)的概率為2(1-),對應(yīng)的= 4;k條連續(xù)出現(xiàn)的概率為k(1-),對應(yīng)的= 4(k-1);n+1條連續(xù)出現(xiàn)的概率為0。 的期望值:/= 2(1-)41 + 3(1-)42

11、+ + n(1-)4(n-1) = 4(1-)12 + 23 + +(n-1)n = 42(1-n -1)/(1-)-(n-1)n+1 當(dāng)n時,/ 42 /(1-)0.09拍,2014.2.17,計算機系統(tǒng)結(jié)構(gòu),14,2. 數(shù)據(jù)沖突特異處理方法(P76),(1) 實例見圖3.23 (2) 相關(guān)指令彼此間隔大于一定距離就不會出錯(P77第1段,XOR) (3) 把時鐘分成前、后半段的方法可以解決寄存器相關(guān)(P77第1段,OR) (4) 定向技術(shù)(forwarding)可以達(dá)到提前1.5拍寫、推遲0.5拍讀的效果,消除2拍以內(nèi)的相關(guān)出錯(實際有效范圍因指令而異,見下圖) (5) 通過編譯軟件的指令

12、調(diào)度處理,可以達(dá)到(2)的目的,而不用增加“空操作”指令或者硬件“氣泡”(P79第5行實例分析)。,前半拍完成寫寄存器,后半拍完成讀寄存器,ALU出口定向路徑,定向路徑ALU入口,2014.2.17,計算機系統(tǒng)結(jié)構(gòu),15,定向路徑(相關(guān)專用通路),寄存器文件,寄存器文件,寄存器文件,寄存器文件,通過定向路徑復(fù)制寄存器文件,2014.2.17,計算機系統(tǒng)結(jié)構(gòu),16,采用定向技術(shù)后消除停頓的情形,2014.2.17,計算機系統(tǒng)結(jié)構(gòu),17,采用定向技術(shù)后減少停頓的情形,2014.2.17,計算機系統(tǒng)結(jié)構(gòu),18,數(shù)據(jù)沖突的分類(P76),(1) 寫-讀沖突,當(dāng)后一條指令I(lǐng)D先于前一條指令WB時發(fā)生,最

13、常見; (2) 寫-寫沖突,當(dāng)后一條指令WB先于前一條指令WB時發(fā)生,亂序流動下會出現(xiàn); (3) 讀-寫沖突,當(dāng)后一條指令WB先于前一條指令I(lǐng)D時發(fā)生。RISC機器不會出現(xiàn),因為流水線在ID之前沒有分支。 數(shù)據(jù)沖突的自動檢測與氣泡的自動生成: 通過“流水線互鎖”(pipeline interlock)機構(gòu)來實現(xiàn),閱讀P79第1段, P89第2段,詳見2版P96;可以檢測到的各種數(shù)據(jù)沖突列表,見2版P96表3.3。,2014.2.17,計算機系統(tǒng)結(jié)構(gòu),19,3. 控制沖突特異處理方法(P79),重要性(P80):每個條件分支指令帶來3個暫停周期,30%時減速一半。 方法: (1) “凍結(jié)”(fr

14、eeze)或“排空”(flush):消極暫停 (2) 提早完成分支操作,把3個暫停周期縮短為1個。需要做兩件事: 盡早判斷是否成功(將測試操作提早到ID段); 盡早算出目標(biāo)地址(將地址計算提早到ID段)。 改進前 改進后,2014.2.17,計算機系統(tǒng)結(jié)構(gòu),20,3. 控制沖突特異處理方法(P79)續(xù),(3) 通過預(yù)測提前啟動分支后面的指令 “預(yù)測分支失敗”:猜失敗,提前取指令i+1; “預(yù)測分支成功”:猜成功,需要計算目標(biāo)地址,而RISC流水線的地址計算與判跳操作是同時完成的,故此舉無益; (4) “延遲分支”(delayed branch):調(diào)若干指令在若干“延遲槽”中執(zhí)行, 調(diào)分支前的指

15、令(最佳方案); 調(diào)跳轉(zhuǎn)目標(biāo)處指令(猜成功,猜錯需作廢); 調(diào)后續(xù)指令(猜失敗,猜錯需作廢)。 (5) “取消”(canceling)或“作廢”(nullifying)分支:對“分支延遲槽”的處理技術(shù)。,2014.2.17,計算機系統(tǒng)結(jié)構(gòu),21,改進后的MIPS流水線(P90),2014.2.17,計算機系統(tǒng)結(jié)構(gòu),22,改進流水線上使用定向技術(shù)的延遲時間,2014.2.17,計算機系統(tǒng)結(jié)構(gòu),23,各種處理控制沖突方法的性能公式(2版P104),(1) 控制沖突(即分支)導(dǎo)致的最大加速比Smax下降 在定義流水線“效率”指標(biāo)時推導(dǎo)過一個公式:Smax=Em,意思是說當(dāng)效率達(dá)到100%時,流水方式

16、(每個t完成一個任務(wù))吞吐率為順序方式(每m個t完成一個任務(wù))的m倍。此處把m改寫為D。 考慮分支損失的流水線最大加速比公式: Smax=Em / (1 + f P分支),其中f是分支指令的出現(xiàn)概率,P分支是平均分支損失(暫停周期數(shù))。 其實這個公式可以用來計算任何一種沖突對應(yīng)的最大加速比Smax 。 對MIPS來說,無任何沖突情況下“效率” E=100%。 (2) 采用每種處理方法減少分支損失的效果 假定沒有分支損失情況下,理想CPI = 1。 可以算出存在分支損失情況下,不處理或單一處理方法對應(yīng)的平均分支損失值、延長的CPI值。,2014.2.17,計算機系統(tǒng)結(jié)構(gòu),24,各種沖突處理方法小

17、結(jié)(同學(xué)們自己做),結(jié)構(gòu)沖突: 數(shù)據(jù)沖突: (1) (2) (3) 控制沖突: (1) (2) (3) 作業(yè)3.11題修改: 開頭添加:在圖3.33所示MIPS流水線上,2014.2.17,計算機系統(tǒng)結(jié)構(gòu),25,實驗2MIPS流水線部件與指令周期,實驗要求: 在人工完成習(xí)題3.11之后,在WinMIPS64模擬器上運行對應(yīng)的程序,分別按(1)(2)(3)小問的條件設(shè)置模擬器的運行模式,記錄相應(yīng)的時鐘周期數(shù)。 實驗報告: (1) 程序清單; (2) 程序時間對比 (3) 人工計算值與實測值的差異原因分析,如果有差異的話; (4) 至少1段自己認(rèn)為有價值的“時鐘周期圖”片段抄錄或者打印,加注釋。,2014.2.17,計算機系統(tǒng)結(jié)構(gòu),26,各次作業(yè)應(yīng)交的內(nèi)容,作業(yè)5(第5次課),3.11(改),實驗2,

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!