郯城县网站建设消防公司宣传册设计样本
web/
2025/10/2 21:06:31/
文章来源:
郯城县网站建设,消防公司宣传册设计样本,北京手机网站建设公司哪家好,找合伙做网站的参考自#xff1a;计算机体系结构-寄存器重命名 - 知乎 (zhihu.com)
这里的重点在红色部分描述上#xff0c;也是容易想不通的地方#xff1b; 在SRAM方法中要恢复映射表状态#xff0c;需要事先把分支指令来临时刻的映射表全份拷贝下来#xff0c;然后在恢复时把备份复制…参考自计算机体系结构-寄存器重命名 - 知乎 (zhihu.com)
这里的重点在红色部分描述上也是容易想不通的地方 在SRAM方法中要恢复映射表状态需要事先把分支指令来临时刻的映射表全份拷贝下来然后在恢复时把备份复制回映射表这使得在checkpoint数量增加的时候备份消耗的资源线性增加。
而在CAM方法中要恢复映射表关系只需要保存分支指令来临时刻映射表的有效位状态然后在恢复的时候把有效位置回这使得在CAM方法中增加checkpoint数量是一件不费力的事情alpha21264通过CAM方法实现了80个checkpoint这在SRAM方法中是不可想象的。
为什么CAM只需要保存有效位信息假想以下指令序列 上面的汇编程序在基于CAM的映射表进行重命名时执行过程是这样的
1分支指令F在重命名时需要进行checkpoint保存机器状态此时映射表的内容如下图所示 其中B、D的V显示1-0在实际实现中这两位肯定是0这里写1-0是想说明这两条指令还没有提交这个信息体现在ROB和空闲寄存器列表中这里没有显示所以写0-1因此P11、P13这两个对应的物理寄存器尚处在不能解放的状态即P11、P13的映射关系不能被改写。
2在G、H指令重命名之后机器发现分支预测错误需要恢复机器状态在恢复状态之前映射表的内如如下 3在恢复映射表时机器会将上图中的GC0复制到映射表的有效位V中这样就可以恢复到分支指令F刚进入重命名阶段时的状态。
值得注意的是此时P11、P13和1中一样是0但是含义已经不一样。1中虽然V0但是BD指令没有提交所以这两个物理寄存器不能释放即没有进入空闲列表但是在3中BD指令已经提交假设机器的顺序提交的机器那么当发现F指令预测错误且要处理错误信息时BD大概率已经被提交掉所以P11、P13已经是释放状态可以被其他的逻辑寄存器占用。虽然这两个0含义不一样但是不会导致程序出错。
这里可能有人会有疑虑可能会假想这么一种情况F指令之后的指令修改了P14的映射关系而只恢复V不能置回P14的信息。实际上这是不可能的时刻记得机器是一个顺序提交的机器在分支指令F提交时E指令之后的一切指令都没有提交所以P14的有效位虽然可能被改写为0但是它不会进入空闲列表因为一个寄存器的释放是靠下一次使用到这个寄存器的指令commit时根据last reg来释放的下一个使用这个寄存器的指令还在分支指令之后不可能提交,自然也不可能释放掉所以这个P14的映射关系也不可能被改写所以P14的映射关系不会被改写。
总结一下CAM方法用checkpoint恢复机器状态时只需要恢复有效位V而不需要恢复其他内容SRAM方法则需要复制整个SRAM这导致虽然SRAM方法在查询映射表时即快速又节约资源SRAM行数等于逻辑寄存器个数而CAM行数等于物理寄存器个数但是在处理分支错误的时候慢于CAM方法且上限也远低于CAM方法能容纳的checkpoint少于CAM方法。在实现映射表时选用哪种方法是一件值得设计人员权衡的事情。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/85813.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!