




已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
河北大學(xué)工商學(xué)院計算機系統(tǒng)結(jié)構(gòu)課程設(shè)計 學(xué) 部 信息科學(xué)與工程學(xué)部 學(xué)科門類 工學(xué) 專 業(yè) 計算機科學(xué)與技術(shù) 班 級 5008網(wǎng)絡(luò)1班 學(xué) 號 2008482118 姓 名 康業(yè)凱 2011年 6月11日河北大學(xué)工商學(xué)院計算機系統(tǒng)結(jié)構(gòu)課程設(shè)計目 錄第1章 引言1第2章 WinDLX指令集22.1 WinDLX指令集簡介22.2 WinDLX指令集結(jié)構(gòu)2第3章 WinDLX模擬器63.1 WinDLX模擬器的安裝63.2 WinDLX模擬器的配置63.3 WinDLX運行及模擬結(jié)果分析7第4章 WinDLX模擬器的流水線模擬與分析124.1 控制相關(guān)124.2 數(shù)據(jù)相關(guān)164.3 指令調(diào)度21總結(jié)26參考文獻27第1章 引言引言介紹指令集結(jié)構(gòu)發(fā)展概述(1)最早的指令集,來自于IBM650,累加器型指令集結(jié)構(gòu)。在硬件資源十分有限的條件下,累加器型指令集結(jié)構(gòu)是必然的選擇。(2)1963年,出現(xiàn)了堆棧技術(shù),堆棧最上面的兩個元素被保存在CPU中作為運算器的輸入,其它部分則保存在內(nèi)存中。(3)1964年,出現(xiàn)基于寄存器的指令集結(jié)構(gòu)。1964年,IBM資深專家首次提出計算機系統(tǒng)結(jié)構(gòu)的概念,包括:數(shù)據(jù)表示,指令集系統(tǒng),中斷系統(tǒng),存儲系統(tǒng),I/O結(jié)構(gòu)等。其中,指令結(jié)構(gòu)是計算機系統(tǒng)結(jié)構(gòu)設(shè)計的核心問題。(4)20世紀(jì)70年代,軟件價格增長大于硬件價格的增長,編譯器和操作系統(tǒng)越來越大,許多研究人員希望通過引入強有力的,基于軟件的系統(tǒng)結(jié)構(gòu)來緩解軟件危機,CISC的典范VAX出現(xiàn)。(5)20世紀(jì)80年代,為提高CPU執(zhí)行指令速度,RISC應(yīng)運而生。1995年左右,設(shè)計師使用高性能通用處理機和科學(xué)應(yīng)用處理機的技術(shù)來設(shè)計DSP新的指令集結(jié)構(gòu)。注:DSP為數(shù)字信號處理。(6)20世紀(jì)90年代,更多的設(shè)計人員轉(zhuǎn)向了SOC(system-on-chip)。(7)補充:三種類型指令集結(jié)構(gòu)的優(yōu)缺點表1-1 三種類型指令集結(jié)構(gòu)的優(yōu)缺點指令集結(jié)構(gòu)類型優(yōu)點缺點堆棧型是一種表示計算的簡單模型;指令短小不能隨機訪問堆棧,從而很難生成有效代碼。同時,由于堆棧是瓶頸,所以很難被高效的實現(xiàn)累加器型減小了計算機的內(nèi)部狀態(tài);指令短小由于累加器是唯一的寄存器,這種機器的存儲器通信開銷最大寄存器型易于生成高效的目標(biāo)代碼所有操作數(shù)均需命名,且要顯式表示,因而指令比較長第 28 頁 共 27 頁第2章 WinDLX指令集2.1 WinDLX指令集簡介美國斯坦福大學(xué)計算機系Hennessy 教授和加州伯克利分校計算機系Paterson教授是計算機系統(tǒng)結(jié)構(gòu)領(lǐng)域非常受人尊敬的學(xué)者和開拓者。他們合著的計算機系統(tǒng)結(jié)構(gòu)-量化研究方法一書,是他們對計算機組織、系統(tǒng)結(jié)構(gòu)研究和實踐的全面而系統(tǒng)的總結(jié)。DLX 處理器 (發(fā)音為 DeLuXe)為這本書中流水線處理器的例子。WINDLX是一個基于Windows的DLX模擬器。2.2 WinDLX指令集結(jié)構(gòu)2.2.1 WinDLX的寄存器(1)32個32位通用寄存器(GPR),名稱為R0,R1,R2R31,寄存器R0的內(nèi)容恒為全零。(2)32個32位浮點寄存器(FPR),既可用作單精度浮點寄存器,也可以奇偶配對來存儲雙精度浮點數(shù)。2.2.2 WinDLX的數(shù)據(jù)表示DLX能處理的數(shù)據(jù)類型有8位字節(jié),16位半字、32位整數(shù)字以及32位單精度浮點數(shù)和64位雙精度浮點數(shù)。DLX的操作主要面向32位整數(shù)以及32位或64位浮點數(shù)。字節(jié)或半字節(jié)在被調(diào)入32位寄存器時,用零或者符號位填充32位寄存器的高位剩余部分,一旦被調(diào)入寄存器,它們將按照32位整數(shù)的方式進行計算。2.2.3 WinDLX的尋址方式利用R0寄存器永遠為零的特性,DLX用很少的硬件代價,提供了5種尋址方式: (1)寄存器尋址方式; (2)立即數(shù)尋址方式(立即數(shù)范圍為16位);(3)位移尋址方式(某寄存器的值加上位移量形成操作數(shù)地址);(4)寄存器間接尋址方式(位移尋址方式中位移量等于零);(5)直接尋址方式(位移尋址方式中寄存器用R0)。2.2.4 WinDLX指令格式為使機器更容易進行流水線操作和譯碼,DLX采用定長操作碼的指令字格式。指令字長度32位(單字長指令),其中操作碼占6位。具體指令格式如下圖: 6 5 5 16操作碼源寄存器目的寄存器立即數(shù) 圖2-1 I型指令格式 6 5 5 5 11操作碼源寄存器1源寄存器2目的寄存器功能碼 圖2-2 R型指令格式 6 26操作碼與PC相加的偏移量 圖2-3 J型指令格式I型指令格式主要用來對各種類型數(shù)的存取操作指令編碼,即各種Load指令和Store指令,I型指令格式還用來為分支指令編碼,包括條件分支指令,寄存器跳轉(zhuǎn)指令和寄存器跳轉(zhuǎn)并連接指令。R型指令格式主要用來為各種算數(shù)/邏輯運算指令編碼。R型指令還為讀寫特殊寄存器指令和寄存器之間的傳送指令編碼。J型指令格式主要用來為跳轉(zhuǎn)并連接指令(注意不是寄存器跳轉(zhuǎn)并連接指令)和陷阱與異常返回指令編碼。2.2.5 WinDLX指令集DLX指令大致可以分為4大類:加載/存儲、ALU操作、分支與跳轉(zhuǎn)和浮點數(shù)操作。1) Load和Store操作:可以對DLX的所有通用寄存器和浮點寄存器進行Load(載入)和Store(儲存)操作,但是對通用寄存器R0的Load操作沒有任何效果。表2-1 DLX的加載和存儲指令指令實例指令名稱含 義LW R1 , 30 (R2)載入整型字RegsR1 32 Mem30+RegsR2LW R1 , 1000 (R0)載入整型字RegsR1 32 Mem1000+0LB R1 , 40 (R3)載入字節(jié)RegsR1 32 (Mem40+RegsR30)24 # Mem40+RegsR3LBU R1 , 40 (R3)載入無符號字節(jié)RegsR1 32 024 # Mem40+RegsR3LH R1 , 40 (R3)載入整型半字RegsR1 32 (Mem40+RegsR30)16 # Mem40+RegsR3# Mem41+RegsR3LF F0 , 50 (R3)載入單精度浮點RegsF0 32 Mem50+RegsR3LD F0 , 50 (R2)載入雙精度浮點RegsF0 # RegsF1 64 Mem50+RegsR2SW 500 (R4) , R3儲存整型字Mem500+RegsR4 32 RegsR3SF 40 (R3) , F0儲存單精度浮點Mem40+RegsR3 32 RegsF0SD 40 (R3) , F0儲存雙精度浮點Mem40+RegsR3 32 RegsF0Mem44+RegsR3 32 RegsF1SH 502 (R2), R31儲存整型半字Mem502+RegsR2 16 RegsR3116.31SB 41 (R3) , R2儲存整型字節(jié)Mem41+RegsR3 8 RegsR224.312)ALU操作:在DLX中,所有的ALU指令都是寄存器寄存器型指令,其運算包含了簡單的算術(shù)和邏輯運算,如加、減、AND、OR、XOR和移位?!霸O(shè)置相等”、“設(shè)置不等”、“設(shè)置小于”:寄存器比較指令(=,),如果比較結(jié)果為真,這些指令就在目標(biāo)寄存器中填入1(表示真),否則填入0(表示假)。表2-2 DLX中算術(shù)/邏輯運算指令,帶立即數(shù)或不帶立即數(shù)指令實例指令名稱含 義Add R1,R2,R3加RegsR1 RegsR2 + RegsR3ADDI R1,R2,#3和立即值相加RegsR1 RegsR2 + 3LHI R1,#42載入高位立即值RegsR1 42 # 016SLLI R1,R2,#5邏輯左移立即值形式RegsR1 RegsR2 5SLT R1,R2,R3設(shè)置小于if (RegsR2 1: 后鼠標(biāo)閃爍,鍵入20 然后按 Enter,模擬繼續(xù)運行到斷點 # 2 處。 在Clock cycle diagram 窗口中,在指令之間出現(xiàn)了紅和綠的箭頭。紅色箭頭表示需要一個暫停,箭頭指向處顯示了暫停的原因。R-Stall(R-暫停)表示引起暫停的原因是RAW。綠色箭頭表示定向技術(shù)的使用。現(xiàn)在我們來看一下寄存器中的內(nèi)容。為此,雙擊主窗口中的Register 圖標(biāo)。Register 窗口會顯示各個寄存器中的內(nèi)容??匆幌翿1到 R5的值。按F5使模擬繼續(xù)運行到下一個斷點處,有些值將發(fā)生改變,指令lw從主存中取數(shù)到寄存器中。如果你希望不設(shè)置斷點,而使模擬繼續(xù)進行。辦法是:點擊Execute / Multiple Cycles 或者按 F8鍵,在新出現(xiàn)的窗口中輸入17 ,然后按 Enter鍵,模擬程序?qū)⒗^續(xù)運行17 個時鐘周期。向上滾動Clock cycle diagram 窗口,直到看到指令周期72到78。在EX段,兩個浮點操作(multd and subd)分別在不同的部件上運行,它們都需要多個周期才能結(jié)束。因而在它們之后的下一條指令能取指,譯碼和執(zhí)行,然后暫停一個周期以允許subd完成MEM段。(8) Statistics 窗口最后我們來看一下Statistics 窗口。按F5使程序完成執(zhí)行,出現(xiàn)消息Trap #0 occurred 表明最后一條指令 trap 0 已經(jīng)執(zhí)行, Trap指令中編號“0”沒有定義,只是用來終止程序。雙擊圖標(biāo)Statistics。Statistics 窗口提供各個方面的信息:模擬中硬件配置情況、暫停及原因、條件分支、 Load/Store指令、浮點指令和traps。窗口中給出事件發(fā)生的次數(shù)和百分比,如RAW stalls:17(7.91 % of all Cycles)。在靜態(tài)窗口中我們可以比較一下不同配置對模擬的影響?,F(xiàn)在我們看一看定向的作用。在前面的模擬過程中,我們采用了定向。如果不采用定向,執(zhí)行時間將會怎樣呢?我們先看一下Statistics 窗口中的各種統(tǒng)計數(shù)字:總的周期數(shù)(215) 和暫停數(shù) (17 RAW, 25 Control, 12 Trap; 54 Total) ,然后關(guān)閉窗口。點擊 Configuration中的Enable Forwarding使定向無效(去掉小鉤),打開斷點Breakpoints 圖標(biāo)并點擊Breakpoints 菜單,刪除所有斷點,然后按F5,鍵入20后,按Enter ,模擬程序一直運行到結(jié)束。重新查看靜態(tài)窗口,你會看到控制暫停和 Trap 暫停仍然是同樣的值,而RAW暫停從17變成了53,總的模擬周期數(shù)增加到236。利用這些值,你能夠計算定向技術(shù)帶來的加速比:236 / 215 = 1.098DLXforwarded比 DLXnot forwarded 快9.8%。第4章 基于WinDLX模擬器的流水線模擬與分析4.1 控制相關(guān)4.1.1 實驗?zāi)康耐ㄟ^本實驗,加深對控制相關(guān)的理解,了解控制相關(guān)對CPU性能的影響。4.1.2 實驗內(nèi)容1. 用WinDLX模擬器運行程序structure_d.s 。2. 通過模擬,找出存在控制相關(guān)的指令對以及導(dǎo)致控制相關(guān)的部件。3. 由控制相關(guān)引起的暫停時鐘周期數(shù),計算暫停時鐘周期數(shù)占總執(zhí)行周期數(shù)的百分比。4論述控制相關(guān)對CPU性能的影響,討論解決控制相關(guān)的方法。5在以上實驗結(jié)果的基礎(chǔ)上,討論在流水線CPU設(shè)計當(dāng)中,降低控制相關(guān)開銷的方法,并給出具體的設(shè)計方案,用指令序列舉例說明。4.1.3 實驗原理1.控制相關(guān)是指因為程序的執(zhí)行方向可能被改變而引起的相關(guān)??赡芨淖兂绦驁?zhí)行方向的指令通常有無條件轉(zhuǎn)移、一般條件轉(zhuǎn)移、復(fù)合條件轉(zhuǎn)移、子程序調(diào)用、中斷等。(1)無條件轉(zhuǎn)移指令一般能夠在指令分析器中就執(zhí)行完成,一般對指令執(zhí)行部件的工作不會造成影響。(2)條件轉(zhuǎn)移1一般條件轉(zhuǎn)移指令,相關(guān)最嚴(yán)重的情況發(fā)生在條件碼是上一條指令產(chǎn)生的。優(yōu)點:轉(zhuǎn)移不成功對先行控制器的影響不大,缺點:轉(zhuǎn)移成功時,不僅指令執(zhí)行過程變成了完全串行,而且要作廢已經(jīng)取到先行指令緩沖棧中的大量指令,增加了處理機與主存之間的通信量。2復(fù)合條件轉(zhuǎn)移指令,如果轉(zhuǎn)移不成功,則就象一條普通的運算型指令一樣。如果轉(zhuǎn)移成功,不僅要全部或部分作廢先行指令緩沖棧中已經(jīng)預(yù)取的指令,還可能要作廢先行操作棧中的指令和先行讀數(shù)棧中的操作數(shù),作廢當(dāng)前在指令分析器中分析的指令。2. WinDLX模擬器運行程序后,打開Statistics 窗口可看到各個方面的信息:模擬中硬件配置情況、暫停及原因、條件分支、 Load/Store指令、浮點指令和traps。 3. 查看Statistics 窗口信息, 找出存在控制相關(guān)的指令對以及導(dǎo)致控制相關(guān)的部件,計算暫停時鐘周期數(shù)占總執(zhí)行周期數(shù)的百分比。4.1.4 控制相關(guān)下WinDLX配置Statistics 窗口:提供各個方面的信息:模擬中硬件配置情況、暫停及原因、條件分支、 Load/Store指令、浮點指令和traps。窗口中給出事件發(fā)生的次數(shù)和百分比。點擊 Configuration / Floating Point Stages選擇標(biāo)準(zhǔn)配置。 點擊 Configuration / Memory Size 設(shè)置模擬處理器的存儲器大?。☉?yīng)設(shè)置為0x8000)。 在Configuration 菜單中的Symbolic addresses, Absolute Cycle Count 和 Enable Forwarding也可設(shè)置, 點擊相應(yīng)菜單項后, 它的旁邊將顯示一個小鉤。4.1.5 實驗過程1. 運行程序structure_d.s. 為了初始化模擬器, 點擊File 菜單中的 Reset all 菜單項,彈出一個“Reset DLX”對話框。然后點擊窗口中的“確認”按鈕;點擊 structure_d.s點擊 select 按鈕點擊 load按鈕 點擊主窗口中的 Execution開始運行2. 在主窗口中點擊“Statistics”圖標(biāo),出現(xiàn)一個子窗口。此窗口提供各個方面的信息:模擬中硬件配置情況、暫停及原因、條件分支、 Load/Store指令、浮點指令和traps.3.查看Statistics 窗口中的各種統(tǒng)計數(shù)字,記錄由控制相關(guān)引起的暫停時鐘周期數(shù),計算暫停時鐘周期數(shù)占總執(zhí)行周期數(shù)的百分比。4.1.6 結(jié)果分析1.裝載完測試程序:雙擊Pipeline子窗口,此時,所有方框均為交叉線,表明流水線沒有執(zhí)行程序在程序執(zhí)行過程中。雙擊Register子窗口, PC寄存器值為0x00000100,也就是說程序會從內(nèi)存0x00000100處開始執(zhí)行。 2.運行過程中圖4-1 Register運行中子窗口PC變?yōu)?x00000114,這是流水線下一步要裝入的指令的地址,但根據(jù)程序,下一條指令應(yīng)該執(zhí)行地址0x00000138所指的指令?!癇NEZ R5, loop”為存在控制相關(guān)的指令,由于“BNEZ R5, loop”指令被譯碼,流水線知道其指令滿足條件轉(zhuǎn)移,說明剛才順序取進來的指令為誤取,下一周期將“TRAP 0x0”指令封殺,不對其譯碼,直接跳轉(zhuǎn)到LD F0, 0x0(R2)。3.運行結(jié)束 圖4-2 Statistics子窗口 運行總周期數(shù)為139,ID執(zhí)行指令數(shù)為86;intEX的延遲為1,faddEX、fmulEX;總暫停數(shù)為42個,其中30個RAW暫停,9個Control暫停,3個Trap暫停,總暫停時鐘周期數(shù)占總執(zhí)行周期數(shù)的百分比為30.22%,控制相關(guān)暫停周期數(shù)占總執(zhí)行周期的百分比為6.47%;共十個條件分支,其中9個轉(zhuǎn)移成功,造成9次控制相關(guān),一個轉(zhuǎn)移不成功。4.2 數(shù)據(jù)相關(guān)4.2.1 實驗?zāi)康耐ㄟ^本實驗,加深對數(shù)據(jù)相關(guān)的理解,掌握如何使用定向技術(shù)來減少數(shù)據(jù)相關(guān)帶來的暫停。4.2.2 實驗內(nèi)容1在不采用定向技術(shù)的情況下(通過Configuration菜單中的Enable Forwarding選項設(shè)置),用WinDLX模擬器運行程序data_d.s 。2. 記錄數(shù)據(jù)相關(guān)引起的暫停時鐘周期數(shù)以及程序執(zhí)行的總時鐘周期數(shù),計算暫停時鐘周期數(shù)占總執(zhí)行周期數(shù)的百分比。3. 采用定向技術(shù)的情況下,用WinDLX模擬器再次運行程序data_d.s。4.2.3 實驗原理1三種數(shù)據(jù)相關(guān):“先讀后寫”、“先寫后讀”和“寫-寫”相關(guān)。2在流水線中建立專用數(shù)據(jù)路徑來避免數(shù)據(jù)相關(guān)的基本原理是數(shù)據(jù)重定向。4.2.4 數(shù)據(jù)相關(guān)下WinDLX配置1Statistics 窗口:將待運行程序裝入主存后按F5使程序完成執(zhí)行,出現(xiàn)消息Trap #0 occurred 表明最后一條指令 trap 0 已經(jīng)執(zhí)行, Trap指令中編號“0”沒有定義,只是用來終止程序。雙擊圖標(biāo)Statistics。Statistics 窗口提供各個方面的信息:模擬中硬件配置情況、暫停及原因、條件分支、 Load/Store指令、浮點指令和traps。窗口中給出事件發(fā)生的次數(shù)和百分比。2Code窗口:雙擊圖標(biāo)Code,你將看到代表存儲器內(nèi)容的三欄信息,從左到右依次為:地址 (符號或數(shù)字)、命令的十六進制機器代碼和匯編命令。點擊主窗口中的 Execution開始模擬。在出現(xiàn)的下拉式菜單中,點擊Single Cycle或按 F7鍵,模擬就向前執(zhí)行一步。3Breakpoint 窗口:當(dāng)通過Code 窗口觀察代碼時 (如果未打開,雙擊圖標(biāo) Code),你會看到接下來的幾條指令幾近一樣,它們都是sw-操作:將寄存器中的數(shù)寫入存儲器中。重復(fù)按F7 將很枯燥,因此,我們使用斷點加快此過程?,F(xiàn)在,請指向Code 窗口中包含命令trap 0x5的0x0000015c行,此命令是寫屏幕的系統(tǒng)調(diào)用。單擊命令行,然后點擊主窗口菜單Code,單擊Set Breakpoint (確保命令行仍被標(biāo)記!),將彈出一個新的Set Breakpoint 窗口。通過此窗口,你可以選擇命令運行到流水線的哪一階段時,程序停止執(zhí)行。缺省為ID段。點擊OK 關(guān)閉窗口。圖4-3 設(shè)置斷點子窗口在Code 窗口中, trap 0x5行上出現(xiàn) 了BID ,它表示當(dāng)本指令在譯碼段時,程序中止執(zhí)行。如果想查看已定義的斷點,你只要單擊圖標(biāo)Reakpoints,將彈出一個小窗口,其中顯示了所有斷點。重新使窗口圖標(biāo)化。現(xiàn)在你只要點擊Execution / Run 或按F5,模擬就繼續(xù)運行。會出現(xiàn)一個對話框提示你ID-Stage: reached at Breakpoint #1,按“確認”按鈕關(guān)閉。點擊Clock cycle diagram窗口中的trap 0x5行,你將看到模擬正處于時鐘周期14。trap 0x5行如下所示:圖4-4 trap 0x5行原因是:無論何時遇到一條trap指令時,DLX 處理器中的流水線將被清空。在Information 窗口(雙擊trap行彈出)中,在IF段顯示消息3 stall(s) because of Trap-Pipeline-Clearing!。 (不要忘了按OK關(guān)閉窗口)。指令trap 0x5 已經(jīng)寫到屏幕上,你可以通過點擊主窗口菜單條上的Execute / Display DLX-I/O來查看。4.2.5 實驗過程1.使用定向技術(shù):1)程序fact.s ,input.s ,data_d.s裝入主存運行初始化模擬器, 點擊File 菜單中的 Reset all 菜單項,彈出一個“Reset DLX”對話框。然后點擊窗口中的“確認”按鈕;點擊 fact.s 點擊 select點擊 input.s點擊 select點擊 data_d.s點擊 select 點擊 load 2)設(shè)置斷點按F7鍵以單步方式運行程序,指向Code窗口中包含指令trap 0x5的0x0000015c行,點擊主窗口菜單Code,單擊Set Breakpoint (確保指令行仍被標(biāo)記),將彈出一個“Set Breakpoint”窗口,點擊OK。3)按F5鍵,程序就會連續(xù)向前運行,直到碰到我們設(shè)置的斷點后停下來,此時會出現(xiàn)一個提示對話框“ID-Stage: reached at Breakpoint #1”,按OK按鈕關(guān)閉。按F5鍵繼續(xù)運行,屏幕上會出現(xiàn)DLX-Standard I/O對話框,輸入20后按回車鍵,程序會繼續(xù)模擬運行,直至出現(xiàn)提示框“Trap #0 occurred”表明最后一條指令trap 0已經(jīng)執(zhí)行。4)記錄下Statistics 窗口中的各種統(tǒng)計數(shù)字:總的周期數(shù)和暫停數(shù)( RAW,Control,Trap,Total),然后關(guān)閉窗口。2.使用不定向技術(shù):點擊 Configuration中的Enable Forwarding使定向無效(去掉小鉤),打開斷點Breakpoints 圖標(biāo),點擊Breakpoints 菜單,點擊Delete All刪除所有斷點,然后按F5,鍵入20后,按Enter ,程序一直運行到結(jié)束。再次打開Statistics 窗口,記下新的統(tǒng)計數(shù)字。計算暫停時鐘周期數(shù)占總執(zhí)行周期數(shù)的百分比。計算采用定向技術(shù)后性能提高的倍數(shù)。4.2.6 結(jié)果分析圖4-5 采用不定向技術(shù)圖4-6 采用定向技術(shù)1)采用定向技術(shù):總的周期數(shù)128和暫停數(shù)(30 RAW,9Control,3Trap,42Total)總暫停數(shù)占總周期數(shù)的32.81%讀后寫暫停周期數(shù)占總周期數(shù)的23.44%寫后寫暫停周期數(shù)為0 2)不采用定向技術(shù) 總的周期數(shù)202,暫停數(shù)(104 RAW,9Control,3Trap,116Total) 總暫停占總時鐘周期數(shù)百分比為57.42%, 讀后寫暫停周期數(shù)占總周期數(shù)的51.48% 寫后寫暫停周期數(shù)為0 3.比較采用定向技術(shù)與采用不定向技術(shù)所得數(shù)據(jù):表4-1 數(shù)據(jù)統(tǒng)計總的時鐘周期Control暫停Trap暫停RAW暫停總暫停采用定向技術(shù)128933042不采用定向技術(shù)20293104116 定向技術(shù)帶來的加速比:202 / 128 = 1.578,即定向比不定向快57.8%4.3 指令調(diào)度4.3.1 實驗?zāi)康耐ㄟ^本實驗,加深對指令調(diào)度的理解,了解指令調(diào)度技術(shù)對CPU性能改進的好處。4.3.2 實驗內(nèi)容1. 通過Configuration菜單中的“Floating point stages”選項,把除法單元數(shù)設(shè)置為3,把加法乘法除法的延遲設(shè)置為3個時鐘周期。2. 用WinDLX模擬器運行調(diào)度前的程序sch-before.s 。記錄程序執(zhí)行過程中各種相關(guān)發(fā)生的次數(shù)以及程序執(zhí)行的總時鐘周期數(shù)。3. 用WinDLX模擬器運行調(diào)度后的程序sch-after.s ,記錄程序執(zhí)行過程中各種相關(guān)發(fā)生的次數(shù)以及程序執(zhí)行的總時鐘周期數(shù)。4. 根據(jù)記錄結(jié)果,比較調(diào)度前和調(diào)度后的性能。4.3.3 實驗原理在非線形流水線中,由于存在有反饋回路,當(dāng)一個任務(wù)在流水線中流過時,在同一個功能段中可能要經(jīng)過多次。因此不能每一個時鐘周期向流水線輸入一個新任務(wù),否則會發(fā)生在同一個時刻有幾個任務(wù)爭用同一個功能段的情況。這種情況稱為功能部件沖突,或流水線沖突。為了避免沖突,一般采用延遲輸入新任務(wù)的方法。應(yīng)該間隔多少時鐘周期向流水線輸入一個新任務(wù)就是非線性流水線的調(diào)度問題。非線性流水線調(diào)度的就是找出一個最小的循環(huán)周期,按照這周期向流水線輸入新任務(wù),流水線的各個功能段都不會發(fā)生沖突,而且流水線的吞吐率和效率最高。4.3.4 WinDLX配置點擊 Configuration / Floating Point Stages(點擊Configuration打開菜單,然后點擊Floating Point Stages菜單項),選擇如下標(biāo)準(zhǔn)配置:表4-2 DLX流水線結(jié)構(gòu)設(shè)置CountDelayAddition Units:12Multiplication Units:15Division Units:119在本實驗中,將標(biāo)準(zhǔn)配置更改為以下配置:表4-3 DLX流水線結(jié)構(gòu)設(shè)置CountDelayAddition Units:13Multiplication Units:13Division Units:334.3.5 實驗過程1.在主窗口中點擊Configuration打開菜單,然后點擊Floating Point Stages菜單項,把除法單元數(shù)設(shè)置為3,把加法、乘法、除法的延遲設(shè)置為3個時鐘周期。2.將程序sch-before.s裝入主存后運行。記錄程序運行過程中各種相關(guān)發(fā)生的次數(shù)以及程序執(zhí)行的總時鐘周期數(shù)。3.將程序sch-afte
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國康復(fù)醫(yī)療服務(wù)行業(yè)市場規(guī)模測算邏輯模型
- 2025年度南京地區(qū)建筑勞務(wù)派遣合作協(xié)議書
- 2025年度安防技術(shù)研發(fā)合伙人股份協(xié)議
- 二零二五年度荒山承包合同(生態(tài)修復(fù)與水源保護)
- 便利店裝修施工合同范本
- 2025年度簽待崗協(xié)議對員工職業(yè)生涯規(guī)劃指導(dǎo)手冊
- 2025年度平房房屋出租合同(含周邊商業(yè)合作權(quán)益)
- 2025年湖南體育職業(yè)學(xué)院單招職業(yè)傾向性測試題庫完整
- 2025年湖南商務(wù)職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫必考題
- 2024年三季度報重慶地區(qū)A股主營業(yè)務(wù)收入增長率排名前十大上市公司
- 2024年達州市總工會招聘工會社會工作者筆試真題
- 2025至2030年中國肌酸數(shù)據(jù)監(jiān)測研究報告
- 1.2 讀懂彼此的心 第二課時 課件 2024-2025學(xué)年五年級下冊道德與法治 統(tǒng)編版
- 2025年度電視產(chǎn)品進出口貿(mào)易合同4篇
- 2025年“開學(xué)第一課”觀后感心得體會(3篇)
- 2024年湖南食品藥品職業(yè)學(xué)院高職單招語文歷年參考題庫含答案解析
- 外科護理5分鐘小講課
- 《船舶油漆作業(yè)》課件
- 2025年中國融通農(nóng)發(fā)社會招聘筆試參考題庫含答案解析
- 2025年天津市寧河區(qū)事業(yè)單位招聘12人高頻重點提升(共500題)附帶答案詳解
- 2024年福建省莆田市數(shù)學(xué)三上期末質(zhì)量檢測模擬試題含解析
評論
0/150
提交評論