版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第3章流水線技術(shù)
3.1重疊執(zhí)行和先行控制
3.2流水線的基本概念
3.3流水線的性能指標(biāo)
3.4流水線的相關(guān)與沖突
3.5流水線的實(shí)現(xiàn)
3.6向量處理機(jī)
2/206
3.1重疊執(zhí)行和先行控制
3.1.1重疊執(zhí)行
?將一條指令的執(zhí)行過程分為三個階段
取指令分析執(zhí)行
--------------------時(shí)間t
一條指令的執(zhí)行過程
3/206
3.1重疊執(zhí)行和先行控制
-取指令
?按照指令計(jì)數(shù)器PC的內(nèi)容訪問主存,取出一條指
令送到指令寄存器。
-指令分析
■對指令的操作碼進(jìn)行譯碼,按照給定的尋址方式
和地址字段形成操作數(shù)的地址,并用這個地址讀
取操作數(shù)。
-指令執(zhí)行
?按照操作碼的要求,完成指令規(guī)定的功能。
在指令的執(zhí)行過程中還要更新PC值,為讀取下
一條指令做好準(zhǔn)備。
4/206
3.1重疊執(zhí)行和先行控制
?三種執(zhí)行方式
-順序執(zhí)行方式
-一次重疊執(zhí)行方式
-二次重疊執(zhí)行方式
5/206
3.1重疊執(zhí)行和先行控制
?順序執(zhí)行方式
-指令的執(zhí)行過程
取指令k分析k執(zhí)行k取指令k+1分析k+1執(zhí)行k+1
-執(zhí)行77條指令所花的時(shí)間
指令,+,分析,+才執(zhí)行,)
6/206
3.1重疊執(zhí)行和先行控制
-如果取指令、指令分析和指令執(zhí)行的時(shí)間
相等,都是小則
戶3nt
-優(yōu)點(diǎn)
?控制簡單,節(jié)省設(shè)備。
-主要缺點(diǎn)
?處理機(jī)執(zhí)行指令的速度慢
■功能部件的利用率很低
7/206
3.1重疊執(zhí)行和先行控制
?一次重疊執(zhí)行方式
I-指令的執(zhí)行過程
取指令k分析k執(zhí)行k
取指令k+l分析k+l執(zhí)行k+l
取指令k+2分析k+2執(zhí)行k+2
執(zhí)行第4條指令與取第k+1條指令同時(shí)進(jìn)行。
(一種最簡單的重疊方式)
8/206
3.1重疊執(zhí)行和先行控制
如果執(zhí)行一條指令的3個階段的時(shí)間相等
,都是九則執(zhí)行遙指令所花的時(shí)間為
7^(1+2/7)t
優(yōu)點(diǎn)
?程序的執(zhí)行時(shí)間減少了近1/3。
?功能部件的利用率明顯提高。
缺點(diǎn)
?需要增加一些硬件,控制過程變復(fù)雜了。
9/206
(3.1重疊執(zhí)行和先行控制
?二次重疊執(zhí)行方式
I-指令的執(zhí)行過程
取指令k分析k執(zhí)行k
取指令k+1分析k+l執(zhí)行k+l
取指令k+2分析k+2執(zhí)行k+2
I取第4+I條指令提前到與分析第4條指令同時(shí)進(jìn)行,
,分析第〃+i條指令與執(zhí)行第4條指令同時(shí)進(jìn)行。
10/206
3.1重疊執(zhí)行和先行控制
-如果執(zhí)行一條指令的3個階段的時(shí)間相等
,都是亡,則執(zhí)行n條指令所花的時(shí)間為
7=(2+力t
-優(yōu)點(diǎn)
i?與順序執(zhí)行方式相比,執(zhí)行時(shí)間縮短了近2/3。
:?部件的利用率有了進(jìn)一步的提高。
-缺點(diǎn)
?需要增加更多的硬件。
?需要設(shè)置獨(dú)立的取指令部件、指令分析部件和指
令執(zhí)行部件。
11/206
3.1重疊執(zhí)行和先行控制
訪問主存的沖突問題
4種解決方法
?設(shè)置兩個獨(dú)立編址的存儲器:
指令存儲器(存放指令)、數(shù)據(jù)存儲器(存放數(shù)
據(jù))
?指令和數(shù)據(jù)仍然混合存放在同一個主存中,但設(shè)置
兩個Cache:指令Cache、數(shù)據(jù)Cache
程序空間和數(shù)據(jù)空間相互獨(dú)立的系統(tǒng)結(jié)構(gòu)被稱
為哈佛結(jié)構(gòu)。
■指令和數(shù)據(jù)仍然混合存放在同一個主存中,但主存
采用多體交叉結(jié)構(gòu)。
(有一定的局限性)
12/206
3.1重疊執(zhí)行和先行控制
?在主存和指令分析部件之間增設(shè)指令緩沖站
(又被稱為先行指令緩沖站)
I-主存不是滿負(fù)荷工作的,插空從主存中預(yù)先把后面將
要執(zhí)行的指令取出來,存放到指令緩沖站中。
I-在“取指令”階段從指令緩沖站讀取指令(如果指令
緩沖站不為空),而不用去訪問主存。
13/206
3.1重疊執(zhí)行和先行控制
?先行指令緩沖站
-先行指令緩沖站的組成1
主
存
控
制
器
控制邏輯
14/206
3.1重疊執(zhí)行和先行控制
指令緩沖存儲區(qū)和相應(yīng)的控制邏輯
?按隊(duì)列方式工作。
?只要指令緩沖站不滿,它就自動地向主存控制器
發(fā)取指令請求,不斷地預(yù)取指令。
指令分析部件
?每分析完一條指令,就自動向指令緩沖站發(fā)出取
下一條指令的請求。指令取出之后就把指令緩沖
站中的該指令作廢。
?指令緩沖站中存放的指令的條數(shù)是動態(tài)變化的。
兩個程序計(jì)數(shù)器
15/206
I3.1重疊執(zhí)行和先行控制
I?先行程序計(jì)數(shù)器PCI:用于從主存預(yù)取指令;
I?現(xiàn)行程序計(jì)數(shù)器PC:用來記錄指令分析部件當(dāng)前正
I在分析的指令的地址。
,先行控制方式中的一次重疊執(zhí)行
■-若取指令階段的時(shí)間很短,可以把這個操作
I合并到分析指令中。
£-上述的二次重疊就演變成了一次重疊
?把一條指令的執(zhí)行過程分為分析和執(zhí)行兩個階段;
I?讓前一條指令的執(zhí)行與后一條指令的分析重疊進(jìn)行
16/206
3.1重疊執(zhí)行和先行控制
分析k執(zhí)行k
分析k+l執(zhí)行k+l
分析k+2執(zhí)行k+2
-如果指令分析和指令執(zhí)行所需要的時(shí)間都
是方,則采用這種方式連續(xù)執(zhí)行〃條指令所
需要的時(shí)間為:
7=(1+/7)t
控制方式比較簡單,得到了廣泛應(yīng)用。
17/206
3.1重疊執(zhí)行和先行控制
-當(dāng)指令分析和指令執(zhí)行所需要的時(shí)間不相
等時(shí),
其執(zhí)行過程為:
分析k扭U亍k
■;執(zhí)行k+1
分析k”If
執(zhí)行k+2■
分析k+2■1I
分析k+3執(zhí)行k+3
指令分析部件和指令執(zhí)行部件存在相互等待的時(shí)候,會出
現(xiàn)部件空閑的情況。
18/206
3.1重疊執(zhí)行和先行控制
3.1.2先行控制
卜先行控制技術(shù):緩沖技術(shù)和預(yù)處理技術(shù)
I的結(jié)合
I-緩沖技術(shù):在工作速度不固定的兩個功能
B部件之間設(shè)置緩沖器,用以平滑它們的工
I作。
:-預(yù)處理技術(shù):預(yù)取指令、對指令進(jìn)行加工
[以及預(yù)取操作數(shù)等。
?采用先行控制方式的處理機(jī)結(jié)構(gòu)
19/206
3.1重疊執(zhí)行和先行控制
20/206
3.1重疊執(zhí)行和先行控制
-設(shè)置了4個緩沖站
(平滑主存、指令分析部件、運(yùn)算器三者之間的
?工作)
?先行指令緩沖站(前面已講述)
?先行操作站
?先行讀數(shù)站
?后行寫數(shù)站
共同特點(diǎn):按先進(jìn)先出的方式工作,而且都是由
一組若干個能快速訪問的存儲單元和相關(guān)的控制
邏輯組成。21/206
3.1重疊執(zhí)行和先行控制
先行操作站
?在指令分析部件和運(yùn)算器之間提供緩沖
?先行:因?yàn)槠渲械闹噶顚τ谶\(yùn)算器正在執(zhí)行的
指令來說是后續(xù)的,但卻被先行取出并預(yù)
處理。
指令分析部件
?從先行指令緩沖站取指令,并進(jìn)行預(yù)處理,加工
成統(tǒng)一格式的RR型操作命令,然后送入先行操作
站。
?對于不同指令做不同的處理。
22/206
3.1重疊執(zhí)行和先行控制
-運(yùn)算器
?從先行操作站取出RR型操作命令并執(zhí)行。
■每執(zhí)行完一條,將運(yùn)算結(jié)果寫入通用寄存器組或
者后行寫數(shù)站。
!*繼續(xù)執(zhí)行先行操作站中的后續(xù)命令。
-先行讀數(shù)站
?作用:接收指令分析部件送來的訪問主存的有效
地址,按順序依次從主存讀取操作數(shù),提供給運(yùn)
算器使用。
?先行:因?yàn)閷τ谡趫?zhí)行的指令來說,先行讀數(shù)
站中的操作數(shù)是先行取出的。
23/206
3.1重疊執(zhí)行和先行控制
-后行寫數(shù)站
?作用:接收從運(yùn)算器送來的結(jié)果數(shù)據(jù),并負(fù)責(zé)修
之寫入主存。
?后行:因?yàn)檎驹谶\(yùn)算器的角度來看,結(jié)果數(shù)據(jù)不
是在相應(yīng)的指令運(yùn)算完后立即寫入主存,而是由
后行寫數(shù)站滯后寫入的。
1?每一個存儲單元由3部分組成:
I后行地址字段、后行數(shù)據(jù)字段、標(biāo)志字段
每當(dāng)從運(yùn)算器接收數(shù)據(jù)時(shí),將之放入后行數(shù)據(jù)
字段,并把相應(yīng)的數(shù)據(jù)有效標(biāo)志置位。后行寫數(shù)
站的控制邏輯自動向主存發(fā)出寫數(shù)請求。當(dāng)寫數(shù)
據(jù)操作完成后,也要置位有關(guān)標(biāo)志。
24/206
3.1重疊執(zhí)行和先行控制
采用先行控制后的一次重疊執(zhí)行
分析k執(zhí)行k
■
分析k+1執(zhí)行k+1
nW,
■■
分析k+21執(zhí)行k+2
分析k+3■執(zhí)行k+3
指令分析部件在不間斷地分析指令,而指令執(zhí)行部件則在
不間斷地執(zhí)行指令,它們都始終處于忙碌狀態(tài)。
25/206
3.1重疊執(zhí)行和先行控制
理想情況下,指令執(zhí)行部件應(yīng)該是一直忙
碌的。
處理機(jī)連續(xù)執(zhí)行"條指令所需要的時(shí)間為
nn
丁先行='分析1+Z%執(zhí)行,H匯%執(zhí)行,
Z=1Z=1
26/206
3.2流水線的基本概念
3.2.1什么是流水線
?工業(yè)生產(chǎn)流水線
27/206
3.2流水線的基本概念
?流水線技術(shù)
-把一個重復(fù)的過程分解為若干個子過程,每個子
過程由專門的功能部件來實(shí)現(xiàn)。
-把多個處理過程在時(shí)間上錯開,依次通過各功能
段,這樣,每個子過程就可以與其他的子過程并
行進(jìn)行。
流水線中的每個子過程及其功能部件稱為流水線的級
或段,段與段相互連接形成流水線。流水線的段數(shù)稱
為流水線的深度。
28/206
3.2流水線的基本概念
,指令流水線
I-把指令的解釋過程分解為分析和執(zhí)行兩個
子過程,并讓這兩個子過程分別用獨(dú)立的
;分析部件和執(zhí)行部件來實(shí)現(xiàn)。
I理想情況:速度提高一倍
I-4段指令流水線
入出
---->取指令——>譯碼——>執(zhí)行——>存結(jié)果——?
29/206
,3.2流水線的基本概念
?浮點(diǎn)加法流水線
I-把流水線技術(shù)應(yīng)用于運(yùn)算的執(zhí)行過程,就
形成了
I運(yùn)算操作流水線,也稱為部件級流水線。
I-把浮點(diǎn)加法的全過程分解為求階差、對階
I、尾數(shù)相加、規(guī)格化4個子過程。
理想情況:速度提高3倍
[——>求階差——>對階—>尾數(shù)相加—>規(guī)格化—
△/△/
30/206
■時(shí)空圖
-時(shí)空圖從時(shí)間和空間兩個方面描述了流水
線的工作過程。時(shí)空圖中,橫坐標(biāo)代表時(shí)
間,縱坐標(biāo)代表流水線的各個段。
-4段指令流水線的時(shí)空圖
空間
(單位:△力
L用電徽線的基神念
I-流水線把一個處理過程分解為若干個子過程(段)
I,每個子過程由一個專門的功能部件來實(shí)現(xiàn)。
I-流水線中各段的時(shí)間應(yīng)盡可能相等,否則將引起流
水線堵塞、斷流。
I時(shí)間長的段將成為流水線的瓶頸。
-流水線每一個功能部件的后面都要有一個緩沖寄存
■器(鎖存器),稱為流水寄存器。
?作用:在相鄰的兩段之間傳送數(shù)據(jù),以保證提供后
I面要用到的數(shù)據(jù),并把各段的處理工作相互隔離。
32/206
3.2流水線的基本概念
-流水技術(shù)適合于大量重復(fù)的時(shí)序過程,只
有在輸入端不斷地提供任務(wù),才能充分發(fā)揮
流水線的效率。
-流水線需要有通過時(shí)間和排空時(shí)間。
I?通過時(shí)間:第一個任務(wù)從進(jìn)入流水線到流出結(jié)果
I所需的時(shí)間。
[?排空時(shí)間:最后一個任務(wù)從進(jìn)入流水線到流出結(jié)
果所需的時(shí)間。
33/206
|3.2流水線的基本概念
3.2.2流水線的分類
從不同的角度和觀點(diǎn),把流水線分成多
I種不同的種類。
■,單功能流水線與多功能流水線
I(按照流水線所完成的功能來分類)
I-單功能流水線:只能完成一種固定功能的
I流水線。
I-多功能流水線:流水線的各段可以進(jìn)行不
I同的連接,以實(shí)現(xiàn)不同的功能。
34/206
111
1輸入1輸入1輸入
f
2求階差2求階差2
f
3對階3對階3
f
-1
4相力口4相力口4
f
-1
5規(guī)格化5規(guī)格化5
1
6相乘6E6相乘
f
7累力口717累加
f
8輸出8輸出8輸出
11
(a)分段(b)浮點(diǎn)連接(c)定乘連接
3.2流水線的基本概念
?靜態(tài)流水線與動態(tài)流水線
I(按照同一時(shí)間內(nèi)各段之間的連接方式對多功能流水
I線做進(jìn)一步的分類)
I-靜態(tài)流水線:在同一時(shí)間內(nèi),多功能流水
I線中的各段只能按同一種功能的連接方式
■工作。
B?對于靜態(tài)流水線來說,只有當(dāng)輸入的是一串相同
;的運(yùn)算任務(wù)時(shí),流水的效率才能得到充分的發(fā)揮
36/206
3.2流水線的基本概念
動態(tài)流水線:在同一時(shí)間內(nèi),多功能流水
線中的各段可以按照不同的方式連接,同
時(shí)執(zhí)行多種功能。
?優(yōu)點(diǎn)
靈活,能夠提高流水線各段的使用
率,從而提高處理速度。
?缺點(diǎn)
控制復(fù)雜。
37/206
靜、動態(tài)流水線的時(shí)空圖
假設(shè)該流水線要先做幾個浮點(diǎn)加注,然后再做一批定點(diǎn)乘法.
■
3.2流水線的基本概念
?部件級、處理機(jī)級及處理機(jī)間流水線
(按照流水的級別來進(jìn)行分類)
I-部件級流水線(運(yùn)算操作流水線):把處
I理機(jī)的算術(shù)邏輯運(yùn)算部件分段,使得各種
I類型的運(yùn)算操作能夠按流水方式進(jìn)行。
I-處理機(jī)級流水線(指令流水線):把指令
I的解釋執(zhí)行過程按照流水方式處理。把一
I條指令的執(zhí)行過程分解為若干個子過程,
I每個子過程在獨(dú)立的功能部件中執(zhí)行。
!例如:前面的4段指令流水線39/206
3.2流水線的基本概念
-處理機(jī)間流水線(宏流水線):它是由兩
個或者兩個以上的處理機(jī)串行連接起來,
對同一數(shù)據(jù)流進(jìn)行處理,每個處理機(jī)完成
整個任務(wù)中的一'部分。
任務(wù)1任務(wù)2任務(wù)n
40/206
3.2流水線的基本概念
?線性流水線與非線性流水線
(按照流水線中是否有反饋回路來進(jìn)行分類)
-線性流水線:流水線的各段串行連接,沒有
反饋回路。數(shù)據(jù)通過流水線中的各段時(shí),每
一^個段最多只流過一■次。
-非線性流水線:流水線中除了有串行的連接
夕卜還有反饋回路。
非線性流水線的調(diào)度問題
?確定什么時(shí)候向流水線引進(jìn)新的任務(wù),才能使該任
務(wù)不會與先前進(jìn)入流水線的任務(wù)發(fā)生沖突——爭用
流水段。
41/206
3.2流水線的基本概念
非線性流水戰(zhàn)
(舉例)
反饋回路
S1
串行連接
雖然流水線僅由四段構(gòu)成.
例如任務(wù)@?
但有些段可能要重復(fù)逋過.
42/206
13.2流水線的基本概念
[順序流水線與亂序流水線
I(根據(jù)任務(wù)流入和流出的順序是否相同來進(jìn)行分類)
I-順序流水線:流水線輸出端任務(wù)流出的順
L序與輸入端任務(wù)流入的順序完全相同。每
i一個任務(wù)在流水線的各段中是一個跟著一
■個順序流動的。
I-亂序流水線:流水線輸出端任務(wù)流出的順
:序與輸入端任務(wù)流入的順序可以不同,允
[許后進(jìn)入流水線的任務(wù)先完成(從輸出端
I流出)O
也稱為無序流水線、錯序流水線、異步流水線
43/206
3.3流水線的性能指標(biāo)
3.3.1吞吐率
I吞吐率:在單位時(shí)間內(nèi)流水線所完成
1的任務(wù)數(shù)量或輸出結(jié)果的數(shù)量。
TP=——
n:任務(wù)數(shù)
Tk:處理完成77個任務(wù)所用的時(shí)間
44/206
3.3流水線的性能指標(biāo)
各段時(shí)間均相等的流水線
-各段時(shí)間均相等的流水線時(shí)空圖
空間,
??????n-1n
S4123
??????
S3123n-1n
??????
S2123n-1n
S.123??????n-1n
?
k?△t一(n-1)?△/時(shí)間
1(單位:△,)
--TP.-j
?■KA
45/206
3.3流水線的性能指標(biāo)
-流水線完成打個連續(xù)任務(wù)所需要的總時(shí)間
為
(假設(shè)一條A段線性流水線)
〃=?△2+(/7-1)At=(〃+/7-1)At
-流水線的實(shí)際吞吐率
T___P__=----------
-最大吞吐率的+"1的
n1
TPx=lim
77—>OO(左十〃-l)AlAt
46/206
3.3流水線的性能指標(biāo)
最大吞吐率與實(shí)際吞吐率的關(guān)系
n
TP=-----TP
k丁+n—1max
?流水線的實(shí)際吞吐率小于最大吞吐率,它除了
與每個段的時(shí)間有關(guān)外,還與流水線的段數(shù)A以
及輸入到流水線中的任務(wù)數(shù)n等有關(guān)。
?只有當(dāng)/7>>“時(shí),才有TP-TPMX。
47/206
3.3流水線的性能指標(biāo)
?各段時(shí)間不完全相等的流水線
-各段時(shí)間不等的流水線及其時(shí)空圖
?一條4段的流水線
?S1,S3,S4各段的時(shí)間:△t
?S2的時(shí)間:3A方(瓶頸段)
流水線中這種時(shí)間最長的段稱為流水線的瓶
頸段。
48/206
3.3流水線的性能指標(biāo)
流水線的時(shí)-空圖
(各段時(shí)間不等)
△to3AtoAtoAto
49/206
3.3流水線的性能指標(biāo)
各段時(shí)間不等的流水線的實(shí)際吞吐率:
(AM為第,段的時(shí)間,共有“個段)
+(〃—1)max(Az1,A?2,…,Atk)
流水線的最大吞吐率為
TP=-------------------------------
max(△0,42,…)
50/206
3.3流水線的性能指標(biāo)
例如:一條4段的流水線中,SPS25S4
各段的時(shí)間都是At,唯看S3的曲間是
3Ato
△tAt3AtAt
入
—HSi]~~*S2-?s3->s4->出
最大吞吐率為
1
hmax
3Al
51/206
3.3流水線的性能指標(biāo)
?解決流水線瓶頸問題的常用方法
-細(xì)分瓶頸段
例如:對前面的4段流水線
把瓶頸段S?細(xì)分為3個子流水線段:S3a,S3b,
入出
改進(jìn)后的流水線的吞吐率:1
-ax
At
52/206
3.3流水線的性能指標(biāo)
-重復(fù)設(shè)置瓶頸段
?缺點(diǎn):控制邏輯比較復(fù)雜,所需的硬件增加了
例如:對前面的4段流水線
重復(fù)設(shè)置瓶頸段S3:S3a,S3b,S3c
3At
53/206
3.3流水線的性能指標(biāo)
重復(fù)設(shè)置瓶頸段后的時(shí)空圖
54/206
3.3流水線的性能指標(biāo)
3.3.2加速比
加速比:完成同樣一批任務(wù),不使用流水
[線所用的時(shí)間
與使用流水線所用的時(shí)間之比。
假設(shè):不使用流水線(即順序執(zhí)行)所
■用的間為盤使用流水線后所用的時(shí)間
為Tk,則該流水線的加速比為
S二
k
55/206
3.3流水線的性能指標(biāo)
?流水線各段時(shí)間相等(都是△匕)
-一條左段流水線完成/7個連續(xù)任務(wù)
所需要的時(shí)間為
/=(A+n-l)AZ
-順序執(zhí)行n個任務(wù)
所需要的時(shí)間:T=nk^t
流水線的實(shí)際加速比為cri、k=-------
左+〃一1
56/206
3.3流水線的性能指標(biāo)
最大加速比
nk
Smaxlim二k
…00k+n—1
當(dāng)〃>〉知寸,k
思考:流水線的段數(shù)愈多愈好?
57/206
、3.3流水線的性能指標(biāo)
,流水線的各段時(shí)間不完全相等時(shí)
I-一條〃段流水線完成〃個連續(xù)任務(wù)的實(shí)際加
:速比為
k
\s'K--------------
;Z△北+(〃-1)max(Nt、,△/2,…,△〃)
Z=1
58/206
3.3流水線的性能指標(biāo)
3.3.3效率
效率:流水線中的設(shè)備實(shí)際使用時(shí)間與
整個運(yùn)行時(shí)間的比值,即流水線設(shè)備
[的利用率。
由于流水線有通過時(shí)間和排空時(shí)間,所
以在連續(xù)完成刀個任務(wù)的時(shí)間內(nèi),各段并不是
滿負(fù)荷地工作。
?各段時(shí)間相等。1=%--=/=喂=二
JL7^/VIfl/JL
~各段的效率S,相同
59/206
3.3流水線的性能指標(biāo)
整條流水線的效率為
6+e2H------Feke.knAt
>可以寫成E---------------k---------=-----=--------
kkkTk
E=--—
>最高效率為左+〃一1
=lim-----------=1
8左+〃—1
當(dāng)〃>>"時(shí),£^lo
60/206
3.3流水線的性能指標(biāo)
-當(dāng)流水線各段時(shí)間相等時(shí),流水線的效率與
吞吐率
成正比。
FTPdt
|流水線的效率是流水線的實(shí)際加速比S與
它的最大加速
k
比〃的比值。
當(dāng)斤1時(shí),S=k,實(shí)際加速比達(dá)到最大。
61/206
3.3流水線的性能指標(biāo)
?從時(shí)空圖上看,效率就是〃個任務(wù)占用的
時(shí)空面積和4個段總的時(shí)空面積之比。
萬〃個任務(wù)實(shí)際占用的時(shí)空區(qū)
E=---------------------------------
上個段總的時(shí)空區(qū)
當(dāng)各段時(shí)間不相等時(shí)
k
及EM
E=i=l
+(?—1)?max(Z、,AZ2,???,△幾)
62/206
3.3流水線的性能指標(biāo)
3.3.4流水線的性能分析舉例
例3.1設(shè)在下圖所示的靜態(tài)流水線上計(jì)算
4
n(4+5,)
i=l加減法
乘法
流水線的輸出可以直接返回輸入端或暫存于相應(yīng)
的流水寄存器中,試計(jì)算其吞吐率、加速比和效
率(每段的時(shí)間都為△方)
63/206
3.3流水線的性能指標(biāo)
解:(1)選擇適合于流水線工作的算法
?先計(jì)算4+多、力2+4、力3+4和4+4;
\?再計(jì)算(4+4)X(4+4)和(4+83)X(4+84);
{?然后求總的乘積結(jié)果。
(2)畫出時(shí)空圖
64/206
3.3流水線的性能指標(biāo)
段ABCDAXBCXDAXBXCXD
8
7A=A]+B[
6
B=A2+B2
5
C=A3+B3
4
D=A4+B4
3
2
1
n——
01239101112131415161718
時(shí)間
輸AiA2A3A4ACAXB
入BiB2B3B4BDCXD
TP=-^—£—6+3x4=025
18AZ18AZ8x18
3.3流水線的性能指標(biāo)
(3)計(jì)算性能
口在18個△方時(shí)間中,給出了7個結(jié)果。吞吐率
為:7
TP=--
18A/
:□不用流水線,由于一次求和需643一次求積需4△方,
則產(chǎn)生上述7個結(jié)果共需(4X6+3X4)△方二36△方
加速比為
18AZ
66/206
3.3流水線的性能指標(biāo)
流水線的效率
^=4x6+3x4=025
8x18
可以看出,在求解此問題時(shí),該流水線的效率不高。
67/206
3.3流水線的性能指標(biāo)
主要原因
?多功能流水線在做某一種運(yùn)算時(shí),總有一些段
是空閑的。
?靜態(tài)流水線在進(jìn)行功能切換時(shí),要等前一種運(yùn)
算全部流出流水線后才能進(jìn)行后面的運(yùn)算。
?運(yùn)算之間存在關(guān)聯(lián),后面有些運(yùn)算要用到前面
運(yùn)算的結(jié)果。
?流水線的工作過程有建立與排空部分。
68/206
3.3流水線的性能指標(biāo)
例3.2有一條動態(tài)多功能流水線由5段組成,加法用1、3、4
、5段,乘法用1、2、5段,第2段的時(shí)間為22\方,其余各段時(shí)間
均為△1,而且流水線的輸出可以直接返回輸入端或暫存于相應(yīng)
的流水寄存器中。若在該流水線上計(jì)算:
4
Z(4x即
Z=1
試計(jì)算其吞吐率、加速比和效率。
加法
69/206
3.3流水線的性能指標(biāo)
解:(1)選擇適合于流水線工作的算法
□應(yīng)先計(jì)算加'卸、A2x應(yīng)、[3><不和題x以;
□再計(jì)算(Jix卸)+(加x加)
(A3x風(fēng))+(J4x冽);
:□然后求總的累加結(jié)果。
(2)畫出時(shí)空圖
(3)計(jì)算性能
70/206
3.3流水線的性能指標(biāo)
7
TP=——5=2656萬=4X4+3X4—31
18加18AZ5x18
71/206
3.3流水線的性能指標(biāo)
下面我們再看一個例子:
例在靜態(tài)流水線上計(jì)算:之(3,)
Z=1
求:吞吐率,加速比,效率。
解:(1)確定適合于流水處理的計(jì)算過程
(2)畫時(shí)空圖
⑶性能計(jì)算
吞吐率TP=7/(20△2)
加速比S=(34△2)/(20△方)=1.7
效率£=(4X4+3X6)/(8X20)=0.21
72/206
3.3流水線的性能指標(biāo)
靜態(tài)流水線
(舉例)
加減法
2-"3-n4-5678
乘注
73/206
3.3流水線的性能指標(biāo)
.3.3.5流水線設(shè)計(jì)中的若干問題
:/?瓶頸問題
理想情況下,流水線在工作時(shí),其中的任務(wù)是
同步地每一個時(shí)鐘周期往前流動一段。
當(dāng)流水線各段不均勻時(shí),機(jī)器的時(shí)鐘周期取決
于瓶頸段的延遲時(shí)間。
在設(shè)計(jì)流水線時(shí),要盡可能使各段時(shí)間相等。
J流水線的額外開銷
-流水寄存器延遲
時(shí)鐘偏移開銷
74/206
3.3流水線的性能指標(biāo)
-流水寄存器需要建立時(shí)間和傳輸延遲
?建立時(shí)間:在觸發(fā)寫操作的時(shí)鐘信號到達(dá)之前,
;寄存器輸入必須保持穩(wěn)定的時(shí)間。
;?傳輸延遲:時(shí)鐘信號到達(dá)后到寄存器輸出可用的
i時(shí)間。
-時(shí)鐘偏移開銷
1?流水線中,時(shí)鐘到達(dá)各流水寄存器的最大差值時(shí)
間。(時(shí)鐘到達(dá)各流水寄存器的時(shí)間不是完全相
同)
75/206
I3.3流水線的性能指標(biāo)
I-幾個問題
■?流水線并不能減少(而且一般是增加)單條指令的執(zhí)
I行時(shí)間,但卻能提高吞吐率。
I?增加流水線的深度(段數(shù))可以提高流水線的性能。
?流水線的深度受限于流水線的額外開銷。
?當(dāng)時(shí)鐘周期小到與額外開銷相同時(shí),流水已沒意義。
I因?yàn)檫@時(shí)在每一個時(shí)鐘周期中已沒有時(shí)間來做有用的
工作。
r沖突問題
流水線設(shè)計(jì)中要解決的重要問題之一O
76/206
3.4流水線的相關(guān)與沖突
3.4.1一個經(jīng)典的5段流水線
I-介紹一個經(jīng)典的5段RISC流水線
-首先討論在非流水情況下是如何實(shí)現(xiàn)的
?一條指令的執(zhí)行過程分為以下5個周期
I-取指令周期(IF)
I?IRMem[PC]o
I?PC值加4。(假設(shè)每條指令占4個字節(jié))
77/206
3.4流水線的相關(guān)與沖突
-指令譯碼/讀寄存器周期(ID)
?譯碼。
?用IR中的寄存器編號去訪問通用寄存器組,讀出
所需的操作數(shù)。
-執(zhí)行/有效地址計(jì)算周期(EX)
j不同指令所進(jìn)行的操作不同:
?存儲器訪問指令:ALU把所指定的寄存器的內(nèi)容
與偏移量相加,形成用于訪存的有效地址。
?寄存器-寄存器ALU指令:ALU按照操作碼指定的
操作對從通用寄存器組中讀取的數(shù)據(jù)進(jìn)行運(yùn)算。
78/206
3.4流水線的相關(guān)與沖突
■寄存器-立即數(shù)ALU指令:ALU按照操作碼指定的操
作對從通用寄存器組中讀取的第一操作數(shù)和立即數(shù)
:進(jìn)行運(yùn)算。
?分支指令:ALU把偏移量與PC值相加,形成轉(zhuǎn)移目標(biāo)
i的地址。同時(shí),對在前一個周期讀出的操作數(shù)進(jìn)行
判斷,確定分支是否成功。
-存儲器訪問/分支完成周期(MEM)
該周期處理的指令只有Ioad、store和分支指令
o其他類型的指令在此周期不做任何操作。
79/206
3.4流水線的相關(guān)與沖突
?load和store指令
load指令:用上一個周期計(jì)算出的有效地址從存
儲器中讀出相應(yīng)的數(shù)據(jù)。
store指令:把指定的數(shù)據(jù)寫入這個有效地址所指
出的存儲器單元。
?分支指令
分支“成功”,就把轉(zhuǎn)移目標(biāo)地址送入PC。
分支指令執(zhí)行完成。
80/206
3.4流水線的相關(guān)與沖突
-寫回周期(WB)
ALU運(yùn)算指令和Ioad指令在這個周期
把結(jié)果數(shù)據(jù)寫入通用寄存器組。
IALU運(yùn)算指令:結(jié)果數(shù)據(jù)來自ALU。
load指令:結(jié)果數(shù)據(jù)來自存儲器系統(tǒng)。
在這個實(shí)現(xiàn)方案中:
口分支指令需要4個時(shí)鐘周期(如果把分支指令的
執(zhí)行提前到ID周期,則只需要2個周期)。
口store指令需要4個周期。
□其他指令需要5個周期才能完成。
81/206
將上述實(shí)現(xiàn)方案修改為流水線實(shí)現(xiàn)
-一個經(jīng)典的5段流水線
?每一個周期作為一個流水段。
?在各段之間加上鎖存器(流水寄存器)。
流水線寄存器
3.4流水線的相關(guān)與沖突
-5段流水線的兩種描述方式
?第一種描述(類似于時(shí)空圖)
一種簡單DLX流水線的流水過程
時(shí)鐘周期
指令塘號123456789
指令iIFIDEXMEMVB
*i+1IFIDEXHEMVB
指令i+2IFIDEXIE1V¥B
指令i+=;IFIDEXMEMWB
指令i+4IFIDEXMEKIB
83/206
-第二種描述(按時(shí)間錯開的數(shù)據(jù)通路序列
流水線可以看成是按時(shí)間錯開的數(shù)據(jù)通路序列
時(shí)間(時(shí)鐘版期)---------------------------------------------------------------
程
序
執(zhí)
行指令i
順
印
審指令1+1
色
指令i+2
指令i+3
指令i+4II
3.4流水線的相關(guān)與沖突
采用流水線方式實(shí)現(xiàn)時(shí),應(yīng)解決以下幾個問
題:
-要保證不會在同一時(shí)鐘周期要求同一個功能段
I做
I兩件不同的工作。
[例如,不能要求ALU同時(shí)做有效地址計(jì)算和算術(shù)運(yùn)算。
-避免IF段的訪存(取指令)與MEM段的訪存(
讀/寫數(shù)據(jù))發(fā)生沖突。
!?可以采用分離的指令存儲器和數(shù)據(jù)存儲器;
1?一般采用分離的指令Cache和數(shù)據(jù)Cache。
IID段和WB段都要訪問同一寄存器文件。
IID段:讀WB段:寫
85/206
3.4流水線的相關(guān)與沖突
如何解決對同一寄存器的訪問沖突?
把寫操作安排在時(shí)鐘周期的前半拍完成,把讀
操作安排在后半拍完成。
-考慮PC的問題
?流水線為了能夠每個時(shí)鐘周期啟動一條新的指令,
1就必須在每個時(shí)鐘周期進(jìn)行PC值的加4操作,并保留
新的PC值。這種操作必須在IF段完成,以便為取下
一條指令做好準(zhǔn)備。
(需設(shè)置一個專門的加法器)
?但分支指令也可能改變PC的值,而且是在MEM段進(jìn)行
,這會導(dǎo)致沖突。
86/206
3.4盤晶態(tài)精相關(guān)與沖突
3.4.2.1相關(guān)
I-相關(guān):兩條指令之間存在某種依賴關(guān)系。
■如果兩條指令相關(guān),則它們就有可能不能
;在流水線中重疊執(zhí)行或者只能部分重疊執(zhí)行。
-相關(guān)有3種類型
;■數(shù)據(jù)相關(guān)(也稱真數(shù)據(jù)相關(guān))
■.名相關(guān)
E?控制相關(guān)
87/206
3.4流水線的相關(guān)與沖突
?數(shù)據(jù)相關(guān)
I-對于兩條指令/(在前,下同)和/(在后
,下同),如果下述條件之一成立,則稱
I指令j與指令/數(shù)據(jù)相關(guān)。
I?指令,使用指令,產(chǎn)生的結(jié)果;
:■指令/與指令"數(shù)據(jù)相關(guān),而指令《又與指令/數(shù)據(jù)
,相關(guān)。
I-數(shù)據(jù)相關(guān)具有傳遞性。
E數(shù)據(jù)相關(guān)反映了數(shù)據(jù)的流動關(guān)系,即如何從其產(chǎn)
生者流動到其消費(fèi)者。
88/206
3.4流水線的相關(guān)與沖突
例如:下面這一段代碼存在數(shù)據(jù)相關(guān)。
Loop:L.DF0,0(R1)//FO為數(shù)組元素
ADD.DF4,FO,F2//加上F2中的值
S.DF4,0(RI)//保存結(jié)果
DADDIURI,RI,-8//數(shù)組指針遞減8個字節(jié)
BNE1,R2,Loop//如果R1WR2,則分支
89/206
I3.4流水線的相關(guān)與沖突
-當(dāng)數(shù)據(jù)的流動是經(jīng)過寄存器時(shí),相關(guān)的檢
■測比較直觀和容易。
-當(dāng)數(shù)據(jù)的流動是經(jīng)過存儲器時(shí),檢測比較
復(fù)雜O
「?相同形式的地址其有效地址未必相同。
1?形式不同的地址其有效地址卻可能相同。
??名相關(guān)
I-名:指令所訪問的寄存器或存儲器單元的名稱。
K-如果兩條指令使用相同的名,但是它們之間并沒
■有數(shù)據(jù)流動,則稱這兩條指令存在名相關(guān)。
90/206
3.4流水線的相關(guān)與沖突
指令j?與指令/之間的名相關(guān)有兩種:
?反相關(guān):如果指令,寫的名與指令下讀的名相同,
則稱指令i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度定制衣柜設(shè)計(jì)制作合同樣本4篇
- 技術(shù)部合同范本(2篇)
- 房建工程監(jiān)理合同(2篇)
- 承包商安全環(huán)保管理合同(2篇)
- 二零二五美容院客戶關(guān)系管理系統(tǒng)采購合同3篇
- 2025年度寵物養(yǎng)護(hù)咨詢快速反饋合同
- 二零二五版民間融資居間風(fēng)險(xiǎn)控制合同范本4篇
- 2025年票據(jù)質(zhì)押借款合同履約保證金管理辦法
- 二零二五年度果品加工副產(chǎn)品綜合利用合同3篇
- 二零二五年度互聯(lián)網(wǎng)企業(yè)員工勞動合同范本3篇
- 定額〔2025〕1號文-關(guān)于發(fā)布2018版電力建設(shè)工程概預(yù)算定額2024年度價(jià)格水平調(diào)整的通知
- 2024年城市軌道交通設(shè)備維保及安全檢查合同3篇
- 【教案】+同一直線上二力的合成(教學(xué)設(shè)計(jì))(人教版2024)八年級物理下冊
- 湖北省武漢市青山區(qū)2023-2024學(xué)年七年級上學(xué)期期末質(zhì)量檢測數(shù)學(xué)試卷(含解析)
- 單位往個人轉(zhuǎn)賬的合同(2篇)
- 電梯操作證及電梯維修人員資格(特種作業(yè))考試題及答案
- 科研倫理審查與違規(guī)處理考核試卷
- GB/T 44101-2024中國式摔跤課程學(xué)生運(yùn)動能力測評規(guī)范
- 鍋爐本體安裝單位工程驗(yàn)收表格
- 高危妊娠的評估和護(hù)理
- 2024年山東鐵投集團(tuán)招聘筆試參考題庫含答案解析
評論
0/150
提交評論