精确中断点
前面的指令都完成写回到相应的寄存器,后面的还没有。
好处
易于debug,切换程序,贴切冯诺依曼结构更易于理解
方法
1、顺序执行——浪费时间,无法判断每个指令的执行时间(lS)
2、Reorder Buffer——指令乱序执行结束后存储在ROB,然后按冯诺依曼结构顺序写回到真实地址,让程序员看见结果。在写回(retire)时处理中断,错误的branch prediction。
优劣
1、优点:顺序执行模式便于理解和实现精准中断
2、缺点:ROB相当于寄存器堆,要求读取速度很快;存在大量的冗余数据拷贝;RS混存了数据信息(data)和控制信息(tag)
中间数据存储其他方式
1、History Buffer
- 指令发射时,将数据存储在HB,在中断后能找回数据(读取HB不在critical path)
2、Future register file - 运行时用ff更快,af给程序员看(ROB和ARCH file不在critical path)
3、checkpoint - 预测时存储状态
内存访问
1、内存与寄存器区别
- 内存地址很难判断数据依赖关系,寄存器从指令就能知道
- 内存空间远大于寄存器,操作没有寄存器灵活。