組成原理課程設(shè)計發(fā)布5段流水線_第1頁
組成原理課程設(shè)計發(fā)布5段流水線_第2頁
組成原理課程設(shè)計發(fā)布5段流水線_第3頁
組成原理課程設(shè)計發(fā)布5段流水線_第4頁
組成原理課程設(shè)計發(fā)布5段流水線_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

五段流水CPU設(shè)計譚志虎2015-3

-2--3-本章主要內(nèi)容課程設(shè)計任務(wù)課程設(shè)計實驗環(huán)境課程設(shè)計進(jìn)度安排課程設(shè)計評定課程設(shè)計路線圖-4-課程設(shè)計任務(wù)在logisim平臺或FPGA開發(fā)板設(shè)計一款支持特定指令系統(tǒng)的5段流水CPU,可運(yùn)行數(shù)據(jù)相關(guān),分支相關(guān)的測試程序。支持20條基本指令支持5段流水機(jī)制,可處理數(shù)據(jù)冒險,結(jié)構(gòu)冒險,分支冒險;能運(yùn)行自己編寫的測試程序,測試程序應(yīng)能涵蓋所有指令,程序執(zhí)行功能正確。能運(yùn)行教師提供的標(biāo)準(zhǔn)測試程序。具有自動統(tǒng)計功能,自動統(tǒng)計執(zhí)行周期,不同冒險沖突次數(shù),動態(tài)預(yù)測成功次數(shù)。-5-課程設(shè)計實驗環(huán)境Logisim后續(xù)路線圖均以logisim為例FPGA開發(fā)板鼓勵方案,同等目標(biāo)增加15分-6-進(jìn)度安排課程設(shè)計的總體時間為2周,具體安排如下:第1天:到實驗室布置任務(wù)和集中講解。第1~3天:學(xué)生查閱資料,開始方案設(shè)計。第4天:中期進(jìn)度檢查,單周期CPU驗收檢查。第6天:中期進(jìn)度檢查,理想流水線多周期CPU驗收檢查第10天:最終結(jié)果驗收。-7-課程設(shè)計評定評定成績根據(jù)考核、課程設(shè)計的過程、課程設(shè)計的效果、課程設(shè)計報告的質(zhì)量等幾部分組成;評分標(biāo)準(zhǔn)為設(shè)計過程和結(jié)果占70%(含考勤),報告部分占30%;對基本功能進(jìn)行擴(kuò)展或設(shè)計具有非常鮮明的特征和一定程度的創(chuàng)新,可根據(jù)實際情況加分。-8-設(shè)計成果評分完成單周期CPU設(shè)計與實現(xiàn),測試程序運(yùn)行正確:40分完成理想流水線的多周期CPU,測試程序運(yùn)行正確:50分完成插入氣泡式的冒險處理,測試程序運(yùn)行正確:55分完成數(shù)據(jù)轉(zhuǎn)發(fā)方式的數(shù)據(jù)冒險處理,測試程序運(yùn)行正確:60分完成動態(tài)預(yù)測方式的分支冒險處理,測試程序運(yùn)行正確:70分完成特色功能擴(kuò)展的,根據(jù)實際情況酌情加分同等目標(biāo)FPGA方案加15分,總分不超過70分1班:秦磊華教授2班:譚志虎副教授3班:胡迪青副教授ACM班:吳非副教授-9-課程設(shè)計報告要求報告規(guī)范,清楚表述設(shè)計思想、設(shè)計思路、設(shè)計過程、設(shè)計結(jié)果,文檔資料完整,書寫和畫圖規(guī)范:30分滿足課程設(shè)計報告格式要求,能較清楚表述設(shè)計思想、設(shè)計思路、設(shè)計過程、設(shè)計結(jié)果,文檔資料較完整,書寫和畫圖較規(guī)范:20分課程設(shè)計報告不規(guī)范,內(nèi)容不完整,不能體現(xiàn)課程設(shè)計原理、方法和自己所做的工作:10分課程設(shè)計報告嚴(yán)重不規(guī)范、內(nèi)容空洞,完全不能體現(xiàn)課程設(shè)計的內(nèi)容、書寫潦草:5分課程設(shè)計報告抄襲或被抄襲

