轉自百度文庫
總結:
記分牌維護了幾個狀態表,根據狀態表來判斷當前執行某一指令是否會存在相關;
共四個階段:Issue、Read Operands、Execution、Write Result.
以為例:
Issue階段檢查無結構相關(有需要的功能部件)及要W的目的寄存器無WAW相關(即,要W的目的寄存器不會被其他指令的W所寫),如果有其中之一,則停頓直到沖突消失;
Read Operands階段檢查要R的源寄存器無RAW相關(即,要R的操作數不會被其他指令的W所修改),如果有,則停頓直到沖突消失;
【檢測RAW, 若有,則停頓該指令,但是在動態調度時,有多條指令並行操作,所以可能有另外指令滿足條件,則繼續執行下去,從而消除了停頓的損失。】
Execution 執行即可;
Write Result階段檢查要W的源寄存器無WAR相關(即,要W的寄存器不會對其他要R該寄存器的指令造成影響)