1 / 32

第 18 章 管線技術

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

Download Presentation

第 18 章 管線技術

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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μs

  26. 管線速度(Cont.) • 管線的總體傳輸量Tp為: • 非管線結構的總體傳輸量Tnp為:

  27. 程序的觀念性分割

  28. 管線結構 • 整體設計都環繞在管線策略,稱為管線結構。 • 大部分的管線結構常用在特殊功能的硬體系統。 • 對於一般的通用電腦而言,管線結構比較沒有關連。

  29. 管線安裝、遲滯、和清空時間 • 安裝時間 • 重新啟動管線所需要的時間 • 台階遲滯 • 無法完成處理程序所導致的延遲 • 清空時間 • 結束餘留在管線內部的資料 • 在高速硬體管線下,太高的清空(或安裝)時間將會降低整體效能表現。

  30. 超管線結構 • 超管線 • 結構師把管線台階分割成更多個子台階 • 常見於指令管線 • 傳統的指令管線有五個台階:指令擷取、指令解碼、運算元擷取、ALU運算、記憶體寫入,超管線會進一步把每個台階,一個一個地分割成更多的子台階。 • 超管線的傳輸量會高於標準管線的傳輸量。

  31. 結論 • 管線觀念應用廣泛,通常分成硬體管線和軟體管線。 • 軟體管線會安排一組程式,讓資料串列地通過這些程式。 • 即使缺乏硬體管線,還是可以使用軟體管線; • 硬體管線,如果不是指令管線(處理器執行的機器指令),就是資料管線(資料傳輸通過的管線)。

  32. 結論(Cont.) • 超管線技術會把台階,再進一步地分割成多個子台階,常見於指令管線。 • 資料通過管線所需要的時間,並沒有改變。 • 管線增加整體的資料傳輸量(每秒處理的資料量)。

More Related