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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第3章流水線技術

3.1重疊執(zhí)行和先行控制

3.2流水線的基本概念

3.3流水線的性能指標

3.4流水線的相關與沖突

3.5流水線的實現(xiàn)

3.6向量處理機

2/206

3.1重疊執(zhí)行和先行控制

3.1.1重疊執(zhí)行

?將一條指令的執(zhí)行過程分為三個階段

取指令分析執(zhí)行

--------------------時間t

一條指令的執(zhí)行過程

3/206

3.1重疊執(zhí)行和先行控制

-取指令

?按照指令計數器PC的內容訪問主存,取出一條指

令送到指令寄存器。

-指令分析

■對指令的操作碼進行譯碼,按照給定的尋址方式

和地址字段形成操作數的地址,并用這個地址讀

取操作數。

-指令執(zhí)行

?按照操作碼的要求,完成指令規(guī)定的功能。

在指令的執(zhí)行過程中還要更新PC值,為讀取下

一條指令做好準備。

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條指令所花的時間

指令,+,分析,+才執(zhí)行,)

6/206

3.1重疊執(zhí)行和先行控制

-如果取指令、指令分析和指令執(zhí)行的時間

相等,都是小則

戶3nt

-優(yōu)點

?控制簡單,節(jié)省設備。

-主要缺點