0分-10-課程設(shè)計紀(jì)律要求

獨(dú)立完成,抄襲,被抄襲同等待遇嚴(yán)格考勤周一~周五8:00-11:3014:00-17:30遲到,早退按缺勤處理驗收完成之前僅允許4次缺勤無需請假每日提交工作進(jìn)度通過金山快盤協(xié)作填寫表格每日24:00之前必須提交當(dāng)日進(jìn)度,未提交按缺勤處理每日記錄當(dāng)日故障,解決方法(課設(shè)報告中),否則不驗收在線交流平臺tower

-11-課程設(shè)計路線圖構(gòu)建單周期CPU可支持理想流水線多周期CPU增加流水沖突檢測器增加流水沖突處理機(jī)制氣泡機(jī)制數(shù)據(jù)重定向分支預(yù)測指令格式#指令15~1211~109~87~65~32~0指令指令功能1or0rsrtrd00or$rd=$rs|$rt(5~3位無用)2and0rsrtrd01and$rd=$rs&$rt3add0rsrtrd02add$rd=$rs+$rt4sub0rsrtrd03sub$rd=$rs-$rt5sllv0rsrtrd04sllv$rd=$rs<<$rt6srlv0rsrtrd05srlv$rd=$rs>>$rt7srav0rsrtrd06srav$rd=$rs>>$rt算術(shù)右移8slt0rsrtrd07slt$rd=($rs<$rt)?1:09DISP1rsrtimmediate-uDISPDISP[imm]=$rs10lui20rtimmediate-ului$rt=imm<<811ori3rsrtimmediate-uori$rt=$rs|imm12andi4rsrtimmediate-uandi$rt=$rs&imm13addi5rsrtimmediate-saddi$rt=$rs+imm14lw6rsrtimmediate-slw$rt=MEM[$rs+imm]15sw7rsrtimmediate-sswMEM[$rs+imm]=$rt16beq8rsrtoffset-sbeqbeq=?17bne9rsrtoffset-sbnebne!=?18bgt10rsrtoffset-sbgtbgt>?19jump11jumpaddressjumpjump20halt120halthalt(時鐘暫停)-13-單周期CPU設(shè)計一般路線圖構(gòu)建主要功能部件PC指令存儲器IM寄存器堆RF運(yùn)算器ALU數(shù)據(jù)存儲器DM地址轉(zhuǎn)移邏輯NPC控制器logisim中選用適當(dāng)部件完成前5個部件構(gòu)造第一條指令選取最簡單的R型指令按指令功能構(gòu)建數(shù)據(jù)通路,控制信號logisim中連接,測試通過增加其他指令,修改增加線路,逐條調(diào)試跳轉(zhuǎn)到上一步,直到所有指令設(shè)計完成。主要功能部件,封裝實現(xiàn)-15-指令存儲器AddrData寄存器堆ReadReg1#WriteReg#ReadReg2#Reg1Reg2Writedata數(shù)據(jù)存儲器AddrReadDataWriteData格式解析IRsRtRdPCABZALU構(gòu)建主要功能部件PC指令存儲器IM寄存器堆RF運(yùn)算器ALU數(shù)據(jù)存儲器DM具體封裝實現(xiàn),考慮清楚具體控制信號,輸入輸出

考慮后續(xù)流水線布局,功能部件封裝尺寸不能過大add$rd,$rs,$rt$rd=$rs+$rt-16-指令存儲器AddrData寄存器堆ReadReg1#WriteReg#ReadReg2#Reg1Reg2Writedata數(shù)據(jù)存儲器AddrReadDataWriteData格式解析IRsRtRdPCABZALUaddi$rt,$rs,12$rt=$rs+12-17-指令存儲器AddrData寄存器堆ReadReg1#WriteReg#ReadReg2#Reg1Reg2Writedata數(shù)據(jù)存儲器AddrReadDataWriteData格式解析IRsRtRdIMMPCABZALU擴(kuò)展器10OMUX01OMUXLw$r0,1($r1)$r0=Mem[($r1)+1]-18-指令存儲器AddrData寄存器堆ReadReg1#WriteReg#ReadReg2#Reg1Reg2Writedata數(shù)據(jù)存儲器AddrReadDataWriteData格式解析IRRsRtRdIMMPCABZALU01OMUX擴(kuò)展器01OMUX10OMUX轉(zhuǎn)移部件PCNPCoffset設(shè)計基本步驟封裝主要功能部件

