
1.1 ARM体系概述
ARM是Advanced RISC Machines的缩写,有3个含义。
● 一个生产高级RISC(精简指令集)微处理器的公司。
● 一种高级RISC的技术。
● 一类采用高级RISC的微处理器。
1.1.1 ARM简介
1. ARM公司
ARM公司成立于1990年,总部位于英国剑桥,是全球领先的半导体知识产权(IP)提供商之一,它拥有1700多名员工,在全球设立了多个办事处,其中包括比利时、法国、印度、瑞典和美国的设计中心。
ARM公司的商业模式主要是IP的设计和许可,它本身并不生产和销售实际的半导体芯片,而是向对这些IP设计有兴趣的公司和厂商授予IP许可证,同时收取IP的许可费用和生产芯片、晶片的版税。
对于每一个授权公司和厂商来说,它们获得的授权都是独一无二的。它们可以根据不同的应用领域和自身的技术优势,适当加入外围电路,形成自己的ARM微处理器芯片,从而缩短了开发周期,提升了产品的竞争力。
到目前为止,ARM公司向200多家公司出售了600多个处理器许可证,全球已经累计销售了超过150亿块基于ARM的芯片。
2. RISC(精简指令集)
RISC(Reduced Instruction Set Computing),即精简指令集。RISC与CISC(Complex Instruction Set Computing,复杂指令集)相对应,CISC采用的优化方法是通过设置一些功能复杂的指令,把一些原来由软件实现的、常用的功能改用硬件的指令系统实现,以此来提高计算机的执行速度;RISC技术的精华就是通过简化指令功能,使指令的平均执行周期缩短,从而提高工作主频,同时大量使用通用寄存器来提高子程序执行的速度。RISC与CISC是指令系统两个截然不同的优化方向。
RISC的基本思想为尽量简化指令功能,只保留那些功能简单、能在一个节拍内执行完成的指令,而把较复杂的功能用一段子程序来实现。
3. ARM处理器
ARM公司是专门从事基于RISC技术芯片设计开发的公司,其设计的ARM系列处理器均采用了精简指令集的设计。如今内嵌有ARM处理器核心和采用ARM构架的处理器,都被统称为ARM处理器。
1991年,ARM公司推出第一款嵌入式RISC核心,即ARM6解决方案。1993年,ARM公司推出基于ARMv4T架构的ARM7核心。2004年,ARM公司发布基于ARMv7架构的Cortex微处理器系列,同时发布该系列架构中首款ARM Cortex-M3微处理器。2010年,ARM公司推出了ARM Cortex-M4微处理器。
Cortex-M4是一种面向数字信号处理(DSC)和高级微控制器(MCU)应用的高效方案,具有高效率的信号处理能力,同时还有低功耗、低成本和简单易用等特点,适合电机控制、汽车、电源管理、嵌入式音频和工业自动化等领域。
Cortex-M4微处理器内集成了单循环乘法累计(MAC)单元、优化的单指令多数据(SIMD)指令、饱和算法指令和可选择的单精度浮点单元(FPU),同时保留了Cortex-M系列的一贯特色技术,例如,处理性能最高1.25DMIPS/MHz的32位核心、代码密度优化的Thumb-2指令集、负责中断处理的嵌套中断向量控制器。此外,还可以选择内存保护单元(MPU)、低成本诊断和追踪以及完整休眠状态。
Cortex-M4可以根据应用需要提供多种不同的制造方式,例如,超低功耗版本采用台积电180nm ULL工艺生产,目标频率150MHz的高性能版本则使用GLOBALFOUNDRIES公司65nm LPe工艺生产,动态功耗也不超过40μW/MHz。
现在已经有5家MCU半导体企业购买了ARM Cortex-M4的授权,包括NXP、意法半导体和德州仪器等行业巨头。
1.1.2 ARM架构的发展
ARM处理器架构简单,使用较小的集成电路规模,从而降低了功耗,同时实现了较高的性能和代码密度,达到了良好的平衡,这是ARM架构的关键特性。
ARM架构一方面在各个版本之间保持了很好的兼容性,另一方面也在不断地改进。架构进化历史如图1-1所示。
ARM处理器的架构特点如下。
1)ARMv4T架构。引进了16位Thumb指令集和32位ARM指令集,目的是在同一个架构中同时提高性能和代码密度。16位Thumb指令集相对于32位ARM指令集可缩减高达35%的代码大小,同时保持32位架构的优点。采用此架构的内核有ARM7TDMI,具体芯片有三星S3C44B0x系列等。
2)ARMv5TEJ架构。引进了数字信号处理(Digital Signal Processing,DSP)算法(如饱和运算)和Jazelle Java字节码引擎来启用Java的硬件执行,从而提高了用Java编写的应用程序的性能。与非Java加速内核比较,Jazelle将Java的执行速度提高了8倍,并且减少了80%的功耗。许多基于ARM处理器的便携式设备中已使用此架构,目的是在游戏和多媒体应用程序的性能方面提供有显著改进的用户体验。采用此架构的内核有ARM926EJ-S,具体芯片有ATMEL的AT91SAM926x系列等。

