ARM概述
来源:互联网 发布:restful框架 php 编辑:程序博客网 时间:2024/06/08 07:07
arm公司的介绍就省略掉了,网上有很多
1、ARM数据和指令类型
}ARM采用的是32位架构,这表明地址空间是2的32次方,4G。
ARM 约定:
Byte:8 bits
Halfword: 16 bits (2 byte)
Word :32 bits (4 byte)
Doubleword:64-bits(8byte)(Cortex-A处理器)
大部分ARM core 提供:
ARM 指令集(32-bit)
Thumb指令集(16-bit )
Cortex-A处理器
16位和32位Thumb-2指令集
16位和32位ThumbEE指令集
指令集的16位和32位差异体现在那里?简单来说就是32位指令集能够操作32位数,而16位指令集只能操作16位数。一个简单的例子,同样执行0X111111111和0X22222222的加法,32位指令集可以一次执行完毕,而16位指令集只能
高16位和低16位拆开运算。就向小时候我们学习加法,一开始我们只会个位数加法(十进制1位加法),后来我们会100以内的加法(十进制2位加法)。在CORETEX-A中我们都用32位ARM指令集
2、处理器工作模式
ARM 有8个基本工作模式:
User:非特权模式,大部分任务执行在这种模式
FIQ:当一个高优先级(fast) 中断产生时将会进入这种模式
IRQ:当一个低优先级(normal) 中断产生时将会进入这种模式
Supervisor:当复位或软中断指令执行时将会进入这种模式,上电时处于这种模式,权限最高。
Abort:当存取异常时将会进入这种模式
Undef:当执行未定义指令时会进入这种模式
System:使用和User模式相同寄存器集的特权模式
Cortex-A特有模式:
Monitor:是为了安全而扩展出的用于执行安全监控代码的模式,也是一种特权模式
对于不同模式,可以用一句话来总结:特定的模式执行特定的代码,完成特定的功能,具有特定的权限。
模式之间可以通过软件控制进行转换,也可以通过外部中断或异常处理过程进行切换。
3、流水线
为增加处理器指令流的速度,ARM7 系列使用3级流水线允许多个操作同时处理,而非顺序执行
指令执行过程中取址、译码、执行三个阶段使用的硬件电路相互独立
当对N地址中的指令进行取址时译码器可以对N-4地址的指令进行译码
运算器可以对N-8地址中的指令进行执行,从而形成了三级流水线结构
这种结构降低了指令执行的平均周期。
ARM处理器中当前取指的指令由PC决定,所以当前执行的指令的地址是PC-8
不管多少级流水线PC指向的永远是当前取址的指令,当前执行的指令是PC-8地址处的指令(这一点提一句,在实际的代码执行时,我们通过PC寄存器实际上看不出这种效果,我们看到的PC寄存器仍是指向要执行的指令地址,但要明白真实工作的情况。另外可以通过LDR伪指令来理解这种流水线,这里不展开讲了)
当对N地址中的指令进行取址时译码器可以对N-4地址的指令进行译码
运算器可以对N-8地址中的指令进行执行,从而形成了三级流水线结构
这种结构降低了指令执行的平均周期。
ARM处理器中当前取指的指令由PC决定,所以当前执行的指令的地址是PC-8
不管多少级流水线PC指向的永远是当前取址的指令,当前执行的指令是PC-8地址处的指令(这一点提一句,在实际的代码执行时,我们通过PC寄存器实际上看不出这种效果,我们看到的PC寄存器仍是指向要执行的指令地址,但要明白真实工作的情况。另外可以通过LDR伪指令来理解这种流水线,这里不展开讲了)
4、CORETEX-A寄存器概要
40个32位寄存器,其中33个通用寄存器,6个状态寄存器
带三角的是特定模式下的专用寄存器。
CPSR是状态寄存器
阅读全文
0 0
- ARM概述
- ARM概述
- ARM概述
- ARM概述
- ARM概述
- ARM嵌入式处理器概述
- ARM微处理器概述
- ARM微处理器概述
- ARM微处理器概述
- ARM和linux概述
- arm常用指令概述
- ARM ABI总体概述
- ARM架构概述
- ARM学习路线概述
- ARM指令系统概述
- ARM基础 课程概述
- arm spi 接口概述
- 收集arm文章喽--ARM微处理器概述
- 【高效代码调错系列之代码规范】——让软件学会自己寻找缺陷
- js模块历程
- 习题6.4
- Android 签名打包出现的错误的解决方法以及代码中获取应用签名信息方法
- POJ 3255
- ARM概述
- Redhat(红帽)yum 源更新出现database disk image is malformed
- 小程序支付绑定服务号支付步骤,微信小程序支付绑定商户号支付
- Ubuntu用户、用户组管理命令
- AT&T汇编学习总结二-汇编语言程序范例
- 主成分分析与因子分析的区别
- Java Struts2 POI创建Excel文件并实现文件下载
- Android 在低版本4.4以上 动态设置状态栏和底部导航栏的背景色
- Scala-高阶函数