It計(jì)算機(jī)課件 第3章 流水線技術(shù)_第1頁
It計(jì)算機(jī)課件 第3章 流水線技術(shù)_第2頁
It計(jì)算機(jī)課件 第3章 流水線技術(shù)_第3頁
It計(jì)算機(jī)課件 第3章 流水線技術(shù)_第4頁
It計(jì)算機(jī)課件 第3章 流水線技術(shù)_第5頁
已閱讀5頁,還剩125頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論