實(shí)驗(yàn)五 指令調(diào)度和延遲分支_第1頁
實(shí)驗(yàn)五 指令調(diào)度和延遲分支_第2頁
實(shí)驗(yàn)五 指令調(diào)度和延遲分支_第3頁
實(shí)驗(yàn)五 指令調(diào)度和延遲分支_第4頁
實(shí)驗(yàn)五 指令調(diào)度和延遲分支_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、實(shí)驗(yàn)5 指令調(diào)度和延遲分支一.實(shí)驗(yàn)?zāi)康模?)加深對(duì)指令調(diào)度技術(shù)的理解。(2)加深對(duì)延遲分支技術(shù)的理解。(3)熟練掌握用指令調(diào)度技術(shù)解決流水線中的數(shù)據(jù)沖突的方法。(4)進(jìn)一步理解指令調(diào)度技術(shù)對(duì)CPU性能的改進(jìn)。(5)進(jìn)一步理解延遲分支技術(shù)對(duì)CPU性能的改進(jìn)。二.實(shí)驗(yàn)內(nèi)容和步驟:(1)、啟動(dòng)MIPSsim。(2) 、根據(jù)前面的相關(guān)知識(shí)中關(guān)于流水線各段操作的描述,進(jìn)一步理解流水線窗口中各段的功能,掌握各流水寄存器的含義。指令流水線有取指(IF)、譯碼(ID)、執(zhí)行(EX)、訪存(MEM)、寫回寄存器堆(WB)5個(gè)過程段,共有7條指令連續(xù)輸入此流水線IF段(取指):取指令,控制器必須具備能自動(dòng)地從存儲(chǔ)

2、器中取出指令的功能ID段(譯碼):指令譯碼、讀寄存器EX段(執(zhí)行):執(zhí)行、訪存有效地址字段MEM段(訪存):存儲(chǔ)器訪問WB(寫回寄存器堆):結(jié)果寫回寄存器在該窗口中,每一個(gè)矩形方塊代表一個(gè)流水段,它們用不同的顏色填充。在該窗口的左側(cè)是IF到WB段,其右邊為浮點(diǎn)部件。浮點(diǎn)部件分有浮點(diǎn)加法部件(fadd)、浮點(diǎn)乘法部件(fmul)和浮點(diǎn)除法部件(fdiv)三種。在菜單“配置”“常規(guī)配置”中修改浮點(diǎn)部件個(gè)數(shù),可看到該窗口中對(duì)應(yīng)類型的浮點(diǎn)部件個(gè)數(shù)會(huì)發(fā)生相應(yīng)的變化。(3) 、選擇“配置”-“流水方式”選項(xiàng),使模擬器工作于流水方式下。(4)、用指令調(diào)度技術(shù)解決流水線中的數(shù)據(jù)沖突。 1)啟動(dòng)MIPSsim。

3、 2)加載schedule.s。 3)關(guān)閉定向功能。4) 執(zhí)行所載入的程序。通過查看統(tǒng)計(jì)數(shù)據(jù)和時(shí)鐘周期圖,找出并記錄程序執(zhí)行過程中各種沖突發(fā)生的次數(shù)、發(fā)生沖突的指令組合以及程序執(zhí)行的總時(shí)鐘周期數(shù)。調(diào)度前:RAW發(fā)生的沖突周期數(shù):2、3、5、6、8、9、11、12、15、16、18、19、21、22、25、26由以上可知:RAW數(shù)據(jù)沖突發(fā)生了16次,其中l(wèi)oad停頓6次,自陷停頓1次,停頓周期總數(shù)17次執(zhí)行過程中各種沖突發(fā)生次數(shù):16次程序執(zhí)行的總時(shí)鐘周期數(shù):33次發(fā)生沖突的指令組合:TEQ $r0,$r0ADDIU $r1,$r0,56 LW $r2,0($r1) 與上條寫后讀沖突;ADD $

4、r4,$r0,$r2 與上條指令寫后讀沖突;SW $r4,0($r1) 與上條指令寫后讀沖突;LW $r6,4($r1) ADD $r8,$r6,$r1 與上條指令寫后讀沖突; MUL $r12,$r10,$r1 ADD $r16,$r12,$r1 與上條指令寫后讀沖突; ADD $r18,$r16,$r1 與上條指令組件沖突 SW $r18,16($r1) 與上條指令寫后讀沖突; LW $r20,8($r1) MUL $r22,$r20,$r14與上條指令寫后讀沖突; 5)采用指令調(diào)度技術(shù)對(duì)程序進(jìn)行指令調(diào)度,消除沖突。將調(diào)度后的程序存到after-schedule.s中。 6)載入after

