版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、計算機系統(tǒng)結構課內實驗實驗報告班級:計算機15班姓名:高君宇學號:12日期:動態(tài)分支預測實驗一、實驗目的及要求了解掌握動態(tài)分支與推斷執(zhí)行技術對流水線性能的改進效果了解動態(tài)分支預測的基本技術;了解推斷執(zhí)行的基本過程;比較各種分支預測技術的性能。二、實驗環(huán)境Linux、SimpleScalarToolSet、SPEC測試程序三、實驗內容利用SimpleScalar仿真器中的分支預測仿真程序sim-pred運行所提供的三個benchmark程序,分別采用五種不同的分支預測方法,即bimod方式,two-leveladaptive方式,alwaystaken方式,alwaysnottaken方式,co
2、mb方式,并對前兩種分別使用下表中兩種參數配置;分析仿真器輸出的關于分支預測的統(tǒng)計參數集,填寫表格,并對各仿真器的能力給出相應說明。命令格式為:./sim-bpred-optionexecutable_benchmark-argument對于三種動態(tài)方法,分別說明如下:bimod是最普通的,即采用一個2bit寬的分支方向預測表,按分支地址查找,2bit分支預測器的判斷和更新與課本上的一致。這種方式只有一個參數,就是分支預測表的長度。2-level要復雜一些,它采用兩級表格式,第一級是分支歷史表,存放各組分支歷史寄存器的值,第二級是全局/局部分支模式表,(全局或局部應是由表長相對于分支歷史寄存器
3、的長決定),它存放各分支歷史模式的2bit預測器。在判斷時用當前分支指令對應的歷史寄存器值去索引二級表得到相應預測器值。更新時,把當前分支的方向左移入歷史寄存器,并對使用過的2bit預測器作更新。它有四個參數,前三個是一級表長度,二級表長度,歷史寄存器寬度,最后一個是異或標志。如果為1,則將歷史寄存器的值與當前分支指令地址異或,用其結果再去索引二級模式表。comb方式則組合了以上兩種方法,它再加入了一個meta表,這個表類似bimod的預測表,只是它預測的是采取bimod還是2-level,也采用2-bit預測器,被采取的預測方法被定為第一方向,未被采取的定為第二方向。更新時,如果第一方向與第
4、二方向不同則更新meta表,否則只更新兩種方法各自的表即可。它共有三組參數,前兩組即bimod和two-level的參數,第三組是關于meta表長度的說明。至于BTB的更新與cache的更新方式相同。四、實驗步驟在linux的環(huán)境下,進入到simpleScalar文件的根目錄;調整好命令的格式并運行(下面給出運行命令的的一部分內容):./sim-bpred-bpredtakentests/bin.little/test-math./sim-bpred-bprednottakentests/bin.little/test-math./sim-bpred-bpredbimod-bpred:bimo
5、d512tests/bin.little/test-math./sim-bpred-bpredbimod-bpred:bimod1024tests/bin.little/test-math./sim-bpred-bpred2lev-bpred:2lev11024801tests/bin.little/test-math./sim-bpred-bpred2lev-bpred:2lev16461tests/bin.little/test-math./sim-bpred-bpredcomb-bpred:comb1024-bpred:2lev1102480-bpred:bimod1024tests/b
6、in.little/test-math五、實驗結果將結果總結如下表:測試程序為test.math、預測方”計結果yalway去snottakenalwaystakenbimod(516)bimod(1024)2-level(1,1024,8,0)2-level(1,64,6,1)comb(1024)(1,1024,8,0)(1024)sim_totalnsn213688213688213688213688213668213723213723sim_total_refs56897568975689756897568975690056900sim_num_branches3859138591385
7、9138591385913859938599simelapsedtime1111111simnst_rate213688213688213688.0000213688.0000213688213723213723sim_IPB5.53725.53725.53725.53725.53725.5375.537bpredbimod.looku385938593859138591385913859938599PS11bpred_bimod.updates38591385913859138591385913859938599bpred_bimod.addr_hits2193825561342373423
8、7342422796135578bpred_bimod.dir_hirts21938255613473234732342422851436018bpred_bimod.misses1665312930385938593797100852581bpred_bimod.jr_hits3543354335283528352835293529bpred_bimod.jr_seen3543354335433543354335443544bpred_bimod.jr_non_rashits.PP354335432828282828bpred_bimod.jr_non_rasseen.PP354335434
9、141414141bpred_bimod.bpred_addrrate0.56850.66490.88720.88720.88730.72440.9217bpred_bimod.bpred_dirrate0.56850.66490.90000.90000.90160.73870.9331bpred_bimod.bpred_jr_rate110.99580.99580.99580.99580.9958bpred_bimod.bpred_jr_nonrasrate.PP110.68290.68290.68290.68290.6829bpred_bimod.retstack_pushes113504
10、3504350435053505bpred_bimod.retstack_pops00350235023502350335030035023502350235033503bpred_bimod.ras_hits.PP0035023500350035013501000.99940.99940.99940.99940.9994測試程序為test.fmath預測方統(tǒng)計打、二alwaysnot=takenalwaystakenbimod(516)bimod(1024)2-level(1,1024,8,0)2-level(1,64,6,1)comb(1024)(1,1024,8,0)(1024)sim_
11、totalnsn53448534485344534453448534825348288sim_total_refs16342163421634163416342163451634522sim_num_branches10340103401034103410340103471034700simelapsedtime1111111simnst_rate53448534485344534453448534825348288sim_IPB5.1695.1695.1695.1695.16915.16885.16881111bpred_bimod.lookups1034010340103410341034
12、0103471034700bpred_bimod.updates10340103401034103410340103471034700bpredbimod.addrhits5768683988259021886075749225bpredbimod.dirhirts5768683991289315917178889474bpredbimod.misses457235011212102511692459873bpredbimod.jrhits832832815815815816816bpredbimod.jrseen832832832832832833833bpred_bimod.jr_non_
13、r83283244444ashits.PPbpred_bimod.jr_non_r8328321919191919asseen.PPbpred_bimod.bpred_ad0.5570.6610.8530.8720.85690.73200.8916d8454r_ratebpred_bimod.bpred_di0.5570.6610.8820.9000.88690.76230.9156r8489ratebpred_bimod.bpred_jr110.9790.9790.21050.97960.9796_r66atebpred_bimod.bpred_jr110.2100.2100.21050.2
14、1050.2105_n55onrasrate.PPbpredbimod.retstack00815815815816816pushesbpred_bimod.retstack_pops00813813813814814bpred_bimod.used_ras.PP00813813813814814bpred_bimod.ras_hits.PP00811811811812812bpred_bimod.ras_rate.PP000.99750.99750.99750.99750.9975測試程序為test.printf7、預測方統(tǒng)walwaysnot法Ikenalwaystakenbimod(51
15、6)bimod(1024)2-level(1,1024,8,0)2-level(1,64,6,1)comb(1024)(1,1024,8,0)(1024)sim_totalnsn1813818138181381813818138771813911813914777777774sim_total_refs516945169451694516945169415169475169471111sim_num_branches401604016040160401604016094016234016239999simelapsedtime1111111simnst_rate1813818138181381
16、813818138771813911813914777777774simIPB4.51654.51654.51654.51654.51654.51654.5165bpred_bimod.lookup40160401604016040160401609401623401623s9999bpred_bimod.updates4016040160401604016040160940162340162399(99bpred_bimod.addr_hi23336261363725937745373619317099384169ts1318bpred_bimod.dir_hirt2333626136374
17、9037976375930319444386404s1311bpred_bimod.misses1682414024267082184825679821791521986bpredbimod.jrhits31998319983015230152301523015330153bpredbimod.jrseen31998319983199831998319983199931999bpred_bimod.jr_non_3199831998363363363363363rashits.PPbpredbimod.jrnon319983199821982198219821982198ras_seen.PP
18、bpred_bimod.bpred_addr_rate0.58110.65080.92770.93990.93030.78650.9565bpred_bimod.bpred_dirrate0.58110.65080.93350.94560.93610.79540.9621bpred_bimod.bpred_jr_rate110.94230.94230.94230.94230.9423bpred_bimod.bpred_jr_nonrasrate.PP110.16520.16520.16520.16520.1652bpred_bimod.retstack_pushes00298022980229
19、8022980329803bpred_bimod.retstack_pops002980029800298002980129801bpred_bimod.used_ras.PP002980029800298002980129801002978929789297892979029790bpred_bimod.ras_rate.PP000.99960.99960.9960.99960.9996六、總結所謂的動態(tài)分支處理方法,是指利用程序執(zhí)行期間的信息,進行處理,所以這兒很明顯帶來的是硬件開銷,因為程序執(zhí)行期間是不可能由軟件協(xié)助的,否則性能影響也就太大了吧。相對的,靜態(tài)分支處理,其實是利用編譯器實現(xiàn)
20、的。這次實驗我最大的感受就是計算機就像董老師說的一樣,是在玩平衡。體系結構設計的核心是平衡,以最快的速度獲取指令,需要較少的時鐘周期,但帶來的是預測準確率的下降;如果希望提高準確率,則是較慢的速度;三種分支預測方式實現(xiàn)難度各不相同,在性能方面也各有優(yōu)劣,一級分支預測追求的是快,二級分支預測追求的是準確率,這都是在玩平衡。通過實驗,我更加熟悉了動態(tài)分支預測的方法,學以致用才是硬道理,計算機的這個“平衡“還得好好玩下去。七、附錄(源程序清單)使用的是程序自帶的源代碼test.math,test.fmath,test.printf故在此不單獨列出?;玖魉€和Tomasulo算法實驗一、實驗目的及要
21、求掌握DLXview模擬器的使用方法;進一步理解指令動態(tài)調度的基本思想,了解指令動態(tài)調度的基本過程與方法;理解記分牌算法和Tomasulo算法的基本思想,了解它們的基本結構、運行過程;比較分析基本流水線與記分牌算法和Tomasulo算法的性能及優(yōu)缺點。二、實驗環(huán)境DLXview模擬器三、實驗內容1、用DLX匯編語言編寫代碼文件*s(程序中應包括指令的數據相關、控制相關以及結構相關),以及相關的初始化寄存器文件*.i和數據文件*.d;2、觀察程序中出現(xiàn)的數據相關、控制相關、結構相關,并指出三種相關的指令組合;3、將自己編寫的程序*.s、*i、*.d裝載到DLXview模擬器上,4、分別用基本流水
22、線和Tomasulo算法模擬,針對每一種模擬做如下分析:統(tǒng)計程序的執(zhí)行周期數和流水線中的暫停時鐘周期數;改變功能部件數目重新模擬,觀察并記錄性能的改變改變功能部件延遲重新模擬,觀察并記錄性能的改變;5、記錄運行Tomasulo算法時的指令狀態(tài)表和保留站信息;四、實驗步驟用DLX匯編語言編寫代碼文件*.s(程序中應包括指令的數據相關、控制相關以及結構相關),以及相關的初始化寄存器文件*.i和數據文件*.d;將自己編寫的程序*.s、*.i、*.d裝載到DLXview模擬器上;用DLXview模擬器進行模擬。五、實驗結果(一)普通流水線:實驗參數設置實驗結果顯示該段程序運行了11個時鐘周期改變部件數目:增加了一個除法器部件根據實驗結果依然運行了11個時鐘周期。所以對該f305程序增加除法器部件數目,不影響執(zhí)行效率。增加了一個加法器部件實驗結果顯示依然運行了11個時鐘周期。所以該f305程序對于加法器部
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國智能鉆機市場發(fā)展狀況及前景趨勢分析報告
- 2025-2030年中國無影燈行業(yè)市場競爭格局及前景趨勢預測報告
- 2025-2030年中國堆肥市場需求分析及發(fā)展戰(zhàn)略研究報告
- 二零二五年綠色生態(tài)建筑農民工勞動合同示范3篇
- 二零二五年度防盜門行業(yè)市場分析報告合同2篇
- 二零二五版加油站智能監(jiān)控與數據分析合同3篇
- 二零二五白云區(qū)觀白活力中心房地產合作開發(fā)投資框架合同2篇
- 二零二五年度智能家電產品研發(fā)與銷售合同3篇
- 二零二五版養(yǎng)殖企業(yè)與個體養(yǎng)牛戶合作合同3篇
- 二零二五版數據中心機房租賃及數據備份服務合同2篇
- 課題申報書:GenAI賦能新質人才培養(yǎng)的生成式學習設計研究
- 外配處方章管理制度
- 2025年四川長寧縣城投公司招聘筆試參考題庫含答案解析
- 駱駝祥子-(一)-劇本
- 《工程勘察設計收費標準》(2002年修訂本)
- 全國醫(yī)院數量統(tǒng)計
- 【MOOC】PLC技術及應用(三菱FX系列)-職教MOOC建設委員會 中國大學慕課MOOC答案
- 2023七年級英語下冊 Unit 3 How do you get to school Section A 第1課時(1a-2e)教案 (新版)人教新目標版
- 泌尿科主任述職報告
- 2024年醫(yī)美行業(yè)社媒平臺人群趨勢洞察報告-醫(yī)美行業(yè)觀察星秀傳媒
- 第六次全國幽門螺桿菌感染處理共識報告-
評論
0/150
提交評論