DLX的基本流水線課件_第1頁(yè)
DLX的基本流水線課件_第2頁(yè)
DLX的基本流水線課件_第3頁(yè)
DLX的基本流水線課件_第4頁(yè)
DLX的基本流水線課件_第5頁(yè)
已閱讀5頁(yè),還剩61頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

DLX的基本流水線3.2.1DLX的一種簡(jiǎn)單實(shí)現(xiàn)首先討論在不流水的情況下,如何實(shí)現(xiàn)DLX。1.實(shí)現(xiàn)DLX指令的一種簡(jiǎn)單數(shù)據(jù)通路

2.一條DLX指令最多需要以下5個(gè)時(shí)鐘週期:(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

操作

指令解碼和讀寄存器是並行進(jìn)行的。之所

以能做到這一點(diǎn),是因?yàn)樵贒LX指令格式中,

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

譯碼。3.2DLX的基本流水線

(3)執(zhí)行/有效地址計(jì)算週期(EX)

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

記憶體訪問

ALUOutput←A+I(xiàn)mm

操作

寄存器―寄存器ALU操作

ALUOutput←AopB操作◆

寄存器―立即值A(chǔ)LU操作

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

分支操作

ALUOutput←NPC+I(xiàn)mm

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

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

分支指令。

這裏,將有效地址計(jì)算週期和執(zhí)行週期合併為一個(gè)時(shí)鐘週期,這是由DLX指令集結(jié)構(gòu)本身的特點(diǎn)所允許的,因?yàn)樵贒LX指令集結(jié)構(gòu)中,沒有任何指令需要同時(shí)計(jì)算數(shù)據(jù)的記憶體地址、計(jì)算分支指令的目標(biāo)地址和進(jìn)行數(shù)據(jù)處理。3.2DLX的基本流水線◆

記憶體訪問

LMD←Mem[ALUOutput]

Mem[ALUOutput]←B

操作

3.2DLX的基本流水線◆

分支操作

if(cond)PC←ALUOutput

else

PC←NPC

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

不同指令在該週期完成的工作也不一樣?!?/p>

寄存器―寄存器型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個(gè)時(shí)鐘週期,

其它指令需要5個(gè)時(shí)鐘週期

假設(shè)分支指令占總指令數(shù)的12%,則:

CPI=4.88

上述實(shí)現(xiàn)無(wú)論在性能上,還是在硬體開銷上,都不是優(yōu)化的。3.2DLX的基本流水線3.2.2

基本的DLX流水線

我們可以把3.2.1中的數(shù)據(jù)通路流水化:

每個(gè)時(shí)鐘週期啟動(dòng)一條新的指令。

這樣,該數(shù)據(jù)通路中的每一個(gè)周期就成

了一個(gè)流水段。1.一種簡(jiǎn)單的DLX流水線2.簡(jiǎn)單DLX流水線的流水過程第一種描述(類似於時(shí)空?qǐng)D)

第二種描述(按時(shí)間錯(cuò)開的數(shù)據(jù)通路序列)3.2DLX的基本流水線3.2DLX的基本流水線按時(shí)間錯(cuò)開的數(shù)據(jù)通路序列3.採(cǎi)用流水技術(shù)還應(yīng)解決好以下幾個(gè)問題:上述簡(jiǎn)單DLX流水線中:◆

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

開,避免了訪存衝突。

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

ID段:讀WB段:寫

如何解決對(duì)同一寄存器的訪問衝突?(1)應(yīng)保證不會(huì)在同一個(gè)時(shí)鐘週期內(nèi)在同一數(shù)據(jù)

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

例如,不能要求一個(gè)ALU同時(shí)既做有效

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

沒有考慮PC問題

流水線為了能夠每個(gè)時(shí)鐘週期啟動(dòng)一條

新的指令,就必須在每個(gè)時(shí)鐘週期進(jìn)行PC值

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

須在IF段完成,以便為取下一條指令做好準(zhǔn)

備。3.2DLX的基本流水線

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

在MEM段進(jìn)行,這會(huì)導(dǎo)致衝突。為解決問題,我們重新組織數(shù)據(jù)通路,把所有改變

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

內(nèi)完成◆流水線各段之間需設(shè)置流水線寄存器

(也稱為鎖存器)

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

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

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

◆流水線寄存器的作用

把數(shù)據(jù)和控制資訊從一個(gè)流水段傳

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

對(duì)於流水線中的指令來(lái)說,在任一時(shí)刻,它

僅在流水線中的某一段內(nèi)執(zhí)行操作。因此,只要知道每一流水段在各種指令下進(jìn)

行何種操作,就知道了整個(gè)流水線的操作。

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

3.2DLX的基本流水線流水段表3.1DLX流水線的每個(gè)流水段的操作任何指令類型ALU指令Load/Store指令分支指令I(lǐng)FIDEXIF/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);(動(dòng)畫演示)(動(dòng)畫演示)(動(dòng)畫演示)(動(dòng)畫演示)(動(dòng)畫演示)流水段任何指令類型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流水線的每個(gè)流水段的操作(動(dòng)畫演示)(動(dòng)畫演示)(動(dòng)畫演示)(動(dòng)畫演示)5.DLX流水線的控制

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

吞吐率是指單位時(shí)間內(nèi)流水線所完成的任務(wù)數(shù)或輸出結(jié)果的數(shù)量。1.吞吐率(1)最大吞吐率TPmax

最大吞吐率是指流水線在連續(xù)流動(dòng)達(dá)到穩(wěn)定狀態(tài)後所得到的吞吐率。

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

,

則:

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

若流水線各段的時(shí)間不等,則:◆

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

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

消除瓶頸的方法(舉例)

細(xì)分瓶頸段重複設(shè)置瓶頸段(時(shí)-空?qǐng)D)1max{△ti}TPmax=─────3.2DLX的基本流水線重複設(shè)置瓶頸段(時(shí)-空?qǐng)D舉例)◆

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

假設(shè)流水線由m段組成,完成n個(gè)任務(wù)。

時(shí)空?qǐng)D完成n個(gè)任務(wù)所需的時(shí)間

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

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

流水線的實(shí)際吞吐率小於最大吞吐率。3.2DLX的基本流水線完成n個(gè)任務(wù)所需的時(shí)間

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

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

當(dāng)n>>m時(shí),TP≈TPmax◆

第二種情況:各段時(shí)間不等

時(shí)空?qǐng)D3.2DLX的基本流水線3.2DLX的基本流水線

完成n個(gè)任務(wù)所需的時(shí)間

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

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

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

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

S=T非流水/T流水

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

方式處理n個(gè)任務(wù)所需的時(shí)間)

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

T非流水=nm△t0

(解釋)

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

3.2DLX的基本流水線3.2DLX的基本流水線可以看出:當(dāng)n>>m時(shí),S≈

m

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

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

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

故:E

<1S=───=

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

m-1=

────

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

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

(解釋)

整個(gè)流水線的效率為:當(dāng)n>>m

時(shí),E

≈1E

───=

────=

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

m-1(3)從時(shí)-空?qǐng)D上看,效率實(shí)際上就是n個(gè)任務(wù)所

占的時(shí)空區(qū)與m個(gè)段總的時(shí)空區(qū)之比,即:

n個(gè)任務(wù)佔(zhàn)用的時(shí)空區(qū)

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

(解釋)

m個(gè)段總的時(shí)空區(qū)……3.2DLX的基本流水線(4)提高流水線效率所採(cǎi)取的措施對(duì)於提高

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

在靜態(tài)流水線上計(jì)算

AiBi

,

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

吞吐率

TP=7/(20△t)

加速比

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

效率

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

不高。(原因)動(dòng)態(tài)流水線的時(shí)-空?qǐng)D舉例Ⅰ

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

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

假設(shè)前面DLX非流水線實(shí)現(xiàn)的時(shí)鐘週期時(shí)間

為10ns,ALU和分支指令需要4個(gè)時(shí)鐘週期,訪

問記憶體指令需5個(gè)時(shí)鐘週期,上述指令在程式

中出現(xiàn)的相對(duì)頻率分別是:40%、20%和40%。在

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

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

間上附加1ns的額外開銷。現(xiàn)忽略任何其他延遲

因素的影響,請(qǐng)問:相對(duì)於非流水實(shí)現(xiàn)而言,

基本的DLX流水線執(zhí)行指令的加速比是多少?3.2DLX的基本流水線解:當(dāng)非流水執(zhí)行指令時(shí),指令的平均執(zhí)行時(shí)

間為

TPI非流水

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

=10ns×4.4=44ns

在流水實(shí)現(xiàn)中,指令執(zhí)行的平均時(shí)間

是最慢一段的執(zhí)行時(shí)間加上額外開銷,即

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

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論