|
发表于 2020-1-20 15:00:02
|
显示全部楼层
以ARM9TDMI为例
他有5急流水线 取址 译码 ALU 装载1 装载2
下一条指令需要前一条指令的结果,而这时结果还没出来,处理器就会等待,这就称流水线互锁
明白拉互锁 流水线也就差不多拉
例1:没有互锁
add r0,r0.r1
add r0,r0,r2
这两条指令占用拉2个周期。ALU用1个周期计算r0+r1,因此这个结果在第2个周期ALU计算r0+r2已经好拉
例2:由于装载产生一个周期互锁
ldr r1,[r2,#4]
add r0,r0,r1
两条指令用拉三个周期,ALU用1个周期计算r2+4 ,第二个周期add要用的r1还没准备好,等待一个周期,再第三个周期 ldr已经把r2+4的结果装载到r1,add可以执行拉
打字真累啊 |
|