嵌入式系统及其原理复习重点笔记
2 ARM处理器和指令集
ARM处理器简介
ARM架构与ARM处理器对应关系
V1版架构
该版架构只在原型机ARM1出现过,处理能力有限,其基本性能:
- 寻址空间:64M字节(26位)
- 基本的数据处理指令(无乘法)
- 字节、半字和字的LOAD/STORE指令
- 转移指令,包括子程序调用及链接指令
- 软件中断指令
V2版架构
该版架构对V1版进行了扩展,如ARM2与ARM3(V2a版)架构,增加了以下功能:
- 乘法和乘加指令
- 支持协处理器操作指令
- 快速中断模式
- SWP/SWPB指令,实现最基本存储器与寄存器交换指令
- 寻址空间:64M字节(还是26位)
V3版架构
- 把寻址空间增至32位(4G字节),而且向前兼容
- 增加了当前程序状态寄存器CPSR(Current Program Status Register)和程序状态保存寄存器SPSR(Saved Program Status Register)。
- 增加了中止(Abort)和未定义二种处理器模式。
- ARM6就采用该版架构。指令集变化如下:
- 增加了MRS/MSR指令,以访问新增的CPSR/SPSR寄存器
- 增加了从异常处理返回的指令功能。
ARM的程序状态寄存器(CPSR)简介
V4版架构
- V4版架构是曾经应用最广的ARM体系结构,对V3版架构进行了进一步扩充。
- 引进了16位的Thumb指令集,使ARM使用更加灵活。
- ARM7、ARM8、ARM9和StrongARM都采用该版架构。指令集中增加了以下功能:
- 增加了16位Thumb指令集
- 增加了处理器系统模式,在该模式下,处理器使用用户寄存器操作
- 符号化和非符号化半字及符号化字节的存/取指令
- 完善了软件中断SWI指令的功能
- 把一些未使用的指令空间捕获为未定义指令
THUMB指令集( ‘T’)
THUMB 指令集: 32位ARM指令集的子集,按16位指令重新编码
ARM指令集效率高,但是代码密度低,Thumb指令集具有更好的代码密度,却仍然保持ARM的大多数性能上的优势,
- 代码尺寸小( up to 40 % compression)
- 简化设计
ARM vs Thumb
V5版架构
在V4版基础上增加了一些新的指令,ARM10和XScale都采用该版架构,这些新增指令有:
- 前导零计数CLZ指令,提高整数除法和重点优先级排队操作的效率
- BRKT中断指令(软中断)
- 增加了信号处理指令(V5TE版)
- 带有链接和交换的转移BLX指令
- 为协处理器增加更多可选择的指令
V6版架构
在芯片功耗和多媒体处理上有所突破,ARM11采用该版架构。
- 具备高性能定点DSP功能
- 引入全新Jazelle技术,降低Java程序对内存的占用,同时提高性能
- 增加多媒体扩展(SIMD变种)功能,在语音、视频、图像上的处理能力提高4倍
- 使用先进工艺使得芯片的功耗进一步降低。
- 该版本可以广泛应用于移动电话、PDA等手持设备
V7架构
目前为止32位的最高版本,ARM Cortex采用该版架构,定义了三大系列:
- “A(Application Processer)”:面向尖端的基于虚拟内存的操作系统和用户应用,Cortex-A
- “R(Real Time Controller)”:针对实时系统,Cortex-R
- “M(Micro Controller)”:对微控制器和低成本应用提供优化,Cortex-M。
增加了以下功能:
- 采用Thumb-2技术,比纯32位代码减少了内存占用,比Thumb-1提高了性能
- 采用NEON技术,即进阶SIMD延伸集,将DSP和媒体处理能力提高4倍
V8架构
首款支持64位指令集的架构,被用于对扩展虚拟地址和64位数据处理技术有更高要求的产品领域,如企业应用、高档消费电子产品。ARM Cortex采用该版架构,增加了以下功能:
- 采取64兼容32位的方式。包含两个状态:AArch64和AArch32
- 引入了一个全新指令集A64。
ARM 结构体系和处理器家族的演变发展
ARM系列处理器的体系结构,指令集,处理器ip核和处理器
ARM处理器
- ARM7系列,3级流水线,系统主时钟为20MHz到133MHz,适用于价位低、功耗低的消费类应用。无MMU(Memory Management Unit),可运行uCLinux。
- ARM9系列,5级流水线,系统主时钟为100MHz到233MHz,提供全性能的MMU,支持Windows CE、Linux等主流操作系统。
- ARM9E系列,使用单一的处理器内核,支