版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)驗(yàn)一WinDLX模擬器安裝和基本操作試驗(yàn)?zāi)康牧私釽inDLX的基本功能和作用;加強(qiáng)對(duì)指令執(zhí)行細(xì)節(jié)的感性認(rèn)識(shí);掌握該工具的基本命令和操作,為流水線實(shí)驗(yàn)作準(zhǔn)備。實(shí)驗(yàn)內(nèi)容下載和安裝WinDLX;觀察軟件各個(gè)觀察窗口的內(nèi)容和作用;安裝實(shí)驗(yàn)步驟進(jìn)行操作,掌握軟件的使用方法;課前可以先瀏覽閱讀DLX的RISC指令集。實(shí)驗(yàn)環(huán)境硬件:桌面PC軟件:Windows實(shí)驗(yàn)步驟及說明DLX處理器(發(fā)音為"DeLuXe")是Hennessy和Patterson合著一書《ComputerArchitecture-AQuantitativeApproach》中流水線處理器的例子。WinDLX是一個(gè)基于Windows的模擬器。本教程通過一個(gè)實(shí)例介紹WinDLX的使用方法。WinDLX模擬器能夠演示DLX流水線是如何工作的。本教程使用的例子非常簡(jiǎn)單,它并沒有囊括WinDLX的各個(gè)方面,僅僅作為使用WinDLX的入門級(jí)介紹。當(dāng)你閱讀完本教程后,請(qǐng)參考幫助文件。通過按Fl鍵,你可以在任何時(shí)候獲得相關(guān)的幫助信息。雖然我們將詳細(xì)討論例子中的各個(gè)階段,但你應(yīng)具備基本的使用Windows的知識(shí)?,F(xiàn)假定你知道如何啟動(dòng)Windows,使用滾動(dòng)條滾動(dòng),雙擊執(zhí)行以及激活窗口。一、安裝WinDLX包含windlx.exe和windlx.hlp文件。同時(shí),還需要一些擴(kuò)展名為?s的匯編代碼文件。在本手冊(cè)中將使用fact.s和input.s這兩個(gè)匯編代碼文件。如果你熟悉Windows應(yīng)用程序的安裝,那么將fact?s和input.s拷貝到WinDLX文件夾后,你可以直接閱讀下一部分。請(qǐng)按以下步驟在Windows下安裝WinDLX:
為WinDLX創(chuàng)建目錄,例如D:\WINDLX解壓WinDLX軟件包或拷貝所有的WinDLX文件(至少包含windlx.exe,windlx.hlp,fact.s和input.s)到這個(gè)WinDLX目錄。二、一個(gè)完整的例子我們使用WinDLX匯編器中的匯編文件fact?s,這個(gè)程序計(jì)算數(shù)(通過鍵盤輸入)的階乘。這需要用到文件input?s,它用于接收從鍵盤輸入的數(shù)。1?開始和配置WinDLX象啟動(dòng)任何Windows應(yīng)用程序一樣,通過雙擊WinDLX圖標(biāo)象啟動(dòng)任何Windows應(yīng)用程序一樣,通過雙擊WinDLX圖標(biāo)啟動(dòng)WinDLX,將出現(xiàn)一個(gè)帶有六個(gè)圖標(biāo)的主窗口,雙擊這些圖標(biāo)將彈出子窗口。后面將解釋和介紹如何使用每一個(gè)窗口。為了初始化模擬器,點(diǎn)擊MZe菜單中的Resetall菜單項(xiàng),彈出一個(gè)“ResetDLX"對(duì)話框。然后點(diǎn)擊窗口中的“確認(rèn)”按鈕即可。WinDLX可以在多種配置下工作。你可以改變流水線的結(jié)構(gòu)和時(shí)間要求、存儲(chǔ)器大小和其他幾個(gè)控制模擬的參數(shù)。點(diǎn)擊Configuration/FloatingPointStages(點(diǎn)擊Configuration打開菜單,然后點(diǎn)擊FloatingPointStages菜單項(xiàng)),選擇如下標(biāo)準(zhǔn)配置:Count DelayCount Delay如果需要,可以通過點(diǎn)擊相應(yīng)區(qū)域來改變?cè)O(shè)置。然后,點(diǎn)擊OK返回主窗口。點(diǎn)擊Configuration/MemorySize,可以設(shè)置模擬處理器的存儲(chǔ)器大小。應(yīng)設(shè)置為0x8000,然后,點(diǎn)擊OK返回主窗口。在Configuration菜單中的其他三個(gè)配置也可以設(shè)置,它們是:Symbolicaddresses,AbsoluteCycleCount和EnableForwarding。點(diǎn)擊相應(yīng)菜單項(xiàng)后,在它的旁邊將顯示一個(gè)小鉤。2.裝載測(cè)試程序在開始模擬之前,至少應(yīng)裝入一個(gè)程序到主存。為此,選擇F7Ze/LoadCodeorData,窗口中會(huì)列出目錄中所有匯編程序。我們?cè)谇懊嬉呀?jīng)提到,facts計(jì)算一個(gè)整型值的階乘;inputs中包含一個(gè)子程序,它讀標(biāo)準(zhǔn)輸入(鍵盤)并將值存入DLX處理器的通用寄存器R1中。按如下步驟操作,可將這兩個(gè)文件裝入主存。?點(diǎn)擊fact.s?點(diǎn)擊select按鈕?點(diǎn)擊input.s?點(diǎn)擊select按鈕?點(diǎn)擊load按鈕選擇文件的順序很關(guān)鍵,它決定了文件在存儲(chǔ)器中出現(xiàn)的順序。對(duì)話框中會(huì)顯示信息“File(s)loadedsuccessfully.ResetDLX?”,點(diǎn)擊“是(Y)"按鈕確認(rèn)。這樣,文件就已被裝入到存儲(chǔ)器中了?,F(xiàn)在可以開始模擬工作了。3.模擬在主窗口中,你可以看見六個(gè)圖標(biāo),它們分別為“Register”,“Code”,“Pipeline”,“ClockCycleDiagran”,“Statistics”和“Breakpoints'。點(diǎn)擊其中任何一個(gè)將彈出一個(gè)新窗口(子窗口)。在模擬過程中將介紹每一個(gè)窗口的特性和用法。(1)Pipeline窗口我們首先來看一下DLX處理器的內(nèi)部結(jié)構(gòu)。為此,雙擊圖^標(biāo)Pipeline,出現(xiàn)一個(gè)子窗口,窗口中用圖表形示顯示了DLX的五段流水線。你應(yīng)盡可能地?cái)U(kuò)大此窗口,以便處于不同流水段的指令都能夠在圖表中顯示。此圖顯示dlx處理器的五個(gè)流水段和浮點(diǎn)操作(加/減乘和除)的單元。(2)Code窗口我們來看一下Code窗口。雙擊圖標(biāo),你將看到代表存儲(chǔ)器內(nèi)容的三欄信息,從左到右依次為:地址(符號(hào)或數(shù)字)、命令的十六進(jìn)制機(jī)器代碼和匯編命令。$TEXT0x20011000addir1,r0,0x1000main+0x40x0c00003cjalInputUnsigned現(xiàn)在,點(diǎn)擊主窗口中的Execution開始模擬。在出現(xiàn)的下拉式菜單中,點(diǎn)擊SingZeCycle或按F7鍵。這時(shí),窗口中帶有地址“$TEXT”的第一行變成黃色。按下F7鍵,模擬就向前執(zhí)行一步,第一行的顏色變成橘黃色,下一行變成黃色.。這些不同顏色指明命令處于流水線的哪一段。如果Pipeline窗口已經(jīng)關(guān)閉,請(qǐng)雙擊相應(yīng)圖標(biāo)重新打開它。如果窗口足夠大,你能夠看到命令“jalInputUnsigned”在IF段,“addir1,r0,0x1000"在第二段ID。其他方框中帶有一個(gè)“X”標(biāo)志,表明沒有處理有效信息。再次按下F7鍵,代碼窗口中的顏色會(huì)再改變,紅色表明命令處入第三段“intEX”。再按下F7,圖形顯示將變?yōu)椋涸诖a窗口中,黃色出現(xiàn)在更下面的位置,并且可能是唯一彩色行。查看一下Ppeline窗口,你會(huì)發(fā)現(xiàn)IF,IntEX和MEM段正在使用而ID段沒有。為什么?(3)ClockCycleDiagram窗口使所有子窗口圖標(biāo)化,然后打開CloMCycleDiagram窗口。它顯示流水線的時(shí)空?qǐng)D。在窗口中,你將看到模擬正在第四時(shí)鐘周期,第一條命令正在MEM段,第二條命令在intEX段,第四條命令在IF段。而第三條命令指示為"aborted"。其原因是:第二條命令(jal)是無條件分支指令,但只有在第三個(gè)時(shí)鐘周期,jal指令被譯碼后才知道,這時(shí),下一條命令movi2fp已經(jīng)取出,但需執(zhí)行的下一條命令在另一個(gè)地址處,因而,movi2fp的執(zhí)行應(yīng)被取消,在流水線中留下氣泡。jal的分支地址命名為"InputUnsigned"。為找到此符號(hào)地址的實(shí)際值,點(diǎn)擊主窗口中的臃加0口和Symbols,出現(xiàn)的子窗口中顯示相應(yīng)的符號(hào)和對(duì)應(yīng)的實(shí)際值。在"Sort:"區(qū)域選定"name",使它們按名稱排序,而不是按數(shù)值排序。數(shù)字后的"G"代表全局符號(hào),"L"代表局部符號(hào)。"input"中的"InputUnsigned"是一個(gè)全局符號(hào),它的實(shí)際值為0x144,用作地址。點(diǎn)擊OK按紐關(guān)閉窗口。再一次點(diǎn)擊F7,第一條命令(addi)到達(dá)流水線的最后一段。如果想了解某條命令執(zhí)行后處理器內(nèi)部會(huì)發(fā)生什么?你只要對(duì)準(zhǔn)Clockcyclediagram窗口中相應(yīng)命令所在行,然后雙擊它,彈出一個(gè)新窗口。窗口中會(huì)詳細(xì)顯示每一個(gè)流水段處理器內(nèi)部的執(zhí)行動(dòng)作。這個(gè)窗口"Informationabout..."作為將來的負(fù)/0rmaio〃窗口。觀察完后,點(diǎn)擊OK按鈕關(guān)閉窗口。雙擊第三行(movi2fp),你會(huì)看到它只執(zhí)行了第一段GF),這是因?yàn)槌霈F(xiàn)跳轉(zhuǎn)而被取消。(雙擊Code窗口中的某一行或者Pipeline窗口中的某一段,同樣可以Information窗口。)(4)Breakpoint窗口當(dāng)通過Code窗口觀察代碼時(shí)(如果未打開,雙擊圖標(biāo)Code),你會(huì)看到接下來的幾條指令幾近一樣,它們都是sw-操作:將寄存器中的數(shù)寫入存儲(chǔ)器中。重復(fù)按F7將很枯燥,因此,我們使用斷點(diǎn)加快此過程?,F(xiàn)在,請(qǐng)指向Code窗口中包含命令trap0x5的0x0000015c行,此命令是寫屏幕的系統(tǒng)調(diào)用。單擊命令行,然后點(diǎn)擊主窗口菜單Code,單擊SetBreakpoint(確保命令行仍被標(biāo)記!),將彈出一個(gè)新的"SetBreakpoint'窗口。通過此窗口,你可以選擇命令運(yùn)行到流水線的哪一階段時(shí),程序停止執(zhí)行。缺省為ID段。點(diǎn)擊OK關(guān)閉窗口。在Code窗口中,trap0x5行上出現(xiàn)了"BID",它表示當(dāng)本指令在譯碼段時(shí),程序中止執(zhí)行。如果想查看已定義的斷點(diǎn),你只要單擊圖標(biāo)Reakpoints,將彈出一個(gè)小窗口,其中顯示了所有斷點(diǎn)。重新使窗口圖標(biāo)化。現(xiàn)在你只要點(diǎn)擊EvecMion/Run或按F5,模擬就繼續(xù)運(yùn)行。會(huì)出現(xiàn)一個(gè)對(duì)話框提示你"ID-Stage:reachedatBreakpoint#1",按“確認(rèn)”按鈕關(guān)閉。點(diǎn)擊Cockcyclediagram窗口中的trap0x5行,你將看到模擬正處于時(shí)鐘周期14。trap0x5行如下所示:原因是:無論何時(shí)遇到一條trap指令時(shí),DLX處理器中的流水線將被清空。在Information窗口(雙擊trap行彈出)中,在IF段顯示消息"3stall(s)becauseofTrap-Pipeline-Clearing!"。(不要忘了按OK關(guān)閉窗口)。指令trap0x5已經(jīng)寫到屏幕上,你可以通過點(diǎn)擊主窗口菜單條上的Execute/DisplayDLXIO來查看。(5)Register窗口為進(jìn)一步模擬,點(diǎn)擊Code窗口,用箭頭鍵或鼠標(biāo)向下滾動(dòng)到地址為0x00000194的那一行(指令是lwr2,SaveR2(r0)),點(diǎn)擊此行,然后按Ins鍵,或點(diǎn)擊Code/SetBreakpoint/OK,在這一行上設(shè)置一個(gè)斷點(diǎn)。采用同樣的方法,在地址0x000001a4(指令jarr31)處設(shè)置斷點(diǎn)?,F(xiàn)在按/5繼續(xù)運(yùn)行。這時(shí),會(huì)彈出DXStandardlO窗口,在信息"Anintegervalue>1:"后鼠標(biāo)閃爍,鍵入20然后按Enter,模擬繼續(xù)運(yùn)行到斷點(diǎn)#2處。在Clockcyclediagram窗口中,在指令之間出現(xiàn)了紅和綠的箭頭。紅色箭頭表示需要一個(gè)暫停,箭頭指向處顯示了暫停的原因。R-Stall(R-暫停)表示引起暫停的原因是RAW。綠色箭頭表示定向技術(shù)的使用?,F(xiàn)在我們來看一下寄存器中的內(nèi)容。為此,雙擊主窗口中的Register圖標(biāo)。Register窗口會(huì)顯示各個(gè)寄存器中的內(nèi)容。看一下R1到R5的值。按F5使模擬繼續(xù)運(yùn)行到下一個(gè)斷點(diǎn)處,有些值將發(fā)生改變,指令lw從主存中取數(shù)到寄存器中。如果你希望不設(shè)置斷點(diǎn),而使模擬繼續(xù)進(jìn)行。辦法是:點(diǎn)擊Execute/MultipleCycles或者按F8鍵,在新出現(xiàn)的窗口中輸入17,然后按Enter鍵,模擬程序?qū)⒗^續(xù)運(yùn)行17個(gè)時(shí)鐘周期。向上滾動(dòng)CZockcyclediagram窗口,直到看到指令周期72到78。在EX段,兩個(gè)浮點(diǎn)操作(multdandsubd)分別在不同的部件上運(yùn)行,它們都需要多個(gè)周期才能結(jié)束。因而在它們之后的下一條指令能取指,譯碼和執(zhí)行,然后暫停一個(gè)周期以允許subd完成MEM段。⑹Statistic窗口最后我們來看一下fairtics窗口。按F5使程序完成執(zhí)行,出現(xiàn)消息"Trap#0occurred"表明最后一條指令trap0已經(jīng)執(zhí)行,Trap指令中編號(hào)“0"沒有定義,只是用來終止程序。雙擊圖標(biāo)StatisticsoStatistics窗口提供各個(gè)方面的信息:模擬中硬件配置情況、暫停及原因、條件分支、Load/Store指令、浮點(diǎn)指令和traps。窗口中給出事件發(fā)生的次數(shù)和百分比,如RAWstalls:17(7.91%ofallCycles)。在靜態(tài)窗口中我們可以比較一下不同配置對(duì)模擬的影響。現(xiàn)在我們看一看定向的作用。在前面的模擬過程中,我們采用了定向。如果不采用定向,執(zhí)行時(shí)間將會(huì)怎樣呢?我們先看一下Statistics窗口中的各種統(tǒng)計(jì)數(shù)字:總的周期數(shù)(215)和暫停數(shù)(17RAW,25Control,12Trap;54Total),然后關(guān)閉窗口。點(diǎn)擊Configuration中的EnableForwarding使定向無效(去掉小鉤),打開斷點(diǎn)Brea^oints圖標(biāo)并點(diǎn)擊Breakpoints菜單,刪除所
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 石河子大學(xué)《園林設(shè)計(jì)初步》2022-2023學(xué)年第一學(xué)期期末試卷
- 門衛(wèi)室施工組織設(shè)計(jì)方案
- 石河子大學(xué)《水利工程監(jiān)理》2023-2024學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《臨床技能學(xué)二》2021-2022學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《工業(yè)制劑綜合實(shí)驗(yàn)》2022-2023學(xué)年第一學(xué)期期末試卷
- 沈陽(yáng)理工大學(xué)《數(shù)字信號(hào)處理》2023-2024學(xué)年第一學(xué)期期末試卷
- 沈陽(yáng)理工大學(xué)《面向?qū)ο蟪绦蛟O(shè)計(jì)(C++)》2022-2023學(xué)年期末試卷
- 沈陽(yáng)理工大學(xué)《翻譯技能綜合訓(xùn)練》2022-2023學(xué)年第一學(xué)期期末試卷
- 沈陽(yáng)理工大學(xué)《車輛振動(dòng)與噪聲控制》2023-2024學(xué)年期末試卷
- 沈陽(yáng)理工大學(xué)《包裝設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024國(guó)機(jī)資本控股限公司招聘高頻考題難、易錯(cuò)點(diǎn)模擬試題(共500題)附帶答案詳解
- DB11-T854-2023占道作業(yè)交通安全設(shè)施設(shè)置技術(shù)要求
- DB32T 2618-2023 高速公路工程施工安全技術(shù)規(guī)范
- 2024年廣東省高中學(xué)業(yè)水平合格考語(yǔ)文試卷真題(含答案詳解)
- DPtech-FW1000系列防火墻系統(tǒng)操作手冊(cè)
- 自動(dòng)報(bào)警合同范本
- 電力專業(yè)數(shù)據(jù)傳輸(EPDT)通信系統(tǒng) 空中接口物理層及數(shù)據(jù)鏈路層技術(shù)規(guī)范 標(biāo)準(zhǔn)編制說明
- 五年級(jí)上冊(cè)小學(xué)高年級(jí)學(xué)生讀本第1講《偉大事業(yè)始于夢(mèng)想》說課稿
- 2024過敏性休克搶救指南(2024)課件干貨分享
- 天貓購(gòu)銷合同范本
- 大學(xué)生創(chuàng)業(yè)英語(yǔ)智慧樹知到期末考試答案章節(jié)答案2024年廣西師范大學(xué)
評(píng)論
0/150
提交評(píng)論