• 流水線

    編輯
    本詞條由“匿名用戶” 建檔。

    流水線

    編輯

    在計算中,管道也稱為數據管道,是一組串聯的數據處理元素,其中一個元素的輸出是下一個元素的輸入。 流水線的元素通常以并行或時間片的方式執行。 通常在元素之間插入一定量的緩沖區存儲。

    計算機相關的管道包括:

    • 指令流水線,例如經典的 RISC 流水線,用于中央處理器 (CPU) 和其他微處理器,允許使用相同的電路重疊執行多條指令。 電路通常分為幾個階段,每個階段一次處理一條指令的特定部分,將部分結果傳遞給下一個階段。 階段的示例是指令解碼、算術/邏輯和寄存器獲取。 它們涉及超標量執行、操作數轉發、推測執行和亂序執行等技術
    • 圖形管線,存在于大多數圖形處理單元 (GPU) 中,由多個算術單元或完整的 CPU 組成,可實現常見渲染操作的各個階段(透視投影、窗口裁剪、顏色和光線計算、渲染、 等)。
    • 軟件管道,由一系列計算過程(命令、程序運行、任務、線程、過程等)組成,概念上并行執行,一個過程的輸出流自動作為輸入流 下一個。 Unix 系統調用管道是這一概念的典型示例。
    • HTTP 流水線技術,一種通過同一 TCP 連接發出多個 HTTP 請求的技術,無需等待前一個請求完成后再發出新請求。

    一些操作系統可能會提供類似 UNIX 的語法來將多個程序運行串在管道中,但將后者實現為簡單的串行執行,而不是真正的流水線——即等待每個程序完成后再啟動下一個程序。

    概念與動機

    編輯

    流水線是日常生活中常用的概念。 例如,在汽車廠的裝配線上,每項具體任務——如安裝發動機、安裝引擎蓋和安裝車輪——通常由單獨的工作站完成。 這些站點并行執行任務,每個站點都在不同的汽車上。 一旦汽車完成一項任務,它就會移動到下一個站點。 完成任務所需時間的變化可以通過緩沖(將一輛或多輛汽車停在車站之間的空間內)和/或通過停頓(暫時停止上游車站)來適應,直到下一個車站可用。

    假設組裝一輛汽車需要完成三項任務,分別需要 20、10 和 15 分鐘。 那么,如果這三項任務都由一個站點完成,那么工廠每 45 分鐘就會產出一輛汽車。 通過使用三個站點的流水線,工廠將在 45 分鐘內生產出xxx輛汽車,然后每 20 分鐘生產一輛新汽車。

    如本示例所示,流水線操作不會減少延遲,即一項通過整個系統的總時間。 然而,它確實增加了系統的吞吐量,即在xxx個項目之后處理新項目的速率。

    設計注意事項

    編輯

    平衡階段

    由于流水線的吞吐量不可能比其最慢元素的吞吐量更好,因此設計人員應嘗試在各個階段之間分配工作和資源,以便它們都花費相同的時間來完成任務。 在上面的汽車組裝示例中,如果這三個任務各花費 15 分鐘,而不是 20、10 和 15 分鐘,則延遲仍將是 45 分鐘,但是一輛新車將每 15 分鐘完成一次,而不是每 20 分鐘。

    緩沖

    在理想情況下,如果所有處理元素都同步并花費相同的時間來處理,那么每個元素都可以在一個時鐘周期內接收到每個項目,就像它被前一個元素釋放一樣。 這樣,物品就會以恒定的速度流過管道,就像水道中的波浪一樣。 在這樣的波流水線中,除了數據項所需的存儲之外,階段之間不需要同步或緩沖。

    微處理器

    更一般地說,當處理時間不規則時,或者當可能沿管道創建或銷毀項目時,管道階段之間的緩沖是必要的。 例如,在處理要在屏幕上呈現的三角形的圖形管道中,檢查每個三角形可見性的元素可能會丟棄三角形(如果不可見),或者可能輸出元素的兩個或多個三角形部分(如果它們部分不可見) 隱。 還需要緩沖以適應應用程序將項目提供給xxx階段并消耗最后一個輸出的速率的不規則性。

    內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/196081/

    (1)
    詞條目錄
    1. 流水線
    2. 概念與動機
    3. 設計注意事項
    4. 平衡階段
    5. 緩沖

    輕觸這里

    關閉目錄

    目錄
    91麻精品国产91久久久久