协处理器+流水线 (9)

3级流水线 流程:

取指令

译码

执行。

每一个时钟周期都可以执行一个指令。

提高CPU的能力有两种方法,

1 提高时钟频率,造成单位时间内执行的指令更多。

2 减少每条指令的平均指令周期数CPI ,CPI我不太懂,但大概的意思就是增加流水线,比如由三到五。

最佳的流水线 :

一条指令紧跟着一条指令。 没有浪费时钟周期,就是一个时钟。

然后是 ldr 的指令。

这个指令指的是 将内存中的数据加载到寄存器中。

ldr 的 第四个周期 M代表的是 从内存中取数据放到 暂存器

ldr 的 第五个周期W 代表的是将暂存器中的数据放到寄存器中。

本来在第4个周期,就会执行 AND指令,但是却拖到了 第6 个周期。

但是这里为什么 AND指令要 等呢, 不知道。

然后是跳转的指令。 BL

BL 指令的 第一个周期,E , 是指计算出 需要跳转的位置。

BL指令的第二个周期, L, 是指 将预取的指令+译码的指令全部丢弃,然后,从新预取之前计算的指令,然后,将返回的地址放到 r14  中。

BL指令的第三个周期,A, 的含义不知道,但是已经开始对跳转的指令进行译码了。

接下来是中断流水线。

IRQ 在 第一个周期的时候,发生,那么 add 指令会执行完,但是 sub 指令就不译码了,开始译码中断指令,并且预取指令。

在第二个周期的时候,开始获取中断向量表的地址, 将CPSR保存到SPSR,并将CPSR的模式改为 IRQ模式,并且禁止中断。并且Mov 的指令不译码了,并且预取下一条指令。

再第三个周期的时候,将PC指针(800c)保存到 r14中,并且到中断向量表的地址去预取指令,x 预取的指令并没有被译码。

再第四个周期的时候,开始对预取的指令译码, 但是这里的A,不知道是什么意思。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值