版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、計算機組成原理與接口技術(shù)實驗 計算機組成原理與接口技術(shù)實驗實驗報告學(xué)院名稱:數(shù)據(jù)科學(xué)與計算機學(xué)院學(xué)生姓名:劉恩碩學(xué)號:14332014專業(yè)(班級):14軟件工程五(國)班合作者:羅宇森時間:2016年4月25日成績:實驗二: 單周期CPU設(shè)計 一. 實驗?zāi)康?1) 掌握單周期CPU數(shù)據(jù)通路圖的構(gòu)成、原理及其設(shè)計方法;(2) 掌握單周期CPU的實現(xiàn)方法,代碼實現(xiàn)方法;(3) 認識和掌握指令與CPU的關(guān)系;(4) 掌握測試單周期CPU的方法。二. 實驗內(nèi)容 設(shè)計一個單周期CPU,該CPU至少能實現(xiàn)以下指令功能操作。需設(shè)計的指令與格式如下:= 算術(shù)運算指令(1)add rd , rs, rt (說明
2、:以助記符表示,是匯編指令;以代碼表示,是機器指令)000000rs(5位)rt(5位)rd(5位)reserved功能:rdrs + rt。reserved為預(yù)留部分,即未用,一般填“0”。(2)addi rt , rs ,immediate 000001rs(5位)rt(5位)immediate(16位)功能:rtrs + (sign-extend)immediate;immediate符號擴展再參加“加”運算。 (3)sub rd , rs , rt000010rs(5位)rt(5位)rd(5位)reserved完成功能:rdrs - rt = 邏輯運算指令(4)ori rt , rs
3、,immediate 010000rs(5位)rt(5位)immediate(16位)功能:rtrs | (zero-extend)immediate;immediate做“0”擴展再參加“或”運算。(5)and rd , rs , rt010001rs(5位)rt(5位)rd(5位)reserved功能:rdrs & rt;邏輯與運算。 (6)or rd , rs , rt010010rs(5位)rt(5位)rd(5位)reserved功能:rdrs | rt;邏輯或運算。 = 傳送指令 (7)move rd , rs 100000rs(5位)00000rd(5位)reserved功能:rd
4、rs + $0 ;$0=$zero=0。= 存儲器讀/寫指令(8)sw rt ,immediate(rs) 寫存儲器100110rs(5位)rt(5位)immediate(16位) 功能:memoryrs+ (sign-extend)immediatert;immediate符號擴展再相加。(9) lw rt , immediate(rs) 讀存儲器100111rs(5位)rt(5位)immediate(16位)功能:rt memoryrs + (sign-extend)immediate;immediate符號擴展再相加。 = 分支指令 (10)beq rs,rt,immediate 110
5、000rs(5位)rt(5位)immediate(位移量,16位)功能:if(rs=rt) pcpc + 4 + (sign-extend)immediate 停機指令(11)halt 11111100000000000000000000000000(26位)功能:停機;不改變PC的值,PC保持不變。三. 實驗原理 單周期CPU指的是一條指令的執(zhí)行在一個時鐘周期內(nèi)完成,然后開始下一條指令的執(zhí)行,即一條指令用一個時鐘周期完成。電平從低到高變化的瞬間稱為時鐘上升沿,兩個相鄰時鐘上升沿之間的時間間隔稱為一個時鐘周期。時鐘周期一般也稱振蕩周期(如果晶振的輸出沒有經(jīng)過分頻就直接作為CPU的工作時鐘,則時
6、鐘周期就等于振蕩周期。若振蕩周期經(jīng)二分頻后形成時鐘脈沖信號作為CPU的工作時鐘,這樣,時鐘周期就是振蕩周期的兩倍。) CPU在處理指令時,一般需要經(jīng)過以下幾個步驟: (1) 取指令(IF):根據(jù)程序計數(shù)器PC中的指令地址,從存儲器中取出一條指令,同時,PC根據(jù)指令字長度自動遞增產(chǎn)生下一條指令所需要的指令地址,但遇到“地址轉(zhuǎn)移”指令時,則控制器把“轉(zhuǎn)移地址”送入PC,當(dāng)然得到的“地址”需要做些變換才送入PC。 (2) 指令譯碼(ID):對取指令操作中得到的指令進行分析并譯碼,確定這條指令需要完成的操作,從而產(chǎn)生相應(yīng)的操作控制信號,用于驅(qū)動執(zhí)行狀態(tài)中的各種操作。 (3) 指令執(zhí)行(EXE):根據(jù)指
7、令譯碼得到的操作控制信號,具體地執(zhí)行指令動作,然后轉(zhuǎn)移到結(jié)果寫回狀態(tài)。 (4) 存儲器訪問(MEM):所有需要訪問存儲器的操作都將在這個步驟中執(zhí)行,該步驟給出存儲器的數(shù)據(jù)地址,把數(shù)據(jù)寫入到存儲器中數(shù)據(jù)地址所指定的存儲單元或者從存儲器中得到數(shù)據(jù)地址單元中的數(shù)據(jù)。 (5) 結(jié)果寫回(WB):指令執(zhí)行的結(jié)果或者訪問存儲器中得到的數(shù)據(jù)寫回相應(yīng)的目的寄存器中。 單周期CPU,是在一個時鐘周期內(nèi)完成這五個階段的處理。取指令I(lǐng)F指令譯碼ID指令執(zhí)行EXE存儲器訪問MEM結(jié)果寫回WB圖1 單周期CPU指令處理過程MIPS32的指令的三種格式:R類型:31 26 25 21 20 16 15 11 10 6 5
8、 0oprsrtrdsafunc 6位 5位 5位 5位 5位 6位I類型:31 26 25 21 20 16 15 0oprsrtimmediate6位 5位 5位 16位J類型:31 26 25 0opaddress6位 26位其中,op:為操作碼;rs:為第1個源操作數(shù)寄存器,寄存器地址(編號)是0000011111,001F;rt:為第2個源操作數(shù)寄存器,或目的操作數(shù)寄存器,寄存器地址(同上);rd:為目的操作數(shù)寄存器,寄存器地址(同上);sa:為位移量(shift amt),移位指令用于指定移多少位;func:為功能碼,在寄存器類型指令中(R類型)用來指定指令的功能;immediat
9、e:為16位立即數(shù),用作無符號的邏輯操作數(shù)、有符號的算術(shù)操作數(shù)、數(shù)據(jù)加載(Laod)/數(shù)據(jù)保存(Store)指令的數(shù)據(jù)地址字節(jié)偏移量和分支指令中相對程序計數(shù)器(PC)的有符號偏移量; address:為地址。圖2 單周期CPU數(shù)據(jù)通路和控制線路圖圖2是一個簡單的基本上能夠在單周期上完成所要求設(shè)計的指令功能的數(shù)據(jù)通路和必要的控制線路圖。其中指令和數(shù)據(jù)各存儲在不同存儲器中,即有指令存儲器和數(shù)據(jù)存儲器。訪問存儲器時,先給出地址,然后由讀/寫信號控制(1-寫,0-讀。當(dāng)然,也可以由時鐘信號控制,但必須在圖上標(biāo)出)。對于寄存器組,讀操作時,先給出地址,輸出端就直接輸出相應(yīng)數(shù)據(jù);而在寫操作時,在 WE使能
10、信號為1時,在時鐘邊沿觸發(fā)寫入。圖中控制信號作用如表1所示,表2是ALU運算功能表。表1 控制信號的作用控制信號名狀態(tài)“0”狀態(tài)“1”PCWrePC不更改,相關(guān)指令:haltPC更改,相關(guān)指令:除指令halt外ALUSrcB來自寄存器堆data2輸出,相關(guān)指令:add、sub、or、and、move、beq來自sign或zero擴展的立即數(shù),相關(guān)指令:ori、sw、lwALUM2Reg來自ALU運算結(jié)果的輸出,相關(guān)指令:add、sub、ori、or、and、move來自數(shù)據(jù)存儲器(Data MEM)的輸出,相關(guān)指令:lwRegWre無寫寄存器組寄存器,相關(guān)指令:sw、halt寄存器組寫使能,相
11、關(guān)指令:add、sub、ori、or、and、move、lwInsMemRW讀指令存儲器(Ins. Data),初始化為0寫指令存儲器DataMemRW讀數(shù)據(jù)存儲器,相關(guān)指令:lw寫數(shù)據(jù)存儲器,相關(guān)指令:swExtSel相關(guān)指令:ori,(zero-extend)immediate(0擴展)相關(guān)指令:sw、lw、beq,(sign-extend)immediate(符號擴展)PCSrcPCPC+4,相關(guān)指令:add、sub、ori、or、and、move、sw、lw、beq(zero=0)PCPC+4+(sign-extend)immediate,同時zero=1,相關(guān)指令:beqRegOut
12、寫寄存器組寄存器的地址,來自rt字段,相關(guān)指令:ori、lw寫寄存器組寄存器的地址,來自rd字段,相關(guān)指令:add、sub、and、or、moveALUOp2.0ALU 8種運算功能選擇(000-111),看功能表相關(guān)部件及引腳說明:Instruction Memory:指令存儲器, Iaddr,指令存儲器地址輸入端口 IDataIn,指令存儲器數(shù)據(jù)輸入端口(指令代碼輸入端口) IDataOut,指令存儲器數(shù)據(jù)輸出端口(指令代碼輸出端口) RW,指令存儲器讀寫控制信號,為1寫,為0讀Data Memory:數(shù)據(jù)存儲器, Daddr,數(shù)據(jù)存儲器地址輸入端口 DataIn,數(shù)據(jù)存儲器數(shù)據(jù)輸入端口
13、DataOut,數(shù)據(jù)存儲器數(shù)據(jù)輸出端口 RW,數(shù)據(jù)存儲器讀寫控制信號,為1寫,為0讀Register File:(寄存器組) Read Reg1,rs寄存器地址輸入端口 Read Reg2,rt寄存器地址輸入端口 Write Reg,將數(shù)據(jù)寫入的寄存器端口,其地址來源rt或rd字段 Write Data,寫入寄存器的數(shù)據(jù)輸入端口 Read Data1,rs寄存器數(shù)據(jù)輸出端口 Read Data2,rt寄存器數(shù)據(jù)輸出端口 WE,寫使能信號,為1時,在時鐘上升沿寫入ALU: result,ALU運算結(jié)果 zero,運算結(jié)果標(biāo)志,結(jié)果為0輸出1,否則輸出0表2 ALU運算功能表 ALUOp2.0功能
14、描述000A + B加001A B減010B A減011A B或100A B與101/A BA非與B110A B異或111A B同或需要說明的是根據(jù)要實現(xiàn)的指令功能要求畫出以上數(shù)據(jù)通路圖,和確定ALU的運算功能(當(dāng)然,以上指令沒有完全用到提供的ALU所有功能,但至少必須能實現(xiàn)以上指令功能操作)。從數(shù)據(jù)通路圖上可以看出控制單元部分需要產(chǎn)生各種控制信號,當(dāng)然,也有些信號必須要傳送給控制單元。從指令功能要求和數(shù)據(jù)通路圖的關(guān)系得出以上表1,這樣,從表1可以看出各控制信號與相應(yīng)指令之間的相互關(guān)系,根據(jù)這種關(guān)系就可以得出控制信號與指令之間的關(guān)系表(留給學(xué)生完成),再根據(jù)關(guān)系表可以寫出各控制信號的邏輯表達式
15、,這樣控制單元部分就可實現(xiàn)了。指令執(zhí)行的結(jié)果總是在下個時鐘到來前開始保存到寄存器、或存儲器中,PC的改變也是在這個時候進行。另外,值得注意的問題,設(shè)計時,用模塊化的思想方法設(shè)計,關(guān)于ALU設(shè)計、存儲器設(shè)計、寄存器組設(shè)計等等,也是必須認真考慮的問題。可以參考其他資料文檔,里面有相應(yīng)的設(shè)計方法介紹。(資料文檔:MIPS匯編與單周期CPU.ppt)。四. 實驗器材電腦一臺、Xilinx ISE 軟件一套。五. 實驗分析與設(shè)計(1)初步規(guī)劃出實驗流程:根據(jù)cpu數(shù)據(jù)通路和控制線路圖決定要寫多少個模塊寫子模塊用主模塊把子模塊連接起來寫測試文件設(shè)計一段匯編程序輸入二進制測試(2) 進一步設(shè)計:根據(jù)通路圖決
16、定寫11個子模塊,分別是PC,PC+4,PC+立即數(shù),指令寄存器,數(shù)據(jù)儲存,寄存器模塊,控制模塊,選擇模塊,符號擴展, 算術(shù)邏輯單元子模塊分別命名為pc,pcAddFour, pcAddImm,ROM, RAM,regfile,ControlUnit, dataSelect_5_Bit, dataSelect_32_Bit, signExtend, ALU指令由ROM讀取到mem中。a)把decode傳到控制模塊ControlUnit中,然后根據(jù)傳入的六位操作碼和zero給控制信號賦值;(兩個輸入)(其中一個控制信號)b)把rs、rt、rd傳到寄存器模塊regfile中,從寄存器組中取rs、r
17、t值傳出,得出結(jié)果可能還要寫回rt、rd;(這里由RegWre控制是否寫)c)把立即數(shù)傳到符號擴展模塊signExtend中,把16位即數(shù)擴展成32位,得出結(jié)果傳選擇模塊和PC+立即數(shù)模塊。(在這里進行左移)ALU通過傳入的ALUop決定計算類型,對傳入的數(shù)據(jù)(A、B)進行運算。ControlUnit通過PCSrc決定下個PC是PC4還是PC4+偏移量RAM從內(nèi)存中讀取數(shù)據(jù)或者把數(shù)據(jù)寫內(nèi)存。(3)每個模塊的具體代碼 (3) 測試代碼/addi $1, $0, 8000001 00000 00001 0000000000001000/addi $2, $0, 16000001 00000 000
18、10 00000000000100000/sw $2, 0($2)000111 00010 00010 0000000000000000/add $3, $2, $1000000 00010 00001 00011 00000000000/sub $3, $3, $1000010 00011 00001 00011 00000000000/beq $2, $3, -2001001 00010 00011 1111111111111110/ori $1, $1, 4000011 00001 00001 0000000000000100/or $3, $2, $1000101 00010 00001 00011 00000000000/move $3, $2000110 00010 00000 00011 00000000000/beq $2, $3, 2001001 00010 00011 0000000000000010/lw $4, 0($2)001000 00010 00100 0000000000000000/ha
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 剩余車位買賣合同范例
- 凈化車間保養(yǎng)合同范例
- 工程貸款合同范例
- 店鋪門面租賃合同范例
- 士官整頓總結(jié)
- 銷售誓師大會銷售經(jīng)理發(fā)言稿
- 平臺加入合同范例
- 賓館團購蛋糕合同范例
- 供貨協(xié)議結(jié)算合同范例
- 服裝銷售工作總結(jié)
- 2024年光纜敷設(shè)及維護合同
- 2024-2025學(xué)年高中地理第四章自然環(huán)境對人類活動的影響2全球氣候變化對人類活動的影響達標(biāo)訓(xùn)練含解析中圖版必修1
- (新課標(biāo)新教材)2024秋新人教版數(shù)學(xué)小學(xué)一年級上冊數(shù)學(xué)第 四單元第1課時《10的再認識》說課稿
- JJF 2159-2024零氣發(fā)生器校準(zhǔn)規(guī)范
- 海底探測用自動潛航器相關(guān)項目實施方案
- 期中檢測卷(試題)-2024-2025學(xué)年統(tǒng)編版二年級語文上冊
- 2024年江蘇省氣象系統(tǒng)事業(yè)單位招聘61人歷年高頻難、易錯點500題模擬試題附帶答案詳解
- 2024年《中華人民共和國監(jiān)察法》知識測試題庫及答案
- Unit 2 Hobbies Welcome to the unit 教學(xué)設(shè)計2024-2025學(xué)年牛津譯林版英語七年級上冊
- GB/T 19964-2024光伏發(fā)電站接入電力系統(tǒng)技術(shù)規(guī)定
- 巴金《家》簡介課件
評論
0/150
提交評論