第 18 章 管線技術

32
1 第 18 第 第第第第

description

第 18 章 管線技術. 管線觀念. 最佳化效能的技術之一 管線:經過一序列台階程序的資訊結構 管線並沒有侷限在硬體結構: 管線觀念是一種基本觀念 適用於各種不同的層面 視野寬廣. 四階管線圖. 管線特性. 軟硬體實現方式. 管線可以使用硬體,也可以使用軟體,來加以建構。 軟體管線 基於程式設計師的方便設計。 比如, Unix 作業系統提供一個 pipe 機制。 軟體管線和硬體管線可以彼此毫不相干、互相獨立。. 大型或小型. 管線長度就是組成台階的數目 管線台階長短不一 最短的管線可以只由兩個台階所組成,而最長的管線甚至內含數百個台階過程。. - PowerPoint PPT Presentation

Transcript of 第 18 章 管線技術

Page 1: 第  18  章 管線技術

1

第 18 章管線技術

Page 2: 第  18  章 管線技術

2

管線觀念

• 最佳化效能的技術之一• 管線:經過一序列台階程序的資訊結構• 管線並沒有侷限在硬體結構:

– 管線觀念是一種基本觀念– 適用於各種不同的層面– 視野寬廣

Page 3: 第  18  章 管線技術

3

四階管線圖

Page 4: 第  18  章 管線技術

4

管線特性

Page 5: 第  18  章 管線技術

5

軟硬體實現方式

• 管線可以使用硬體,也可以使用軟體,來加以建構。

• 軟體管線– 基於程式設計師的方便設計。– 比如, Unix 作業系統提供一個 pipe 機制。

• 軟體管線和硬體管線可以彼此毫不相干、互相獨立。

Page 6: 第  18  章 管線技術

6

大型或小型

• 管線長度就是組成台階的數目• 管線台階長短不一• 最短的管線可以只由兩個台階所組成,而最長的管線甚至內含數百個台階過程。

Page 7: 第  18  章 管線技術

7

同步或非同步串流

• 同步管線作業方式:– 每一個台階的處理時間都受到時鐘控制

– 所有台階都同時遞送其資料處理結果,轉交給下一個台階。

• 非同步管線:– 各個台階處理的時間可能不同– 讓台階可在任何時間進行資訊轉送

Page 8: 第  18  章 管線技術

8

緩衝串流或非緩衝串流

• 緩衝串流– 把緩衝建構在兩個台階之間,接收資料。– 可應用於非同步管線– 適合資料的猝發傳輸

• 非緩衝串流– 一個台階直接傳送資料給另一個台階– 假如每個台階處理時間都一樣,則可以發揮最佳效能。

Page 9: 第  18  章 管線技術

9

有限區塊資料或連續位元流

• 有限區塊資料– 各種不同長度的資料– 一序列的小型資料– 比如:網路封包

• 連續位元流– 任意長度的位元流– 比如:連續視訊資料

Page 10: 第  18  章 管線技術

10

自動資料饋入或人工資料饋入

• 管線常使用各種不同的機制來移動資訊• 自動資料饋入

– 建立管線機制– 把一個台階的資訊移到另一個台階上

• 人工資料饋入– 分開硬體來移動資料– 參與指揮每個台階動作,才能移動資訊。

Page 11: 第  18  章 管線技術

11

串列或並列路徑

• 串列路徑– 一次一個位元

• 並列路徑– 一次 N 個位元

Page 12: 第  18  章 管線技術

12

同質台階或異質台階

• 同質台階– 管線台階具有相同的大小和外形

• 異質台階– 管線台階具有不同的大小和外形

Page 13: 第  18  章 管線技術

13

軟體管線

• 軟體管線是一種相當吸引人的技術• 以 Unix 命令直譯器 shell 的軟體管線為例:

– 輸入程式名稱,再以” |” 符號分開程式– ”|” 符號意指從一個程式的輸出,連接到另一個程式的輸入。

• 下列範例:cat x | sed s/friend/partner/g’ | more

Page 14: 第  18  章 管線技術

14

軟體管線效能和額外負荷

• 考慮軟體管線程式:cat x | sed s/friend/partner/g’ | sed ‘/W/d’ | more

– 把 friend 全部取代為 partner– 刪除內含 W 字元的行資料– 可以把刪除的管線,移到前面一點的台階上,來最佳化執行。

