“21天好习惯”第一期-12

单周期cpu:气泡流水线

1、数据相关

气泡机制的引入,是为了解决数据相关这个问题。什么是数据相关?个人的理解是,第n条指令的目的寄存器恰好为第n+1条指令的源寄存器,就引发数据相关。单周期CPU不存在这个问题,因为每条指令都会在一个周期内执行完毕,但五级流水线中每条涉及寄存器写回的指令都需要五个时钟周期。

为了解决数据相关问题,最简单的方法就是让后来的指令停一停,等到前一条指令完成了写回再继续。这里有一个很机智的改动,就是把寄存器文件从时钟上升沿写入改为时钟下降沿写入,这样一来WB阶段就会提前半个周期执行,后来的指令也可以少停一个周期。

如何检测数据相关的存在?靠指令判断一下ID段两个寄存器用了没,再把ID段的源寄存器编号和后面EX、MEM段的目的寄存器比一下,就妥了。注意,检测必须排除0号寄存器,因为空指令会被咱们的控制器解读成“sll $0,$0,$0”。

用前面某个excel搓出来

气泡的插入,依赖于流水寄存器的锁定和清空功能。锁定功能很好实现,logisim的寄存器自带使能端。

preview

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值