Welcome 微信登录

首页 / 操作系统 / Linux / 关于ARM9和ARM7中都是PC=当前执行指令地址+8的解释

为便于说明问题,我们假设当前正在执行0地址处的指令,从下面的两幅图中可以清楚地得到结论。 ARM7是三级流水线,AMR7的三级流水线如下:
执行指令地址=0     
取指PC = 4解码执行指令地址=4   
 取指PC = 8解码执行指令地址=8  
  取指PC = 12解码执行指令地址=12 
   取指PC = 16解码执行指令地址=16
 ARM9是五级流水线,ARM9的五级流水线如下:
执行指令地址=0     
取指PC = 4解码执行指令地址=4缓存/数据回写 
 取指PC = 8解码执行指令地址=8缓存/数据回写
  取指PC = 12解码执行指令地址=12缓存/数据
   取指PC = 16解码执行指令地址=16
        可见,ARM9和ARM7中都是PC=当前执行指令地址+8的根本的原因是,两者的流水线设计中,指令的执行阶段都是处于流水线的第三级