问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

计算机体系结构:精确例外与ROB详解

创作时间:
作者:
@小白创作中心

计算机体系结构:精确例外与ROB详解

引用
CSDN
1.
https://blog.csdn.net/weixin_45631845/article/details/127880993

在计算机体系结构中,精确例外和重排序缓冲区(ROB)是两个重要的概念,它们对于实现高性能的处理器设计至关重要。本文将详细介绍这两个概念及其在现代处理器中的应用。

1 精确例外

在之前提到的Tomasulo算法中,由于采用了非精确的例外处理机制,一旦发生例外,硬件很难处理乱序执行的指令序列。操作系统需要处理器提供精确例外机制,以确保在处理例外时,所有在发生例外指令之前的指令都已经执行完毕,而例外指令之后的所有指令都尚未执行。

精确例外:指在处理例外的时候,发生例外指令之前所有的指令都已经执行完了,例外指令后面的所有指令都还没执行。

为了解决这个问题,需要扩展Tomasulo算法来支持推测执行。具体来说,就是将指令结果的旁路从实际完成操作中分离出来。这样可以允许一条指令执行并将其结果旁路给其他指令,但不允许这条指令执行任何不能撤销的更新操作,直到确认这条指令不再具有不确定性为止。简单来说,就是增加一个缓冲区暂时存放结果,直到这个数据不再更新,再写回寄存器堆。

2 重排序缓冲区(ROB)

重排序缓冲区(ROB)类似于Tomasulo算法通过保留站扩展寄存器集的方式,提供了额外的寄存器资源。ROB会在一定时间内保存指令的结果,这段时间从与指令相关的运算完成开始,到该指令提交完毕为止。

提交(commit):就是在流水线中增加了一个commit阶段,只有在这个阶段才能真正修改计算机的状态。其他时候都是修改ROB中的值。

现在指令的执行步骤分为四步:发射、执行、写结果和提交。

2.1 ROB包含的内容

ROB中的每个项目包含4个字段:

  • 指令类型:分支指令、存储指令、寄存器操作指令
  • 目的地字段:提供写入结果的寄存器编号
  • 值字段:在提交指令前保存指令结果
  • 就绪字段:指令已经完成执行,结果值准备就绪

2.2 增加了ROB的流水线结构

2.3 提交(commit)阶段详解

利用ROB实现了乱序执行后的有序结束,防止在指令提交之前采取任何不可撤销的动作。当一个指令到达ROB的头部而且其结果出现在缓冲区中时,则正常提交,此时处理器用结果更新其寄存器,并从ROB中清除该指令。

当预测错误的分支指令到达ROB头部时,它指出推测是错误的。那么ROB被清空,执行过程从该分支的正确后续指令重新开始。如果对该分支的预测正确,则该分支完成提交。

指令一旦提交完毕,它在ROB的相应项将被收回,寄存器或存储器目的地址将被更新,并且不再需要ROB项。

任意一条指令发生例外,就清除操作队列以及ROB,保证了现场的干净,因为在例外之前的指令都已经执行完毕,而后面的指令都未执行(未把结果写回)。

2.4 流水线执行情况详解

3 总结

精确例外和ROB机制共同实现了"有序发射、乱序执行、有序结束"的处理器设计目标,这对于提高处理器的性能和效率至关重要。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号