




免費預(yù)覽已結(jié)束,剩余11頁可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
河北大學(xué)工商學(xué)院計算機系統(tǒng)結(jié)構(gòu)課程設(shè)計 學(xué) 部 信息科學(xué)與工程學(xué)部 學(xué)科門類 工學(xué) 專 業(yè) 網(wǎng)絡(luò)工程 班 級 網(wǎng)絡(luò)一班 學(xué) 號 2007480218 姓 名 張楊 2010年 6月20日河北大學(xué)工商學(xué)院計算機系統(tǒng)結(jié)構(gòu)課程設(shè)計目 錄第1章 引言1第2章 WinDLX指令集22.1 WinDLX指令集簡介22.2 WinDLX指令集結(jié)構(gòu)2第3章 WinDLX模擬器33.1 WinDLX模擬器的安裝33.2 WinDLX模擬器的配置33.3 WinDLX運行及模擬結(jié)果分析3第4章 基于WinDLX模擬器的流水線模擬與分析44.1 結(jié)構(gòu)相關(guān)44.2 數(shù)據(jù)相關(guān)44.3 指令調(diào)度5第5章 基于SimpleScalar模擬器的Cache性能分析75.1 實驗?zāi)康?5.2 SimpleScalar簡介75.3 測試程序分析75.4 實驗內(nèi)容及步驟75.5 實驗結(jié)果分析7總結(jié)8參考文獻9第1章 引言 20世紀70年代初,人們開始認識到軟件價格要比硬件增長的快,編譯器和操作系統(tǒng)越來越大,因此人們希望引入強有力的、基于軟件的系統(tǒng)結(jié)構(gòu)來解決軟件危機。DEC的VAX系列因而登上歷史舞臺,VAX的設(shè)計目標(biāo)是簡化高級語言的編譯,其指令集結(jié)構(gòu)就是CISC的典范,有300多條指令,十幾種尋址方式,指令字長度從1字節(jié)到53字節(jié),具有高度的正交性,甚至允許把高級語言的一條語句直接映射為一條機器指令。Each instruction in a CISC instruction set might perform a series of operations inside the processor.每個指令集CISC的指令可能在執(zhí)行處理器系列內(nèi)的行動, This reduces the number of instructions required to implement a given program, and allows the programmer to learn a small but flexible set of instructions.這將減少所需的指令數(shù)實現(xiàn)一個給定的程序,并允許程序員學(xué)習(xí)一個小而靈活的指令集。但1991年Bhandarkar和Cark給出了VAX與RISC計算機比較后有關(guān)缺點的大量分析,在技術(shù)上宣布了VAX的死刑。20世紀80年代初,計算機系統(tǒng)結(jié)構(gòu)開始為語言提供高級硬件支持的方向轉(zhuǎn)移出來為了提高CPU的執(zhí)行速度,RISC應(yīng)運而生。1975年,IBM 801開始研制,項目負責(zé)人John Cocke因此獲得Eckert- Mauchly獎和Turing獎。1980年,Patterson和他在Berkeley的同事們研發(fā)了RISC-1和RISC-2。1981年,Hennessy和他在Stanford的同事們發(fā)表了介紹MIPS(Microprocessor without Interlocked Pipeline System)的文章。這些研究成果被工業(yè)界廣泛采用,MIPS系列是RISC的典型代表。20世紀80年代RISC型CPU誕生了,相對于CISC型CPU ,RISC型CPU不僅精簡了指令系統(tǒng),還采用了一種叫做“超標(biāo)量和超流水線結(jié)構(gòu)”,大大增加了并行處理能力。1995年左右,設(shè)計師開始使用高性能通用處理器和科學(xué)應(yīng)用處理器的技術(shù)來設(shè)計DSP(數(shù)字信號處理)指令集結(jié)構(gòu),使其有更高的并行度,更快的時鐘頻率,更簡單的類RISC指令集。由于RISC的指令格式統(tǒng)一,種類比較少,尋址方式也比復(fù)雜指令集少,處理速度提高很多了。因此RISC指令系統(tǒng)更加適合高檔服務(wù)器的操作系統(tǒng)UNIX和Linux。目前在中高檔服務(wù)器中普遍采用RISC指令系統(tǒng)的CPU,特別是高檔服務(wù)器全都采用RISC指令系統(tǒng)的CPU。第 14 頁 共 16 頁第2章 WinDLX指令集2.1 WinDLX指令集簡介在計算機系統(tǒng)結(jié)構(gòu)-量化研究方法一書中,作者定義DLX是世界上第二臺多元未飽和的計算機它是當(dāng)今實驗與商業(yè)計算機的平均。DLX指令集結(jié)構(gòu)是對當(dāng)前大多數(shù)指令集結(jié)構(gòu)研究的結(jié)果,是一種適合于學(xué)習(xí)和研究的指令集結(jié)構(gòu)模型,不僅僅因為它在當(dāng)前十分流行,同時因為它是一種容易理解的系統(tǒng)結(jié)構(gòu)。WinDLX便是一個基于Windows的DLX模擬器。2.2 WinDLX指令集結(jié)構(gòu)2.2.1 WinDLX的寄存器DLX有32個32位通用寄存器(GPR),名稱為R0,R1,R2,R31,另外還有一組浮點寄存器(FPR)它們既可以用作32個32位單精度浮點寄存器,也可以奇偶配對來存儲雙精度浮點數(shù),即F0和F1構(gòu)成一個64位雙精度浮點數(shù)寄存器,F(xiàn)2和F3構(gòu)成一個64位雙精度浮點數(shù)寄存器,以此類推。這些64位浮點數(shù)寄存器被命名為F0,F(xiàn)2,F(xiàn)28,F(xiàn)30 這樣,DLX就提供了32個32位單精度浮點數(shù)寄存器或16個64位雙精度浮點數(shù)寄存器。寄存器R0的值永遠是零。有這樣一個特點,就可以利用這個寄存器由簡單指令集來合成一組有用的操作。另外,還有一些特殊用途的寄存器,這些寄存器可以和通用寄存器交換數(shù)據(jù)。2.2.2 WinDLX的數(shù)據(jù)表示DLX能處理的數(shù)據(jù)類型有8位字節(jié),16位半字、32位整數(shù)字以及32位單精度浮點數(shù)和64位雙精度浮點數(shù)。DLX處理字符數(shù)據(jù)要使用8字節(jié),使用16位半字,是因為它在類似C的語言中出現(xiàn),在操作系統(tǒng)代碼中半字數(shù)據(jù)類型也很流行,使用32位整數(shù)字,是因為DLX認為32位整數(shù)的處理范圍一般而言已經(jīng)足夠;之所以有32位單精度浮點數(shù),是因為和16位半字同樣的理由;之所以有64位雙精度浮點數(shù),是因為和32位整數(shù)同樣的理由。DLX的操作主要面向32位整數(shù)以及32位或64位浮點數(shù)。字節(jié)或半字在被調(diào)入32位寄存器時,用零或者符號位填充32位寄存器的高位剩余部分,一旦被調(diào)入寄存器,它們將按照32位整數(shù)的方式進行計算。2.2.3 WinDLX的尋址方式利用R0寄存器永遠為零的特性,DLX用很少的硬件代價,提供了5種尋址方式。它們是:寄存器尋址方式;立即數(shù)尋址方式(立即數(shù)范圍為16位);位移尋址方式(某寄存器的值加上位移量形成操作數(shù)的地址);寄存器間接尋址方式(位移尋址方式中位移量等于0);直接尋址方式(位移尋址方式中寄存器用R0)。2.2.4 WinDLX指令格式由于DLX的尋址方式較少,因此在指令格式中沒有必要專門設(shè)置尋址方式描述位,可以將其直由于DLX的尋址方式較少,因此在指令格式中沒有必要專門設(shè)置尋址方式描述位,可以將其直指令字長度32位(單字長指令),其中操作碼占6位。I型指令6 5 5 16 操作碼源寄存器目的寄存器立即數(shù)R型指令 6 5 5 5 11操作碼源寄存器1源寄存器2目的寄存器功能碼J型指令 6 26操作碼與PC相加的偏移量I型指令格式主要用來對各種類型數(shù)的存取操作指令編碼,即各種Load指令和Store指令,含義為:從內(nèi)存單元(地址為源寄存器值+立即數(shù))取數(shù)至目的寄存器;或把源寄存器中值存在內(nèi)存單元(地址為目的寄存器值+立即數(shù))中;或把立即數(shù)送到目的寄存器中(源寄存器不用)。I型指令格式還用來為分支指令編碼,包括條件分支指令(此時,立即數(shù)是相對目標(biāo)地址,源寄存器是判斷條件,目的寄存器不用),寄存器跳轉(zhuǎn)指令(此時,源寄存器里是目標(biāo)地址,目的寄存器不用)和寄存器跳轉(zhuǎn)并連接指令(此時,源寄存器里是目標(biāo)地址,立即數(shù)為0,目的寄存器也為0,該指令主要用于過程調(diào)用)。R型指令格式主要用來為各種算數(shù)/邏輯運算指令編碼,含義為:源寄存器1和源寄存器2進行功能碼指定的操作,并把結(jié)果存入目的寄存器中。另外,R型指令還為讀寫特殊寄存器指令和寄存器之間的傳送指令編碼。J型指令格式主要用來為跳轉(zhuǎn)并連接指令(注意不是寄存器跳轉(zhuǎn)并連接指令)和陷阱與異常返回指令編碼。2.2.5 WinDLX指令集DLX指令大致可以分為4大類:加載/存儲、ALU操作、分支與跳轉(zhuǎn)和浮點數(shù)操作。所有通用寄存器GPR和浮點數(shù)寄存器FPR都可作為加載或存儲之用,唯一例外是R0,加載R0是沒有意義的。單精度浮點數(shù)占用一個浮點數(shù)寄存器,雙精度浮點數(shù)占用一對浮點數(shù)寄存器。單精度浮點數(shù)與雙精度浮點數(shù)之間的轉(zhuǎn)換必須顯式地進行。所有的ALU指令都是寄存器-寄存器指令,包括簡單的算術(shù)和邏輯操作:加、減、與、或、異或和移位,所有這些指令都支持立即數(shù)尋址方式,它帶有一個16位的符號擴展立即數(shù)。LHI(Load High Immediate)操作將立即數(shù)加載到寄存器的高半字,而將低半字設(shè)為0,這使得一個32位的常數(shù)可以用兩條指令來建立。如上所述,R0經(jīng)常被用來合成通用操作,加載一個常數(shù)的操作可以由一個立即數(shù)和一個源操作數(shù)是R0的加法來實現(xiàn),寄存器-寄存器傳送可以通過其中一個源操作數(shù)是R0的加法來完成(DLX有時用助記符LI代表加載來指前者,而用MOV來指后者)。 還有比較兩個寄存器的比較指令(,),如果條件為真,則比較指令將在目的寄存器中放入一個1(代表真);否則放入一個0。由于這些操作都設(shè)置寄存器,因此它們被叫做set-equal,set-not-equal,set-less-than等,同時這些比較指令也具有立即數(shù)尋址方式??刂朴梢唤M跳轉(zhuǎn)指令和一組分支指令來處理。4種跳轉(zhuǎn)指令由指定目的地址的兩種方式和是否進行鏈接來區(qū)分。有兩種跳轉(zhuǎn)指令把26位帶符號的位移量加到PC中來確定目的地址;另外兩種跳轉(zhuǎn)指令通過指定包含目的地址的寄存器來確定目的地址。有兩種跳轉(zhuǎn):簡單跳轉(zhuǎn),跳轉(zhuǎn)并鏈接(用于過程調(diào)用),后者把返回地址下一個順序指令的地址放入寄存器R31。所有的分支都是有條件的。分支條件由指令確定,可能是測試源寄存器是否為0;寄存器可能含有一個數(shù)據(jù)或者比較結(jié)果。分支的目標(biāo)地址由16位帶符號位移量和PC值相加的結(jié)果來確定。浮點指令對浮點寄存器進行操作,并指出將被使用的操作數(shù)是單精度還是雙精度。MOVF和MOVD分別把一個單精度(MOVF)或雙精度(MOVD)浮點寄存器的值復(fù)制到另一個同類型寄存器中。MOVFP2I和MOVI2FP在單精度浮點寄存器和整數(shù)寄存器之間傳送數(shù)據(jù)。把一個雙精數(shù)據(jù)移到兩個整數(shù)寄存器中需要兩條指令。另外還有32位浮點寄存器上的整數(shù)乘除法指令和整數(shù)與浮點數(shù)之間轉(zhuǎn)換的指令。浮點操作包括加、減、乘、除。后綴F表示單精度浮點數(shù),而后綴D表示雙精度浮點數(shù)。浮點數(shù)比較指令會設(shè)置浮點數(shù)狀態(tài)寄存器中的某一位,可以用兩條分支指令BFPTO(為真分支)和BFPF(為假分支)測試浮點數(shù)狀態(tài)寄存器來決定是否進行分支。DLX的一個不太尋常的特征是它用浮點部件來完成整數(shù)的乘除。因為對較慢的浮點數(shù)操作的控制要比控制整數(shù)的加減復(fù)雜得多,既然浮點部件已經(jīng)可以處理浮點乘除,那么再讓它處理相對較慢的整數(shù)乘除也并不困難。因此,DLX要求把乘除的操作數(shù)放入浮點寄存器中。第3章 WinDLX模擬器3.1 WinDLX模擬器的安裝 WinDLX 包含windlx.exe和windlx.hlp文件。此外,還需要一些擴展名為.s的匯編代碼文件。實驗將使用fact.s 和input.s這兩個匯編代碼文件。WinDLX的安裝非常簡單,將WinDLX壓縮包解壓到一個指定的目錄,做實驗時直接雙擊WinDLX圖標(biāo)就可進入Windlx模擬器。3.2 WinDLX模擬器的配置WinDLX可以在多種配置下工作??梢愿淖兞魉€的結(jié)構(gòu)和時間要求、存儲器大小和其他幾個控制模擬的參數(shù)。點擊Configuration / Floating Point Stages(點擊Configuration打開菜單,然后點擊Floating Point Stages菜單項),選擇如下標(biāo)準(zhǔn)配置:UNITCOUNTDELAYAddition Units:12Multiplication Units:15Division Units:119如果需要,可以通過點擊相應(yīng)區(qū)域來改變設(shè)置。然后,點擊OK返回主窗口。點擊 Configuration/Memory Size ,可以設(shè)置模擬處理器的存儲器大小。應(yīng)設(shè)置為0x8000,然后,點擊OK返回主窗口。在Configuration 菜單中的其他三個配置也可以設(shè)置,它們是:Symbolic addresses,Absolute Cycle Count和Enable Forwarding。 點擊相應(yīng)菜單項后,在它的旁邊將顯示一個小鉤。3.3 WinDLX運行及模擬結(jié)果分析在開始模擬之前,至少應(yīng)裝入一個程序到主存。我們選擇fact.s作為例子,fact.s計算一個整型值的階乘,它的運行還需要一個輔助文件input.s, input.s中包含一個子程序,它讀標(biāo)準(zhǔn)輸入(鍵盤)并將值存入DLX處理器的通用寄存器R1中。為此,選擇File/Load Code or Data,窗口中會列出目錄中所有匯編程序。按如下步驟操作,可將這兩個文件裝入主存。 點擊 fact.s ,點擊 select 按鈕 ,點擊 input.s ,點擊 select按鈕 ,點擊 load按。鈕選擇文件的順序很關(guān)鍵,它決定了文件在存儲器中出現(xiàn)的順序。對話框中會顯示信息“File(s) loaded successfully. Reset DLX?”,點擊確認按鈕。這樣,文件就已被裝入到主存儲器中了?,F(xiàn)在就可以開始模擬工作了。第4章 基于WinDLX模擬器的流水線模擬與分析4.1 控制相關(guān)4.1.1 實驗?zāi)康耐ㄟ^本實驗,加深對結(jié)構(gòu)相關(guān)的理解,了解結(jié)構(gòu)相關(guān)對CPU性能的影響。4.1.2 實驗內(nèi)容1. 用WinDLX模擬器運行程序structure_d.s 。2. 通過模擬,找出存在結(jié)構(gòu)相關(guān)的指令對以及導(dǎo)致結(jié)構(gòu)相關(guān)的部件。3 由結(jié)構(gòu)相關(guān)引起的暫停時鐘周期數(shù),計算暫停時鐘周期數(shù)占總執(zhí)行周期數(shù)的百分比。4論述結(jié)構(gòu)相關(guān)對CPU性能的影響,討論解決結(jié)構(gòu)相關(guān)的方法。4.1.3 實驗原理結(jié)構(gòu)相關(guān)是指因為程序的執(zhí)行方向可能被改變而引起的相關(guān)??赡芨淖兂绦驁?zhí)行方向的指令通常有無條件轉(zhuǎn)移、一般條件轉(zhuǎn)移、復(fù)合條件轉(zhuǎn)移、子程序調(diào)用、中斷等。1 無條件轉(zhuǎn)移無條件轉(zhuǎn)移指令一般能夠在指令分析器中就執(zhí)行完成,因此一般對指令執(zhí)行部件的工作不會造成影響。2 條件轉(zhuǎn)移條件轉(zhuǎn)移指令有兩種:一般條件轉(zhuǎn)移指令和復(fù)合條件轉(zhuǎn)移指令。對于一般條件轉(zhuǎn)移指令,相關(guān)最嚴重的情況發(fā)生在條件碼是上一條指令產(chǎn)生的。轉(zhuǎn)移不成功對先行控制器的影響不大,而轉(zhuǎn)移成功時,不僅指令執(zhí)行過程變成了完全串行,而且要作廢已經(jīng)取到先行指令緩沖棧中的大量指令,從而白白增加了處理機與主存之間的通信量。對于復(fù)合條件轉(zhuǎn)移指令,如果轉(zhuǎn)移不成功,則就象一條普通的運算型指令一樣。如果轉(zhuǎn)移成功,不僅要全部或部分作廢先行指令緩沖棧中已經(jīng)預(yù)取的指令,還可能要作廢先行操作棧中的指令和先行讀數(shù)棧中的操作數(shù),作廢當(dāng)前在指令分析器中分析的指令。4.1.4 控制相關(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ù)和百分比。2WinDLX可以在多種配置下工作。你可以改變流水線的結(jié)構(gòu)和時間要求、存儲器大小和其他幾個控制模擬的參數(shù)。點擊 Configuration / Floating Point Stages(點擊Configuration打開菜單,然后點擊Floating Point Stages菜單項),選擇如下標(biāo)準(zhǔn)配置:CountDelayAddition Units:12Multiplication Units:15Division Units:119點擊 Configuration / Memory Size ,可以設(shè)置模擬處理器的存儲器大小。應(yīng)設(shè)置為0x8000,然后,點擊 OK 返回主窗口。在 Configuration 菜單中的其他三個配置也可以設(shè)置,它們是:Symbolic addresses, Absolute Cycle Count 和 Enable Forwarding。 點擊相應(yīng)菜單項后, 在它的旁邊將顯示一個小鉤。4.1.5實驗過程實驗時,先將Configuration / Memory Size菜單選項中的設(shè)置按4.1.5控制相關(guān)下WinDLX的配置更改,在flie菜單中選擇really reset all windlx completely ,隨后選擇load code or data 裝入structure_d.點load。將待運行程序裝入主存后按F5使程序完成執(zhí)行,出現(xiàn)消息Trap
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CCMA 0085-2019市政與環(huán)衛(wèi)車輛作業(yè)標(biāo)志燈
- T/CCASC 3003-2023電石渣中乙炔含量測定氣相色譜法
- T/CCAS 033-2023油井水泥漿防氣竄試驗方法
- T/CAPEB 00001.8-2022制藥裝備容器和管道第8部分:驗證
- 湖北成人考試題庫及答案
- ensp春考試題及答案
- 敦煌文化考試題及答案
- 風(fēng)車運營面試題及答案
- 高中教師考試題及答案
- 小兒三尖瓣閉鎖的臨床護理
- 平行賬的實現(xiàn)
- 2025年貴州省貴陽市衛(wèi)生健康系統(tǒng)事業(yè)單位招聘384人歷年高頻重點提升(共500題)附帶答案詳解
- DB3307T 128-2023 共富工坊建設(shè)與星級評價規(guī)范
- 孩子心理成長中家長角色的科學(xué)定位
- 小學(xué)生反詐騙班會課件
- 康養(yǎng)休閑旅游服務(wù)基礎(chǔ)知識單選題及答案解析
- 解剖學(xué)公開課課件內(nèi)分泌
- 銀屑病臨床病例討論
- 【MOOC】工程經(jīng)濟學(xué)原理-東南大學(xué) 中國大學(xué)慕課MOOC答案
- 涉密人員審查備案登記表
- 高層建筑汽車吊吊裝作業(yè)方案
評論
0/150
提交評論