ARM体系结构及接口技术-01ARM基础(ARM基本概念,工作模式,寄存器功能)
文章目录
认识ARM
嵌入式产品
ARM公司
- 成立于1990年11月
前身为 Acorn计算机公司 - 主要设计ARM系列RISC处理器内核
- 授权ARM内核给生产和销售半导体的合作伙伴
- ARM 公司不生产芯片
ARM 全球分布
ARM 产品线
授权的厂商
- TI (德州仪器)
Omap3430 Cortex-A8核600MHz (诺基亚N96)
Omap3530 Cortex-A8核600MHz ARM+DSP双核 - Samsung(三星)
S5PC100 Cortex-A8核 600MHz (iPhone 3GS和M9都应用此芯片)
S5PC110/S5PV210 Cortex-A8核 1GHZ (号称目前世界上最快的ARM处理器) - Freescale(飞思卡尔)
i.MX512/ i.MX513/ i.MX515 Cortex-A8核600MHz~1GHz(在多款上网本中得到应用) - Marvell(马维尔)
PXA930 800MHz Cortex-A8核
ARMADA 500/600/1000系列 Sheeva PJ4核心 1GHz~1.2GHz(支持ARMv7指令集,架构异同) - Qualcomm(高通)
QSD8650A/ QSD8672(Snapdragon系列) 1.3G~1.5G scorpion核心(支持ARMv7指令,架构异同) - Nvidia(英伟达)
Tegra ARM11核 700MHz
Tegra2 (下一代产品) Cortex A8(或A9)核
ARM 体系架构
备注:
- 不同ARM体系采用不同指令集
- 哈佛结构是数据和指令分开存储并行
- 冯诺依曼(普林斯顿)结构是混合存储的
ARM系统硬件组成和运行原理
数据和指令类型
- ARM 采用的是32位架构
- 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指令集
程序计数器PC (r15)
- 当处理器执行在ARM状态:
所有指令 32 bits 宽
所有指令必须 word 对齐
所以 pc值由bits [31:2]决定,bits[1:0]未定义(所以指令不能halfword/byte对齐) - 当处理器执行在Thumb状态:
所有指令16bits宽
所有指令必须 halfword对齐
所以pc值由bits[31:1]决定,bits[0]未定义(所以指令不能 byte对齐) - 当处理器执行在Jazelle状态:
所有指令 8 bits 宽
处理器执行word存取一次取4条指令
字节顺序
ARM 可以用little/big endian格式存取数据
ARM的工作模式及寄存器
ARM主要有7个基本工作模式
模式 | 含义 |
---|---|
User (普通模式) | 非特权模式,大部分任务执行在这种模式 |
FIQ (快速中断模式) | 当一个高优先级(fast) 中断产生时将会进入这种模式 |
IRQ (外部中断模式) | 当一个低优先级(normal) 中断产生时将会进入这种模式 |
Supervisor(超级用户模式) | 当复位或软中断指令执行时将会进入这种模式 |
Abort (数据访问终止) | 当存取异常时将会进入这种模式 |
Undef (未定义指令终止模式) | 当执行未定义指令时会进入这种模式 |
System (系统模式) | 使用和User模式相同寄存器集的特权模式 |
ARM 有37个寄存器
- 1 个用作PC( Program Counter)
- 1个用作CPSR(Current Program Status Register)
- 5个用作SPSR(Saved Program Status Registers)
- 30 个通用寄存 器
ARM 工作模式及寄存器框图
- 没有标三角的寄存器是在七种模式下公用的,标三角的是有额外的寄存器
- system and user模式下
· PC:记录当前程序运行的位置
· LR:记录程序的返回地址
· SP:指向栈顶指针
· CPSR:当前程序状态寄存器
CPSR 寄存器
1.Mode位 [4:0]:处理器模式位
Mode位 | 处理器模式 |
---|---|
10000 | User mode |
10001 | FIQ mode |
10010 | IRQ |
10011 | SVC mode |
10111 | Abort mode |
11011 | Undfined mode |
11111 | System mode |
- T 位 J 位
T = 0;J=0 处理器处于 ARM 状态(一条指令4个字节)
T = 1;J=0 处理器处于 Thumb 状态(一条指令2个字节) - 中断禁止位[7:6]
I = 1: 禁止 IRQ.
F = 1: 禁止 FIQ - 条件位:
N = Negative result from ALU
Z = Zero result from ALU
C = ALU operation Carried out or borrow
V = ALU operation oVerflowed
测验
1) ARM有哪些工作模式?
答:ARMv7-A架构处理器共有8种工作模式,即用户模式(User)、快速中断模式(FIQ)、外部中断模式(IRQ)、特权模式(Supervisor)、数据访问中止模式(Abort)、未定义指令中止模式(Undef)、系统模式(System)、监控模式(Monitor)
2) ARM核有多少个寄存器?
一般没有Monitor模式的ARM核有37个寄存器,Cortex有Monitor模式的ARM核有40个寄存器。
3) PC和LR寄存器的别名?
R14存储LR,用于存储返回地址;
R15存储PC,用于指向下一条指令。
4) R13别名是什么?
SP,堆栈指针。
5) 哪种模式使用的寄存器最少?
User模式使用的寄存器只有17个。
6) CPSR的哪 位反映了处理器的状态?
T位是处理器的状态控制位
T = 0;J=0 处理器处于 ARM 状态(一条指令4个字节)
T = 1;J=0 处理器处于 Thumb 状态(一条指令2个字节)