首页 > 其他 > 详细

#computer architecture#如何设计一个处理器3

时间:2019-08-27 15:34:47      阅读:72      评论:0      收藏:0      [点我收藏+]

---恢复内容开始---

pipeline control:看ppt

流水线不会改变lantency,但是会提高through put。

dependence:当前指令的data,下一个指令要用。

hazards:

structural hazards:两个指令要用一个resource

每一个stage的resource要不一样

data hazards:有两类 forwarding/stalls

前三个都是错的:

技术分享图片

 

技术分享图片

1.write然后是read  write还没写进去,read就开始读了,哔!hazard!MIPS会发生!

2.read然后write,write抢先,read读到错误的资料,哔!hazard!MIPS不会发生,因为设计中write永远在第5个stage,read在第二个stage

3.后面的先写进去了,哔!hazard!MIPS不会发生,因为设计中write永远在第5个stage

举例说明:

 技术分享图片

解决办法:

技术分享图片

nop会浪费时间;stall是停;forwarding要注意两点:datapath的设计和什么时候要control

ALU要计算的值可能要用到不同pipeline里暂存的值:

技术分享图片

 

技术分享图片

这一部分书上写得更清楚一点,206页

技术分享图片·

技术分享图片

 

load指令后面是R型指令就要stall,加一个nop;因为alu计算的是memory的地址,从EX/MEM流水线寄存器中拿到的是memory的地址而不是里面存储的值,所以要在memory之后才能拿到值

技术分享图片

control hazards:

 

#computer architecture#如何设计一个处理器3

原文:https://www.cnblogs.com/zhanghaha-zzz/p/11418279.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!