ARM7 三级流水线

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ARM7 三级流水线相关的知识,希望对你有一定的参考价值。

按照下图的说法,可以执行几行指令
1. MRS R0,CPSR
2. ORR R0,R0,#0x80
3. MSR CPSR_c,R0
本意就是对CPSR中的I位进行置位
但是执行第一行的话,那么第三行已经开始取指了,第二行已经开始译码了,那么现在R0的值应该还是执行第一行之前R0的值,这样不会产生错误吗?
还有就是ARM指令中条件执行为什么能提高效率?如果条件符合的话,程序不是也进行跳转吗?下一条指令的译码和下下条指令的取指不是也要丢掉吗?

参考技术A 你考虑问题很详细,只是对“译码”和“取指”理解的还不深。ARM7是三级流水线,不会涉及到指令“互锁”的问题,原因是,以你所举的例子为例,不管在第一条指令执行前R0的值为什么,都不会影响第二条指令的译码和第三条指令的取指,因为指令本身是固定的,不管R0是何值,它都是R0,所以得到的“译码”也是固定的。
ARM9的五级流水线会有你所担心的问题,所以ARM9采用“互锁”机制来解决这个问题,如果一条指令中用到了前面指令尚未使用完的内存单元或寄存器,这条指令会暂停,流水线也会暂停取指,直到这条指令所需使用的内存单元或寄存器可用为止。“互锁”机制会影响指令的执行时间。本回答被提问者采纳

ARM7探究

1.流水线:三级流水线

预取、译码、执行。三级并行发生

 

2.什么是哈佛结构?

哈佛结构是一种存储器结构,是一种并行体系结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。(数据总线和指令总线分开)。

 GPIO:General Purpose Input Output (通用输入/输出)简称为GPIO,或总线扩展器。

SRAM:SRAM是英文Static RAM的缩写,它是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据。

Flash:闪存

桥:当两个设备速度不匹配时要经过桥进行连接沟通。

API:API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。通常以库的形式存在,供用户调用。

 

以上是关于ARM7 三级流水线的主要内容,如果未能解决你的问题,请参考以下文章

嵌入式:ARM的流水线技术

ARM三级流水线

三级流水线与五级流水线,pc=pc+8

ARM流水线是否级数越高在相同时间执行的指令越少啊

基于Jenkins打造符合DevOps能力成熟度三级标准的持续集成流水线

stm32 DSP指令的周期