freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

華科組成原理課程設計-mips流水線cpu(編輯修改稿)

2024-09-05 14:48 本頁面
 

【文章內容簡介】 時,流水線就把在分支指令之后取出的指令轉化為空操作,并按分支目標地址重新取指令執(zhí)行,如表3。分支失敗分支指令iIFIDEXMEMWB指令i+1IFIDEXMEMWB指令i+2IFIDEXMEMWB指令i+3IFIDEXMEMWB表2. 分支失敗的流水線時空圖分支成功分支指令iIFIDEXMEMWB指令i+1IFIdleIdleIdleidle分支目標指令IFIDEXMEMWB分支目標指令+1IFIDEXMEMWB表3. 分支成功的流水線時空圖 模型中的問題與修正 指令周期數(shù)問題若是指令周期和之前的設計一樣,使用單周期的設計,那么會出現(xiàn)對流水寄存器的讀寫沖突。例如對于通用寄存器組來說,在clk上升沿的時候需要從IF段的指令寄存器IR中取出指令,然后訪問相應的寄存器并將數(shù)據(jù)寫入ID段的A,B寄存器。試想,若是從IR中取指令,和對ID段的A,B寄存器的寫入兩個操作都是在clk上升沿觸發(fā),那么由于時延的存在,很有可能導致寫入的值不是預期值。因此我們將指令周期從單周期改為雙周期。在前一周期完成對流水寄存器的讀操作,并且完成各段的功能。后一周期,完成對流水寄存器的寫操作。具體實現(xiàn)上我們舍棄了分頻的方法而是采用前半周期為clk上升沿觸發(fā),后半周期為clk下降沿觸發(fā)。 譯碼器問題,各段功能需要在前一周期內全部完成,但是ID段很特殊,因為有譯碼器的存在。通用寄存器組和擴展部件都需要譯碼器提供控制信號,譯碼器也會在clk上升沿觸發(fā)。由于時延的存在,這可能會導致控制信號產(chǎn)生在需求之后。也即在寄存器組和擴展部件需要控制信號的時候,控制信號還未真正產(chǎn)生,導致這兩部件使用了錯誤的控制信號。除了這個隱患,還有一個問題就是若采用單獨的譯碼器,那么會在ID段產(chǎn)生大量的控制信號,這些控制信號都需要通過流水線流向下一段,那么勢必需要大量的流水寄存器,大幅增加硬件成本。綜合考慮這兩個問題之后我們撤掉了譯碼器,而采用分段譯碼的方式。即給每個功能部件都提供完整的指令,由各個功能部件自己產(chǎn)生自己所需要的控制信號,這樣就可以完美的解決上述兩個問題。 針對JNZQ指令的優(yōu)化問題在非流水的CPU模型中我們針對JNZQ指令進行了專門的優(yōu)化,將對分支條件的判斷放在了ID段。但是這存在兩個問題,一是我們認為這樣影響了整體設計的一致性;二是在流水線CPU的設計中我們加入了新的跳轉指令,這使得判斷變得更加復雜,ID段分擔了太多EX段的功能,會影響整體流水的性能。因此在流水CPU設計中我們將分支的條件改回在EX段判斷。 寄存器組的讀寫順序問題在最初的設計中,我們將寄存器的寫回操作放在后半周期,即和流水線寄存器的寫操作一同完成。但是在后面的實際測試中我們發(fā)現(xiàn)若這樣處理,我們在做重定向的時候必須做三次重定向。因此我們對此做了調整,將寫回操作提前到前半周期完成,即對寄存器組實現(xiàn)先寫后讀策略。 寫回段的取舍在最初的設計中,由于我們將寄存器的寫回操作放在后半周期,因此我們一度舍棄了寫回段。因為寫回段僅僅是前半周期讀出寫回數(shù)據(jù),后半周期將數(shù)據(jù)寫回寄存器組,這么簡單的功能占據(jù)一個流水段顯示實在是“奢侈”。因而在最初的設計中我們將其和MEM段合并。,因此寫回段中的寫回操作和EX段的計算操作以及MEM的訪存操作在同半個周期內,由于時延的存在很有可能導致寫回數(shù)據(jù)錯誤。此時若舍棄了寫回段則可能在計算結果出來前就寫回了,這顯然不合理。因此我們重新加入了寫回段。在加入訪存段后,由于寫回的結果依賴于訪存結果,因此放在訪存段之后。 特殊指令JNZ的問題JNZ這條指令在整個指令集中是非常特殊的存在,在之前的設計中我們完全沒有考慮到這個問題。① 雖然JNZ是ITYPE指令,但是RT卻是源寄存器,也即JNZ不會修改RT的值。即它不符合ITYPE指令在寫回段的數(shù)據(jù)通路Regs[rt]←ALUo。這在做定向的時候會產(chǎn)生嚴重的問題,若不做特殊判斷,那么很可能會產(chǎn)生錯誤的定向。② JNZ指令是整個指令集中唯一一個需要4個輸入(rega,regb,imm,pc)的指令,其他指令均最多只需要2個輸入。這使得EX段的兩個選擇器完全是多余的,可以去掉。在考慮到這兩點之后我們對重定向進行了重新設計,并且去掉了EX段中的兩個選擇器。 硬軟中斷的實現(xiàn) 軟中斷的實現(xiàn)對于軟中斷,我們實際上通過擴展指令集的方式來實現(xiàn)。即在指令集中加入兩條指令,PUSH和POP,來實現(xiàn)軟中斷。具體指令表4。RtypeoprsrtrdshamtfuncPop1111110000000101000000000000000JtypeopaddressPush1111100000000000000000000001110表4. Push和Pop指令當ID段檢測到PUSH指令時,將會把所有通用寄存器組的值以及當前PC值壓入堆棧。當EX段檢測到PUSH指令時,會無條件跳轉至指令對對應的地址。當ID段檢測到POP指令時,將會把所有的通用寄存器組的值彈出。當EX段檢測到POP指令時,會無條件跳轉至堆棧中的PC值對應的地址。 硬中斷的實現(xiàn)對于硬中斷我們僅實現(xiàn)了了溢出中斷。當EX段出現(xiàn)溢出時,EX段將會向IF段傳送相應的控制信號。此時IF段將會產(chǎn)生一條PUSH指令送到IR中,并且PC值維持一周期不變。這樣就相當于向流水線中插入了一條軟中斷指令,從而實現(xiàn)了用硬件來自動產(chǎn)生中斷指令。 最終數(shù)據(jù)通路,我們得到了最后的數(shù)據(jù)通路圖,如圖7。圖7. 5段流水CPU最終數(shù)據(jù)通路圖四、 實現(xiàn)內容與測試結果1. 各模塊功能模塊例化名稱模塊實現(xiàn)功能U1實現(xiàn)PC的存儲與更新U2實現(xiàn)指令的存取U3實現(xiàn)對通用寄存器的讀寫U4實現(xiàn)對立即數(shù)的有符號與無符號擴展U5實現(xiàn)ALUU6實現(xiàn)訪存功能表5. 各模塊功能表2. 控制信號流水段控制信號功能IF
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1