




免費預覽已結束,剩余11頁可下載查看
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
河北大學工商學院計算機系統(tǒng)結構課程設計 學 部 信息科學與工程學部 學科門類 工學 專 業(yè) 網絡工程 班 級 網絡一班 學 號 2007480218 姓 名 張楊 2010年 6月20日河北大學工商學院計算機系統(tǒng)結構課程設計目 錄第1章 引言1第2章 WinDLX指令集22.1 WinDLX指令集簡介22.2 WinDLX指令集結構2第3章 WinDLX模擬器33.1 WinDLX模擬器的安裝33.2 WinDLX模擬器的配置33.3 WinDLX運行及模擬結果分析3第4章 基于WinDLX模擬器的流水線模擬與分析44.1 結構相關44.2 數據相關44.3 指令調度5第5章 基于SimpleScalar模擬器的Cache性能分析75.1 實驗目的75.2 SimpleScalar簡介75.3 測試程序分析75.4 實驗內容及步驟75.5 實驗結果分析7總結8參考文獻9第1章 引言 20世紀70年代初,人們開始認識到軟件價格要比硬件增長的快,編譯器和操作系統(tǒng)越來越大,因此人們希望引入強有力的、基于軟件的系統(tǒng)結構來解決軟件危機。DEC的VAX系列因而登上歷史舞臺,VAX的設計目標是簡化高級語言的編譯,其指令集結構就是CISC的典范,有300多條指令,十幾種尋址方式,指令字長度從1字節(jié)到53字節(jié),具有高度的正交性,甚至允許把高級語言的一條語句直接映射為一條機器指令。Each instruction in a CISC instruction set might perform a series of operations inside the processor.每個指令集CISC的指令可能在執(zhí)行處理器系列內的行動, 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.這將減少所需的指令數實現一個給定的程序,并允許程序員學習一個小而靈活的指令集。但1991年Bhandarkar和Cark給出了VAX與RISC計算機比較后有關缺點的大量分析,在技術上宣布了VAX的死刑。20世紀80年代初,計算機系統(tǒng)結構開始為語言提供高級硬件支持的方向轉移出來為了提高CPU的執(zhí)行速度,RISC應運而生。1975年,IBM 801開始研制,項目負責人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),還采用了一種叫做“超標量和超流水線結構”,大大增加了并行處理能力。1995年左右,設計師開始使用高性能通用處理器和科學應用處理器的技術來設計DSP(數字信號處理)指令集結構,使其有更高的并行度,更快的時鐘頻率,更簡單的類RISC指令集。由于RISC的指令格式統(tǒng)一,種類比較少,尋址方式也比復雜指令集少,處理速度提高很多了。因此RISC指令系統(tǒng)更加適合高檔服務器的操作系統(tǒng)UNIX和Linux。目前在中高檔服務器中普遍采用RISC指令系統(tǒng)的CPU,特別是高檔服務器全都采用RISC指令系統(tǒng)的CPU。第 14 頁 共 16 頁第2章 WinDLX指令集2.1 WinDLX指令集簡介在計算機系統(tǒng)結構-量化研究方法一書中,作者定義DLX是世界上第二臺多元未飽和的計算機它是當今實驗與商業(yè)計算機的平均。DLX指令集結構是對當前大多數指令集結構研究的結果,是一種適合于學習和研究的指令集結構模型,不僅僅因為它在當前十分流行,同時因為它是一種容易理解的系統(tǒng)結構。WinDLX便是一個基于Windows的DLX模擬器。2.2 WinDLX指令集結構2.2.1 WinDLX的寄存器DLX有32個32位通用寄存器(GPR),名稱為R0,R1,R2,R31,另外還有一組浮點寄存器(FPR)它們既可以用作32個32位單精度浮點寄存器,也可以奇偶配對來存儲雙精度浮點數,即F0和F1構成一個64位雙精度浮點數寄存器,F2和F3構成一個64位雙精度浮點數寄存器,以此類推。這些64位浮點數寄存器被命名為F0,F2,F28,F30 這樣,DLX就提供了32個32位單精度浮點數寄存器或16個64位雙精度浮點數寄存器。寄存器R0的值永遠是零。有這樣一個特點,就可以利用這個寄存器由簡單指令集來合成一組有用的操作。另外,還有一些特殊用途的寄存器,這些寄存器可以和通用寄存器交換數據。2.2.2 WinDLX的數據表示DLX能處理的數據類型有8位字節(jié),16位半字、32位整數字以及32位單精度浮點數和64位雙精度浮點數。DLX處理字符數據要使用8字節(jié),使用16位半字,是因為它在類似C的語言中出現,在操作系統(tǒng)代碼中半字數據類型也很流行,使用32位整數字,是因為DLX認為32位整數的處理范圍一般而言已經足夠;之所以有32位單精度浮點數,是因為和16位半字同樣的理由;之所以有64位雙精度浮點數,是因為和32位整數同樣的理由。DLX的操作主要面向32位整數以及32位或64位浮點數。字節(jié)或半字在被調入32位寄存器時,用零或者符號位填充32位寄存器的高位剩余部分,一旦被調入寄存器,它們將按照32位整數的方式進行計算。2.2.3 WinDLX的尋址方式利用R0寄存器永遠為零的特性,DLX用很少的硬件代價,提供了5種尋址方式。它們是:寄存器尋址方式;立即數尋址方式(立即數范圍為16位);位移尋址方式(某寄存器的值加上位移量形成操作數的地址);寄存器間接尋址方式(位移尋址方式中位移量等于0);直接尋址方式(位移尋址方式中寄存器用R0)。2.2.4 WinDLX指令格式由于DLX的尋址方式較少,因此在指令格式中沒有必要專門設置尋址方式描述位,可以將其直由于DLX的尋址方式較少,因此在指令格式中沒有必要專門設置尋址方式描述位,可以將其直指令字長度32位(單字長指令),其中操作碼占6位。I型指令6 5 5 16 操作碼源寄存器目的寄存器立即數R型指令 6 5 5 5 11操作碼源寄存器1源寄存器2目的寄存器功能碼J型指令 6 26操作碼與PC相加的偏移量I型指令格式主要用來對各種類型數的存取操作指令編碼,即各種Load指令和Store指令,含義為:從內存單元(地址為源寄存器值+立即數)取數至目的寄存器;或把源寄存器中值存在內存單元(地址為目的寄存器值+立即數)中;或把立即數送到目的寄存器中(源寄存器不用)。I型指令格式還用來為分支指令編碼,包括條件分支指令(此時,立即數是相對目標地址,源寄存器是判斷條件,目的寄存器不用),寄存器跳轉指令(此時,源寄存器里是目標地址,目的寄存器不用)和寄存器跳轉并連接指令(此時,源寄存器里是目標地址,立即數為0,目的寄存器也為0,該指令主要用于過程調用)。R型指令格式主要用來為各種算數/邏輯運算指令編碼,含義為:源寄存器1和源寄存器2進行功能碼指定的操作,并把結果存入目的寄存器中。另外,R型指令還為讀寫特殊寄存器指令和寄存器之間的傳送指令編碼。J型指令格式主要用來為跳轉并連接指令(注意不是寄存器跳轉并連接指令)和陷阱與異常返回指令編碼。2.2.5 WinDLX指令集DLX指令大致可以分為4大類:加載/存儲、ALU操作、分支與跳轉和浮點數操作。所有通用寄存器GPR和浮點數寄存器FPR都可作為加載或存儲之用,唯一例外是R0,加載R0是沒有意義的。單精度浮點數占用一個浮點數寄存器,雙精度浮點數占用一對浮點數寄存器。單精度浮點數與雙精度浮點數之間的轉換必須顯式地進行。所有的ALU指令都是寄存器-寄存器指令,包括簡單的算術和邏輯操作:加、減、與、或、異或和移位,所有這些指令都支持立即數尋址方式,它帶有一個16位的符號擴展立即數。LHI(Load High Immediate)操作將立即數加載到寄存器的高半字,而將低半字設為0,這使得一個32位的常數可以用兩條指令來建立。如上所述,R0經常被用來合成通用操作,加載一個常數的操作可以由一個立即數和一個源操作數是R0的加法來實現,寄存器-寄存器傳送可以通過其中一個源操作數是R0的加法來完成(DLX有時用助記符LI代表加載來指前者,而用MOV來指后者)。 還有比較兩個寄存器的比較指令(,),如果條件為真,則比較指令將在目的寄存器中放入一個1(代表真);否則放入一個0。由于這些操作都設置寄存器,因此它們被叫做set-equal,set-not-equal,set-less-than等,同時這些比較指令也具有立即數尋址方式。控制由一組跳轉指令和一組分支指令來處理。4種跳轉指令由指定目的地址的兩種方式和是否進行鏈接來區(qū)分。有兩種跳轉指令把26位帶符號的位移量加到PC中來確定目的地址;另外兩種跳轉指令通過指定包含目的地址的寄存器來確定目的地址。有兩種跳轉:簡單跳轉,跳轉并鏈接(用于過程調用),后者把返回地址下一個順序指令的地址放入寄存器R31。所有的分支都是有條件的。分支條件由指令確定,可能是測試源寄存器是否為0;寄存器可能含有一個數據或者比較結果。分支的目標地址由16位帶符號位移量和PC值相加的結果來確定。浮點指令對浮點寄存器進行操作,并指出將被使用的操作數是單精度還是雙精度。MOVF和MOVD分別把一個單精度(MOVF)或雙精度(MOVD)浮點寄存器的值復制到另一個同類型寄存器中。MOVFP2I和MOVI2FP在單精度浮點寄存器和整數寄存器之間傳送數據。把一個雙精數據移到兩個整數寄存器中需要兩條指令。另外還有32位浮點寄存器上的整數乘除法指令和整數與浮點數之間轉換的指令。浮點操作包括加、減、乘、除。后綴F表示單精度浮點數,而后綴D表示雙精度浮點數。浮點數比較指令會設置浮點數狀態(tài)寄存器中的某一位,可以用兩條分支指令BFPTO(為真分支)和BFPF(為假分支)測試浮點數狀態(tài)寄存器來決定是否進行分支。DLX的一個不太尋常的特征是它用浮點部件來完成整數的乘除。因為對較慢的浮點數操作的控制要比控制整數的加減復雜得多,既然浮點部件已經可以處理浮點乘除,那么再讓它處理相對較慢的整數乘除也并不困難。因此,DLX要求把乘除的操作數放入浮點寄存器中。第3章 WinDLX模擬器3.1 WinDLX模擬器的安裝 WinDLX 包含windlx.exe和windlx.hlp文件。此外,還需要一些擴展名為.s的匯編代碼文件。實驗將使用fact.s 和input.s這兩個匯編代碼文件。WinDLX的安裝非常簡單,將WinDLX壓縮包解壓到一個指定的目錄,做實驗時直接雙擊WinDLX圖標就可進入Windlx模擬器。3.2 WinDLX模擬器的配置WinDLX可以在多種配置下工作??梢愿淖兞魉€的結構和時間要求、存儲器大小和其他幾個控制模擬的參數。點擊Configuration / Floating Point Stages(點擊Configuration打開菜單,然后點擊Floating Point Stages菜單項),選擇如下標準配置:UNITCOUNTDELAYAddition Units:12Multiplication Units:15Division Units:119如果需要,可以通過點擊相應區(qū)域來改變設置。然后,點擊OK返回主窗口。點擊 Configuration/Memory Size ,可以設置模擬處理器的存儲器大小。應設置為0x8000,然后,點擊OK返回主窗口。在Configuration 菜單中的其他三個配置也可以設置,它們是:Symbolic addresses,Absolute Cycle Count和Enable Forwarding。 點擊相應菜單項后,在它的旁邊將顯示一個小鉤。3.3 WinDLX運行及模擬結果分析在開始模擬之前,至少應裝入一個程序到主存。我們選擇fact.s作為例子,fact.s計算一個整型值的階乘,它的運行還需要一個輔助文件input.s, input.s中包含一個子程序,它讀標準輸入(鍵盤)并將值存入DLX處理器的通用寄存器R1中。為此,選擇File/Load Code or Data,窗口中會列出目錄中所有匯編程序。按如下步驟操作,可將這兩個文件裝入主存。 點擊 fact.s ,點擊 select 按鈕 ,點擊 input.s ,點擊 select按鈕 ,點擊 load按。鈕選擇文件的順序很關鍵,它決定了文件在存儲器中出現的順序。對話框中會顯示信息“File(s) loaded successfully. Reset DLX?”,點擊確認按鈕。這樣,文件就已被裝入到主存儲器中了?,F在就可以開始模擬工作了。第4章 基于WinDLX模擬器的流水線模擬與分析4.1 控制相關4.1.1 實驗目的通過本實驗,加深對結構相關的理解,了解結構相關對CPU性能的影響。4.1.2 實驗內容1. 用WinDLX模擬器運行程序structure_d.s 。2. 通過模擬,找出存在結構相關的指令對以及導致結構相關的部件。3 由結構相關引起的暫停時鐘周期數,計算暫停時鐘周期數占總執(zhí)行周期數的百分比。4論述結構相關對CPU性能的影響,討論解決結構相關的方法。4.1.3 實驗原理結構相關是指因為程序的執(zhí)行方向可能被改變而引起的相關??赡芨淖兂绦驁?zhí)行方向的指令通常有無條件轉移、一般條件轉移、復合條件轉移、子程序調用、中斷等。1 無條件轉移無條件轉移指令一般能夠在指令分析器中就執(zhí)行完成,因此一般對指令執(zhí)行部件的工作不會造成影響。2 條件轉移條件轉移指令有兩種:一般條件轉移指令和復合條件轉移指令。對于一般條件轉移指令,相關最嚴重的情況發(fā)生在條件碼是上一條指令產生的。轉移不成功對先行控制器的影響不大,而轉移成功時,不僅指令執(zhí)行過程變成了完全串行,而且要作廢已經取到先行指令緩沖棧中的大量指令,從而白白增加了處理機與主存之間的通信量。對于復合條件轉移指令,如果轉移不成功,則就象一條普通的運算型指令一樣。如果轉移成功,不僅要全部或部分作廢先行指令緩沖棧中已經預取的指令,還可能要作廢先行操作棧中的指令和先行讀數棧中的操作數,作廢當前在指令分析器中分析的指令。4.1.4 控制相關下WinDLX配置1Statistics 窗口:將待運行程序裝入主存后按F5使程序完成執(zhí)行,出現消息Trap #0 occurred 表明最后一條指令 trap 0 已經執(zhí)行, Trap指令中編號“0”沒有定義,只是用來終止程序。雙擊圖標Statistics。Statistics 窗口提供各個方面的信息:模擬中硬件配置情況、暫停及原因、條件分支、 Load/Store指令、浮點指令和traps。窗口中給出事件發(fā)生的次數和百分比。2WinDLX可以在多種配置下工作。你可以改變流水線的結構和時間要求、存儲器大小和其他幾個控制模擬的參數。點擊 Configuration / Floating Point Stages(點擊Configuration打開菜單,然后點擊Floating Point Stages菜單項),選擇如下標準配置:CountDelayAddition Units:12Multiplication Units:15Division Units:119點擊 Configuration / Memory Size ,可以設置模擬處理器的存儲器大小。應設置為0x8000,然后,點擊 OK 返回主窗口。在 Configuration 菜單中的其他三個配置也可以設置,它們是:Symbolic addresses, Absolute Cycle Count 和 Enable Forwarding。 點擊相應菜單項后, 在它的旁邊將顯示一個小鉤。4.1.5實驗過程實驗時,先將Configuration / Memory Size菜單選項中的設置按4.1.5控制相關下WinDLX的配置更改,在flie菜單中選擇really reset all windlx completely ,隨后選擇load code or data 裝入structure_d.點load。將待運行程序裝入主存后按F5使程序完成執(zhí)行,出現消息Trap
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 油務工專業(yè)理論考試題及參考答案
- 專業(yè)攝影測量與遙感習題及答案
- 呼叫中心服務員-初級工考試題及參考答案
- 2025屆山西省部分學校高三4月模擬考試(省二模)生物試題(原卷版+解析版)
- 江蘇省南京市五校聯(lián)盟2024-2025學年高二下學期4月期中地理試題(原卷版+解析版)
- 批發(fā)業(yè)消費者行為分析與研究考核試卷
- 畜禽糞便處理與農業(yè)廢棄物循環(huán)利用考卷考核試卷
- 租賃店鋪的顧客滿意度提升實踐考核試卷
- 聚苯并噻吩改性與加工技術考核試卷
- 聚合纖維的綠色生產與可持續(xù)發(fā)展考核試卷
- 物流公司運輸車輛檔案管理規(guī)范
- 腦心健康管理師培訓匯報
- 2024年學校安全知識競賽題庫及答案
- 2024年網絡與信息安全考試題庫
- 新蘇教版高中數學必修第一冊第1章1.1第1課時集合的概念【授課課件】
- 小班健康教案及教學反思《疊衣服》
- 現場復查要點解讀水電及新能源工程
- 家裝設計師個人簡介范文
- 血透病人低血壓護理查房
- 業(yè)主委員會備案申請表填寫模板
- JCT 932-2013 衛(wèi)生潔具排水配件
評論
0/150
提交評論