假设当前正在执行0地址处的指令
AMR7的三级流水线如下:
①、程序计数器pc里保存着第一条指令在存储器上的地址,cpu按照这个地址去取第一条指令,取到第一条指令后pc自动加4;
②、cpu译码第一条指令,同时去pc中存放的地址上取第二条指令。cpu译码第一条指令完成同时取到第二条指令,进而pc再自动加4;
③、cpu执行第一条指令同时译码第二条指令并且去pc中的地址上取第三条指令。
ARM9是五级流水线,ARM9的五级流水线如下:
可见,ARM9和ARM7中都是PC=当前执行指令地址+8的根本的原因是,两者的流水线设计中,指令的执行阶段都是处于流水线的第三级。