Pipeline_cpu pipeline hazard解决方案---stall+Foward技术
一,先来看forwarding技术
如图所示加入Forwarding unit在excution与memory/write back 的stage之间的bypath结构
工作原理:
- 比较excution的source register 和 memory/write back的dst register是否相同 ,若memory/write back的dst register相同则选择memory的data进行bypath(mem stage的data是最新的)
- 若match则将memory/write back的dst register的data bypath给excution stage
- 通过MUX直接将data递给ALU进行操作
有些场景只通过forwarding技术没办法解决,于是引出stall技术
二,stall+forwarding技术
such as:1.lw $2 ..... 2.add $4,$2,$5(先执行lw后执行add)
这时如图所示使用forwarding技术将会跨两级组合逻辑,这是无法满足timing要求的。
stall技术,需要在instruction decoding 和excution stage之间加入Hazard detection unit(如下图)
工作原理:#------未完待续------#