




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質文檔-傾情為你奉上計算機系統(tǒng)結構實驗報告 3.1流水線中的相關一、實驗目的 1. 掌握WinDLX模擬器的操作和使用,熟悉DLX指令集結構及其特點; 2. 加深對計算機流水線基本概念的理解; 3. 進一步了解DLX基本流水線各段的功能以及基本操作; 4. 加深對數(shù)據(jù)相關、結構相關的理解,了解這兩類相關對CPU性能的影響; 5. 了解解決數(shù)據(jù)相關的方法,掌握如何使用定向技術來減少數(shù)據(jù)相關帶來的暫停。 二、實驗平臺WinDLX模擬器。三、實驗內容、步驟及實驗結果 1.用WinDLX模擬器執(zhí)行下列三個程序: 求階乘程序fact.s 求最大公倍數(shù)程序
2、gcm.s 求素數(shù)程序prim.s 分別以步進、連續(xù)、設置斷點的方式運行程序,觀察程序在流水線中的執(zhí)行情況,觀察CPU中寄存器和存儲器的內容。熟練掌握WinDLX的操作和使用。 結果總結:三種方式:步進的方式是按快捷鍵F7或者選擇菜單欄Execute中的Single Cycle;連續(xù)的方式是按快捷鍵F5或者選擇Execute中的Run;設置斷點是通過選擇window菜單欄中的code,然后在菜單欄中多出一項code項,選中你想要插入的指令,在多出來的code項中找到set breakpoint,即可插入斷點,然后按F5執(zhí)行即可。以fact.s為例Pipeline圖指出了每
3、個功能段所進行的具體指令,點擊指令還可以看到指令的具體相關的其他方面的內容。時空圖更加直觀的形式顯示出了在某個時間周期某個功能段所執(zhí)行的具體的指令。Register圖指出了各個寄存器和存儲器的值,如執(zhí)行完了第一條加法指令之后,R1=OX。Statistics圖指出了指令的相關分析數(shù)據(jù),例如,執(zhí)行了6個cycles,4條指令在流水線中等相關的總結信息。執(zhí)行結果圖gcm.s、prim.s類似,所以只給出運行的結果圖 gcm.s結果圖Prim.s結果圖2. 用WinDLX運行程序structure_d.s,通過模擬找出存在資源相關的指令對以及導致資源相關的部件;記錄由資源相關引起的暫停時鐘周期數(shù),計
4、算暫停時鐘周期數(shù)占總執(zhí)行周期數(shù)的百分比;論述資源相關對CPU性能的影響,討論解決資源相關的方法。結果圖資源相關的指令:addd f0,f0,f4addd f2,f0,f2(發(fā)生先寫后讀的數(shù)據(jù)相關導致消除了資源相關)由圖可知是因為只有一個faddEX的運算部件,而它需要兩個時鐘周期,當?shù)谝粭laddd指令執(zhí)行EX段時,第二條指令勢必要等一個周期等faddEX部件空閑了才能夠使用。但是,同時由于這兩條指令存在先寫后讀數(shù)據(jù)相關,暫停一個周期之后沒有了資源相關單條指令的詳細資源沖突圖因為Statistics圖中的分析數(shù)據(jù)沒有看見structural stall,但是根據(jù)圖知道這個存在addd f2,f0
5、,f2時的資源沖突,大概循環(huán)了6次,總共時鐘周期是139個,所以資源相關引起的暫停的時鐘周期的個數(shù)是6個,暫停時鐘周期數(shù)占總執(zhí)行周期數(shù)的百分比為6/139 = 4.3%Statistics數(shù)據(jù)分析圖資源相關降低CPU性能,并行運算的速度降低,解決資源相關的方法有停頓幾個時鐘周期法(針對訪存沖突和設備資源沖突(輪流單個使用)或者是增加硬件設備(解決設備資源沖突)。3. 在不采用定向技術的情況下(去掉Configuration菜單中Enable Forwarding選項前的勾選符),用WinDLX運行程序data_d.s。記錄數(shù)據(jù)相關引起的暫停時鐘周期數(shù)以及程序執(zhí)行的總時鐘周期數(shù),計算暫停時鐘周期
6、數(shù)占總執(zhí)行周期數(shù)的百分比。 在采用定向技術的情況下(勾選Enable Forwarding),用WinDLX再次運行程序data_d.s。重復上述3中的工作,并計算采用定向技術后性能提高的倍數(shù)。1、不定向技術:總時鐘周期=202 數(shù)據(jù)相關引起的暫停時鐘周期=104暫停時鐘周期數(shù)占總執(zhí)行周期數(shù)的百分比=51.48%2、定向技術:總時鐘周期=128 數(shù)據(jù)相關引起的暫停時鐘周期=30暫停時鐘周期數(shù)占總執(zhí)行周期數(shù)的百分比=23.44%定向技術的加速比 = 202/128 = 1.578四、心得體會通過使用WinDlX對指令模擬與分析,我們對流水線的執(zhí)行過程更加熟悉,也對執(zhí)行時出現(xiàn)的問題,如資源相關,數(shù)
7、據(jù)相關等產生原因有了清晰的認識,進一步加深了使我們對流水線的理解。3.2循環(huán)展開及指令調度一、實驗目的1. 加深對循環(huán)級并行性、指令調度技術、循環(huán)展開技術以及寄存器換名技術的理解; 2. 熟悉用指令調度技術來解決流水線中的數(shù)據(jù)相關的方法; 3. 了解循環(huán)展開、指令調度等技術對CPU性能的改進。 二、實驗平臺 WinDLX模擬器。三、實驗內容、步驟及實驗結果1用指令調度技術解決流水線中的結構相關與數(shù)據(jù)相關(1)用DLX匯編語言編寫代碼文件*.s,程序中應包括數(shù)據(jù)相關與結構相關(假設:加法乘法除法部件各有2個,延遲時間都是3個時鐘周期) (2)通過Configuration菜單中的“Floatin
8、g point stages” 選項,把加法乘法除法部件的個數(shù)設置為2個,把延遲都設置為3個時鐘周期; (3)用WinDLX運行程序。記錄程序執(zhí)行過程中各種相關發(fā)生的次數(shù)、發(fā)生相關的指令組合,以及程序執(zhí)行的總時鐘周期數(shù); (4)采用指令調度技術對程序進行指令調度,消除相關; (5)用WinDLX運行調度后的程序,觀察程序在流水線中的執(zhí)行情況,記錄程序執(zhí)行的總時鐘周期數(shù); (6)根據(jù)記錄結果,比較調度前和調度后的性能。論述指令調度對于提高CPU性能的意義。1) 代 碼:divf f2,f5,f6divf f1,f2,f6divf f3,f1,f5divf f0,f4,f7addf f14,f0,
9、f6addf f15,f5,f7multf f20,f4,f6multf f21,f5,f72)設置運算部件個數(shù)以及運算時鐘周期數(shù) Pipeline圖以下為出現(xiàn)的數(shù)據(jù)相關先寫后讀相關由于只有兩個除法部件,所以出現(xiàn)了功能部件的沖突??偟膱?zhí)行周期是38指令調度后代碼:將無關指令放在一起執(zhí)行,相關指令分開盡量避免數(shù)據(jù)相關divf f2,f5,f6multf f20,f4,f6multf f21,f5,f7divf f1,f2,f6addf f15,f5,f7divf f3,f1,f5divf f0,f4,f7addf f14,f0,f6 Pipeline圖Statistics圖總執(zhí)行時鐘周期為35個
10、。(6)指令調度后,數(shù)據(jù)相關減少了,總時鐘周期數(shù)減少了,效能提高了。調度前的時鐘周期數(shù)為38,調度后的時鐘周期數(shù)減少為35,加速比 = 38/35= 1.082. 用循環(huán)展開、寄存器換名以及指令調度提高性能(1)用DLX匯編語言編寫代碼文件*.s,程序中包含一個循環(huán)次數(shù)為4的整數(shù)倍的簡單循環(huán); (2)用WinDLX運行該程序。記錄執(zhí)行過程中各種相關發(fā)生的次數(shù)以及程序執(zhí)行的總時鐘周期數(shù); (3)將循環(huán)展開3次,將4個循環(huán)體組成的代碼代替原來的循環(huán)體,并對程序做相應的修改。然后對新的循環(huán)體進行寄存器換名和指令調度; (4)用WinDLX運行修改后的程序,記錄執(zhí)行過程中各種相關發(fā)生的次數(shù)以及程序執(zhí)行
11、的總時鐘周期數(shù); (5)根據(jù)記錄結果,比較循環(huán)展開、指令調度前后的性能。帶循環(huán)指令代碼:求四個1相加的和,結果存在r2中 .text.globalmainmain:addi r1,r0,#4 addi r2,r0,#0Loop:sgt r3,r1,r0 bnez r3,Sub1 trap 0Sub1: addi r2,r2,#1 subi r1,r1,#1 j Loop結果:總時鐘周期是42個,5 raw stalls,循環(huán)了4次,結果r2 = 4循環(huán)展開:代碼: .text.globalmainmain:addi r1,r0,#4 addi r2,r0,#0 addi r2,r2,#1 su
12、bi r1,r1,#1 addi r2,r2,#1 subi r1,r1,#1 addi r2,r2,#1 subi r1,r1,#1 addi r2,r2,#1 subi r1,r1,#1 trap 0結果:總時鐘周期是15個,0 raw stalls,執(zhí)行了4次,結果r2 = 4原因對比:是因為LOOP指令執(zhí)行完后會有一個nop指令的延遲。四、實驗總結a) 指令調度技術可以明顯的優(yōu)化指令執(zhí)行的效率,通過指令調度使得功能部件被盡可能的充分使用,從而進一步加強指令執(zhí)行的效率;b) 循環(huán)在執(zhí)行時會出現(xiàn)不同循環(huán)次數(shù)的執(zhí)行過程中出現(xiàn)相關,導致數(shù)量增加,通過寄存器換名等方法,使得這種相關性數(shù)量下降。3
13、.3 Cache性能分析一、實驗目的 1 加深對Cache的基本概念、基本組織結構以及基本工作原理的理解; 2 了解Cache的容量、相聯(lián)度、塊大小對Cache性能的影響; 3 掌握降低Cache失效率的各種方法,以及這些方法對Cache性能提高的好處; 4 理解Cache失效的產生原因以及Cache的三種失效; 5 理解LRU與隨機法的基本思想,及它們對Cache性能的影響; 二、實驗平臺SimpleScalar模擬器。三、實驗內容及步驟1在基本配置情況下運行程序(請指明所選的測試程序),統(tǒng)計Cache總失效次數(shù)、三種不同種類的失效次數(shù); 配置好了環(huán)境之后,用hello.c生成的a.out文
14、件來進行模擬演示。由圖可知:Cache的總失效次數(shù)為458,容量失效和沖突失效都發(fā)生了替換總共為202,那么強制性沖突就為256。2改變Cache容量(*2,*4,*8,*64),運行程序(指明所選的測試程序),統(tǒng)計各種失效的次數(shù),并分析Cache容量對Cache性能的影響; 測試程序為test-math。Cache參數(shù)設定舉例:-cache:dl1 dl1:2:32:4:r 第一個參數(shù)為集合數(shù),第二個參數(shù)為塊的大小,第三個參數(shù)為相聯(lián)度,最后一個參數(shù)為策略。改變集合數(shù),設定塊大小為32B,相聯(lián)度為4路,采取LRU策略,來考慮容量對cache性能的影響。*2:設定容量為2*32*4B時,結果如下
15、: *4:設定容量為4*32*4B時,結果如下:*8:設定容量為8*32*4B時,結果如下:*64:設定容量為64*32*4B時,結果如下:從上面的數(shù)據(jù)中提取出有用的數(shù)據(jù)信息,制作下面的表。容量大小總失效率總失效數(shù)容量失效和沖突失效數(shù)強制性失效數(shù)*20.1264726572578*40.07444277426116*80.03802180215426*640.0100575319256結論:隨著cache容量的增大,總失效率減小,總失效數(shù)也減少,容量失效和沖突失效數(shù)也減小,但是強制性失效數(shù)反而升高。3改變Cache的相聯(lián)度(1路,2路,4路,8路,64路),運行程序(指明所選的測試程序),統(tǒng)計
16、各種失效的次數(shù),并分析相聯(lián)度對Cache性能的影響;測試程序為test-printf.參數(shù)dl1:2:32:1(2,4,8,64):l,固定其他的參數(shù),只改變相聯(lián)度的參數(shù),觀察相聯(lián)度對cache性能的影響。1路:2路:4路8路:64路:相聯(lián)度總失效率總失效數(shù)容量失效和沖突失效數(shù)強制性失效數(shù)1路0.420222路0.256344路0.1011537445373688路0.046224527245111664路0.0011603475128 結論:隨著相聯(lián)度的增大,總失效率減小,但減小的幅度減小,總失效數(shù)也減少,容量失效和沖突失效數(shù)也減小,但是強制性失效數(shù)反而升高。4 改變Cache塊大?。?2,
17、*4,*8,*64),運行程序(指明所選的測試程序),統(tǒng)計各種失效的次數(shù),并分析Cache塊大小對Cache性能的影響;測試程序:test-fmath參數(shù):dl1:64:8(16,32,64):1:l(塊大小8B)(塊大小16B)(塊大小32B)(塊大小64B)Cache塊大小總失效率總失效數(shù)容量失效和沖突失效數(shù)強制性失效數(shù)*2(8B)0.108918121556256*4(16B)0.0567944688256*8(32B)0.0300499243256*16(64B)0.015626029256結論:隨著相聯(lián)度的增大,總失效率減小,總失效數(shù)也減少,容量失效和沖突失效數(shù)也減小,但是強制性失效數(shù)反而升高但到了一定程度保持穩(wěn)定。5分別采用LRU與隨機法,在不同的Cache容量、不同的相聯(lián)度下,運行程序(指明所選的測試程序)統(tǒng)計Cache總失效次數(shù),計算失效率。分析不同的替換算法對Cache性能的影響。測試程序: test-lswlrLRU:參數(shù)dl1:8:8:2:l 隨機法:參數(shù)dl1:32:32:1:rLRU:參數(shù)dl1:16:8:2:l隨機法:參數(shù)dl1:16:8:2:r情況總失效率總失效數(shù)容量失效和沖突失效數(shù)強制性失效數(shù)LRU8*8*20.3919185318476隨機法8*8*20.3976
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)解除聘用合同范例
- 專利機器購買合同范例
- 農場親子教育合同范例
- 供應對公合同范例
- 作曲者授權合同范例
- 代維運營合同范例
- 烏金木采購合同范本簡易版
- 共享汽車租車合同范例
- 出租手寫牌子合同范例
- it學員培訓合同范本
- 上海交通大學無機化學課件第十一章
- 高中英語作文感謝信寫作格式及范文
- 中國綠色出行方式調查報告
- 馬工程《思想政治教育學原理 第二版》課后習題詳解
- ??低暪締T工手冊
- 第一次月考試卷(試題)2023-2024學年語文三年級下冊統(tǒng)編版
- 四年級數(shù)學(四則混合運算)計算題與答案
- 第三章 計算機信息檢索技術
- 2024年湖南科技職業(yè)學院高職單招(英語/數(shù)學/語文)筆試歷年參考題庫含答案解析
- 2024年南通職業(yè)大學高職單招(英語/數(shù)學/語文)筆試歷年參考題庫含答案解析
- 《無人機操控技術》 課件 項目 2 無人機模擬操控技術
評論
0/150
提交評論