ROB

ROB

ROB,Re-order Buffer的縮寫,是指重排序快取。用在Tomasulo算法中,使得指令順序被提交。

基本介紹

  • 中文名:重排序快取
  • 外文名:ROB
  • 任務:令變序執行與實際結束分離
  • 變序執行:動態調度的需要
  • 必須:把指令的執行結果
  • 步驟:變序執行與實際結束分離開來
概念,作用,重排序,不同之處,

概念

(ROB,Reorder Buffer):重排序快取。基於硬體的推測:
必須把指令變序執行與實際結束分離開來,成為兩步實現;
1、變序執行是動態調度的需要,必須把指令的執行結果,通過旁路方法,隨時提供給其它指令使用;
2、按序結束是為了確保實現精確中斷的需要(能確保恢復中斷前的狀態)。
為此,在Tomasulo算法把指令分為Issue, Execute, 和Write result三步的基礎上,增加一步,稱為Commit(交付,後提交)。Commit的功能(將在下面作進一步介紹)是指令將其結果交付給(寫入)目的暫存器或存儲單元
必須增加一硬體緩衝存儲器(buffer),供Write Result這一步存放已獲得的結果,並可以提供給其它指令套用這些結果。當指令進入Commit這一步時,將結果從buffer中拷貝到目的暫存器或存儲單元。這一硬體緩衝存儲器稱為重排序快取(ROB,Reorder Buffer)。

作用

相當於一個額外虛擬暫存器,相當於Tomasulo算法中的保存站、Load buffer和store buffer等的功能。(注意,在基於Tomasulo的硬體推測中,取消了Load buffer部件,將其和ROB合併在一起。
1、ROB在指令完成操作之後直到交付之前這段時間裡保存該指令的結果,作為其它指令運算元的源,類似於Tomasulo算法中保留站作用。
2、不同之處在於:Tomasulo算法中在Write Result這一拍中就可以更新register file,而這裡只能等到進入Commit節拍才能更新register file。

重排序

再定序緩衝ROB的每個項包含三個域:
(1)指令類型域:用來說明指令類型
轉移指令——無目標結果
Store——以存儲器地址作為目標結果
Reg操作(ALU或Load):以Reg.作為目標結果
(2)目標域:
暫存器號(針對ALU和Load操作指令)
存儲器地址(針對Store指令)
(3)值域:用來存放指令的結果,直到指令進入交付節拍。

不同之處

1、增加了ROB;
2、撤銷了load buffer 和store buffer;
3、暫存器改名功能由ROB(重排序快取號)來實現,而不再由保留站來完成;
4、保留站的功能僅為在指令發射到開始執行這段時間內保存指令的操作碼運算元
5、用重排序快取單元號來標識指令的結果,而不再用保留站號來標識,因為每一指令在其交付前均在重排序快取中有一單元。

相關詞條

熱門詞條

聯絡我們