MIPS的五级流水线
- 取指
- 译码、读寄存器
- 执行
- 从存储器读操作数
- 写回寄存器
流水线冒险
-
结构冒险:硬件不支持而导致的指令不能在预定时间执行的情况
- 假设只有一个存储器
- 三级流水线
- 第一条指令写存储器、第四条指令将开始预取指令,此时就会发生结构冒险
-
数据冒险:因无法提供流水线指令的数据而导致指令不能在预定时间执行
- 假设连续三条指令
- 第二条指令需要用到第一条指令的结果
- 而这个结果需要等第一条指令执行到最后一级(写回寄存器)时,才能得到,因此会阻塞流水线
-
控制冒险:
结构冒险:硬件不支持而导致的指令不能在预定时间执行的情况
数据冒险:因无法提供流水线指令的数据而导致指令不能在预定时间执行
控制冒险: