arm的5级流水线的学习笔记

arm的5级流水线的学习笔记

[ 2010-11-24 9:22:00 | By: crazyleen ]

今天复习了一遍arm的体系结构与指令系统,发现有很多遗留的东西没搞明白:1.多级流水线 2.中断PC保存与恢复为什么要偏移4或8

了解了流水线的过程后,有点豁然开朗的感觉。

假设程序为:

0:

ldr r3, [r0], #4

str r3, [r1], #4

cmp r2, r0

bne 0b

ARM9的5级流水线过程:

1.取指----------->2译码----------->3执行----------->4存储----------->5写

bne cmp str ldr

当前执行的指令是str,而pc指向bne,是当前执行指令的第二条指令,arm的指令为4字节,所以pc值永远为当前指令的地址加8。

注意:

1)执行一条分支指令或直接修改 PC 而发生跳转时,会使 ARM 内核凊空流水线

2)即使产生了一个中断,一条处于“执行”阶段的指令也将会完成。流水线里其他指令将会放弃,而处理器将从向量表的适当入口开始填充流水线

理解了5级流水线的原理后,回过头去看中断的pc值设置就不会再困惑了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值