簡體   English   中英

CPU如何重新排序指令

[英]How does CPU reorder instructions

我最近讀到了關於CPU指令重新排序的效率。 但我無法理解CPU如何重新調整其指令。 我的意思是編譯時重新排序是可以想象的,因為編譯器可以預見即將到來的代碼。 但對於一個接一個地讀取指令的CPU,它如何看待即將重新排序的指令

指令以程序順序提取到指令隊列中; 從隊列中解碼並移動到保留站 這些保留站有效地進行重新排序:當它們的參數變得可用時,指令被分派用於執行到執行單元,並且所有參數變得可用的時間通常不對應於指令隊列/存儲器中的順序。

例如,使用Tomasulo算法 ,請參閱以下兩個視頻:

問題(和注冊重命名): https//youtu.be/I2qMY0XvYHA?list = PLAwxTw4SYaPkNw98-MFodLzKgi6bYGjZs

調度/重新排序: https//youtu.be/bEB7sZTP8zc? list = PLAwxTw4SYaPkNw98 -MFodLzKgi6bYGjZs

指令按順序解碼,但它們會進入“進行中”指令的集合。 如果滿足其依賴性,指令可以前進。

例如,說明說明如下:

  1. 從內存加載寄存器A.
  2. 從內存加載寄存器B.
  3. 增量寄存器A.
  4. 增量寄存器B.

可能是最后兩條指令同時進行,如果寄存器B的存儲器讀取先完成(可能已經在L1高速緩存中),則寄存器B的增量將在寄存器增量之前發生答:(當然,在該指令被解碼之后。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM