什么是流水线冒险?流水线微处理器设计中有哪些不同类型的冒险?
作者:互联网
流水线冒险是指由于某种原因无法执行程序中的下一条指令的情况。在流水线微处理器中会发生三种类型的冒险,如下所示:
(1)结构冒险:结构冒险是由于资源冲突导致的,防止重叠执行。例如:如果设计有一个浮点执行单元,并且如果每次执行需要 2 个时钟周期,那么程序中背靠背的浮点指令将导致流水线停止。另一个可能发生冲突的资源是内存/缓存访问。
(2)数据冒险:当一条指令需要前一条指令的执行结果时,就可能发生数据冒险。有三种可能的情况:
a) 写后读 (RAW) - 如果指令需要由前一条指令写入的数据,则会发生数据冒险。
b) 写后写 (WAW) - 如果一条指令写入一个刚好由前一条指令写入的寄存器,则会发生数据冒险。
c) 读后写 (WAR) - 如果指令写入作为前一条指令源的寄存器,则会发生数据冒险。
(3)控制冒险:这些冒险是由于改变程序执行顺序而产生的,比如程序的分支与跳转指令,都可能改变程序的执行顺序。
标签:一条,微处理器,写入,指令,流水线,数据,冒险 来源: https://www.cnblogs.com/xiangtianxiao/p/16596799.html