文档详情

DLX的基本流水线课件.ppt

发布:2024-09-04约2.37千字共66页下载文档
文本预览下载声明

DLX的基本流水線;2.一條DLX指令最多需要以下5個時鐘週期:;(2)指令解碼/讀寄存器週期(ID)

A←Regs[IR6..10]

B←Regs[IR11..15]

Imm←(IR16)16##IR16..31

操作

指令解碼和讀寄存器是並行進行的。之所

以能做到這一點,是因為在DLX指令格式中,

操作碼在固定位置。這種技術也稱為固定字段

译码。;;◆記憶體訪問

ALUOutput←A+Imm操作;◆寄存器―寄存器ALU操作

ALUOutput←AopB操作;◆寄存器―立即值ALU操作

ALUOutput←AopImm操作;◆分支操作

ALUOutput←NPC+Imm

Cond←(Aop0)操作;(4)記憶體訪問/分支完成週期(MEM)

在該週期處理的DLX指令只有Load、Store和

分支指令。;◆記憶體訪問

LMD←Mem[ALUOutput]

或Mem[ALUOutput]←B操作

;◆分支操作

if(cond)PC←ALUOutput

elsePC←NPC操作;(5)寫回週期(WB)

不同指令在該週期完成的工作也不一樣。;寄存器―寄存器型ALU指令

Regs[IR16..20]←ALUOutput;寄存器―立即值型ALU指令

Regs[IR11..15]←ALUOutput;Load指令

Regs[IR11..15]←LMD;3.分支指令需要4個時鐘週期,

其它指令需要5個時鐘週期

假設分支指令占總指令數的12%,則:

CPI=4.88

上述實現無論在性能上,還是在硬體開銷上,都不是優化的。;3.2.2基本的DLX流水線;3.2DLX的基本流水線;按時間錯開的數據通路序列;3.採用流水技術還應解決好以下幾個問題:;◆沒有考慮PC問題;;但分支指令也可能改變PC的值,而且是

在MEM段進行,這會導致衝突。;;(2)每一流水段內的操作都必須在一個時鐘週期

內完成;◆流水線寄存器的構成;4.DLX流水線的操作;流水段;流水段;5.DLX流水線的控制;3.2.3流水線性能分析;◆若流水線各段的時間不等,則:;重複設置瓶頸段(時-空圖舉例);◆第一種情況:各段時間相等(設為△t0)

假設流水線由m段組成,完成n個任務。;完成n個任務所需的時間;實際吞吐率;3.2DLX的基本流水線;

完成n個任務所需的時間

T流水=∑△ti+(n-1)△tj△tj=max{△ti}

實際吞吐率;加速比是指流水線的速度與等功能非流水

線的速度之比。;;可以看出:當nm時,S≈m

想一想:n越大越好?;3.2DLX的基本流水線;(2)若各段時間相等,則各段的效率ei相等,即

e1=e2=e3==em=n△t0/T流水(解釋)

整個流水線的效率為:;(4)提高流水線效率所採取的措施對於提高

吞吐率也有好處。;3.2DLX的基本流水線;解:(1)確定適合於流水處理的計算過程;3.2DLX的基本流水線;可以看出,在求解此問題時,該流水線的效率

不高。(原因);舉例Ⅱ:這樣行不行?正確答案;例3.2

假設前面DLX非流水線實現的時鐘週期時間

為10ns,ALU和分支指令需要4個時鐘週期,訪

問記憶體指令需5個時鐘週期,上述指令在程式

中出現的相對頻率分別是:40%、20%和40%。在

基本的DLX流水線中,假設由於時鐘扭曲和寄存

器建立延遲等原因,流水線要在其時鐘週期時

间上附加1ns的額外開銷。現忽略任何其他延遲

因素的影響,請問:相對於非流水實現而言,

基本的DLX流水線執行指令的加速比是多少?

;解:當非流水執行指令時,指令的平均執行時

間為

TPI非流水=10ns×((40%+20%)×4+40%×5)

=10ns×4.4=44ns

在流水實現中,指令執行的平均時間

是最慢一段的執行時間加上額外開銷,即

TPI流水=10ns+1ns=11ns

所以基本的DLX流水線執行指令的加速比為;例3.3

显示全部
相似文档