crazyleen的笔记 https://bbs.21ic.com/?668816 [收藏] [复制] [RSS] 一个再读本科生的arm嵌入式自学的学习笔记于交流平台

日志

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

已有 980 次阅读2010-11-24 09:22 |个人分类:ARM裸奔实验-crazyleen学习笔记|系统分类:ARM

今天复习了一遍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 个评论)