⚠ 转载请注明出处:作者:ZobinHuang,更新日期:Sept.5 2022
本作品由 ZobinHuang 采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可,在进行使用或分享前请查看权限要求。若发现侵权行为,会采取法律手段维护作者正当合法权益,谢谢配合。
目录
有特定需要的内容直接跳转到相关章节查看即可。
ARM: 首先它是一家公司
ARM 的全称是
值得一提的是,作为设计 GPU 芯片的巨头 NVIDIA,前段时间尝试对 ARM 公司发起收购,但是被英国政府以反垄断为由拒绝 nividia_acquire_arm。
ARM: 它是一种指令集架构
ARM 公司设计的 CPU 芯片是一种
具体版本特性说明如下。
ARMv1 版 ISA
该版架构只在原型机 ARM1 出现过,只有 26 位的寻址空间,没有用于商业产品。其基本性能有:
- 基本的数据处理指令 (无乘法);
- 基于字节、半字和字的
Load
/Store
指令; - 转移指令,包括子程序调用及链接指令;
- 供操作系统使用的软件中断指令
SWI
; - 寻址空间: 64MB ($2^{26}$);
ARMv2 版 ISA
该版架构对 V1 版进行了扩展,包含了对 32 位乘法指令和协处理器指令的支持。版本 V2a 是版本 V2 的变种,ARM3 芯片采用了版本 V2a,是第一片采用片上 Cache 的 ARM 处理器。ARM V2 指令集同样为 26 位寻址空间,现在已经废弃不再使用。
V2 版架构与版本 V1 相比,增加了以下功能:
- 乘法和乘加指令;
- 支持协处理器操作指令;
- 快速中断模式;
SWP
/SWPB
的最基本存储器与寄存器交换指令;
ARMv3 版 ISA
ARM 公司在 1990 年设计的第一个微处理器采用的是应用了 ARM V3 版 ISA 的 ARM6 系列处理器。它作为 IP 核 (独立的处理器),是具有片上高速缓存、MMU 和写缓冲的集成 CPU。变种版本有 V3G 和 V3M。版本 V3G 是不与版本 V2a 向前兼容的版本 3,版本 V3M 引入了有符号和无符号数乘法和乘加指令,这些指令产生的是 64 位结果。整体来说,V3 版架构 (目前已废弃) 对 ARM 体系结构作了较大的改动:
- 寻址空间增至 32 位 (4GB);
- 当前程序状态信息从原来的 R15 寄存器移到当前程序状态寄存器 CPSR (Current Program Status Register) 中;
- 增加了程序状态保存寄存器 SPSR (Saved Program Status Register);
- 增加了两种异常模式,使操作系统代码可方便地使用数据访问中止异常、指令预取中止异常和未定义指令异常;
- 增加了
MRS
/MSR
指令,以访问新增的CPSR
/SPSR
寄存器; - 增加了从异常处理返回的指令功能
ARMv4 版 ISA
V4 版架构在 V3 版上作了进一步扩充,V4 版架构是目前应用最广的 ARM 体系结构,ARM7、ARM8、ARM9 和 StrongARM 系列处理器都采用该架构。 V4 不再强制要求与 26 位地址空间兼容,而且还明确了哪些指令会引起未定义指令异常。V4 版指令集架构中增加了以下功能:
- 符号化和非符号化半字及符号化字节的存/取指令;
- 增加了 T 变种,处理器可工作在 Thumb 状态,增加了 16 位 Thumb 指令集;
- 完善了软件中断
SWI
指令的功能; - 处理器系统模式引进特权方式时使用用户寄存器操作;
- 把一些未使用的指令空间捕获为未定义指令;
ARMv5 版 ISA
V5 版架构是在 V4 版基础上增加了一些新的指令,ARM10 和 Xscale 系列处理器都采用该版架构。这些新增命令有:
- 带有链接和交换的转移
BLX
指令; - 计数前导零
CLZ
指令;BRK
中断指令; - 增加了数字信号处理指令 (V5TE 版);
- 为协处理器增加更多可选择的指令;
- 改进了 ARM/Thumb 状态之间的切换效率;
- E --- 增强型 DSP 指令集,包括全部算法操作和 16 位乘法操作;
- J ---- 支持新的 JAVA,提供字节代码执行的硬件和优化软件加速功能
ARMv6 版 ISA
V6 版架构是 2001 年发布的,首先在 2002 年春季发布的 ARM11 系列处理器中使用。在降低耗电量地同时,还强化了图形处理性能。通过追加有效进行多媒体处理的 SIMD (Single Instruction, Multiple Data,单指令多数据) 功能,将语音及图像的处理功能提高到了原型机的 4 倍。此架构在 V5 版基础上增加了以下功能:
- THUMBTM: 35% 代码压缩;
- DSP 扩充: 高性能定点 DSP 功能;
- JazelleTM: Java 性能优化,可提高 8 倍;
- Media 扩充: 音/视频性能优化,可提高 4 倍
ARMv7 版 ISA
V7 架构是在 ARMv6 架构的基础上诞生的。该架构采用了 Thumb-2 技术,它是在 ARM 的 Thumb 代码压缩技术的基础上发展起来的, 并且保持了对现存 ARM 解决方案的完整的代码兼容性。Thumb-2 技术比纯 32 位代码少使用 31% 的内存,减小了系统开销,同时能够提供比已有的基于 Thumb 技术的解决方案高出 38% 的性能。ARMv7 架构还采用了 NEON 技术,将 DSP 和媒体处理能力提高了近 4 倍,并支持改良的浮点运算,满足下一代3D图形、游戏物理应用以及传统嵌入式控制应用的需求。此外,ARMv7 还支持改良的运行环境,以迎合不断增加的 JIT(Just In Time) 和 DAC(Dynamic Adaptive Compilation) 技术的使用。
ARMv8 版 ISA
v8 架构是在 32 位 ARM ISA 架构上进行开发的,将被首先用于对扩展虚拟地址和 64 位数据处理技术有更高要求的产品领域,如企业应用、高档消费电子产品。ARMv8 架构包含两个执行状态:AArch64 和 AArch32。AArch64 执行状态针对 64 位处理技术,引入了一个全新指令集 A64;而 AArch32 执行状态将支持现有的 ARM 指令集。目前的 ARMv7 架构的主要特性都将在 ARMv8 架构中得以保留或进一步拓展,如:TrustZone 技术、虚拟化技术及 NEON advanced SIMD 技术等。
ARM: ARM 公司设计的处理器核心
上文提到,ARM 公司盈利的模式是对外提供他们设计的处理器核心 IP,其它的微处理器制造商会在他们制造的处理器中集成 ARM 公司的 IP,一般称为
各代 ARM 内核的特性如下所示。
ARM 7 内核
该系列主要针对某些简单的 32 位设备,作为目前较旧的一个系列,ARM7 处理器已经不建议继续在新品中使用。主要包括 ARM7TDMI-S (ARMv4T架构) 和 ARM7EJ-S (ARMv5TEJ 架构)。
ARM 9 内核
主要针对嵌入式实时应用,主要包括 ARM926EJ-S、ARM946E-S 和 ARM968E-S。
ARM 11 内核
主要应用在高可靠性和实时嵌入式应用领域,主要包括 ARM11MPCore、ARM1176、ARM1156、ARM1136。
ARM Cortex-R 内核
Cortex-R,代表实时的意义 (Real-Time),目标是实时任务处理,主要应用领域包括汽车、相机、工业、医学等。该系列处理器主要包括 Cortex-R4、Cortex-R5、Cortex-R7、Cortex-R8、Cortex-R52、Cortex-A17。
ARM Cortex-M 内核
Cortex-M,代表微处理器的意义 (Microcontrollers),目标是最节能的嵌入式设备,主要应用领域包括汽车、能源网、医学、嵌入式、智能卡、智能设备。传感器融合、穿戴设备等。该系列处理器主要包括 Cortex-M0、Cortex-M0+、Cortex-M3、Cortex-M4、Cortex-M7、Cortex-M23、Cortex-M33、Cortex-M35P。
ARM Cortex-M 内核
Cortex-A,代表的是先进意义 (Advanced),目标是以最佳功耗实现最高性能,主要应用领域包括汽车、工业、医学、调制解调器、存储等。Cortex-A 也是目前应用最广的处理器版本。该系列处理器主要包括 Cortex-A5、Cortex-A7、Cortex-A8、Cortex-A9、Cortex-A15、Cortex-A17、Cortex-A32、Cortex-A35、Cortex-A53、Cortex-A57、Cortex-A72、Cortex-A73。其中,Cortex-A8 只支持单核。
在对 ISA 的支持上,Cortex-A5、Cortex-A7、Cortex-A8、Cortex-A9、Cortex-A15、Cortex-A17 基于 ARMv7-A 架构;Cortex-A32、Cortex-A35、Cortex-A53、Cortex-A57、Cortex-A72、Cortex-A73 基于 ARMv8-A 架构,除了 Cortex-A32 为 32 位结构,其它的均支持64位结构。
总的来说,Cortex-A 处理器从高到低可排序为:Cortex-A73、Cortex-A72、Cortex-A57、Cortex-A53、Cortex-A35、Cortex-A32、Cortex-A17、Cortex-A15、Cortex-A7、Cortex-A9、Cortex-A8、Cortex-A5。