DLX的基本流水线课件_第1页
DLX的基本流水线课件_第2页
DLX的基本流水线课件_第3页
DLX的基本流水线课件_第4页
DLX的基本流水线课件_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DLX的基本流水線3.2.1DLX的一種簡單實現首先討論在不流水的情況下,如何實現DLX。1.實現DLX指令的一種簡單數據通路

2.一條DLX指令最多需要以下5個時鐘週期:(1)取指令週期(IF)

IR←Mem[PC]

NPC←PC+4

操作3.2DLX的基本流水線(2)指令解碼/讀寄存器週期(ID)

A←Regs[IR6

..10]

B←Regs[IR11

..15]

Imm←(IR16)16##IR16

..31

操作

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

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

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

译码。3.2DLX的基本流水線

(3)執行/有效地址計算週期(EX)

在這個週期,不同的指令有不同的操作。3.2DLX的基本流水線◆

記憶體訪問

ALUOutput←A+Imm

操作

寄存器―寄存器ALU操作

ALUOutput←AopB操作◆

寄存器―立即值ALU操作

ALUOutput←AopImm操作3.2DLX的基本流水線◆

分支操作

ALUOutput←NPC+Imm

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

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

分支指令。

這裏,將有效地址計算週期和執行週期合併為一個時鐘週期,這是由DLX指令集結構本身的特點所允許的,因為在DLX指令集結構中,沒有任何指令需要同時計算數據的記憶體地址、計算分支指令的目標地址和進行數據處理。3.2DLX的基本流水線◆

記憶體訪問

LMD←Mem[ALUOutput]

Mem[ALUOutput]←B

操作

3.2DLX的基本流水線◆

分支操作

if(cond)PC←ALUOutput

else

PC←NPC

操作(5)寫回週期(WB)

不同指令在該週期完成的工作也不一樣。◆

寄存器―寄存器型ALU指令

Regs[IR16

..20]←ALUOutput

操作

寄存器―立即值型ALU指令

Regs[IR11

..15]←ALUOutput

操作◆

Load

指令

Regs[IR11

..15]←LMD操作

3.2DLX的基本流水線寄存器―寄存器型ALU指令

