Pipeline_cpu pipeline hazard解决方案---stall+Fowarding技术

Pipeline_cpu pipeline hazard解决方案---stall+Foward技术

#-----个人粗浅理解,仅供参考---------#

一,先来看forwarding技术

如图所示加入Forwarding unit在excution与memory/write back 的stage之间的bypath结构

工作原理:

  1. 比较excution的source register 和   memory/write back的dst register是否相同 ,若memory/write back的dst register相同则选择memory的data进行bypath(mem stage的data是最新的)          
  2. 若match则将memory/write back的dst register的data bypath给excution stage
  3. 通过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(如下图)

Hazard detection unit工作原理:

  1. 确认到excution stage的指令是lw,且instruction decoding stage的指令的source register 与在excution stage的指令 dst register进行对比发现match
  2. stall住PC,instruction fetch,等控制信号产生一个bubble stage在lw与下一条指令之间
  3. 当lw指令进行到write back stage时再通过forwarding unit将hazard解决

#------未完待续------#

 

 

 

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值