图1-1 ARM处理器架构进化历史
3)ARMv6架构。引进了包括单指令多数据(Single Instruction Multiple Data,SIMD)运算在内的一系列新功能。SIMD扩展已针对多种软件应用程序(包括视频编解码器和音频编解码器)进行优化,对于这些软件应用程序,SIMD扩展最多可将性能提升4倍。此外,还引进了作为ARMv6架构变种的Thumb-2和TrustZone技术。采用此架构的内核有ARM1176JZ,具体芯片有三星S3C6410x系列等。
4)ARMv6M架构。为低成本、高性能设备而设计,向由8位设备占主导地位的市场提供32位功能强大的解决方案。其16位Thumb指令集架构允许设计者设计门数最少却十分经济实惠的设备。采用此架构的内核有Cortex-M0,具体芯片有ST的STM32F0系列等。
5)ARMv7架构。是目前ARM公司最新的架构,所有Cortex微处理器都实现了ARMv7架构(ARMv6M的Cortex-M系列微处理器除外)。所有ARMv7架构都实现了Thumb-2技术(一个经过优化的16/32位混合指令集),在保持与现有ARM解决方案的代码完全兼容的同时,既具有32位ARM指令集的性能优势,又具有16位Thumb指令集的代码大小优势。ARMv7架构还包括NEON媒体加速技术,该技术可将DSP和媒体吞吐量提升400%,并提供改进的浮点支持以满足下一代3D图形和游戏物理学以及传统嵌入式控制应用程序的需要。
早期ARM处理器使用一种基于数字的命名方法,数字之后添加字母后缀,但该数字并不表示其内核架构,如ARM7TDMI并不是一款ARMv7内核微处理器,而是ARMv4T架构的产品。
1.1.3 Cortex内核分类
Cortex系列内核的命名采用Cortex加后缀的方式。后缀用字母加数字的方式表示其产品特性,如M3。Cortex分为3个系列。
1)A系列(应用程序型)。A系列在内存管理单元(Memory Management Unit,MMU)、用于多媒体应用程序的可选NEON(加速多媒体和信号处理算法)处理单元以及支持半精度和精度运算的高级硬件浮点单元的基础上实现了虚拟内存系统架构。该系列适用于高端消费电子设备、网络设备、移动Internet设备和企业市场。例如,该系列中较新的Cortex-A9内核和之前的Cortex-A8内核被广泛应用于高档智能手机和平板电脑中。
2)R系列(实用型)。R系列在内存保护单元(Memory Protection Unit,MPU)的基础上实现了受保护的内存系统架构。该系列适用于高性能实时控制系统(包括汽车和大容量存储设备)。例如,Cortex-R4内核被用于硬盘驱动器和汽车系统的电子控制单元中。
3)M系列(微控制器型)。该系列可快速进行中断处理,适用于需要高度确定的行为和门数最少的成本敏感型设备。M系列主要面向嵌入式以及工业控制行业,用来取代“旧时代”单片机。其中,Cortex-M系列又有4款产品,分别对应不同应用和需求,如表1-1所示。
表1-1 Cortex-M系列产品比较
