其他分享
首页 > 其他分享> > 什么是流水线冒险?流水线微处理器设计中有哪些不同类型的冒险?

什么是流水线冒险?流水线微处理器设计中有哪些不同类型的冒险?

作者:互联网

流水线冒险是指由于某种原因无法执行程序中的下一条指令的情况。在流水线微处理器中会发生三种类型的冒险,如下所示:

(1)结构冒险:结构冒险是由于资源冲突导致的,防止重叠执行。例如:如果设计有一个浮点执行单元,并且如果每次执行需要 2 个时钟周期,那么程序中背靠背的浮点指令将导致流水线停止。另一个可能发生冲突的资源是内存/缓存访问。

(2)数据冒险:当一条指令需要前一条指令的执行结果时,就可能发生数据冒险。有三种可能的情况:

a) 写后读 (RAW) - 如果指令需要由前一条指令写入的数据,则会发生数据冒险。

b) 写后写 (WAW) - 如果一条指令写入一个刚好由前一条指令写入的寄存器,则会发生数据冒险。

c) 读后写 (WAR) - 如果指令写入作为前一条指令源的寄存器,则会发生数据冒险。

(3)控制冒险:这些冒险是由于改变程序执行顺序而产生的,比如程序的分支与跳转指令,都可能改变程序的执行顺序。

 

标签:一条,微处理器,写入,指令,流水线,数据,冒险
来源: https://www.cnblogs.com/xiangtianxiao/p/16596799.html