微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM3级流水和5级流水为什么都是PC=PC+8

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。

上一篇:STM8 时钟
下一篇:s3c2440头文件之mmu.h

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top