處理器的執行流水線通常分為5個階段,分別為:取指、解碼、訪存、執行和寫回。這裡的訪存指的是訪問暫存器。
假設每個階段只占用乙個時鐘週期,那麼這個5級流水線的處理器每個時鐘週期可以執行一條指令。如下圖,
如果前一條指令的目的暫存器是當前指令的源暫存器,如:
圖中,指令0的執行結果在寫回的同時,連同指令1的其他暫存器資料一同給到指令1的執行階段,而指令1不需要再去暫存器檔案中讀取指令0的目的暫存器所指向的資料。
我們再看另外一種情況:當執行不能夠乙個時鐘週期執行完成,而需要三個時鐘週期。如下圖,
此時,如果仍然是每個時鐘週期取一條新的指令來執行,那麼資料前送將無法實現。
為了讓資料前送仍然可行,一種做法是每三個時鐘週期取一條指令。如下圖,
但這時流水線的執行效率降低。
為了提高處理器的執行效率,我們需要想辦法填充那些空閒的時鐘週期。在simt處理器中,可以讓其他warp的指令來填充那些空閒的時鐘週期,以提公升處理器的執行效率。如下圖,
一文讀懂處理器流水線
本文將討論處理器的乙個重要的基礎知識 流水線 熟悉計算機體系結構的讀者一定知道,言及處理器微架構,幾乎必談其流水線。處理器的流水線結構是處理器微架構最基本的乙個要素,猶如汽車底盤對於汽車一般具有基石性的作用,它承載並決定了處理器其他微架構的細節。本文將簡要介紹處理器的一些常見流水線結構,讓您真正讀懂...
Jenkins流水線執行失敗
本人用jenkins ansible搭建了乙個流水線發包流程,結果發現一直卡在pipeline中的某一步發布不成功。1 開啟jenkins控制台檢視日誌 發現一直卡在了 task gathering facts 這一步 2 查詢資料得知這是ansible用setup模組預設自動執行的乙個task,作...
流水線和復合估算器
變換器通常與分類器,回歸器或其他估計器組合以構建復合估計器。最常見的工具是 管道。管道通常與featureunion結合使用 後者將變換器的輸出連線成復合特徵空間。transformedtargetregressor處理轉換目標 即對數轉換y 相反,pipelines只轉換觀察到的資料 x 方便和封...