起源
- 由IBM開發,并于1966年在IBMS360/91大型機中首次實作,大約是在CDC6600中記分板首次亮相之后的3年,
- 動態調度硬體中的流水線,減少停頓,
結構

Tomasulo與記分牌
提起Tomasulo演算法一個經常與他進行對比的演算法就是記分牌演算法,有關記分牌的有關概念可以去看一下這篇博文文章傳送門
它們的主要區別如下:
Tomasulo:
- 控制與buffer分布在功能單元中,功能單元緩沖器被稱為保留站,其具有未決指令和運算元以及其它指令狀態資訊,
保留站有時被稱為物理暫存器或重命名暫存器,而不是ISA指定的體系結構暫存器, - 指令中的ISA暫存器由值(如果可用)或指向稍后將提供該值的預留站(RS)的指標替換,這個程序稱為暫存器重命名,避免RAW和WAW的風險,并且允許基于硬體的回圈展開,
- 指令結果不是通過暫存器,而是通過公共資料總線(CDB)從RSs(轉發)到FU,CDB將結果廣播到所有FU,
- 加載和存盤也被視為具有RSs的FU,
- 整數指令可以通過分支,允許FP操作超出FP佇列中的基本塊,
演算法步驟
- ISSUE:從掛起的指令佇列中獲取指令,
-向空閑保留站發出指令(無結構性危險),
-所選RS標記為忙,
-控制將可用的指令運算元值(來自ISA暫存器)發送到分配的RS,
-尚未可用的運算元被重命名為將產生該運算元的RSs(暫存器重命名), - Execution(EX):對運算元進行操作,
-當兩個運算元都準備好后,就開始在分配的FU上執行,
-如果所有運算元都沒有準備好,觀察公共資料總線(CDB)以獲得所需的結果(通過CDB完成的轉發), - Write result(WB):完成執行,
-將公共資料總線上的結果寫入所有等待單元
-將保留站標記為可用,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/241000.html
標籤:其他
