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

时间:2019-08-27
本文章向大家介绍#computer architecture#如何设计一个处理器3,主要包括#computer architecture#如何设计一个处理器3使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

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

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:

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