在计算机架构中,流水线冒险是指在指令流水线的执行过程中由于数据相关性或控制相关性而导致的一种性能问题。指令流水线是将指令执行过程划分为多个阶段,这样可以同时处理多条指令,从而提高指令执行的效率。然而,流水线执行时可能会出现数据相关性(依赖先前指令的结果)或控制相关性(下一条指令的执行受到前一条指令的控制)的情况,从而导致延迟或冒险。
当多个指令需要访问同一硬件资源(如内存或寄存器文件)时,就会发生结构冒险。
在当前指令需要使用之前指令的结果,而之前指令的结果尚未准备好时,就会发生数据冒险。
在分支指令的条件产生之前,下一条指令的地址已经确定,但是实际执行的分支指令的地址不符合这一条件。