版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度土地整治項(xiàng)目個(gè)人土地承包合同2篇
- 2025年廣西中油昆侖投資有限公司招聘筆試參考題庫(kù)含答案解析
- 2025年浙江溫嶺飛洲集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 2025年福建廈門鼓旅會(huì)務(wù)有限公司招聘筆試參考題庫(kù)含答案解析
- 2025年浙江中合工程管理有限公司招聘筆試參考題庫(kù)含答案解析
- 2025年牛津譯林版九年級(jí)歷史下冊(cè)月考試卷
- 2025年湘教版必修2物理下冊(cè)階段測(cè)試試卷含答案
- 2025年度魚塘租賃合同(含漁業(yè)產(chǎn)業(yè)鏈整合及供應(yīng)鏈管理)3篇
- 2025年度牛奶包裝設(shè)計(jì)及定制采購(gòu)合同4篇
- 2025年粵教滬科版九年級(jí)歷史下冊(cè)月考試卷含答案
- 疥瘡病人的護(hù)理
- 人工智能算法與實(shí)踐-第16章 LSTM神經(jīng)網(wǎng)絡(luò)
- 17個(gè)崗位安全操作規(guī)程手冊(cè)
- 2025年山東省濟(jì)南市第一中學(xué)高三下學(xué)期期末統(tǒng)一考試物理試題含解析
- 中學(xué)安全辦2024-2025學(xué)年工作計(jì)劃
- 網(wǎng)絡(luò)安全保障服務(wù)方案(網(wǎng)絡(luò)安全運(yùn)維、重保服務(wù))
- 2024年鄉(xiāng)村振興(產(chǎn)業(yè)、文化、生態(tài))等實(shí)施戰(zhàn)略知識(shí)考試題庫(kù)與答案
- 現(xiàn)代科學(xué)技術(shù)概論智慧樹知到期末考試答案章節(jié)答案2024年成都師范學(xué)院
- 軟件模塊化設(shè)計(jì)與開發(fā)標(biāo)準(zhǔn)與規(guī)范
- 2024年遼寧鐵道職業(yè)技術(shù)學(xué)院高職單招(英語(yǔ)/數(shù)學(xué)/語(yǔ)文)筆試歷年參考題庫(kù)含答案解析
- 有機(jī)農(nóng)業(yè)種植模式
評(píng)論
0/150
提交評(píng)論