第 18 章 管線技術
-
Upload
fulton-lancaster -
Category
Documents
-
view
30 -
download
0
description
Transcript of 第 18 章 管線技術
1
第 18 章管線技術
2
管線觀念
• 最佳化效能的技術之一• 管線:經過一序列台階程序的資訊結構• 管線並沒有侷限在硬體結構:
– 管線觀念是一種基本觀念– 適用於各種不同的層面– 視野寬廣
3
四階管線圖
4
管線特性
5
軟硬體實現方式
• 管線可以使用硬體,也可以使用軟體,來加以建構。
• 軟體管線– 基於程式設計師的方便設計。– 比如, Unix 作業系統提供一個 pipe 機制。
• 軟體管線和硬體管線可以彼此毫不相干、互相獨立。
6
大型或小型
• 管線長度就是組成台階的數目• 管線台階長短不一• 最短的管線可以只由兩個台階所組成,而最長的管線甚至內含數百個台階過程。
7
同步或非同步串流
• 同步管線作業方式:– 每一個台階的處理時間都受到時鐘控制
– 所有台階都同時遞送其資料處理結果,轉交給下一個台階。
• 非同步管線:– 各個台階處理的時間可能不同– 讓台階可在任何時間進行資訊轉送
8
緩衝串流或非緩衝串流
• 緩衝串流– 把緩衝建構在兩個台階之間,接收資料。– 可應用於非同步管線– 適合資料的猝發傳輸
• 非緩衝串流– 一個台階直接傳送資料給另一個台階– 假如每個台階處理時間都一樣,則可以發揮最佳效能。
9
有限區塊資料或連續位元流
• 有限區塊資料– 各種不同長度的資料– 一序列的小型資料– 比如:網路封包
• 連續位元流– 任意長度的位元流– 比如:連續視訊資料
10
自動資料饋入或人工資料饋入
• 管線常使用各種不同的機制來移動資訊• 自動資料饋入
– 建立管線機制– 把一個台階的資訊移到另一個台階上
• 人工資料饋入– 分開硬體來移動資料– 參與指揮每個台階動作,才能移動資訊。
11
串列或並列路徑
• 串列路徑– 一次一個位元
• 並列路徑– 一次 N 個位元
12
同質台階或異質台階
• 同質台階– 管線台階具有相同的大小和外形
• 異質台階– 管線台階具有不同的大小和外形
13
軟體管線
• 軟體管線是一種相當吸引人的技術• 以 Unix 命令直譯器 shell 的軟體管線為例:
– 輸入程式名稱,再以” |” 符號分開程式– ”|” 符號意指從一個程式的輸出,連接到另一個程式的輸入。
• 下列範例:cat x | sed s/friend/partner/g’ | more
14
軟體管線效能和額外負荷
• 考慮軟體管線程式:cat x | sed s/friend/partner/g’ | sed ‘/W/d’ | more
– 把 friend 全部取代為 partner– 刪除內含 W 字元的行資料– 可以把刪除的管線,移到前面一點的台階上,來最佳化執行。
15
硬體管線
• 指令管線• 資料管線
16
指令管線
• 指令管線– 描述管線如何容納機器指令的資訊– 描述管線如何地執行這些機器指令
• 指令集和運算元型態在不同的處理器之間會有所變動,並非固定。
• 指令管線並沒有硬性規定台階的數量,以及台階的動作數量。
17
資料管線
• 另一種硬體管線就是資料管線。• 資料管線不是用來傳輸指令,而是把資料從一個台階傳輸到另一個台階。
• 比如,電腦網路封包順序地通過資料管線。
18
硬體管線如何增加效能
• 管線可以明顯地改善效能。• 管線可以改善資料傳輸量。• 以資料管線為例
– 路由器可以用來轉送封包,把封包傳送到正確的目的地。
19
路由器轉送封包的演算法
20
路由器的處理器和所執行的演算法
21
建構路由器的管線處理器
22
重要觀念
正常的情況下,資料管線所傳輸的資料必須通過一序列的台階,每一個台階會負責演算法的一部份動作,比如:檢視或修改資料,想要以多個相同速度的處理器來建構管線結構,來取代單一處理器,並不會改善資料處理所耗費的總體時間。
23
管線優點
如果管線結構和非管線結構都使用相同速度的處理器,則管線結構會有較高的傳輸量( throughput)(意即:每秒處理的資料量)。
24
管線條件
• 台階必須具備獨立的處理程序。• 從一個台階傳輸給另一個台階的過程,不能造成太大的額外負荷。
• 盡量保持每一個台階的執行時間一致。
25
管線速度
• 假設四個台階分別耗費 50 、 100 、200 、 150 個指令,來處理封包。
– 最慢的台階需要 200 個指令
– 最慢台階處理時間 = = 20μss/指令10
指令200
26
管線速度( Cont. )
• 管線的總體傳輸量 Tp 為:
• 非管線結構的總體傳輸量 Tnp 為:
ss
/封包000,5020
10封包1
s20
封包 1T
6
p
ss
/封包000,2050
10封包1
s50
封包 1T
6
np
27
程序的觀念性分割
28
管線結構
• 整體設計都環繞在管線策略,稱為管線結構。
• 大部分的管線結構常用在特殊功能的硬體系統。
• 對於一般的通用電腦而言,管線結構比較沒有關連。
29
管線安裝、遲滯、和清空時間 • 安裝時間
–重新啟動管線所需要的時間• 台階遲滯
–無法完成處理程序所導致的延遲• 清空時間
– 結束餘留在管線內部的資料• 在高速硬體管線下,太高的清空(或安裝)時間將會降低整體效能表現。
30
超管線結構
• 超管線– 結構師把管線台階分割成更多個子台階– 常見於指令管線
• 傳統的指令管線有五個台階:指令擷取、指令解碼、運算元擷取、 ALU 運算、記憶體寫入,超管線會進一步把每個台階,一個一個地分割成更多的子台階。
• 超管線的傳輸量會高於標準管線的傳輸量。
31
結論 • 管線觀念應用廣泛,通常分成硬體管線和軟體管線。
• 軟體管線會安排一組程式,讓資料串列地通過這些程式。
• 即使缺乏硬體管線,還是可以使用軟體管線;
• 硬體管線,如果不是指令管線(處理器執行的機器指令),就是資料管線(資料傳輸通過的管線)。
32
結論( Cont. )
• 超管線技術會把台階,再進一步地分割成多個子台階,常見於指令管線。
• 資料通過管線所需要的時間,並沒有改變。
• 管線增加整體的資料傳輸量(每秒處理的資料量)。