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

正文內(nèi)容

基于risc的32位流水線cpu設(shè)計(jì)(參考版)

2024-11-16 15:04本頁面
  

【正文】 適用于大型分層開發(fā)的團(tuán)隊(duì)作業(yè)上。 然而,一個(gè)不合格的頂層框架會(huì)給系統(tǒng)的實(shí)現(xiàn)過程和成品性能帶來災(zāi)難性的影響。但是,使用它前提是任務(wù)本身已經(jīng)十分清晰,而且設(shè)計(jì) 者有能力 對(duì)整個(gè)工程有一個(gè)全局性的認(rèn)識(shí),對(duì)工程若干組件 的結(jié)構(gòu)和劃分方式了如指掌。 比如要設(shè)計(jì) 一個(gè)移位乘法器,首先要設(shè)計(jì)加法器、移位器和觸發(fā)器,而加法器又需要首先設(shè)計(jì)全加器。 [7] 通常情況下,解決任務(wù)的算法要比之前見到的復(fù)雜得多,因此必須將任務(wù)分成幾個(gè)小任務(wù)來解決。 在下一章中,將具體討論流水線 CPU 的實(shí)現(xiàn)。 這些設(shè)計(jì)使得此款 CPU在即使不是很高的主頻下達(dá)到了相當(dāng)優(yōu)良的性能, 具有很高的學(xué)習(xí)借鑒價(jià)值。另外,為了實(shí)現(xiàn)精確跳轉(zhuǎn)預(yù)測(cè),它使用了跳轉(zhuǎn)目的地址緩沖區(qū),跳轉(zhuǎn)歷史表,全局歷史寄存器,返回地址堆棧,為了完成虛擬地址轉(zhuǎn)換,它采用了獨(dú)立的 TLB 地址轉(zhuǎn)換模塊。浮點(diǎn)與定點(diǎn)各有獨(dú)立的寄存器堆。其結(jié)構(gòu)如 圖 212所示 。片內(nèi)一級(jí)指令和數(shù)據(jù)高速緩存各64KB,片外二級(jí)高速緩存最多可達(dá) 8MB。 ( 8)基于操作隊(duì)列的流水線技術(shù) [5] 國產(chǎn)龍芯 2E 計(jì)算機(jī)是我國研制的基于 MIPS 兼容架構(gòu)的 64 位通用高性能計(jì)算機(jī)。但轉(zhuǎn)移預(yù)測(cè)可以做到這個(gè)延遲的避免,進(jìn)一步提高 CPU 的轉(zhuǎn)移效率。以便于不會(huì)因?yàn)閿?shù)據(jù)相關(guān)問題空閑流水線。用以對(duì)多媒體和圖像處理提供更好的支持。 ( 3)采用多發(fā)射結(jié)構(gòu),在同一個(gè)時(shí)鐘周期上可以流出 23 條指令并行運(yùn)算,即提供了多條并行的流水線。 更高性能 CPU 的結(jié)構(gòu) 一個(gè)更標(biāo)準(zhǔn)且效率較高的 MIPS CPU 一般還應(yīng)具有如下某些結(jié)構(gòu): ( 1)采用高速緩 存 cache,提高存儲(chǔ)器訪問指令的執(zhí)行速度。 ( 3)轉(zhuǎn)移相關(guān)( branch hazard),或稱控制相關(guān)( controlhazard),指轉(zhuǎn)移指令從取指到轉(zhuǎn)向目標(biāo)地址要花幾個(gè)時(shí)鐘周期,但流水線 CPU 在每個(gè)周期都取指令。而此結(jié)果還未寫入到寄存器中。流水線的相關(guān)問題主要分為 3 大類: ( 1)結(jié)構(gòu)相關(guān)( structuralhazard) 即由 于硬件資源不充足而導(dǎo)致流水線不暢通 , 如如果只有一個(gè)存儲(chǔ)器 模塊時(shí),就不能同時(shí)取出指令和數(shù)據(jù)。 MEM 進(jìn)行數(shù)據(jù)存儲(chǔ)器操作,只有 Load 或 Store 型才有內(nèi)容; WB階段將計(jì)算結(jié)果寫回,由于 WB階段寫入的數(shù)值在下一個(gè)時(shí)鐘沿才可以讀出顯示,所以 reg3 的 WB 階段的數(shù)值在圖中滯后了一個(gè)周期。 此類型的 CPU 執(zhí)行一條指令需要多個(gè)周期,其波形圖如 211 所示: 本例演示的是 addi $2,$2,1的波形仿真圖。 圖 28 流水線 流水示意圖 北京理工大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 21 圖 29 流水線流水級(jí)劃分圖 圖 210 所設(shè)計(jì)的 CPU 頂層示意圖就是典型的流水線結(jié)構(gòu)。 為了實(shí)現(xiàn)這樣的流水,我們可以通過在時(shí)序邏輯中插入組合邏輯來完成。這樣,就需要有一套寄存器來保存剛剛執(zhí)行完成的指令的執(zhí)行結(jié)果。 其中,每一個(gè)執(zhí)行階段的名稱和功能如下: ( 1) IF:取指令階段; ( 2) ID:指令譯碼階段; ( 3) EXE:指令執(zhí)行階 段; ( 4) MEM:訪問存儲(chǔ)器階段; ( 5) WB:數(shù)據(jù)寫回階段。在每一個(gè)指令執(zhí)行階段中,當(dāng)一條指令在該階段中完成執(zhí)行之后,下一條指令將立即進(jìn)入到該執(zhí)行階段來執(zhí)行操作。 在流水線 CPU 中,每條指令的執(zhí)行過程被分成若干個(gè)執(zhí)行階段。 ( 4) MIPS 指令在存儲(chǔ)器中按 32 位對(duì)齊。 ( 3) MIPS 指令集中絕大多數(shù)指令都是寄存器操作指令,只有 load 指令和 store 指令涉及到存儲(chǔ)器的操作。源操作數(shù)和目的操作數(shù)的寄存器號(hào)碼也就非常容易從指令中分離出來。 ( 2) MIPS 指令集中只有 R 類型、 I 類型和 J 類型等幾種很少的指令類型。在 MIPS 指令集中,有多個(gè)方面體現(xiàn)了對(duì)流水線結(jié)構(gòu)的適應(yīng)和支持: ( 1)所有的 MIPS 指令的長度都相同。 MIPS 指令集是一種典型的 RISC 體系結(jié)構(gòu)的指令集。如果將 data看作數(shù)據(jù)通路和控制信號(hào),則此結(jié)構(gòu)即構(gòu)成了流水線 CPU的基本網(wǎng)絡(luò)結(jié)構(gòu)。如圖 27 所示。因?yàn)榱魉€可以將一個(gè)大的組合邏輯分解為若干個(gè)北京理工大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 19 小型組合邏輯 ,并在其間插入寄存環(huán)節(jié),因此可以大大提高邏輯運(yùn)算的穩(wěn)定性,提供更加清晰的運(yùn)算框架。多周期的 Verilog 源碼參見附錄。 從圖中可以清晰地看出, PC 值代表指令地址, STASHOW 代表當(dāng)前 CU 的狀態(tài)機(jī)的狀態(tài)碼, STASHOW 對(duì)不同的指令其狀態(tài)數(shù)不同。 [6] 圖 24 多周期狀態(tài)轉(zhuǎn)移 北京理工大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 18 多周期 CPU 的頂層結(jié)構(gòu)與單周期基本相同,但其控制單元( CU)從一個(gè)組合解碼邏輯演變成了一個(gè)狀態(tài)機(jī),以便于在指令的若干狀態(tài)之間輪詢,以及跳轉(zhuǎn)到新的指令中去。 我們可以使用一種稱為“有限狀態(tài)機(jī)( finite statemachine)”的技術(shù)來設(shè)計(jì)多周期 CPU 的控制部件,使不同的指令使用不同數(shù)量的時(shí)鐘周期。為了敘述方便,我們把小周期簡(jiǎn)稱為周期。為了解決這個(gè)問題,可以把單周期 CPU 中的時(shí)鐘周期分成若干個(gè)小周期:復(fù)雜的指令就多用幾個(gè)小周期,簡(jiǎn)單的指令就少用幾個(gè)。最簡(jiǎn)單的 j 指令連 ALU 都不要使用,直接把指令中的北京理工大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 17 target 與 PC+4 的高 4 位拼接,就得到了 30 位的轉(zhuǎn)移目標(biāo)地址(指令字地址,左移兩位為字節(jié)地址)。以上描述的 CPU 中執(zhí)行時(shí)間最長的指令是 lw,它的執(zhí)行過程包括幾個(gè)步驟: ( 1) IF( instructionfetch) ——— 從存儲(chǔ)器取出指令; ( 2) ID( instructiondecode) ——— 從寄存器堆讀出數(shù)據(jù); ( 3) EXE( execution) ——— 用 ALU 計(jì)算地址; ( 4) MEM( memoryaccess) ——— 從存儲(chǔ)器取出數(shù)據(jù); ( 5) WB( writeback) ——— 把數(shù)據(jù)寫入寄存器堆。無論指令的類型以及它實(shí)際需要的執(zhí)行時(shí)間為何 ,單周期 CPU 執(zhí)行每條指令都需要一個(gè)時(shí)鐘周期。換言之,即將一個(gè)大的周期拆分成若干小周期,分別執(zhí)行指令的若干步驟。 有關(guān)具體的單周期 的 實(shí)現(xiàn)及波形仿真請(qǐng)參考第三章。又由于 Register 和 DataMemory 兩個(gè)單元需要有寄存器 或 RAM 的寫操作,因此只憑靠組合邏輯并不能完成,這里利用時(shí)鐘下降沿作為這兩個(gè)部件的時(shí)鐘信號(hào),以便于寫入正確的數(shù)據(jù)。使得所有的控制信號(hào)與當(dāng)前指令的要求相一致。以實(shí)現(xiàn)指令的功能為第一要?jiǎng)?wù)。 CU PCCounter A DO Inst Memory PC DO + 1 Z OP FUNC JUMP MEMTOREG BRANCH WRITEMEM ALUOP ALUSRCB WRITEREG N1 WE N2 Q1 ND DI Q2 CK rs rt 0 1 EXPAND REGDES SE 0 1 + 0 1 A ALUOP Z R B EXPAND WE A DO DI 0 1 0 1 clock target rd imm Data Memory Register NPC 北京理工大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 16 單周期 CPU 是其它 CPU 的基礎(chǔ)形態(tài)。 ( 9) SE:符號(hào)擴(kuò)展。 ( 7) REGDES:為 1 時(shí),選擇 rd;為 0 時(shí),選擇 rt。存儲(chǔ)器地址由 ALU 的輸出決定,寫入數(shù)據(jù)為寄存器 rt 的內(nèi)容。 ( 4) JUMP:為 1 時(shí),選擇跳轉(zhuǎn)目標(biāo)地址;為 0 時(shí),選擇由 BRANCH 選出的地址。 ( 2) ALUOP: ALU 操作的控制碼。 [1]主要器件有 PC、程序存儲(chǔ)器、寄存器堆、 ALU、數(shù)據(jù)存儲(chǔ)器和控制部件等。 其時(shí)序示意如圖 21。 單周期 CPU 在每個(gè) CLK 上升沿時(shí)更新 PC,并讀取新的指令。這給寄存器和存儲(chǔ)器 RAM 的制作帶來了些許難度。 再這一個(gè)周期中,完成更新地址,取指,解碼,執(zhí)行,內(nèi)存操作以及寄存器操作。除此之外,其它指令與 MIPS 處理器基本一 致。 本 CPU 未實(shí)現(xiàn)協(xié)處理器,故沒有實(shí)現(xiàn)協(xié)處理器指令。此類指令包括: TGE(大于或等于時(shí)跳入陷阱,有符號(hào)比較), TGEU(大于或等于時(shí)跳入陷阱,無符號(hào)比較), TLT(小于時(shí)跳入陷阱,有符號(hào)比較), TLTU(小于時(shí)跳入陷阱,無符號(hào)比較), TEQ(相等時(shí)跳入陷阱), TNE(不等時(shí)跳入陷阱)。包括: 表 217 重定義指令 序號(hào) 助記符 功能 類型 55 NOP 空操作 全零,相當(dāng)于 SLL $0,$0,0 56 MOVI rt,imm 立即數(shù)賦值 相當(dāng)于 addi rt,$0,imm 57 MOVIU rt,imm 立即數(shù)賦值(無符號(hào)) 相當(dāng)于 addiu rt,$0,imm 58 MOV rd,rs 寄存器賦值 相當(dāng)于 add rd,rs,0 59 CALL rs 子程序調(diào)用 相當(dāng)于 jalr rs 60 RET 子程序返回 相當(dāng)于 jal $31 例如,將 $2的值復(fù)制給 $1: mov $2,$1 將無符號(hào)立即數(shù) FF 加載到 $2:moviu $2,amp。 bgtz 的機(jī)器碼為 北京理工大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 13 表 215 條件轉(zhuǎn)移指令示例 OP RS RT Immediate 0001 11 00 011 0 0000 LABEL2 故其機(jī)器代碼為 0x1c60???? ( 8) 中斷處理指令 表 216 中斷處理指令 序號(hào) 助記符 功能 機(jī)器碼 54 ERET 中斷返回 INST=21000018 ( 9)重定義指令 為了使用方便,本系統(tǒng)開發(fā)了與硬件體系配套的集成匯編開發(fā)環(huán)境,在其中可以對(duì)上文所提及的所有指令進(jìn)行編譯。 本設(shè)計(jì)中實(shí)現(xiàn)的 MIPS 指令 詳細(xì)內(nèi)容如下: [1518] ( 1) 算術(shù)運(yùn)算 表 23 算術(shù)運(yùn)算指令 序號(hào) 助記符 功能 類型 FUNC 1 ADD rd,rs,rt 加法(有溢出中斷) R型 32 2 ADDU rd,rs,rt 無符號(hào)加法 33 3 AND rd,rs,rt 位與 36 4 NOR rd,rs,rt 位異或 39 5 OR rd,rs,rt 位或 37 6 SLT rd,rs,rt AB 判斷 42 7 SLTU rd,rs,rt 無符號(hào) AB判斷 43 8 SUB rd,rs,rt 減法(有溢出中斷) 34 9 SUBU rd,rs,rt 無符號(hào)減法 35 10 XOR rd,rs,rt 位同或 38 例如,把下面的表達(dá)式編譯為 MIPS 指令: a=b+c 變量 a, b, c 可以分配 給寄存器 $1,$2,$3 編譯結(jié)果為: add $1,$2,$3 北京理工大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 9 表 24 算術(shù)運(yùn)算示例 OP RS RT RD SA FUNC 0000 00 00 010 0 0011 0000 1 000 00 10 0000 故其機(jī)器代碼為 0x00430820 ( 2) 邏輯運(yùn)算 表 25 邏輯 運(yùn)算指令 序號(hào) 助記符 功能 類型 FUNC 其它約束 11 ROTR rd,rt,sa 循環(huán)右移 R型 2 INST[21]=1 12 ROTRV rd,rt,rs 可變循環(huán)右移 6 INST[6]=1 13 SLL rd,rt,sa 邏輯左移 0 14 SLLV rd,rt,rs 可變邏輯左移 4 15 SRL rd,rt,sa 邏輯右移 2 INST[21]=0 16 SRLV rd,rt,rs 可變邏輯右移 6 INST[6]=0 17 SRA rd,rt,sa 算術(shù)右移 3 18 SRAV rd,rt,rs 可變算術(shù)右移 7 例如,把下面的表達(dá)式編譯為 MIPS 指令: a=b16 變量 a, b, c 可以分配給寄存器 $1,$2 編譯結(jié)果為: sll $1,$2,16 表 26 邏輯運(yùn) 算指令示例 OP RS RT RD SA FUNC 0000 00 00 000 0 0010 0000 1 100 00 00 0000 故其機(jī)器代碼為 0x00020c00 ( 3) 乘除法運(yùn)算指令 表 27 乘除法運(yùn)算指令 北京理工大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 10 序號(hào) 助記符 功能 類型 FUNC 19 DIV rs,rt 除法 R型 26 20 DIVU rs,rt 無符號(hào)除法 27 21 MFHI rd 從 HI到寄存器 16 22 MFLO rd 從 LO到寄存器 18 23 MULT rs,rt 乘法 24 24 MULTU rs,rt
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1