一、数据相关
1.定义
从名称其实就可以看出来其定义,就是指令在运行的时候前后的数据出现了相关联,或者说出现了后一条指令依赖于前一条指令的运算结果
2.分类
这里先给出设定:
指令1:inst1
指令2:inst2
指令3:inst3
指令4:inst4
指令5:inst5
- RAW:inst2需要读取inst1的数据
- WAR:inst2提前写了inst1需要读取的数据
- WAW:inst2提前写了inst1需要写入的数据
- RAR:inst2提前读取inst1的数据(本质是RAW)
3.ori指令存在的数据相关
显然不存在WAW,WAR,因为我们设计的时候写入一定是在读取寄存器之后的,是不会出现这种情况的。
所以我们要改进的是RAW,也就是我们要想办法使得数据在写入前就可以被后续的指令正确读取,那么这里后续指令又可以追溯到后续的多条指令,我们进行分来
- 相邻指令
- 间隔一条指令
- 间隔两条指令
- 间隔三条指令

其实可以看到间隔三条指令的时候,inst5的译码已经可以取得inst1写入的数据了所以间隔三条或者以上数据不会存在数据相关的问题。

本文深入探讨CPU中的数据相关问题,特别是ori指令优化,包括RAW、WAR、WAW和RAR四种类型的分析。针对相邻及间隔指令的情况,提出了解决RAW相关的方法,确保数据能在正确时刻被后续指令读取。通过仿真验证,优化方案有效。
最低0.47元/天 解锁文章
446

被折叠的 条评论
为什么被折叠?