Page 15: 第  18  章 管線技術

15

硬體管線

• 指令管線• 資料管線

Page 16: 第  18  章 管線技術

16

指令管線

• 指令管線– 描述管線如何容納機器指令的資訊– 描述管線如何地執行這些機器指令

• 指令集和運算元型態在不同的處理器之間會有所變動,並非固定。

• 指令管線並沒有硬性規定台階的數量,以及台階的動作數量。

Page 17: 第  18  章 管線技術

17

資料管線

• 另一種硬體管線就是資料管線。• 資料管線不是用來傳輸指令,而是把資料從一個台階傳輸到另一個台階。

• 比如,電腦網路封包順序地通過資料管線。

Page 18: 第  18  章 管線技術

18

硬體管線如何增加效能

• 管線可以明顯地改善效能。• 管線可以改善資料傳輸量。• 以資料管線為例

– 路由器可以用來轉送封包,把封包傳送到正確的目的地。

Page 19: 第  18  章 管線技術

19

路由器轉送封包的演算法

Page 20: 第  18  章 管線技術

20

路由器的處理器和所執行的演算法

Page 21: 第  18  章 管線技術

21

建構路由器的管線處理器

Page 22: 第  18  章 管線技術

22

重要觀念

正常的情況下,資料管線所傳輸的資料必須通過一序列的台階,每一個台階會負責演算法的一部份動作,比如:檢視或修改資料,想要以多個相同速度的處理器來建構管線結構,來取代單一處理器,並不會改善資料處理所耗費的總體時間。

Page 23: 第  18  章 管線技術

23

管線優點

如果管線結構和非管線結構都使用相同速度的處理器,則管線結構會有較高的傳輸量( throughput)(意即:每秒處理的資料量)。

Page 24: 第  18  章 管線技術

24

管線條件

• 台階必須具備獨立的處理程序。• 從一個台階傳輸給另一個台階的過程,不能造成太大的額外負荷。

• 盡量保持每一個台階的執行時間一致。

Page 25: 第  18  章 管線技術

25

管線速度

• 假設四個台階分別耗費 50 、 100 、200 、 150 個指令,來處理封包。

– 最慢的台階需要 200 個指令

– 最慢台階處理時間 = = 20μss/指令10

指令200

Page 26: 第  18  章 管線技術

26

管線速度( Cont. )

• 管線的總體傳輸量 Tp 為:

• 非管線結構的總體傳輸量 Tnp 為:

ss

/封包000,5020

10封包1

s20

封包 1T

6

p

ss

/封包000,2050

10封包1

s50

封包 1T

6

np

Page 27: 第  18  章 管線技術

27

程序的觀念性分割

Page 28: 第  18  章 管線技術

28

管線結構

• 整體設計都環繞在管線策略,稱為管線結構。

• 大部分的管線結構常用在特殊功能的硬體系統。

• 對於一般的通用電腦而言,管線結構比較沒有關連。

Page 29: 第  18  章 管線技術

29

管線安裝、遲滯、和清空時間 • 安裝時間

–重新啟動管線所需要的時間• 台階遲滯

–無法完成處理程序所導致的延遲• 清空時間

– 結束餘留在管線內部的資料• 在高速硬體管線下,太高的清空(或安裝)時間將會降低整體效能表現。

Page 30: 第  18  章 管線技術

30

超管線結構

• 超管線– 結構師把管線台階分割成更多個子台階– 常見於指令管線

• 傳統的指令管線有五個台階:指令擷取、指令解碼、運算元擷取、 ALU 運算、記憶體寫入,超管線會進一步把每個台階,一個一個地分割成更多的子台階。

• 超管線的傳輸量會高於標準管線的傳輸量。

Page 31: 第  18  章 管線技術

31

結論 • 管線觀念應用廣泛,通常分成硬體管線和軟體管線。

• 軟體管線會安排一組程式,讓資料串列地通過這些程式。

• 即使缺乏硬體管線,還是可以使用軟體管線;

• 硬體管線,如果不是指令管線(處理器執行的機器指令),就是資料管線(資料傳輸通過的管線)。

Page 32: 第  18  章 管線技術

32

結論( Cont. )

• 超管線技術會把台階,再進一步地分割成多個子台階,常見於指令管線。

• 資料通過管線所需要的時間,並沒有改變。

• 管線增加整體的資料傳輸量(每秒處理的資料量)。