6.6 DLX指令集的實作
這節開始將指令集相關內容,沒學過相關知識,看不太懂,就快速瀏覽一下好了,
DLX指令集包括五個部分:
1、指令獲取(IF)
IR <= MEM[PC]
NPC <= PC +4
從存盤器中獲取指令(PC為指標)并放入指令暫存器(IR),IR保存下個時鐘周期所需指令,PC值遞增4,指向下個指令地址,
2、指令解碼/暫存器獲取(ID)

指令格式是固定的,所以讀暫存器和解碼可以同時進行,這稱為固定域譯碼,
3、執行/有效地址周期(EX)
根據指令型別執行下面4個功能之一:
a)訪問存盤器

b)暫存器——暫存器ALU指令

c)暫存器——立即數ALU指令

d)分支指令

4、訪問存盤器/分支完成周期(MEM)
a)訪問暫存器

b)分支


5、寫回周期(WB)
a)暫存器——暫存器ALU指令

b)暫存器——立即數周期

c)取指令

以上操作將結果寫回入暫存器堆中,結果可能來自存盤器(LMD)或者來自于ALU,
無流水線DLX資料通路上的5個步驟:

無流水線無法并行執行指令,只有當第一條指令執行完才開始執行第二條指令,

6.7 流水線對吞吐率的影響
在每個階段加一級流水線:



如圖,不加流水線消耗時間5(5條指令)*5(每條指令消耗周期數)*2(周期)=50ns,加了之后9*2=18ns,性能提升了50/18=2.8倍,
但是使用流水線時會引入額外的開銷,如Skew和暫存器延遲,這種開銷限制了流水線所能達到的加速值,
6.8 流水線原理

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/540139.html
標籤:其他