5、-schedule.s。 7)執(zhí)行該程序。觀察程序在流水線中的執(zhí)行情況,記錄程序執(zhí)行的總時(shí)鐘周期數(shù)。調(diào)度后:執(zhí)行總時(shí)鐘周期數(shù)為19,其中RAW停頓2次、load停頓0次、自陷停頓1次。停頓總周期占總執(zhí)行周期的15.78947%。 8)根據(jù)記錄結(jié)果,比較調(diào)度前和調(diào)度后的性能。論述指令調(diào)度對(duì)于提高CPU性能的作用。 根據(jù)記錄結(jié)果:指令調(diào)度后時(shí)鐘總周期數(shù)從33降低到19,指令調(diào)度使指令順序重新組合,可以消除部分的數(shù)據(jù)沖突,從而通過指令調(diào)度技術(shù)顯著地提高了CPU的使用率,大大減少了指令沖突的次數(shù),提高了CPU的性能。指令調(diào)度的優(yōu)劣直接影響CPU性能的發(fā)揮好壞,好的指令調(diào)度可以讓停頓周期大幅度減少。(5

6、)、用延遲分支減少分支指令對(duì)性能的影響。1)啟動(dòng)MIPSsim。2) 載入branch.s。3) 關(guān)閉延遲分支功能。單擊“配置”“延遲槽”,使處于關(guān)閉狀態(tài) 即為默認(rèn)狀態(tài)4) 執(zhí)行該程序。觀察并記錄發(fā)生分支延遲的時(shí)刻。沒有采用分支延遲:答:發(fā)生分支延遲的時(shí)刻為:第18周期。5) 記錄執(zhí)行該程序所用的總時(shí)鐘周期數(shù)。執(zhí)行周期總數(shù)為38,其中RAW停頓16次、load停頓4次、控制停頓0次、自陷停頓1次??偼nD周期占總執(zhí)行周期的50%。6) 假設(shè)延遲槽有1個(gè),對(duì)branch.s進(jìn)行指令調(diào)度,然后保存到“delayed-branch.s”中。7) 載入delayed-branch.s。 8) 打開延遲分

7、支功能。單擊“配置”“延遲槽”,使該項(xiàng)前有來實(shí)現(xiàn)9) 執(zhí)行該程序。觀察其時(shí)鐘周期圖。采用分支延遲:10) 記錄執(zhí)行該程序所用的總時(shí)鐘周期數(shù)。總時(shí)鐘周期數(shù)為26。其中RAW停頓4次、load停頓2次、自陷停頓1次。總停頓周期占總執(zhí)行周期的19.23077%。 11) 對(duì)比上述兩種情況下的時(shí)鐘周期圖。 見上圖12) 根據(jù)記錄結(jié)果,比較沒采用延遲分支和采用了延遲分支的性能之間的不同。論述延遲分支對(duì)于提高CPU性能的作用。答:沒采用分支延遲的時(shí)候周期總數(shù)為38,采用分支后的周期總數(shù)為26,可知,在使用延遲槽后,指令在運(yùn)行到跳轉(zhuǎn)指令時(shí),不會(huì)出現(xiàn)延遲等待,則能夠提高CPU的性能。并且在使用延遲后,指令在運(yùn)

8、行到跳轉(zhuǎn)指令時(shí),不會(huì)出現(xiàn)延遲等待,則能夠提高CPU的性能。所以只要分支延遲槽中的指令是夠用的,流水線中就沒有停頓,這時(shí)延遲分支的方法就能很好的減少分支延遲。所以放入延遲槽中的指令是很重要的,對(duì)CPU性能的影響是很顯著的! 分支延遲槽 (Branch delay slot),簡單地說就是位于分支指令后面的一條指令,不管分支發(fā)生與否其總是被執(zhí)行,而且位于分支延遲槽中的指令先于分支指令提交 (commit)。3. 實(shí)驗(yàn)結(jié)果分析 實(shí)驗(yàn)結(jié)論:指令調(diào)度讓指令順序重新組織后能消除部分的數(shù)據(jù)沖突,指令調(diào)度的優(yōu)劣直接影響CPU性能的發(fā)揮好壞,好的指令調(diào)度可以讓停頓周期大幅度減少。只要分支延遲槽中的指令時(shí)有用的,

9、流水線中就沒有停頓,這是延遲分支的方法就能很好的減少分支延遲,所以放入延遲槽中的指令是很重要的,對(duì)CPU性能的影響是顯著的。1.了解了什么是指令調(diào)度以及指令調(diào)度對(duì)CPU性能的影響:指令調(diào)度:為了減少停頓,對(duì)于無法使用定向技術(shù)解決的問題,可以通過指令調(diào)度讓指令順序重新組織后能消除部分的數(shù)據(jù)沖突,指令調(diào)度的優(yōu)劣直接影響CPU性能的發(fā)揮好壞,好的指令調(diào)度可以讓指令周期大幅度減少。指令調(diào)度對(duì)CPU性能的影響:指令調(diào)度技術(shù)減少了指令沖突的次數(shù),提高了CPU的性能。2.延遲分支:位于分支指令后面的一條指令,不管分支發(fā)生與否其總是被執(zhí)行,而且位于分支延遲槽中的指令先于分支指令提交。只要分支延遲槽中的指令時(shí)有

10、用的,流水線中就沒有停頓,這是延遲分支的方法就能很好的減少分支延遲,所以放入延遲槽中的指令是很重要的,對(duì)CPU性能的影響是顯著的。延遲分支對(duì)CPU性能的影響: 延遲分支減少分支指令能夠稍微提高GPU的性能。3.了解到執(zhí)行分支指令的結(jié)果有兩種:一種是分支“成功”,PC的值改變?yōu)榉种мD(zhuǎn)移的目標(biāo)地址,另一種情況分支“不成功”,這是PC的值保持正常遞增,指向順序的下一條指令。四.實(shí)驗(yàn)心得通過本次實(shí)驗(yàn)鍛煉了我的動(dòng)手操作能力,我對(duì)指令調(diào)度和延遲分支有了進(jìn)一步的了解和掌握,我學(xué)到了分支延遲調(diào)度的方法,并初步掌握了用指令調(diào)度技術(shù)解決指令流水線中的數(shù)據(jù)沖突問題的方法。理解了指令調(diào)度技術(shù)和延遲分支技術(shù)對(duì)CPU性能的改

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論