?處理機執(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條指令同時進行。

(一種最簡單的重疊方式)

8/206

3.1重疊執(zhí)行和先行控制

如果執(zhí)行一條指令的3個階段的時間相等

,都是九則執(zhí)行遙指令所花的時間為

7^(1+2/7)t

優(yōu)點

?程序的執(zhí)行時間減少了近1/3。

?功能部件的利用率明顯提高。

缺點

?需要增加一些硬件,控制過程變復雜了。

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條指令同時進行,

,分析第〃+i條指令與執(zhí)行第4條指令同時進行。

10/206

3.1重疊執(zhí)行和先行控制

-如果執(zhí)行一條指令的3個階段的時間相等

,都是亡,則執(zhí)行n條指令所花的時間為

7=(2+力t

-優(yōu)點

i?與順序執(zhí)行方式相比,執(zhí)行時間縮短了近2/3。

:?部件的利用率有了進一步的提高。

-缺點

?需要增加更多的硬件。

?需要設置獨立的取指令部件、指令分析部件和指

令執(zhí)行部件。

11/206

3.1重疊執(zhí)行和先行控制

訪問主存的沖突問題

4種解決方法

?設置兩個獨立編址的存儲器:

指令存儲器(存放指令)、數據存儲器(存放數

據)

?指令和數據仍然混合存放在同一個主存中,但設置

兩個Cache:指令Cache、數據Cache

程序空間和數據空間相互獨立的系統(tǒng)結構被稱

為哈佛結構。

■指令和數據仍然混合存放在同一個主存中,但主存

采用多體交叉結構。

(有一定的局限性)

12/206

3.1重疊執(zhí)行和先行控制

?在主存和指令分析部件之間增設指令緩沖站

(又被稱為先行指令緩沖站)

I-主存不是滿負荷工作的,插空從主存中預先把后面將

要執(zhí)行的指令取出來,存放到指令緩沖站中。

I-在“取指令”階段從指令緩沖站讀取指令(如果指令

緩沖站不為空),而不用去訪問主存。

13/206

3.1重疊執(zhí)行和先行控制

?先行指令緩沖站

-先行指令緩沖站的組成1

控制邏輯

14/206

3.1重疊執(zhí)行和先行控制

指令緩沖存儲區(qū)和相應的控制邏輯

?按隊列方式工作。

?只要指令緩沖站不滿,它就自動地向主存控制器

發(fā)取指令請求,不斷地預取指令。

指令分析部件

?每分析完一條指令,就自動向指令緩沖站發(fā)出取

下一條指令的請求。指令取出之后就把指令緩沖

站中的該指令作廢。

?指令緩沖站中存放的指令的條數是動態(tài)變化的。

兩個程序計數器

15/206

I3.1重疊執(zhí)行和先行控制

I?先行程序計數器PCI:用于從主存預取指令;

I?現(xiàn)行程序計數器PC:用來記錄指令分析部件當前正

I在分析的指令的地址。

,先行控制方式中的一次重疊執(zhí)行

■-若取指令階段的時間很短,可以把這個操作

I合并到分析指令中。

£-上述的二次重疊就演變成了一次重疊

?把一條指令的執(zhí)行過程分為分析和執(zhí)行兩個階段;

I?讓前一條指令的執(zhí)行與后一條指令的分析重疊進行

16/206

3.1重疊執(zhí)行和先行控制

分析k執(zhí)行k

分析k+l執(zhí)行k+l

分析k+2執(zhí)行k+2

-如果指令分析和指令執(zhí)行所需要的時間都

是方,則采用這種方式連續(xù)執(zhí)行〃條指令所

需要的時間為:

7=(1+/7)t

控制方式比較簡單,得到了廣泛應用。

17/206

3.1重疊執(zhí)行和先行控制

-當指令分析和指令執(zhí)行所需要的時間不相

等時,

其執(zhí)行過程為:

分析k扭U亍k

■;執(zhí)行k+1

分析k”If

執(zhí)行k+2■

分析k+2■1I

分析k+3執(zhí)行k+3

指令分析部件和指令執(zhí)行部件存在相互等待的時候,會出

現(xiàn)部件空閑的情況。

18/206

3.1重疊執(zhí)行和先行控制

3.1.2先行控制

卜先行控制技術:緩沖技術和預處理技術

I的結合

I-緩沖技術:在工作速度不固定的兩個功能

B部件之間設置緩沖器,用以平滑它們的工

I作。

:-預處理技術:預取指令、對指令進行加工

[以及預取操作數等。

?采用先行控制方式的處理機結構

19/206

3.1重疊執(zhí)行和先行控制

20/206

3.1重疊執(zhí)行和先行控制

-設置了4個緩沖站

(平滑主存、指令分析部件、運算器三者之間的

?工作)

?先行指令緩沖站(前面已講述)

?先行操作站

?先行讀數站

?后行寫數站

共同特點:按先進先出的方式工作,而且都是由

一組若干個能快速訪問的存儲單元和相關的控制

邏輯組成。21/206

3.1重疊執(zhí)行和先行控制

先行操作站

?在指令分析部件和運算器之間提供緩沖

?先行:因為其中的指令對于運算器正在執(zhí)行的

指令來說是后續(xù)的,但卻被先行取出并預

處理。

指令分析部件

?從先行指令緩沖站取指令,并進行預處理,加工

成統(tǒng)一格式的RR型操作命令,然后送入先行操作

站。

?對于不同指令做不同的處理。

22/206

3.1重疊執(zhí)行和先行控制

-運算器

?從先行操作站取出RR型操作命令并執(zhí)行。

■每執(zhí)行完一條,將運算結果寫入通用寄存器組或

者后行寫數站。

!*繼續(xù)執(zhí)行先行操作站中的后續(xù)命令。

-先行讀數站

?作用:接收指令分析部件送來的訪問主存的有效

地址,按順序依次從主存讀取操作數,提供給運

算器使用。

?先行:因為對于正在執(zhí)行的指令來說,先行讀數

站中的操作數是先行取出的。

23/206

3.1重疊執(zhí)行和先行控制

-后行寫數站

?作用:接收從運算器送來的結果數據,并負責修

之寫入主存。

?后行:因為站在運算器的角度來看,結果數據不

是在相應的指令運算完后立即寫入主存,而是由

后行寫數站滯后寫入的。

1?每一個存儲單元由3部分組成:

I后行地址字段、后行數據字段、標志字段

每當從運算器接收數據時,將之放入后行數據

字段,并把相應的數據有效標志置位。后行寫數

站的控制邏輯自動向主存發(fā)出寫數請求。當寫數

據操作完成后,也要置位有關標志。

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í)行部件應該是一直忙

碌的。

處理機連續(xù)執(zhí)行"條指令所需要的時間為

nn

丁先行='分析1+Z%執(zhí)行,H匯%執(zhí)行,

Z=1Z=1

26/206

3.2流水線的基本概念

3.2.1什么是流水線

?工業(yè)生產流水線

27/206

3.2流水線的基本概念

?流水線技術

-把一個重復的過程分解為若干個子過程,每個子

過程由專門的功能部件來實現(xiàn)。

-把多個處理過程在時間上錯開,依次通過各功能

段,這樣,每個子過程就可以與其他的子過程并

行進行。

流水線中的每個子過程及其功能部件稱為流水線的級

或段,段與段相互連接形成流水線。流水線的段數稱

為流水線的深度。

28/206

3.2流水線的基本概念

,指令流水線

I-把指令的解釋過程分解為分析和執(zhí)行兩個

子過程,并讓這兩個子過程分別用獨立的

;分析部件和執(zhí)行部件來實現(xiàn)。

I理想情況:速度提高一倍

I-4段指令流水線

入出

---->取指令——>譯碼——>執(zhí)行——>存結果——?

29/206

,3.2流水線的基本概念

?浮點加法流水線

I-把流水線技術應用于運算的執(zhí)行過程,就

形成了

I運算操作流水線,也稱為部件級流水線。

I-把浮點加法的全過程分解為求階差、對階

I、尾數相加、規(guī)格化4個子過程。

理想情況:速度提高3倍

[——>求階差——>對階—>尾數相加—>規(guī)格化—

△/△/

30/206

■時空圖

-時空圖從時間和空間兩個方面描述了流水

線的工作過程。時空圖中,橫坐標代表時

間,縱坐標代表流水線的各個段。

-4段指令流水線的時空圖

空間

(單位:△力

L用電徽線的基神念

I-流水線把一個處理過程分解為若干個子過程(段)

I,每個子過程由一個專門的功能部件來實現(xiàn)。

I-流水線中各段的時間應盡可能相等,否則將引起流

水線堵塞、斷流。

I時間長的段將成為流水線的瓶頸。

-流水線每一個功能部件的后面都要有一個緩沖寄存

■器(鎖存器),稱為流水寄存器。

?作用:在相鄰的兩段之間傳送數據,以保證提供后

I面要用到的數據,并把各段的處理工作相互隔離。

32/206

3.2流水線的基本概念

-流水技術適合于大量重復的時序過程,只

有在輸入端不斷地提供任務,才能充分發(fā)揮

流水線的效率。

-流水線需要有通過時間和排空時間。

I?通過時間:第一個任務從進入流水線到流出結果

I所需的時間。

[?排空時間:最后一個任務從進入流水線到流出結

果所需的時間。

33/206

|3.2流水線的基本概念

3.2.2流水線的分類

從不同的角度和觀點,把流水線分成多

I種不同的種類。

■,單功能流水線與多功能流水線

I(按照流水線所完成的功能來分類)

I-單功能流水線:只能完成一種固定功能的

I流水線。

I-多功能流水線:流水線的各段可以進行不

I同的連接,以實現(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)浮點連接(c)定乘連接

3.2流水線的基本概念

?靜態(tài)流水線與動態(tài)流水線

I(按照同一時間內各段之間的連接方式對多功能流水

I線做進一步的分類)

I-靜態(tài)流水線:在同一時間內,多功能流水

I線中的各段只能按同一種功能的連接方式

■工作。

B?對于靜態(tài)流水線來說,只有當輸入的是一串相同

;的運算任務時,流水的效率才能得到充分的發(fā)揮

36/206

3.2流水線的基本概念

動態(tài)流水線:在同一時間內,多功能流水

線中的各段可以按照不同的方式連接,同

時執(zhí)行多種功能。

?優(yōu)點

靈活,能夠提高流水線各段的使用

率,從而提高處理速度。

?缺點

控制復雜。

37/206

靜、動態(tài)流水線的時空圖

假設該流水線要先做幾個浮點加注,然后再做一批定點乘法.

3.2流水線的基本概念

?部件級、處理機級及處理機間流水線

(按照流水的級別來進行分類)

I-部件級流水線(運算操作流水線):把處

I理機的算術邏輯運算部件分段,使得各種

I類型的運算操作能夠按流水方式進行。

I-處理機級流水線(指令流水線):把指令

I的解釋執(zhí)行過程按照流水方式處理。把一

I條指令的執(zhí)行過程分解為若干個子過程,

I每個子過程在獨立的功能部件中執(zhí)行。

!例如:前面的4段指令流水線39/206

3.2流水線的基本概念

-處理機間流水線(宏流水線):它是由兩

個或者兩個以上的處理機串行連接起來,

對同一數據流進行處理,每個處理機完成

整個任務中的一'部分。

任務1任務2任務n

40/206

3.2流水線的基本概念

?線性流水線與非線性流水線

(按照流水線中是否有反饋回路來進行分類)

-線性流水線:流水線的各段串行連接,沒有

反饋回路。數據通過流水線中的各段時,每

一^個段最多只流過一■次。

-非線性流水線:流水線中除了有串行的連接

夕卜還有反饋回路。

非線性流水線的調度問題

?確定什么時候向流水線引進新的任務,才能使該任

務不會與先前進入流水線的任務發(fā)生沖突——爭用

流水段。

41/206

3.2流水線的基本概念

非線性流水戰(zhàn)

(舉例)

反饋回路

S1

串行連接

雖然流水線僅由四段構成.

例如任務@?

但有些段可能要重復逋過.

42/206

13.2流水線的基本概念

[順序流水線與亂序流水線

I(根據任務流入和流出的順序是否相同來進行分類)

I-順序流水線:流水線輸出端任務流出的順

L序與輸入端任務流入的順序完全相同。每

i一個任務在流水線的各段中是一個跟著一

■個順序流動的。

I-亂序流水線:流水線輸出端任務流出的順

:序與輸入端任務流入的順序可以不同,允

[許后進入流水線的任務先完成(從輸出端

I流出)O

也稱為無序流水線、錯序流水線、異步流水線

43/206

3.3流水線的性能指標

3.3.1吞吐率

I吞吐率:在單位時間內流水線所完成

1的任務數量或輸出結果的數量。

TP=——

n:任務數

Tk:處理完成77個任務所用的時間

44/206

3.3流水線的性能指標

各段時間均相等的流水線

-各段時間均相等的流水線時空圖

空間,

??????n-1n

S4123

??????

S3123n-1n

??????

S2123n-1n

S.123??????n-1n

?

k?△t一(n-1)?△/時間

1(單位:△,)

--TP.-j

?■KA

45/206

3.3流水線的性能指標

-流水線完成打個連續(xù)任務所需要的總時間

(假設一條A段線性流水線)

〃=?△2+(/7-1)At=(〃+/7-1)At

-流水線的實際吞吐率

T___P__=----------

-最大吞吐率的+"1的

n1

TPx=lim

77—>OO(左十〃-l)AlAt

46/206

3.3流水線的性能指標

最大吞吐率與實際吞吐率的關系

n

TP=-----TP

k丁+n—1max

?流水線的實際吞吐率小于最大吞吐率,它除了

與每個段的時間有關外,還與流水線的段數A以

及輸入到流水線中的任務數n等有關。

?只有當/7>>“時,才有TP-TPMX。

47/206

3.3流水線的性能指標

?各段時間不完全相等的流水線

-各段時間不等的流水線及其時空圖

?一條4段的流水線

?S1,S3,S4各段的時間:△t

?S2的時間:3A方(瓶頸段)

流水線中這種時間最長的段稱為流水線的瓶

頸段。

48/206

3.3流水線的性能指標

流水線的時-空圖

(各段時間不等)

△to3AtoAtoAto

49/206

3.3流水線的性能指標

各段時間不等的流水線的實際吞吐率:

(AM為第,段的時間,共有“個段)

+(〃—1)max(Az1,A?2,…,Atk)

流水線的最大吞吐率為

TP=-------------------------------

max(△0,42,…)

50/206

3.3流水線的性能指標

例如:一條4段的流水線中,SPS25S4

各段的時間都是At,唯看S3的曲間是

3Ato

△tAt3AtAt

—HSi]~~*S2-?s3->s4->出

最大吞吐率為

1

hmax

3Al

51/206

3.3流水線的性能指標

?解決流水線瓶頸問題的常用方法

-細分瓶頸段

例如:對前面的4段流水線

把瓶頸段S?細分為3個子流水線段:S3a,S3b,

入出

改進后的流水線的吞吐率:1

-ax

At

52/206

3.3流水線的性能指標

-重復設置瓶頸段

?缺點:控制邏輯比較復雜,所需的硬件增加了

例如:對前面的4段流水線

重復設置瓶頸段S3:S3a,S3b,S3c

3At

53/206

3.3流水線的性能指標

重復設置瓶頸段后的時空圖

54/206

3.3流水線的性能指標

3.3.2加速比

加速比:完成同樣一批任務,不使用流水

[線所用的時間

與使用流水線所用的時間之比。

假設:不使用流水線(即順序執(zhí)行)所

■用的間為盤使用流水線后所用的時間

為Tk,則該流水線的加速比為

S二

k

55/206

3.3流水線的性能指標

?流水線各段時間相等(都是△匕)

-一條左段流水線完成/7個連續(xù)任務

所需要的時間為

/=(A+n-l)AZ

-順序執(zhí)行n個任務

所需要的時間:T=nk^t

流水線的實際加速比為cri、k=-------

左+〃一1

56/206

3.3流水線的性能指標

最大加速比

nk

Smaxlim二k

…00k+n—1

當〃>〉知寸,k

思考:流水線的段數愈多愈好?

57/206

、3.3流水線的性能指標

,流水線的各段時間不完全相等時

I-一條〃段流水線完成〃個連續(xù)任務的實際加

:速比為

k

\s'K--------------

;Z△北+(〃-1)max(Nt、,△/2,…,△〃)

Z=1

58/206

3.3流水線的性能指標

3.3.3效率

效率:流水線中的設備實際使用時間與

整個運行時間的比值,即流水線設備

[的利用率。

由于流水線有通過時間和排空時間,所

以在連續(xù)完成刀個任務的時間內,各段并不是

滿負荷地工作。

?各段時間相等。1=%--=/=喂=二

JL7^/VIfl/JL

~各段的效率S,相同

59/206

3.3流水線的性能指標

整條流水線的效率為

6+e2H------Feke.knAt

>可以寫成E---------------k---------=-----=--------

kkkTk

E=--—

>最高效率為左+〃一1

=lim-----------=1

8左+〃—1

當〃>>"時,£^lo

60/206

3.3流水線的性能指標

-當流水線各段時間相等時,流水線的效率與

吞吐率

成正比。

FTPdt

|流水線的效率是流水線的實際加速比S與

它的最大加速

k

比〃的比值。

當斤1時,S=k,實際加速比達到最大。

61/206

3.3流水線的性能指標

?從時空圖上看,效率就是〃個任務占用的

時空面積和4個段總的時空面積之比。

萬〃個任務實際占用的時空區(qū)

E=---------------------------------

上個段總的時空區(qū)

當各段時間不相等時

k

及EM

E=i=l

+(?—1)?max(Z、,AZ2,???,△幾)

62/206

3.3流水線的性能指標

3.3.4流水線的性能分析舉例

例3.1設在下圖所示的靜態(tài)流水線上計算

4

n(4+5,)

i=l加減法

乘法

流水線的輸出可以直接返回輸入端或暫存于相應

的流水寄存器中,試計算其吞吐率、加速比和效

率(每段的時間都為△方)

63/206

3.3流水線的性能指標

解:(1)選擇適合于流水線工作的算法

?先計算4+多、力2+4、力3+4和4+4;

\?再計算(4+4)X(4+4)和(4+83)X(4+84);

{?然后求總的乘積結果。

(2)畫出時空圖

64/206

3.3流水線的性能指標

段ABCDAXBCXDAXBXCXD

8

7A=A]+B[

6

B=A2+B2

5

C=A3+B3

4

D=A4+B4

3

2

1

n——

01239101112131415161718

時間

輸AiA2A3A4ACAXB

入BiB2B3B4BDCXD

TP=-^—£—6+3x4=025

18AZ18AZ8x18

3.3流水線的性能指標

(3)計算性能

口在18個△方時間中,給出了7個結果。吞吐率

為:7

TP=--

18A/

:□不用流水線,由于一次求和需643一次求積需4△方,

則產生上述7個結果共需(4X6+3X4)△方二36△方

加速比為

18AZ

66/206

3.3流水線的性能指標

流水線的效率

^=4x6+3x4=025

8x18

可以看出,在求解此問題時,該流水線的效率不高。

67/206

3.3流水線的性能指標

主要原因

?多功能流水線在做某一種運算時,總有一些段

是空閑的。

?靜態(tài)流水線在進行功能切換時,要等前一種運

算全部流出流水線后才能進行后面的運算。

?運算之間存在關聯(lián),后面有些運算要用到前面

運算的結果。

?流水線的工作過程有建立與排空部分。

68/206

3.3流水線的性能指標

例3.2有一條動態(tài)多功能流水線由5段組成,加法用1、3、4

、5段,乘法用1、2、5段,第2段的時間為22\方,其余各段時間

均為△1,而且流水線的輸出可以直接返回輸入端或暫存于相應

的流水寄存器中。若在該流水線上計算:

4

Z(4x即

Z=1

試計算其吞吐率、加速比和效率。

加法

69/206

3.3流水線的性能指標

解:(1)選擇適合于流水線工作的算法

□應先計算加'卸、A2x應、[3><不和題x以;

□再計算(Jix卸)+(加x加)

(A3x風)+(J4x冽);

:□然后求總的累加結果。

(2)畫出時空圖

(3)計算性能

70/206

3.3流水線的性能指標

7

TP=——5=2656萬=4X4+3X4—31

18加18AZ5x18

71/206

3.3流水線的性能指標

下面我們再看一個例子:

例在靜態(tài)流水線上計算:之(3,)

Z=1

求:吞吐率,加速比,效率。

解:(1)確定適合于流水處理的計算過程

(2)畫時空圖

⑶性能計算

吞吐率TP=7/(20△2)

加速比S=(34△2)/(20△方)=1.7

效率£=(4X4+3X6)/(8X20)=0.21

72/206

3.3流水線的性能指標

靜態(tài)流水線

(舉例)

加減法

2-"3-n4-5678

乘注

73/206

3.3流水線的性能指標

.3.3.5流水線設計中的若干問題

:/?瓶頸問題

理想情況下,流水線在工作時,其中的任務是

同步地每一個時鐘周期往前流動一段。

當流水線各段不均勻時,機器的時鐘周期取決

于瓶頸段的延遲時間。

在設計流水線時,要盡可能使各段時間相等。

J流水線的額外開銷

-流水寄存器延遲

時鐘偏移開銷

74/206

3.3流水線的性能指標

-流水寄存器需要建立時間和傳輸延遲

?建立時間:在觸發(fā)寫操作的時鐘信號到達之前,

;寄存器輸入必須保持穩(wěn)定的時間。

;?傳輸延遲:時鐘信號到達后到寄存器輸出可用的

i時間。

-時鐘偏移開銷

1?流水線中,時鐘到達各流水寄存器的最大差值時

間。(時鐘到達各流水寄存器的時間不是完全相

同)

75/206

I3.3流水線的性能指標

I-幾個問題

■?流水線并不能減少(而且一般是增加)單條指令的執(zhí)

I行時間,但卻能提高吞吐率。

I?增加流水線的深度(段數)可以提高流水線的性能。

?流水線的深度受限于流水線的額外開銷。

?當時鐘周期小到與額外開銷相同時,流水已沒意義。

I因為這時在每一個時鐘周期中已沒有時間來做有用的

工作。

r沖突問題

流水線設計中要解決的重要問題之一O

76/206

3.4流水線的相關與沖突

3.4.1一個經典的5段流水線

I-介紹一個經典的5段RISC流水線

-首先討論在非流水情況下是如何實現(xiàn)的

?一條指令的執(zhí)行過程分為以下5個周期

I-取指令周期(IF)

I?IRMem[PC]o

I?PC值加4。(假設每條指令占4個字節(jié))

77/206

3.4流水線的相關與沖突

-指令譯碼/讀寄存器周期(ID)

?譯碼。

?用IR中的寄存器編號去訪問通用寄存器組,讀出

所需的操作數。

-執(zhí)行/有效地址計算周期(EX)

j不同指令所進行的操作不同:

?存儲器訪問指令:ALU把所指定的寄存器的內容

與偏移量相加,形成用于訪存的有效地址。

?寄存器-寄存器ALU指令:ALU按照操作碼指定的

操作對從通用寄存器組中讀取的數據進行運算。

78/206

3.4流水線的相關與沖突

■寄存器-立即數ALU指令:ALU按照操作碼指定的操

作對從通用寄存器組中讀取的第一操作數和立即數

:進行運算。

?分支指令:ALU把偏移量與PC值相加,形成轉移目標

i的地址。同時,對在前一個周期讀出的操作數進行

判斷,確定分支是否成功。

-存儲器訪問/分支完成周期(MEM)

該周期處理的指令只有Ioad、store和分支指令

o其他類型的指令在此周期不做任何操作。

79/206

3.4流水線的相關與沖突

?load和store指令

load指令:用上一個周期計算出的有效地址從存

儲器中讀出相應的數據。

store指令:把指定的數據寫入這個有效地址所指

出的存儲器單元。

?分支指令

分支“成功”,就把轉移目標地址送入PC。

分支指令執(zhí)行完成。

80/206

3.4流水線的相關與沖突

-寫回周期(WB)

ALU運算指令和Ioad指令在這個周期

把結果數據寫入通用寄存器組。

IALU運算指令:結果數據來自ALU。

load指令:結果數據來自存儲器系統(tǒng)。

在這個實現(xiàn)方案中:

口分支指令需要4個時鐘周期(如果把分支指令的

執(zhí)行提前到ID周期,則只需要2個周期)。

口store指令需要4個周期。

□其他指令需要5個周期才能完成。

81/206

將上述實現(xiàn)方案修改為流水線實現(xiàn)

-一個經典的5段流水線

?每一個周期作為一個流水段。

?在各段之間加上鎖存器(流水寄存器)。

流水線寄存器

3.4流水線的相關與沖突

-5段流水線的兩種描述方式

?第一種描述(類似于時空圖)

一種簡單DLX流水線的流水過程

時鐘周期

指令塘號123456789

指令iIFIDEXMEMVB

*i+1IFIDEXHEMVB

指令i+2IFIDEXIE1V¥B

指令i+=;IFIDEXMEMWB

指令i+4IFIDEXMEKIB

83/206

-第二種描述(按時間錯開的數據通路序列

流水線可以看成是按時間錯開的數據通路序列

時間(時鐘版期)---------------------------------------------------------------

執(zhí)

行指令i

審指令1+1

指令i+2

指令i+3

指令i+4II

3.4流水線的相關與沖突

采用流水線方式實現(xiàn)時,應解決以下幾個問

題:

-要保證不會在同一時鐘周期要求同一個功能段

I做

I兩件不同的工作。

[例如,不能要求ALU同時做有效地址計算和算術運算。

-避免IF段的訪存(取指令)與MEM段的訪存(

讀/寫數據)發(fā)生沖突。

!?可以采用分離的指令存儲器和數據存儲器;

1?一般采用分離的指令Cache和數據Cache。

IID段和WB段都要訪問同一寄存器文件。

IID段:讀WB段:寫

85/206

3.4流水線的相關與沖突

如何解決對同一寄存器的訪問沖突?

把寫操作安排在時鐘周期的前半拍完成,把讀

操作安排在后半拍完成。

-考慮PC的問題

?流水線為了能夠每個時鐘周期啟動一條新的指令,

1就必須在每個時鐘周期進行PC值的加4操作,并保留

新的PC值。這種操作必須在IF段完成,以便為取下

一條指令做好準備。

(需設置一個專門的加法器)

?但分支指令也可能改變PC的值,而且是在MEM段進行

,這會導致沖突。

86/206

3.4盤晶態(tài)精相關與沖突

3.4.2.1相關

I-相關:兩條指令之間存在某種依賴關系。

■如果兩條指令相關,則它們就有可能不能

;在流水線中重疊執(zhí)行或者只能部分重疊執(zhí)行。

-相關有3種類型

;■數據相關(也稱真數據相關)

■.名相關

E?控制相關

87/206

3.4流水線的相關與沖突

?數據相關

I-對于兩條指令/(在前,下同)和/(在后

,下同),如果下述條件之一成立,則稱

I指令j與指令/數據相關。

I?指令,使用指令,產生的結果;

:■指令/與指令"數據相關,而指令《又與指令/數據

,相關。

I-數據相關具有傳遞性。

E數據相關反映了數據的流動關系,即如何從其產

生者流動到其消費者。

88/206

3.4流水線的相關與沖突

例如:下面這一段代碼存在數據相關。

Loop:L.DF0,0(R1)//FO為數組元素

ADD.DF4,FO,F2//加上F2中的值

S.DF4,0(RI)//保存結果

DADDIURI,RI,-8//數組指針遞減8個字節(jié)

BNE1,R2,Loop//如果R1WR2,則分支

89/206

I3.4流水線的相關與沖突

-當數據的流動是經過寄存器時,相關的檢

■測比較直觀和容易。

-當數據的流動是經過存儲器時,檢測比較

復雜O

「?相同形式的地址其有效地址未必相同。

1?形式不同的地址其有效地址卻可能相同。

??名相關

I-名:指令所訪問的寄存器或存儲器單元的名稱。

K-如果兩條指令使用相同的名,但是它們之間并沒

■有數據流動,則稱這兩條指令存在名相關。

90/206

3.4流水線的相關與沖突

指令j?與指令/之間的名相關有兩種:

?反相關:如果指令,寫的名與指令下讀的名相同,

則稱指令i

溫馨提示

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

評論

0/150

提交評論