Re: [請益] 請問Reorder Buffer 的意思? thanks
ROB 是 Architecture 中提到的吧..
要完全了解 ROB, 可能要先把 pipeline, scoreboard 之類的東西搞清楚
簡單的講 // 假設你至少學過 pipeline
pipleline之類的架構, 受到各種 hazards 的影響還是很大,
像是 conditional branch, 要等到 condition 的最終結果出來後, 才能決定跳或不跳
有很多種方法解決這個問題, ROB 是一種
它的精神是:
a. fetch 指令仍然 in-order
b. execute 卻是 out of order (因為有些指令比較快結束 一些指令比較慢結束)
c. commit 又是 in-order
e. 將所有的指令依照 commit 順序放在 ROB
- 當 ROB 目前的第一個指令 commit 後, 就可將此指令從 ROB 移走
(因此可以看成一個 FIFO)
- 若有指令要使用到 "尚未 commit, 但已經計算完成的指令" 所更動的 registers
會先從 ROB table 中取出, 而不是去看 registers
(也因此, 可以減少像是 control hazard 等影響)
- 當 branch 預測錯誤時 (例如 predict not taken, 結果卻 taken)
會將此 branch 以下的所有指令全部從 ROB 中刪除, 重新 fetch
大概是這樣的..
更細節我也忘光囉
※ 引述《SOCJAE (哈哈哈)》之銘言:
: 各位看板大大好:
: 想請問ROB(reorder buffer)的功用為何?
: 有在雅虎搜尋過,不過大都是簡體或英文版,
: 大陸所敘述的意義實在不太理解, 懇請板上
: 大大幫忙解釋這名詞的功用為何, thanks
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.209.4
推
03/22 21:53, , 1F
03/22 21:53, 1F
CSSE 近期熱門文章
PTT數位生活區 即時熱門文章