Regs[IR16

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

Regs[IR11

..15]←ALUOutputLoad

指令

Regs[IR11

..15]←LMD

3.分支指令需要4個時鐘週期,

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

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

CPI=4.88

上述實現無論在性能上,還是在硬體開銷上,都不是優化的。3.2DLX的基本流水線3.2.2

基本的DLX流水線

我們可以把3.2.1中的數據通路流水化:

每個時鐘週期啟動一條新的指令。

这样,该数据通路中的每一个周期就成

了一个流水段。1.一種簡單的DLX流水線2.簡單DLX流水線的流水過程第一種描述(類似於時空圖)

第二種描述(按時間錯開的數據通路序列)3.2DLX的基本流水線3.2DLX的基本流水線按時間錯開的數據通路序列3.採用流水技術還應解決好以下幾個問題:上述簡單DLX流水線中:◆

指令記憶體(IM)和數據記憶體(DM)分

開,避免了訪存衝突。

ID段和WB段都要訪問同一寄存器檔。

ID段:讀WB段:寫

如何解決對同一寄存器的訪問衝突?(1)應保證不會在同一個時鐘週期內在同一數據

通路資源上做不同的操作。

例如,不能要求一个ALU同時既做有效

地址計算,又做減法操作。3.2DLX的基本流水線◆

沒有考慮PC問題

流水線為了能夠每個時鐘週期啟動一條

新的指令,就必須在每個時鐘週期進行PC值

的加4操作,並保留新的PC值。這種操作必

須在IF段完成,以便為取下一條指令做好准

備。3.2DLX的基本流水線

但分支指令也可能改變PC的值,而且是

在MEM段進行,這會導致衝突。為解決問題,我們重新組織數據通路,把所有改變

PC值的操作都放在IF段進行。但分支指令如何處理?(2)每一流水段內的操作都必須在一個時鐘週期

內完成◆流水線各段之間需設置流水線寄存器

(也称为鎖存器)

流水線寄存器組及其所含寄存器的命名

例如,ID段和EX段之間的流水線寄存

器組中的IR寄存器的名稱為:ID/EX.IR

◆流水線寄存器的作用

把數據和控制資訊從一個流水段傳

送到下一個流水段。(3)流水線寄存器(組)3.2DLX的基本流水線◆流水線寄存器的構成4.DLX流水線的操作

對於流水線中的指令來說,在任一時刻,它

僅在流水線中的某一段內執行操作。因此,只要知道每一流水段在各种指令下进

行何种操作,就知道了整个流水线的操作。

(表3.1)給出了DLX流水線各段的操作。

3.2DLX的基本流水線流水段表3.1DLX流水線的每個流水段的操作任何指令類型ALU指令Load/Store指令分支指令IFIDEXIF/ID.IR←Mem[PC]IF/ID.NPC,PC←(ifEX/MEM.cond{EX/MEM.NPC}else{PC+4});ID/EX.A←Regs[IF/ID.IR6..10];ID/EX.B←Regs[IF/ID.IR11..15];ID/EX.NPC←IF/ID.NPC;ID/EX.IR←IF/ID.IR;ID/EX.Imm←(IR16)16##IR16..31;EX/MEM.IR←ID/EX.IR;

EX/MEM.ALUOutput←

ID/EX.AopID/EX.B

EX/MEM.ALUOutput←

ID/EX.AopID/EX.Imm;

EX/MEM.cond←0;EX/MEM.IR←

ID/EX.IR;EX/MEM.ALUOutput←

ID/EX.A+ID/EX.Imm;EX/MEM.ALUOutput←

ID/EX.NPC+

ID/EX.Imm;

EX/MEM.cond←

(ID/EX.Aop0);(動畫演示)(動畫演示)(動畫演示)(動畫演示)(動畫演示)流水段任何指令類型ALU指令Load/Store指令分支指令MEMWBMEM/WB.IR←EX/MEM.IR;MEM/WB.ALUOutput←

EX/MEM.ALUOutput;MEM/WB.IR←EX/MEM.IR;MEM/WB.LMD←

Mem[EX/MEM.ALUOutput];

Mem[EX/MEM.ALUOutput]←

EX/MEM.B;Regs[MEM/WB.IR16..20]←

MEM/WB.ALUOutput;

Regs[MEM/WB.IR11..15]←

MEM/WB.ALUOutput;Regs[MEM/WB.IR11..15]←

MEM/WB.LMD;表3.1DLX流水線的每個流水段的操作(動畫演示)(動畫演示)(動畫演示)(動畫演示)5.DLX流水線的控制

主要是確定如何控制那四個多路選擇器。3.2.3流水線性能分析

吞吐率是指單位時間內流水線所完成的任務數或輸出結果的數量。1.吞吐率(1)最大吞吐率TPmax

最大吞吐率是指流水線在連續流動達到穩定狀態後所得到的吞吐率。

若流水線各段的時間相等,均為△t0

則:

TPmax=1/△t03.2DLX的基本流水線◆

若流水線各段的時間不等,則:◆

最大吞吐率取決於流水線中最慢的一段所

需的時間,這段就成了流水線的瓶頸。◆

消除瓶頸的方法(舉例)

細分瓶頸段重複設置瓶頸段(時-空圖)1max{△ti}TPmax=─────3.2DLX的基本流水線重複設置瓶頸段(時-空圖舉例)◆

第一種情況:各段時間相等(設為△t0)

假設流水線由m段組成,完成n個任務。

時空圖完成n個任務所需的時間

T流水=m△t0+(n-1)△t0

(說明)(2)實際吞吐率TP

流水線的實際吞吐率小於最大吞吐率。3.2DLX的基本流水線完成n個任務所需的時間

實際吞吐率TP=───=──────────T流水nm△t0+(n-1)△t0n(1+)△t0

m-11TPmaxn=────────=─────1+nm-1TP<TPmax

當n>>m時,TP≈TPmax◆

第二種情況:各段時間不等

時空圖3.2DLX的基本流水線3.2DLX的基本流水線

完成n個任務所需的時間

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

實際吞吐率TP=──────────∑△ti+(n-1)△tjmi=1ni=1m3.2DLX的基本流水線

加速比是指流水線的速度與等功能非流水

線的速度之比。2.加速比S

S=T非流水/T流水

(其中T流水和T非流水分別為按流水和按非流水

方式處理n個任務所需的時間)

若流水線為m段,且各段時間相等,均為△t0,則:

T非流水=nm△t0

(解釋)

T流水=m△t0+(n-1)△t0

3.2DLX的基本流水線3.2DLX的基本流水線可以看出:當n>>m時,S≈

m

想一想:n越大越好?效率是指流水線的設備利用率。

(1)由於流水線有通過時間和排空時間,所以

流水線的各段並不是一直滿負荷地工作。

故:E

<1S=───=

─────────T非流水T流水nm△t0m△t0+(n-1)△t0mnm+n-1mn1+

m-1=

────

=────3.效率E3.2DLX的基本流水線3.2DLX的基本流水線(2)若各段時間相等,則各段的效率ei相等,即

e1=e2=e3==em=n△t0/T流水

(解釋)

整個流水線的效率為:當n>>m

時,E

≈1E

───=

────=

─────n△t0T流水nm+n-11n1+

m-1(3)從時-空圖上看,效率實際上就是n個任務所

占的時空區與m個段總的時空區之比,即:

n個任務佔用的時空區

E=━━━━━━━━━━━━━

(解釋)

m個段總的時空區……3.2DLX的基本流水線(4)提高流水線效率所採取的措施對於提高

吞吐率也有好處。4.流水線性能分析舉例例3.1

在靜態流水線上計算

AiBi

求:吞吐率,加速比,效率。4i=13.2DLX的基本流水線3.2DLX的基本流水線解:(1)確定適合於流水處理的計算過程(2)畫時空圖(3)計算性能

吞吐率

TP=7/(20△t)

加速比

S=(34△t)/(20△t)=1.7

效率

E=(4×4+3×6)/(8×20)=0.213.2DLX的基本流水線3.2DLX的基本流水線可以看出,在求解此問題時,該流水線的效率

不高。(原因)動態流水線的時-空圖舉例Ⅰ

3.2DLX的基本流水線舉例Ⅱ:這樣行不行?

正確答案3.2DLX的基本流水線例3.2

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

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

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

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

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

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

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

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

基本的DLX流水線執行指令的加速比是多少?3.2DLX的基本流水線解:當非流水執行指令時,指令的平均執行時

間為

TPI非流水

=10ns×((40%+20%)×4+40%×5)

=10ns×4.4=44ns

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

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

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

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

=TPI非流水TPI流水44ns11ns==43.2DLX的基本流水線例3.3

假設在DLX的非流水實現和基本流水線中,5個功能單元的時間為:10,8,10,10,7(ns),

流水額外開銷為:1ns,求加速比S。解

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论