数据相关
数据相关指在一个程序中,存在必须等前一条指令执行完才能执行后一条指令的情况,则这两条指令即为数据相关。解决办法:
- 把遇到数据相关的指令及其后续指令都暂停一至几个时钟周期,直到数据相关问题消失后再继续执行。可分为硬件阻塞(stall)和软件插入“NOP”两种方法。
- 数据旁路技术。设置相关转发通路,不等前一条指令把计算结果写回寄存器,下一条指令也不再从寄存器读, 而将数据通路中生成的中间数据直接转发到 ALU 的输入端。
- 编译优化:通过编译器调整指令顺序来解决数据相关。

一种特殊的数据冒险无法用数据旁路结局:load-use 数据冒险;