作者I0O1 (I0O1)
看板CSSE
标题Re: [请益] 请问Reorder Buffer 的意思? thanks
时间Wed Mar 22 20:32:14 2006
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
1F:推 kimo1814:感谢I001大大的解释, 大心 03/22 21:53