1. 数据冒险的检测
要想解决流水线处理器中的数据冒险问题,首先需要在指令流中检测出数据冒险。
下面以图4-1为例介绍RAW冒险三种情形的检测方法。

图4-1 RAW数据冒险的三种情形
1.1 RAW情形A检测
相邻指令发生RAW冒险 —— 图4-1中,第2条指令在译码阶段访问的寄存器与第1条指令在执行阶段将要写回的寄存器冲突。
流水线CPU中,与情形A有关的数据通路如图4-2所示。

图4-2 RAW情形A有关的流水线数据通路
分析图4-2所示的数据通路,不难发现RAW情形A的判断方法/检测逻辑如下: