第2章 ARM处理器的编程结构与工作方式

2.1 ARM嵌入式处理器概况及进展

2.1.1 ARM公司及其产品简况

ARM公司是一家英国剑桥的半导体技术设计公司,全称是Advanced RISC Machines Ltd.。ARM公司的前身是一家专门设计RISC处理器的设计公司,该公司相继推出了自称为v1和v2版本的RISC体系结构微处理器核并且成功移植到一些应用处理器中。1990年11月由苹果电脑和VLSI Technology出资,Acorn Computer Group提供技术和12名工程师联合成立了ARM公司。ARM是一家地道的设计公司,自己并不生产芯片,而是开发和转让技术。其主要设计开发的是在Acorn原有的v1和v2版本基础上、内部称为v3~v7版本的RISC体系结构嵌入式处理器核心结构。目前的主流商品化应用是v4,v5,v6,v7体系机构下的各系列。ARM在不同的体系结构版本下又设计了多款应用内核,并以ARM技术知识产权(Intelligence Property,IP)核的形式供给其他半导体厂家,各半导体厂家再以此为基础进行功能扩展,最后生产出适用于各种应用需要的ARM体系结构微处理器芯片。部分体系结构下的ARM应用内核见表2-1。

表2-1 ARM结构版本及部分应用内核

采用ARM技术的微处理器具有性能高、体积小、功耗低,价格低等优点,适用于多种领域,比如军事、实时控制、通信、医疗器具、汽车电子、消费类产品,特别是各类手持移动应用产品,如手机、PDA等80%以上都采用了ARM技术。目前采用ARM技术IP核的微处理器应用占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。

ARM通过将其技术以授权方式提供给世界上许多著名的半导体、软件和OEM厂商。目前全世界有包括Intel、Motorola、IBM、三星、LG、NEC、SONY、菲利浦等几乎所有知名的半导体厂家都使用ARM公司的授权生产多种多样的应用芯片,软件系统的合伙人则包括微软、Sun和MRI等一系列知名公司。其主要的合作伙伴见图2-1。ARM很快成为许多全球性RISC标准的缔造者,既使ARM技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场被消费者所接受,更具有竞争力。

图2-1 ARM的合作伙伴

由表2-1可以大致看出ARM体系结构的主要成员及发展趋向,其早期结构版本v1~v3因已基本淘汰,故表中没有列出。在这些系列内核中,目前市场应用量最大的是ARMv4T结构下的各种应用内核,其中又以ARM7TDMI的衍生产品最多,如国内市场广泛使用的三星公司生产的S3C4510B、S3C44B0X,飞利浦公司生产的LPC2200系列,摩托罗拉公司生产的Dragenball系列,Cirrus Logic生产的EP9312,OKI生产的ML67100,SHARP生产的LH79531,ATMEL生产的AT91F系列等。由表2-1可以看到,这一体系结构主要扩展了四项技术及其相应的指令集:Thumb指令(T)、DSP指令(E)、Java指令(J)、Media指令。其中的Thumb技术实际上是一种在ARM体系结构中既支持32位指令系统,又支持16位指令系统的技术。由于32位指令系统每条指令都要占用4B的存储空间,而对于一些应用要求不是很复杂的场合采用16位编码的指令集就可以满足要求,从而可以大大节省存储空间。采用32位指令集和16位指令集的混合编程应用是Thumb技术的创新所在。

表2-2列出了主要的ARM应用内核的结构特征,表2-3列出了不同的ARM应用内核主要技术参数,表2-4列出了一些高端ARM微处理器芯片的功能配置。

表2-2 主要ARM应用内核的结构特征简表

表2-3 ARM应用内核的主要技术参数

2.1.2 ARM处理器中的新技术

不同的ARM体系机构可支持的指令集不同,而更高的版本将会提供一些新的技术及其指令集。从ARMv6开始,一些新的技术被不断地引入ARM内核中,对提高ARM处理器的性能发挥了重要的作用。下面是自v5版本之后所开发的主要新技术的概况。

1.TrustZone

ARM TrustZone安全区技术提供了两个独立地址空间的硬件支持,因此非安全的程序代码将无法访问标记为安全区的存储器空间,并且一种新的监测模式可以进行安全和非安全区的事务管理。这项技术将为开放的操作系统提供密钥或认证机制的硬件实现条件,为手机银行业务,多媒体娱乐服务等提供可能和便利。

2.Thumb-2

Thumb-2为第二代Thumb体系结构(Second Generation of the Thumb Architecture)。在之前的ARM处理器中,ARM和Thumb指令集运行在各自的处理器状态下,当运行各自的指令时必须先切换入各自的处理器状态。当程序中反复地出现指令混合运用时,就会因处理器工作状态的频繁切换带来许多的时间开销。而Thumb-2技术增加了一种混合模式,定义了一组混合的16位和32位指令集,这样可以减少或去除用于切换ARM和Thumb工作状态的处理器开销,以Thumb的代码密度提供ARM代码的性能。主要优点为:

  • 比Thumb指令快25%;
  • 比ARM指令小26%;
  • 同现有的Thumb代码二进制兼容;
  • 在保持代码密度的同时提高性能;
  • 最佳的Cache和TCM的利用率;
  • 可以减少浮点处理和中断时模式切换的开销。

3.NEON

NEON媒体加速技术是ARMv7A核中的一种结构选项,用于应对下一代高性能、大数据量、低功耗无线手持设备的需要。NEON是一个64/128位混合的单指令流多数据流(SingleInstruction Multi-Data,SIMD)结构体,用于包括视频编/解码、3D图形加速、图像处理、压缩的音频数据解码、音频合成等多媒体信息处理。其主要的实现措施是,优化在寄存器中的数据表现形式,对可利用的存储器带宽实现最优使用,减少数据放置的开销,在分离的寄存器中操作,将VFP的寄存器组扩展为32×64bit寄存器,支持整型、定点和浮点数据,提供简单的编程模式和面向C语言的编程模型。该技术在多媒体和数字信号处理上,性能将比ARM11提高2倍,比ARM9E提高3倍。

表2-4 部分典型的高端ARM芯片

4.VFP

向量浮点(Vector Floating Point,VFP)技术协处理器是ARMv7中的一个结构选项,VFP结构支持单、双精度浮点运算,且支持与IEEE 754兼容的软件库。

5.IEM

智能化能耗管理器(Intelligent Energy Manager,IEM)实现了一种优化工作负载和能耗的平衡算法,从而动态地控制电压和频率,在最大满足高端应用性能要求的前提下,提供能量的硬件和软件动态管理。IEM软件从操作系统中获取数据,采用多种策略对软件工作负荷加以分类,并对未来的性能要求加以预测,最终确定电压和频率的适当工作点。在手机应用中可以通过标准的程序模式实现与操作系统及应用程序的协同工作,用于动态地调整CPU所需要的性能级别,达到尽量降低功耗的目的。

6.ARM Cortex系列

Cortex是ARM公司最新的基于ARMv7架构的产品系列,目前有A(Application)、R(Real time)、M(Microprocessor)等三个不同应用目标的产品线。Cortex-A是面向复杂应用的高端产品线,目前推向市场的产品有Cortex-A8、Cortex-A9。Cortex-R是面向实时嵌入式应用的产品线,目前推向市场的产品有Cortex-R4。Cortex-M是面向低成本、低功耗应用的产品线,目前推向市场的产品有Cortex-M1、Cortex-M3、Cortex-M0。

相比ARMV7之前的产品,Cortex系列的共同特点是采用了Thumb-2技术,并且在保持对其他产品系列代码兼容前提下实现了比纯32位代码少使用31%的内存,比原有基于Thumb技术的解决方案高出38%的性能。而其中的Cortex-Ai系列又融合了NEON、VFP、IEM等新技术,以应对大型多任务操作系统以及3D图形、图像处理等复杂应用场合。而Cortex-Ri产品线主要针对实时性强的应用场合,但对于复杂操作系统的支持较弱。

Cortex-Mi产品线主要针对成本敏感的应用场合,对大型多任务操作系统以及3D图形、图像处理等复杂应用支持较弱。