構(gòu)建基本數(shù)據(jù)通路

編寫測試程序,熟悉匯編器調(diào)試R型指令

調(diào)試I型指令

調(diào)試J型指令

封裝控制器

測試標(biāo)準(zhǔn)測試程序

-19-完整單周期MIPS處理器示意圖-20-注意事項本課程設(shè)計的內(nèi)容基本無法在一本書里面弄清楚,建議大家閱讀參考文獻(xiàn)。在實現(xiàn)CPU時,你可以使用任何logisim內(nèi)建的電路組件指令ROM和數(shù)據(jù)RAM必須在main電路中可見,不能封裝在子電路中。顯示模塊應(yīng)該在主電路中可見。寄存器也應(yīng)該想辦法在主電路中可監(jiān)測。主要部件之間還是需要適當(dāng)連線,隧道工具不能過度使用,要能看清楚各部件之間的連接關(guān)系。-21-注意事項盡可能的使用標(biāo)簽工具去注釋你的電路,包括控制信號,數(shù)據(jù)通路,顯示模塊,總線等,這會讓你的電路更加容易調(diào)試!注意標(biāo)簽以及注釋的命名規(guī)范,過長的命名都會對后續(xù)的畫圖連接造成影響。Logisim中可以將不同的模塊用不同的顏色區(qū)分,建議用顏色區(qū)分各接口部件和關(guān)鍵模塊。接口部件封裝盡可能封裝的長一點(diǎn),否則控制線多了以后可能不方便布線。-22-注意事項PC,IR最好一直傳遞到最后一級,這樣方便觀測流水線運(yùn)行的狀況。流水線各級是否產(chǎn)生氣泡可以用LED指示燈顯示,方便觀察流水線運(yùn)行狀況。各里程碑版本經(jīng)過充分測試后,備份后再開新的分支進(jìn)行新的開發(fā),以避免新版本無法開發(fā)成功,老版本又檢查不了的悲劇。-23-方案不是唯一的,相信自己的方案是最好的!目標(biāo)要定在打通關(guān),這樣結(jié)果才會是最好的!-24-理想流水線所有對象均通過同樣的部件(階段)不同階段之間無共享資源各段傳輸延遲一致(取最慢的同步)進(jìn)入流水線的對象不受其他階段的影響適合工業(yè)流水線,指令處理不適合(相關(guān)性大)綠色部件為各段間接口,各段間通過接口傳遞什么?待加工的數(shù)據(jù)(處理什么)控制數(shù)據(jù)加工的控制信號、反饋信號(如何處理)否則后段無法對數(shù)據(jù)進(jìn)行處理-25-IDEXMEMWBIF可支持理想流水線的多周期CPU消除通路中結(jié)構(gòu)相關(guān)指令數(shù)據(jù)存儲器分離寄存器堆寫入和讀出過程分離(先寫后讀,下跳沿寫)將指令過程分成5個階段IFIDEXMEMWB不同階段之間設(shè)置緩沖接口部件構(gòu)建各階段之間的接口部件(本質(zhì)是寄存器)流水線通過接口傳遞與指令相關(guān)的數(shù)據(jù)信息,控制信息,反饋信息后續(xù)部件對數(shù)據(jù)的加工處理依賴于前階段傳遞過來的信息ID段譯碼生成該指令的所有控制信號控制信號向后傳遞后續(xù)部件控制信號不再單獨(dú)生成單周期CPU實現(xiàn)中的控制器在ID段復(fù)用單周期改五段流水-27-5段流水控制信號傳遞-28-接口定義(僅供參考,并不一定準(zhǔn)確)IFIF/ID數(shù)據(jù)IRIDID/EX數(shù)據(jù)IRWriteReg#AB控制ALUOP、IMM、ALUSrc、beq,bne,jmpMemReqMemWriteRegWriteMemReadEXEX/MEM數(shù)據(jù)IR

