1.1 ARM体系结构的技术特征及发展
ARM(Advanced RISC Machines)有3种含义,它是一个公司的名称,是一类微处理器的通称,还是一种技术的名称。
1.1.1 ARM公司简介
1991年ARM公司(Advanced RISC Machine Limited)成立于英国剑桥,最早由Acorn、Apple和VLSI合资成立,主要出售芯片设计技术的授权。1985年4月26日,第一个ARM原型在英国剑桥的Acorn计算机有限公司诞生(在美国VLSI公司制造)。目前,ARM架构处理器已在高性能、低功耗、低成本的嵌入式应用领域中占据了领先地位。
ARM公司最初只有12人,经过多年的发展,ARM公司已拥有近千名员工,在许多国家都设立了分公司,包括在中国上海的分公司。目前,采用ARM技术知识产权(IP)核的微处理器,即我们通常所说的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器80%以上的市场份额,其中,在手机市场, ARM占有绝对的垄断地位。可以说,ARM技术正在逐步渗入到人们生活中的各个方面,而且随着32位CPU价格的不断下降和开发环境的不断成熟,ARM技术会应用得越来越广泛。
ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为嵌入式RISC处理器的知识产权IP供应商,公司本身并不直接从事芯片生产,而是靠转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。利用这种合伙关系,ARM很快成为许多全球性RISC标准的缔造者。目前,全世界有几十家大的半导体公司使用ARM公司的授权,其中包括Intel、IBM、SAMSUNG、LG半导体、NEC、SONY、PHILIPS等公司,这也使得ARM技术获得更多的第三方工具、制造厂商、软件的支持,又使整个系统成本降低,使产品更容易进入市场并被消费者所接受,更具有竞争力。
1.1.2 ARM技术特征
ARM的成功,一方面得益于它独特的公司运作模式,另一方面,当然来自于ARM处理器自身的优良性能。作为一种先进的RISC处理器,ARM处理器有如下特点。
● 体积小、低功耗、低成本、高性能。
● 支持Thumb(16位)/ARM(32位)双指令集,能很好地兼容8位/16位器件。
● 大量使用寄存器,指令执行速度更快。
● 大多数数据操作都在寄存器中完成。
● 寻址方式灵活简单,执行效率高。
● 指令长度固定。
此处有必要讲解一下RISC微处理器的概念及其与CISC微处理器的区别。
1.嵌入式RISC微处理器
RISC(Reduced Instruction Set Computer)是精简指令集计算机,RISC把着眼点放在如何使计算机的结构更加简单和如何使计算机的处理速度更加快速上。RISC选取了使用频率最高的简单指令,抛弃复杂指令,固定指令长度,减少指令格式和寻址方式,不用或少用微码控制。这些特点使得RISC非常适合嵌入式处理器。
2.嵌入式CISC微处理器
传统的复杂指令级计算机(CISC)则更侧重于硬件执行指令的功能性,使CISC指令及处理器的硬件结构变得更复杂。这些会导致成本、芯片体积的增加,影响其在嵌入式产品中的应用。表1-1描述了RISC和CISC之间的主要区别。
表1-1 RISC和CISC之间的主要区别
1.1.3 ARM体系架构的发展
在讨论ARM体系架构前,先解释一下体系架构的定义。
体系架构定义了指令集(ISA)和基于这一体系架构下处理器的编程模型。基于同种体系架构可以有多种处理器,每个处理器性能不同,所面向的应用不同,每个处理器的实现都要遵循这一体系结构。ARM体系架构为嵌入系统发展商提供很高的系统性能,同时保持优异的功耗和效率。
ARM体系架构为满足ARM合作者及设计领域的一般需求正稳步发展。目前,ARM体系架构共定义了8个版本,从版本1到版本8,ARM体系的指令集功能不断扩大,不同系列的ARM处理器,性能差别很大,应用范围和对象也不尽相同,但是,如果是相同的ARM体系架构,那么基于它们的应用软件是兼容的。
1.v1架构
v1版本的ARM处理器并没有实现商品化,采用的地址空间是26位,寻址空间是64MB,在目前的版本中已不再使用这种架构。
2.v2架构
与v1架构的ARM处理器相比,v2架构的ARM处理器的指令结构要有所完善,比如增加了乘法指令并且支持协处理器指令,该版本的处理器仍然采用26位的地址空间。
3.v3架构
从v3架构开始,ARM处理器的体系架构有了很大的改变,实现了32位的地址空间,指令结构相对前面的两种也所完善。
4.v4架构
v4架构的ARM处理器增加了半字指令的读取和写入操作,增加了处理器系统模式,并且有了T变种——v4T,在Thumb状态下支持的是16位的Thumb指令集。属于v4T(支持Thumb指令)体系架构的处理器(核)有ARM7TDMI、ARM7TDMI-S(ARM7TDMI综合版本)、ARM710T(ARM7TDMI核的处理器)、ARM720T(ARM7TDMI 核的处理器)、ARM740T(ARM7TDMI 核的处理器)、ARM9TDMI、ARM910T(ARM9TDMI核的处理器)、ARM920T(ARM9TDMI核的处理器)、ARM940T(ARM9TDMI核的处理器)和Strong ARM(Intel公司的产品)。
5.v5架构
v5架构的ARM处理器提升了ARM和Thumb两种指令的交互工作能力,同时有了DSP指令(v5E架构)、Java指令(v5J架构)的支持。属于v5T(支持Thumb指令)体系架构的处理器(核)有ARM10TDMI和ARM1020T(ARM10TDMI核处理器)。
属于v5TE(支持Thumb、DSP指令)体系架构的处理器(核)有ARM9E、ARM9E-S(ARM9E可综合版本)、ARM946(ARM9E核的处理器)、ARM966(ARM9E核的处理器)、ARM10E、ARM1020E(ARM10E核处理器)、ARM1022E(ARM10E核的处理器)和Xscale(Intel公司产品)。
属于v5TEJ(支持Thumb、DSP指令、Java)体系架构的处理器(核)有ARM9EJ、ARM9EJ-S(ARM9EJ可综合版本)、ARM926EJ(ARM9EJ核的处理器)和ARM10EJ。
6.v6架构
v6架构是在2001年发布的,在该版本中增加了媒体指令。属于v6体系架构的处理器核有ARM11 (2002年发布)。v6体系架构包含ARM体系架构中所有的4种特殊指令集:Thumb指令(T)、DSP指令(E)、Java指令(J)和Media指令。
7.v7架构
ARMv7架构是在ARMv6架构的基础上诞生的。该架构采用了Thumb-2技术,它是在ARM的Thumb 代码压缩技术的基础上发展起来的,并且保持了对现存 ARM 解决方案的完整的代码兼容性。Thumb-2技术比纯32位代码少使用31%的内存,减小了系统开销,同时能够提供比已有的基于Thumb技术的解决方案高出38%的性能。ARMv7架构还采用了NEON技术,将DSP和媒体处理能力提高了近4倍。并支持改良的浮点运算,满足下一代3D图形、游戏物理应用及传统嵌入式控制应用的需求。
8.v8架构
ARMv8架构是在32位ARM架构上进行开发的,将被首先用于对扩展虚拟地址和64位数据处理技术有更高要求的产品领域,如企业应用、高档消费电子产品。ARMv8架构包含两个执行状态:AArch64和AArch32。AArch64执行状态针对64位处理技术,引入了一个全新指令集A64,可以存取大虚拟地址空间;而AArch32执行状态将支持现有的ARM指令集。目前的ARMv7架构的主要特性都将在ARMv8架构中得以保留或进一步拓展,如Trust Zone技术、虚拟化技术及NEON advanced SIMD技术等。