計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書_第1頁
計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書_第2頁
計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書_第3頁
計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書_第4頁
計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余16頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

目第1章WINDLX安裝及使 安 使用示 SimpleScalar簡 SimpleScalar安 SimpleScalar使 第3章實(shí)驗(yàn)內(nèi) CACHE性能分 第4章實(shí)驗(yàn)要 1WinDLXWinDLX處理器是Hennessy和Patterson合著的書《ComputerArchitecture-AWinDLXDLXWinDLXwindlx.exewindlx.hlp文件。同時(shí),還需要一些擴(kuò)展名為.s的匯編代 解壓WinDLX軟件包或拷貝所有的WinDLX文件(至少包含windlx.exe,windlx.hlp,fact.s和input.s)到這個(gè)WinDLX 階乘。需要用到文件input.s接收從鍵盤輸入的數(shù)。開始和配和啟動(dòng)任何Windows應(yīng)用程序一樣,通過雙擊WinDLX圖標(biāo)啟動(dòng)WinDLX,將出現(xiàn)一圖1WinDLX為了初始化模擬器,點(diǎn)擊File菜單中的Resetall菜單彈出一個(gè)“ResetDLX”小和其他幾個(gè)控制模擬的參數(shù)。點(diǎn)擊Configuration/FloatingPointStages(點(diǎn)擊Configuration打開菜單,然后點(diǎn)擊FloatingPointStages菜單項(xiàng)),選擇如下標(biāo)準(zhǔn)配置:Addition1215Division1如果需要,可以通過點(diǎn)擊相應(yīng)區(qū)域來改變?cè)O(shè)置。然后,點(diǎn)擊OK返回主窗口點(diǎn)擊Configuration/MemorySize,可以設(shè)置模擬處理器的器大小。應(yīng)設(shè)置為0x8000,然后,點(diǎn)擊OK返回主窗口。在Configuration菜單中的其他三個(gè)配置也可以設(shè)置,它們是:Symbolicaddresses,AbsoluteCycleCount和EnableForwarding。點(diǎn)擊相應(yīng)菜單項(xiàng)后,在它裝載測試程序File/LoadCodeorData,窗口中會(huì)列出 中所有匯編程序。fact.s是計(jì)算一個(gè)整型值的階乘;input.s中包含一個(gè)子程序,它讀標(biāo)準(zhǔn)輸入(鍵盤)并將值存入DLX處理器的通用寄存器R1中。按如下步驟操作可將這個(gè)文件入主存。select按點(diǎn)擊select點(diǎn)擊load選擇文件的順序很關(guān)鍵,它決定了文件在器中出現(xiàn)的順序??蛑袝?huì)顯示信息“File(s)loadedsuccessfully.ResetDLX?”,點(diǎn)擊“是(Y)”?!癈lockCycleDiagram”,“Statistics”和“Breakpoints”。點(diǎn)擊其中任何一個(gè)PipelineDLXPipelineDLX的五段流水線。盡可能地?cái)U(kuò)大此窗口,以便處于不同流水2圖2DLX此圖顯示DLXCode窗addijal雙擊圖標(biāo),將看到代表addijal點(diǎn)擊主窗口中的Execution開始模擬。在出現(xiàn)的下拉式菜單中,點(diǎn)擊SingleCycle或按F7鍵。這時(shí),窗口中帶有地址“$TEXT”的第一行變成黃色。按下F7鍵,模擬處于流水線的哪一段。如果Pipeline窗口已經(jīng)關(guān)閉,請(qǐng)雙擊相應(yīng)圖標(biāo)重新打開它。如ClockCycleDiagram使所有子窗口圖標(biāo)化,然后打開ClockCycleDiagram窗口。它顯示流水線的時(shí)空jal指令被譯碼后才知道,這時(shí),下jal的分支地址命名為"InputUnsigned"。為找到此符號(hào)地址的實(shí)際值,點(diǎn)擊主窗口中的Memory和Symbols,出現(xiàn)的子窗口中顯示相應(yīng)的符號(hào)和對(duì)應(yīng)的實(shí)際值。在"Sort:"L"代表局部符號(hào)。"input"中的"InputUnsigned"是一個(gè)全局符號(hào),它的實(shí)際值為0x144,用作地址。點(diǎn)擊OK按紐關(guān)閉窗口。再一次點(diǎn)擊動(dòng)作。這個(gè)窗口"InformationaboutInformation窗口。觀察完后,點(diǎn)擊OK按鈕關(guān)閉窗口。雙擊第三行(movi2fp),會(huì)看到它只執(zhí)行了第一段(IF)Breakpoint當(dāng)通過CodeCode),會(huì)看到接下來的幾指向Code窗口中包含命令trap0x5的0x 單擊命令行,然后點(diǎn)擊主窗口菜單Code,單擊SetBreakpoint(確令行仍被標(biāo)記!),到流水線的哪一階段時(shí),程序停止執(zhí)行。缺省為ID段。點(diǎn)擊OK關(guān)閉窗口。圖4SetBreakpoint窗在Code窗口中,trap0x5行上出現(xiàn)"BID"Reakpoints只要點(diǎn)擊Execution/Run或按F5,模擬就繼續(xù)運(yùn)行會(huì)出現(xiàn)一個(gè)框提示"ID-Stage:reachedatBreakpoint#1",按“確認(rèn)”按鈕關(guān)閉。點(diǎn)擊Clockcyclediagram窗口中的trap0x5行,將看到模擬正處于時(shí)鐘周期14。trap0x5行如下所示:(trap)IF"3stall(s)becauseofTrap-Pipeline-Clearing!"。(了按OK關(guān)閉窗口)。指令trap0x5已經(jīng)寫到屏幕上,可以通過點(diǎn)擊主窗口菜單條上的Execute/DisplayDLX-I/O來查看。Register為進(jìn)一步模擬,點(diǎn)擊Code窗口,用箭頭鍵或鼠標(biāo)向下滾動(dòng)到地址為0x 行(指令是lwr2,SaveR2(r0)),點(diǎn)擊此行,然后按Ins鍵,或點(diǎn)擊Code/SetBreakpoint/OK,在這一行上設(shè)置一個(gè)斷點(diǎn)。采用同樣的方法,在地址0x000001a4(指令jarr31)設(shè)置斷點(diǎn)?,F(xiàn)在按F5繼續(xù)運(yùn)行。這時(shí),會(huì)彈出DLX-Standard-I/O窗口,在信息"Anintegervalue>1:"后鼠標(biāo)閃爍,鍵入20然后按Enter,模擬繼續(xù)運(yùn)行到斷點(diǎn)#2處。在Clockcyclediagram窗口中,在指令之間出現(xiàn)了紅和綠的箭頭。紅色箭頭表示需要Register圖標(biāo)。Register窗口會(huì)顯示各個(gè)寄存器中的內(nèi)容??匆幌翿1到R5的值。按F5使F8鍵,在新出現(xiàn)的窗口中輸入17Enter鍵,模擬程序?qū)⒗^續(xù)運(yùn)行17期。向上滾動(dòng)Clockcyclediagram窗口,直到看到指令周期72到78。在EX段,兩個(gè)浮點(diǎn)操作(muandsubd)分別在不同的部件上運(yùn)行,它們都需要多個(gè)周期才能結(jié)束。因而在它們之后的下一條指令能取指,譯碼和執(zhí)行,然后暫停一個(gè)周期以允許subd完成MEM段。Statistics按F5使程序完成執(zhí)行,出現(xiàn)消息"Trap#0occurred"表明最后一條指令trap0已經(jīng)執(zhí)行,Trap指令中“0用來雙擊圖標(biāo)StatisticsStatistics窗Load/Store指令、浮點(diǎn)指令和traps。窗口中給出事件發(fā)生的次數(shù)和百分比,如RAWstalls:17(7.91%ofall看一下Statistics(21)(17AW,25Contrl,12Trp;54otl)Configuration中的EnableForwarding使定向無效(去掉小鉤),打開斷點(diǎn)Breakpoints圖標(biāo)并點(diǎn)擊Breakpoints菜單,刪除所有斷點(diǎn),然后按F520EnterTapRA7336(236/215=DLXforwardedDLXnotforwarded快9.8%2SimpleScalarSimpleScalar是為計(jì)算機(jī)系統(tǒng)性能及功耗分析、處理器微體系結(jié)構(gòu)建模、軟硬件協(xié)同驗(yàn)sim-outorder性能模擬器。SimpleScalarPISA,ARM,X86等指令集,可以運(yùn)行在大多數(shù)類UNIX平臺(tái)。sim-sim-sim-sim-sim-sim-sim-sim-SimpleScalar安目前SimpleScalar版本只能安裝運(yùn)行在大多UNIX平臺(tái)下邊的具體安裝過程以vmware(vmwareworkstation6)linuxSimpleScalar運(yùn)行環(huán)境。各安裝步驟涉及到的資源統(tǒng)一放置在:simplescalar實(shí)驗(yàn)所需資源下。在G盤 下建立simples ,將simplescalar實(shí)驗(yàn)所需資源/gaomxvm.rar解壓 注:如無G盤,可解壓在其它驅(qū)動(dòng)器中,并按(2)進(jìn)行;以下文檔均以G盤此 打開vmware工作站使用工具條中file/OpenG:\simples\gaomxvmRedHatLinux.vmx.圖2- vmware工作站中Linux虛擬機(jī) 嚴(yán)格按照上述各步驟,將虛擬機(jī)解壓 下首先選擇工作站工具條上VM菜單下的settings選項(xiàng),如圖2-22-2設(shè)置共享選中后彈出一個(gè)名為“VirtualMachineSettings2-3options設(shè)置,選中該設(shè)置,將其設(shè)置為“Alwaysenable”。2-32-4gaomxsimplesHoldforderG:\simples2-5Next,選擇置,如圖2-7,選中該設(shè)置,將其設(shè)置為“Alwaysenable”。圖2-5設(shè)置具 2-62- 虛擬機(jī)沒有按照上述步驟解壓,沒 對(duì) ,具體步驟請(qǐng)參考vmware “在windows下與linux虛擬機(jī)進(jìn)行文件共享.txt”中介紹方法。gaomxvm虛擬機(jī)中啟動(dòng)選項(xiàng),啟動(dòng)該虛擬機(jī)。此過程可能需要幾分鐘,請(qǐng)耐心等待。2-8是虛擬機(jī)啟動(dòng)后的界面。可以通過user:root,password:123456登錄該虛擬機(jī)。2-8虛擬機(jī)啟動(dòng)第六步:進(jìn)入SimpleScalar實(shí)驗(yàn)環(huán)境 ,這是一個(gè)SimpleScalar模擬器的總 在控制臺(tái)下root/simplescalar/ 下,通過命令:cd/mnt/hgfs看是否能進(jìn)入該 是否存在gaomxsimples共享 圖2-9測試共 CacheCacheCPU內(nèi)部,即使是于自己動(dòng)手進(jìn)行Cache性能分析,設(shè)計(jì)一系列有針對(duì)性的仿真實(shí)驗(yàn)是個(gè)很好的教學(xué)方法。SimpleScalarCachesim-cachesimcheetah,正是完成的系列仿真實(shí)驗(yàn)幫助學(xué)生更好的理解和掌握Cache技術(shù)。下面以基本配置情況下對(duì)Cache失效情況的統(tǒng)計(jì)分析為例,說明進(jìn)行Cache技術(shù)仿真實(shí)驗(yàn)中SimpleScalar的應(yīng)用。實(shí)驗(yàn)環(huán)境。SimpleScalar目前只能運(yùn)行于類UNIX平臺(tái),為了設(shè)置實(shí)驗(yàn)環(huán)境,我們使用了vmware(vmwareworkstation5)linuxSimpleScalar運(yùn)行環(huán)境。第二個(gè)步驟是選擇或編制測試程序。我們可以直接使用SimpleScalar上Benarks提供的一些經(jīng)過編譯的二進(jìn)制測試程序,也可以自己使用某種程序語言,例如C或匯編,編制一些器就可以直接使用了。第三個(gè)步驟就是使用sim-cache,并根據(jù)要求設(shè)置其運(yùn)行參數(shù)來模擬這個(gè)例子中使用的是用C編寫的打印“oWorldmynameisgaomx!”的測試程序。2-10sim-cache統(tǒng)計(jì)數(shù)據(jù)實(shí)例#include<stdio.h>{ oWorldmynameisgaomx!\n");return0;}在虛擬機(jī)控制臺(tái)環(huán)境下root下鍵入命令:cd/mnt/hgfs/gaomxsimples,進(jìn)入共享,查看剛剛保存的文件是否存在。如果存在,通過拷貝命令cpo.c/root/simplescalar/將其拷貝到/root/simplescalar/ 下。返回到/root/simplescalar/ 下,使用命令:./bin/sslittle-na-sstrix-gcco.c編譯該文件在/root/simplescalar/下生成a.out文件用o.c 第三步:使用sim-cache模擬該測試程序此時(shí),在/root/simplescalar/下,通過命令:./simplesim-3.0/sim-cachea.out就可以對(duì)測試2-12是測試后生成的具體統(tǒng)計(jì)數(shù)據(jù)。因?yàn)闆]有設(shè)置任何參數(shù),所以2-12模擬統(tǒng)計(jì)結(jié)果(只顯示了部分<<<<< - - - -默認(rèn)的是- L1用256*32/1024L2dtlb3驗(yàn)內(nèi)WinDLXSimpleScalar模擬器對(duì)流水線中的相關(guān)實(shí)驗(yàn)?zāi)康模河肳inDLX運(yùn)行程序structure_d.s,通過模擬找出存在資源相關(guān)的指令對(duì)以及導(dǎo)致資源相百分比;論述資源相關(guān)對(duì)CPU性能的影響,討論解決

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論