ARM体系结构及接口技术-01ARM基础(ARM基本概念,工作模式,寄存器功能)

认识ARM

嵌入式产品

ARM体系结构及接口技术-01ARM基础(ARM基本概念,工作模式,寄存器功能)

ARM公司

  • 成立于1990年11月
    前身为 Acorn计算机公司
  • 主要设计ARM系列RISC处理器内核
  • 授权ARM内核给生产和销售半导体的合作伙伴
  • ARM 公司不生产芯片

ARM 全球分布

ARM体系结构及接口技术-01ARM基础(ARM基本概念,工作模式,寄存器功能)

ARM 产品线

ARM体系结构及接口技术-01ARM基础(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体系结构及接口技术-01ARM基础(ARM基本概念,工作模式,寄存器功能)
备注:

  1. 不同ARM体系采用不同指令集
  2. 哈佛结构是数据和指令分开存储并行
  3. 冯诺依曼(普林斯顿)结构是混合存储的

ARM系统硬件组成和运行原理

ARM体系结构及接口技术-01ARM基础(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体系结构及接口技术-01ARM基础(ARM基本概念,工作模式,寄存器功能)

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 工作模式及寄存器框图

ARM体系结构及接口技术-01ARM基础(ARM基本概念,工作模式,寄存器功能)

  • 没有标三角的寄存器是在七种模式下公用的,标三角的是有额外的寄存器
  • system and user模式下
    · PC:记录当前程序运行的位置
    · LR:记录程序的返回地址
    · SP:指向栈顶指针
    · CPSR:当前程序状态寄存器

CPSR 寄存器

ARM体系结构及接口技术-01ARM基础(ARM基本概念,工作模式,寄存器功能)
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
  1. T 位 J 位
    T = 0;J=0 处理器处于 ARM 状态(一条指令4个字节)
    T = 1;J=0 处理器处于 Thumb 状态(一条指令2个字节)
  2. 中断禁止位[7:6]
    I = 1: 禁止 IRQ.
    F = 1: 禁止 FIQ
  3. 条件位:
    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个字节)