WriteReg#AluResultRt控制MemReqMemWriteRegWriteMemReadMEMMEM/WB數(shù)據(jù)WriteReg#WriteBackData控制RegWritePCIR建議各段均傳遞,便于觀察流水線-29-指令相關(guān)檢測(沖突冒險檢測)ID段進(jìn)行檢測不同類型指令有區(qū)分R型指令涉及兩個源操作數(shù)Rs,RtI型指令涉及一個或兩個源操作數(shù)Rs(Lui無相關(guān))其他分支指令(Beq,Bne,Bgt)涉及兩個源操作數(shù)Rs,RtJ型指令(無相關(guān),直接產(chǎn)生分支相關(guān)信號)相關(guān)數(shù)據(jù)需與后續(xù)段中的結(jié)果寄存器編號比較EX.WriteReg

Mem.WriteRegWB.WriteReg???相關(guān)檢測器封裝(僅供參考)輸入(?)Rt,Rs,EX.WriteReg

Mem.WriteRegWB.WriteReg指令Opcode與Func輸出數(shù)據(jù)相關(guān)信號分支相關(guān)信號-31-氣泡插入分支相關(guān)修改PC的值向前給出流水線阻塞信號清除已經(jīng)取出的無用指令數(shù)據(jù)相關(guān)向后插入氣泡向前給出流水線阻塞信號讓IF段暫停,信息保持不變讓ID段暫停,信息保持不變避免當(dāng)前指令被新指令取代數(shù)據(jù)重定向重定向控制器放在那個階段?ID?EX?重定向數(shù)據(jù)來源?由哪個部件給出?采用數(shù)據(jù)重定向后是否還需要插入氣泡?Load-Use沖突如何解決?數(shù)據(jù)重定向流水控制示意圖-34-全冒險處理機(jī)制的流水CPU-35-動態(tài)分支預(yù)測什么階段進(jìn)行動態(tài)分支預(yù)測?如何預(yù)測?預(yù)測結(jié)果對實際分支指令的執(zhí)行有無影響,何種影響?限定BTB緩沖區(qū)大小為4,可容納4條分支指令如何進(jìn)行全相聯(lián)比較,多余4條分支指令時如何淘汰。LRU算法如何用硬件實現(xiàn)-36-單周期CPU設(shè)計一般路線問題迭代式設(shè)計模式,復(fù)雜度高,開發(fā)周期長,正確率低新增不同類型指令可能會修改全圖復(fù)雜度高,圖的布局對開發(fā)有較大影響錯誤易傳遞,修復(fù)代價高,修改錯誤可能導(dǎo)致圖的大量變更難以追溯,設(shè)計過程難以復(fù)現(xiàn)每增加一條指令備份一個版本需要工程化的方法-37-單周期CPU設(shè)計工程化路線圖選擇指令系統(tǒng)構(gòu)建主要功能部件PC指令存儲器IM寄存器堆RF運(yùn)算器ALU數(shù)據(jù)存儲器DM立即數(shù)擴(kuò)展器地址轉(zhuǎn)移邏輯NPC控制器logisim中選用適當(dāng)部件完成前5個部件一次性構(gòu)建所有數(shù)據(jù)通路(各部件之間數(shù)據(jù)流動)5大功能部件之間的連接關(guān)系不同指令數(shù)據(jù)通路不一樣指令規(guī)模越大,連接越復(fù)雜,難度提升采用工程化的方法一次性解決構(gòu)建控制器、地址轉(zhuǎn)移邏輯NPC等部件連接,控點(diǎn)連接,調(diào)試構(gòu)建數(shù)據(jù)通路工程化方法指令系統(tǒng)數(shù)據(jù)通路表格描述各部件之間的連接關(guān)系記錄各部件輸入端數(shù)據(jù)來源忽略控制類信號僅保留數(shù)據(jù)類信號-39-主要功能部件輸入來源表單條指令數(shù)據(jù)通路構(gòu)建方法Step1:閱讀單條指令,改寫成RTL根據(jù)RTL功能填寫對應(yīng)指令的數(shù)據(jù)通路表如發(fā)現(xiàn)新增需求,進(jìn)入Step2Step2:新增需求的處理合并至已有部件(修改已

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論