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