ARM3级流水和5级流水为什么都是PC=PC+8
时间:11-11
来源:互联网
点击:
为e59ff014。
此处取指完之后,自动更新PC的值,即PC=PC+4(单个指令占4字节,所以加4)=4+4=8
指令周期Cycle2
(1)译指:翻译指令e59ff014;
(2)同时再去取指:
PC总是指向将要读取的指令的地址(即我们常说的,指向下一条指令的地址),而当前PC=8,
所以去物理地址为8所对应的指令“ldr pc,[pc,#20]”其对应二进制代码为e59ff014。
此处取指完之后,自动更新PC的值,即PC=PC+4=8+4=12=0xc
指令周期Cycle3
(1)执行(指令):执行“e59ff014”,即“ldr pc,[pc,#20]”所对表达的含义,即
PC
= PC + 20
= 12 + 20
= 32
= 0x20
此处,只是计算出待会要赋值给PC的值是0x20,这个0x20还只是放在执行单元中内部的缓冲中。
(2)译指:翻译e59ff014。
(3)取指:
此步骤由于是和上面(1)中的执行同步做的,所以,未受到影响,继续取指,而取指的那一时刻,PC为上一Cycle
更新后的值,即PC=0xc,所以是去取物理地址为0xc所对应的指令”ldr pc,[pc,#20]”,对应二进制为e59ff014。
ARM3级流水5级流 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)
