




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、電 子 科 技 大 學(xué)實(shí) 驗(yàn) 報(bào) 告學(xué)生姓名: 學(xué) 號(hào): 一、實(shí)驗(yàn)室名稱:計(jì)算機(jī)學(xué)院實(shí)驗(yàn)中心二、實(shí)驗(yàn)項(xiàng)目名稱:計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)課程實(shí)驗(yàn)三、實(shí)驗(yàn)原理:1. 由教師給出一個(gè)具有基本功能的Verilog HDL流水線源代碼;2. 學(xué)生完成下面3個(gè)方面的內(nèi)容:(1)自行設(shè)計(jì)匯編偽指令格式,完成一個(gè)能把自己的匯編指令轉(zhuǎn)換成流水線CPU能夠識(shí)別的二進(jìn)制指令的匯編器,實(shí)現(xiàn)語(yǔ)言不限;(2)自行設(shè)計(jì)能夠解決數(shù)據(jù)相關(guān)的機(jī)制并基于源代碼進(jìn)行擴(kuò)展;(3)自行設(shè)計(jì)能夠解決控制相關(guān)的機(jī)制并基于源代碼進(jìn)行擴(kuò)展。四、實(shí)驗(yàn)?zāi)康模簬椭鷮W(xué)生理解流水線的運(yùn)行機(jī)制和基于Verilog HDL硬件描述語(yǔ)言的實(shí)現(xiàn)技術(shù)。五、實(shí)驗(yàn)內(nèi)容:(一)
2、基本流水線分析1.1 認(rèn)真閱讀和理解源代碼,請(qǐng)?jiān)敿?xì)按要求回答每個(gè)問(wèn)題。1. 源代碼中文件是按什么樣的規(guī)律來(lái)組織的?答:按照子模塊組織源代碼文件。模塊pipelinedcpu_tb用來(lái)控制CPU的時(shí)鐘等信號(hào),調(diào)用pipelinedcpu模塊(假定為1級(jí)模塊,最高級(jí)),1級(jí)模塊中按順序調(diào)用各個(gè)周期以及周期與周期之間的中間寄存器模塊(假定為2級(jí)模塊),2級(jí)模塊中調(diào)用各自部件模塊(假定為3級(jí)模塊)。模塊pipelinedcpu用來(lái)控制每級(jí)流水線及流水線級(jí)之間的控制信號(hào),寄存器信息,其余子模塊用來(lái)具體實(shí)現(xiàn)每一級(jí)流水線的功能。2. 存儲(chǔ)器的實(shí)現(xiàn)方式?答:用一個(gè)二維數(shù)組reg 31:0 ram 0:31 實(shí)
3、現(xiàn),其中第一維代表32位地址,第二維代表32位數(shù)據(jù)接口有:32位輸入數(shù)據(jù)和輸出,32位地址,一個(gè)同步時(shí)鐘脈沖clk,一個(gè)控制寫(xiě)入的信號(hào)we先對(duì)二維數(shù)組進(jìn)行初始化讀數(shù)據(jù)時(shí)不需要時(shí)鐘脈沖的激勵(lì),寫(xiě)數(shù)據(jù)時(shí)需要時(shí)鐘脈沖的上升沿激勵(lì)信號(hào)并且we信號(hào)為13. 源代碼文件中的流水線與我們課堂上講的原理電路圖有何相同之處,有何不同之處答:相同:WB級(jí),寫(xiě)回級(jí)使用2路32位的多路選擇器來(lái)選擇是獲取ALU的計(jì)算結(jié)果還是LOAD指令從數(shù)據(jù)存儲(chǔ)器中讀取出來(lái)的數(shù)據(jù)。這里與課堂上所講的內(nèi)容基本相同。流水線都分為五個(gè)執(zhí)行級(jí),都是在譯碼級(jí)產(chǎn)生各種控制信號(hào),一級(jí)一級(jí)往后傳,分離的指令存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。各個(gè)部件以及邏輯都沒(méi)有太
4、大差異不同:源代碼文件中的流水線中的ALU部件的輸出接在一個(gè)兩路選擇器上,并且沒(méi)有zero輸出端,而課堂上的直接輸出到中間寄存器源代碼文件中沒(méi)有關(guān)于消除數(shù)據(jù)相關(guān)的代碼,而課堂上講的原理電路圖有消除數(shù)據(jù)相關(guān)的線路沒(méi)有數(shù)據(jù)前推和load前推的相關(guān)實(shí)現(xiàn),指令格式的區(qū)別,流水線alu運(yùn)算部件兩個(gè)端口都可以接受立即數(shù)。4. 通過(guò)分析,寫(xiě)出本流水線的控制信號(hào)有哪些?對(duì)比我們課堂上講的控制信號(hào)的差別有哪些?答:本實(shí)驗(yàn)的控制信號(hào)主要有:wreg、m2reg、wmem、jal、aluc、aluimm分別表示指令是否要寫(xiě)寄存器、信號(hào)是否有數(shù)據(jù)存儲(chǔ)器中的數(shù)據(jù)需要寫(xiě)回寄存器、是否有指令需要往數(shù)據(jù)存儲(chǔ)器中寫(xiě)數(shù)據(jù)、流水線
5、寄存器R是要寫(xiě)入ALU的運(yùn)算結(jié)果還是EPC的內(nèi)容、指令的操作類型,例如加、減、與、或。、ALU的B輸入端是否要選擇立即數(shù)輸入差別主要有:regrt信號(hào)控制目的寄存器是rd或rt,sext信號(hào)控制是否需要傳遞立即數(shù),wmem信號(hào)控制是否需要訪存,jal信號(hào)控制exe級(jí)和mem級(jí)之間是傳遞運(yùn)算結(jié)果還是立即數(shù),這些信號(hào)是課堂上的流水線沒(méi)有的。1.2 針對(duì)流水線的指令集,編寫(xiě)必要的測(cè)試指令,分析運(yùn)算結(jié)果,回答哪些指令的組合能由此流水線源代碼正確實(shí)現(xiàn),哪些指令的組合不能由此流水線源代碼正確實(shí)現(xiàn)。(要求在實(shí)驗(yàn)報(bào)告中寫(xiě)出所完成的測(cè)試指令的組合、每個(gè)組合的仿真過(guò)程及結(jié)果、每個(gè)過(guò)程和結(jié)果的必要分析。)(1)第一
6、組指令序列指令序列:add r2 r1 1add r2 r1 10add r1 r3 1add r1 r2 10add r2 r2 1add r2 r3 10sub r2 r1 r3截圖:結(jié)果分析:觀察三到九周期的ealu信號(hào)分別為(10,1,1,10,1,10,10),第九個(gè)周期的ealu為10,該周期執(zhí)行的指令是sub r2 r1 r3;可見(jiàn)第一條指令賦值r1=10;第二條指令賦值r2=1;所以最后一條指令sub r1 r1 r2執(zhí)行后結(jié)果為9,符合條件。當(dāng)有數(shù)據(jù)相關(guān)時(shí),就會(huì)出問(wèn)題,再觀察第五、六、七兩個(gè)周期,指令的執(zhí)行結(jié)果均為1。故該程序不能解決數(shù)據(jù)相關(guān)問(wèn)題。(二) 匯編器實(shí)現(xiàn)2.1自行
7、設(shè)計(jì)與所給出的流水線指令的匯編格式,在下表中寫(xiě)出。指令指令意義Op31:26Op2 25:2019:1514:109:54:0add寄存器加法00000000000100000rdrsrtadd rd rs rtsub寄存器減法00000000001000000rdrsrtsub rd rs rtmul寄存器乘法00000000001100000rdrsrtmul rd rs rtand寄存器與00000100000100000rdrsrtand rd rs rtor寄存器或00000100001000000rdrsrtor rd rs rtxor寄存器異或00000100010000000r
8、drsrtxor rd rs rtsra算術(shù)右移000010000001shiftrd00000rtsra rd rt shiftsrl邏輯右移000010000010shiftrd00000rtsrl rd rt shiftsll邏輯左移000010000011shiftrd00000rtsll rd rt shiftjreg寄存器跳轉(zhuǎn)0000100001000000000000rs00000jreg rsaddi立即數(shù)加法00010116位immediatersrtaddi rt rs immemuli立即數(shù)乘法00011116位immediatersrtmuli rt ts immean
9、di立即數(shù)與00100116位immediatersrtaddi rt rs immeori立即數(shù)或00101016位immediatersrtori rt rs immexori立即數(shù)異或00110016位immediatersrtxori rt rs immeload取整數(shù)數(shù)據(jù)字00110116位offsetrsrtload rt rs offsetstore存整數(shù)數(shù)據(jù)字00111016位offsetrsrtstore rt rs offsetbeq相等則跳轉(zhuǎn)00111116位offsetrsrtbeq rt rs offsetbne不相等則跳轉(zhuǎn)01000016位offsetrsrtbne
10、 rt rs offsetlui設(shè)置高位01000116位immediate00000rtlui rt immejump無(wú)條件跳轉(zhuǎn)01001026位addressjump addressjal子程序調(diào)用01001126位addressjal address2.2寫(xiě)出實(shí)現(xiàn)語(yǔ)言、主要數(shù)據(jù)結(jié)構(gòu)、主要功能模塊名字和功能、以必要的流程圖。代碼截圖:2.3給出匯編器的運(yùn)行界面(若有),寫(xiě)出所實(shí)現(xiàn)的匯編器的操作步驟及使用說(shuō)明,并自己設(shè)計(jì)并給出測(cè)試用例及運(yùn)行結(jié)果,使得所有指令均能自動(dòng)生成二進(jìn)制格式的指令。匯編器的使用步驟:(1)在程序目錄下的instruction.txt中輸入指令 (2)運(yùn)行程序。 (3)打
11、開(kāi)instruction.txt,發(fā)現(xiàn)在指令的下方依次出現(xiàn)了各條指令對(duì)應(yīng)的二進(jìn)制碼。測(cè)試截圖:(三) 數(shù)據(jù)相關(guān)分析及解決數(shù)據(jù)相關(guān)的分析(1)一般指令的數(shù)據(jù)相關(guān)分析rs2即第二源操作數(shù)可以是寄存器或者立即數(shù),但根據(jù)字符串解析可以區(qū)分出來(lái),因此這些指令都?xì)w為一類解決數(shù)據(jù)相關(guān)問(wèn)題。產(chǎn)生相關(guān)的條件: 如上圖所示,相鄰的兩條指令中,如果第二條指令的兩個(gè)源操作數(shù)寄存器與上一條指令的目的操作數(shù)寄存器相同,那么第二條指令在譯碼周期從寄存器堆中取源操作數(shù)值的時(shí)候,上一條指令還只在執(zhí)行周期,還沒(méi)有將最后結(jié)果寫(xiě)回到相應(yīng)的寄存器中,因此第二條指令取到的源操作數(shù)的值并不是最新的值,因此而產(chǎn)生了數(shù)據(jù)相關(guān)。解決方案: 如上
12、圖所示,在直接相鄰的兩條產(chǎn)生數(shù)據(jù)相關(guān)的指令之間插入三條空指令,這樣在第二條指令譯碼之前,第一條指令已經(jīng)將結(jié)果寫(xiě)回,第二條指令取到的源操作數(shù)的值是最新的值,數(shù)據(jù)相關(guān)就消除了。以上情況針對(duì)相鄰的兩條產(chǎn)生數(shù)據(jù)相關(guān)指令的分析,而對(duì)于中間隔了一條或兩條無(wú)數(shù)據(jù)相關(guān)指令的兩條指令產(chǎn)生了數(shù)據(jù)相關(guān),解決方案是分別插入兩條、一條空指令。(2)store和條件跳轉(zhuǎn)指令的數(shù)據(jù)相關(guān)分析及解決store和條件跳轉(zhuǎn)指令設(shè)計(jì)的格式:op + rs + rt + offset對(duì)于這兩條指令來(lái)說(shuō),rs和rs相當(dāng)于源操作數(shù),而它們沒(méi)有目的操作數(shù),因此在判斷一般指令的數(shù)據(jù)相關(guān)需要作另外特殊判斷。(3)jreg指令指令格式: op +
13、 rs沒(méi)有目的寄存器,且只有一個(gè)源操作數(shù),可以與條件跳轉(zhuǎn)指令歸為一類判斷。2. 數(shù)據(jù)相關(guān)的解決(1) 程序流程圖 上圖左邊部分就是匯編器實(shí)現(xiàn)部分的流程圖,在此基礎(chǔ)上進(jìn)行擴(kuò)展,即如箭頭所指方向,中間兩步替代為右邊部分。(2) 測(cè)試程序指令: xor r2, r2, r2 add r3, r2, r1xor r2, r2, r2 addi r1, r1, 20 addi r2, r2, 10 lui r1, 1翻譯結(jié)果: 如上圖所示,在產(chǎn)生數(shù)據(jù)相關(guān)的指令前插入了空指令“addi r0 r0 0”。在xilinx中的仿真結(jié)果:結(jié)果是正確的。(四) 控制相關(guān)分析及解決1. 控制相關(guān)分析在有跳轉(zhuǎn)指令時(shí),
14、倘若跳轉(zhuǎn)指令的操作數(shù)有寄存器,因此而產(chǎn)生的相關(guān)為數(shù)據(jù)相關(guān),在(三)中已經(jīng)解決,而控制相關(guān)指:跳轉(zhuǎn)指令只能在譯碼級(jí)被檢測(cè)出來(lái)并形成跳轉(zhuǎn)地址,而此時(shí)PC值已經(jīng)更新為跳轉(zhuǎn)指令的下一條指令的PC值,所以無(wú)論跳轉(zhuǎn)是否成功,該指令都會(huì)被執(zhí)行,跳轉(zhuǎn)不成功是沒(méi)問(wèn)題的,但是跳轉(zhuǎn)成功就產(chǎn)生了控制相關(guān)。所以在跳轉(zhuǎn)指令后加一條空指令就可以解決所有問(wèn)題。2. 控制相關(guān)解決程序中,只要在判斷完數(shù)據(jù)相關(guān)的時(shí)候,再判斷當(dāng)前指令是否是跳轉(zhuǎn)指令,如果是,則再翻譯一條空指令到文件,如果不是,則取下一條指令進(jìn)行同樣的數(shù)據(jù)相關(guān)及控制相關(guān)的操作。(1)在功能模塊clear_relation_and_translate的最后加一下代碼段:(2) 測(cè)試程序: (3) 結(jié)果分析:六、實(shí)驗(yàn)器材(設(shè)備、元器件):PCWindows 8
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 五年級(jí)下冊(cè)英語(yǔ)家長(zhǎng)輔導(dǎo)計(jì)劃
- 大象版小學(xué)五年級(jí)科學(xué)下冊(cè)教學(xué)計(jì)劃
- 2025綠色學(xué)校綠色供應(yīng)鏈管理計(jì)劃
- 2025年新能源公司人力資源部工作計(jì)劃
- 九年級(jí)道德法治課程教學(xué)安排計(jì)劃
- 部編人教版一年級(jí)數(shù)學(xué)上冊(cè)課外輔導(dǎo)計(jì)劃
- 華師大版九年級(jí)數(shù)學(xué)下冊(cè)線上教學(xué)計(jì)劃
- 2025年角質(zhì)溶解藥項(xiàng)目發(fā)展計(jì)劃
- 2025年幼兒園教師考核計(jì)劃
- 送教上門智能教學(xué)應(yīng)用計(jì)劃
- 2025年天津市中考?xì)v史試卷(含答案)
- 2025秋初升高銜接新高一物理模擬卷-分班模擬卷(五)
- 2024年上海高中學(xué)業(yè)水平合格性考試歷史試卷真題(含答案)
- 2025年人教版七年級(jí)數(shù)學(xué)下冊(cè)期末測(cè)試卷
- 公司年終答謝宴策劃方案
- 小學(xué)一年級(jí)數(shù)學(xué)下冊(cè)應(yīng)用題100道
- 安徽省馬鞍山市2023-2024學(xué)年高一下學(xué)期期末教學(xué)質(zhì)量監(jiān)測(cè)化學(xué)試卷(含解析)
- 反詐騙(企業(yè)員工)講座培訓(xùn)課件
- T/CBMCA 019-2021醫(yī)用潔凈室裝飾材料技術(shù)標(biāo)準(zhǔn)
- 2025-2030中國(guó)微晶纖維素市場(chǎng)深度評(píng)估與需求潛力分析研究報(bào)告
- 2025年社會(huì)調(diào)查方法與實(shí)踐考試試題及答案
評(píng)論
0/150
提交評(píng)論