Unity中引起cpu流水線阻塞的三個原因

2021-10-03 07:17:07 字數 555 閱讀 9723

1、多個任務在同一時間週期內爭用同乙個流水段(資源衝突)

例如,假如在指令流水線中,如果資料和指令是放在同乙個儲存器中,並且訪問介面也只有乙個,那麼,兩條指令就會爭用儲存器;在一些算數流水線中,有些運算會同時訪問乙個運算部件。

2、資料依賴(資料相關)

比如,a運算必須得到b運算的結果,但是,b運算還沒有開始,a運算動作就必須等待,直到a運算完成,兩次運算不能同時執行。

3、 條件轉移的影響(條件轉移)

如果第一條指令是乙個條件轉移指令,那麼系統就會不清楚下面應該執行那一條指令。這時就必須等第一條指令的判斷結果出來才能執行第二條指令。條件轉移所造成的流水線停頓甚至比相關還要嚴重的多。

越是長的流水線,相關和轉移兩大問題也越嚴重,所以,流水線並不是越長越好,超標量也不是越多越好,找到乙個速度與效率的平衡點才是最重要的。

請不要在循壞內過多宣告變數開闢空間:

這些都放到循壞外,否則會阻塞cpu!!!

CPU設計學習 流水線

if instruction fetch,取指 id instruction decode,解碼 ex execute,執行 mem memory access,記憶體資料讀或者寫 wb write back,資料寫回到通用暫存器中 並不是所有指令都要經過這五個階段,例如運算指令在記憶體讀寫階段並沒...

關於流水線中剪裁的疑問

如上圖可見,剪裁位於vs之後,setup之前。其中setup是圖元裝配,就是利用三角形索引資訊將頂點組織起來,也就是讓顯示卡知道頂點如何組成三角形。這裡的剪裁應該是視錐的前後面裁剪,是硬體進行的,因為這個剪裁是在三角形組裝之前,沒有三角形的資訊,只有零散的頂點,這時候不可能進行精確到三角面的裁剪,應...

RISC V流水線CPU模擬器(c語言實現)

2020年11月27日 該risc v流水線處理器分為兩部分 功能模擬部分,時序模擬部分。功能時序分離的優勢有兩點 不同功能模組化,減小耦合性,可以增強可擴充套件性。有效降低流水線實現的複雜度和工作量。具體實現上,功能模擬部分大體沿用之前編寫的單 多週期cpu,在其基礎上改進,加上了與時序模擬部分相...