ARM微处理器概述
ARM微处理器概述
ARM公司简介
ARM于1990年11月在英国伦敦成立,前身为Acorn['eikɔ:n]计算机公司
Advance RISC Machines [mə'ʃi:n] (ARM)
全球领先的16/32位嵌入式RISC微处理器解决方案供应商。
ARM公司是知识产权(IP Intellectual [,intə'lektjuəl, -tʃuəl] Property ['prɔpəti])公司,本身不生产芯片,靠转让设计许可,由合作伙伴公司来生产各具特色的芯片。
目前,全世界有几十家著名的半导体公司都使用ARM公司的授权,其中包括摩托罗拉、IBM、Intel、SONY、NEC、LG、ATMEL等,从而保证了大量的开发工具和丰富的第三方资源,它们共同保证了基于ARM处理器核的设计可以很快投入市场。
ARM公司已成为移动通信、手持设备、多媒体数字消费嵌入式解决方案的RISC标准。
ARM微处理器的特点
采用RISC架构的ARM微处理器一般具有如下特点:
● 体积小、低功耗、低成本、高性能;
● 支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;
● 大量使用寄存器,指令执行速度更快;
● 大多数数据操作都在寄存器中完成;
● 寻址方式灵活简单,执行效率高;
● 指令长度固定。
ARM体系结构
ARM体系结构的版本
ARM指令集体系结构,从最初开发至今已有了重大改进,而且将会不断完善和发展。为了精确表达每个ARM实现中所使用的指令集,到目前ARM体系结构共定义了7个版本,以版本号v1~v7表示。
1. 版本1(v1)
基本数据处理指令(不包括乘法)。
字节、字以及半字加载/存储指令。
分支(branch [brɑ:ntʃ, bræntʃ])指令,包括用于子程序调用的分支与链接(branch-and-link)指令。
软件中断指令,用于进行操作系统调用。
26位地址总线。
使用此版本的处理器核:ARM1
2. 版本花篮贺词2(v2)
与版本1相比,版本2增加了下列指令:
乘法和乘加指令(multiply ['mʌltiplai] & multiply-accumulate)。
支持协处理器。
原子性(atomic [ə'tɔmik])加载/存储指令SWP和SWPB(稍后的版本称v2a)。
FIQ中的两个以上的分组寄存器。
使用此版本的处理器核:ARM2 v2
ARM2aS、ARM3 v2a
3. 版本3(v3)
版本3较以前的版本发生了大的变化,具体改进如下:
推出32位寻址能力。
分开的CPSR(current program status register ['redʒistə],当前程序状态寄存器)和SPSR(saved program status register,备份的程序状态寄存器),当异常发生时,SPSR用于保存CPSR的当前值,从异常退出时则可由SPSR来恢复CPSR。
增加了两种异常模式,使操作系统代码可方便地使用数据访问中止异常、指令预取中止异常和未定义指令异常。
增加了MRS指令和MSR指令,用于完成对CPSR和SPSR寄存器的读/写;修改了原来的从异常中返回的指令。
使用此版本的处理器核:ARM6、ARM600、ARM610
ARM7、ARM700、ARM710
甜玉米饼4. 版本4(v4)
版本4在版本3的基础上增加了如下内容:
有符号、无符号的半字和有符号字节的load和store指令。
增加了T变种,处理器可工作于Thumb状态,在该状态下,指令集是16位压缩指令集(Thumb指令集)。
增加了处理器的特权模式。在该模式下,使用的是用户模式下的寄存器。
另外,在版本4中还清楚地指明了哪些指令会引起未定义指令异常。版本4不再强制要求与以前的26位地址空间兼容。
使用此版本的处理器核:
ARM7TDMI、ARM710T、ARM720T、ARM740T v4T
Strong ARM、ARM8、ARM810 v4
ARM9TDMI、ARM920T、ARM940T v4T
5. 版本5(v5)
与版本4相比,版本5增加或修改了下列指令:
提高了T变种中ARM/Thumb指令混合使用的效率。
介绍我的朋友作文增加了前导零计数(CLZ)指令。
增加了BKPT(软件断点)指令。
为支持协处理器设计提供了更多的可选择的指令。
更加严格地定义了乘法指令对条件标志位的影响。
使用此版本的处理器核:
ARM9E-S v5TE
ARM10TDMI、ARM1020E v5TE
6. 版本6(v6)
ARM体系版本6是2001年发布的。该版本在降低耗电的同时,还强化了图形处理性能。通过追加有效多媒体处理的秋天的太阳SIMD(single instruction multiple datastream,单指令流,多
数据流)功能,将语音及图像的处理功能提高到了原机型的4倍。ARM体系版本6首先在2002年春季发布的ARM11处理器中使用。除此之外,v6还支持多微处理器内核。表2.1给出了ARM处理器核使用ARM体系结构版本的情况。
使用此版本的处理器核:
ARM11、ARM1156T2-S、ARM1156T2F-S、ARM1176JZF-S、ARM11JZF-S
7. 版本7(v7)
ARM体系版本7是2005年发布的。该版本扩展了130条指令的THUMB-2指令集;具有NEON媒体引擎,该引擎具有SIMD(single instruction multiple datastream,单指令流,多数据流)执行流水线和寄存器堆,可共享访问的L1、L2高速缓冲。Jazelle-RCT技术、TrustZone、AXI高带宽系统总路线。
使用此版本的处理器核:ARM Cortex
ARM体系结构的变种及命名格式
1、 Thumb指令集(T变种)大学报考
Thumb[θʌm]指令集是将ARM指令集中的一部分指令重新编码形成的一个子集, Thumb指令长度是16位的。使用Thumb指令可以得到比ARM指令更高的代码密度,这有助于减小系统的存储器容量,从而降低系统的成本。另外,对于数据线是8或16位的系统,使用Thumb指令集可以取得好于使用ARM指令集的性能。在ARM体系命名中通用“T”来表示该版本支持Thumb指令集。在ARMv4T中使用v1版Thumb指令集;ARMv5T使用v2版的Thumb指令集。和Thumb v1相比Thumb v2 具有如下特点:
通过对指令的修改,来提高ARM指令和Thumb指令混合使用是的效率。
增加软件断点指令。
严格定义了Thumb乘法指令对条件标志位的影响。
与ARM指令集相比,Thumb指令集具有以下局限性:
完成相同的操作,Thumb指令通常需要更多的指令。
Thumb指令集没有包含进行异常处理时需要的一些指令,异常返回时需要从ARM状态返回。
2 长乘法指令(M变种)
M变种增加了两条用于进行长乘法的ARM指令。其中一条用于实现32位整数乘以32位整数,生成64位整数的长乘法操作;另一条指令用于实现32位整数乘以32位位整数,然后加上32位整数,生成64位整数的长乘加操作。
3 增强型DSP指令(E变种)
E变种包含了一些附加的指令,这些指令用于增强处理器对一些典型的DSP算法的处理性能。主要包括:
几条新的实现16位数据乘法和乘加操作的指令
实现饱和的带符号数的加减法操作的指令。所谓饱和的带符号数的加减法操作是在加减法操作溢出时,结果并不进行卷绕(Wrapping around),而是使用最大的整数或最小的负数来表示。
进行双字数据操作的指令,包括双字读取指令LDRD、双字写入指令STRD和协处理器的寄存器传输指令MCRR/MRRC。
Cache预取指令PLD
4 Java加速器Jazelle(J变种)
ARM的Jazelle技术将Java的优势和先进的32位RISC芯片完美地结合在一起。Jazelle技术提供了Java加速功能,可以得到比普通Java虚拟机高得多的性能。与普通的Java虚拟机相比,Jazelle使代码运行速度提高了8指距倍,而且功耗降低了80%。
Jazelle技术使得程序员可以在一个单独的处理器上同时运行Java应用程序、已经建立好的操作系统、中间件以及其他的应用程序。与使用协处理器和双处理器相比,使用单独得处理器可以在提供高性能的同时,保证低功耗和低成本。
5 SIMD变种(ARM农林类大学排名媒体功能扩展)
ARM媒体功能扩展SIMD技术极大地提高了嵌入式应用系统的音频和视频处理器能力,它
可使微处理器的音频和视频性能提高4倍。新一代的开封哪里好玩Internet应用产品、移动电话和PDA等设备终端需要提供高性能的流式媒体,包括音频和视频等。而且这些设备需要提供更加人性化的界面,包括语言输入和手写输入等。这样,就对处理器的数字信号处理能力提出了很高的要求,同时还必须保证低功耗。ARM的SIMD媒体功能扩展为这些应用系统提供了解决方案,它为包括音频和视频处理在内的应用系统提供了优化功能,其主要特点如下:
使处理器的音频和视频处理的性能提高了2~4倍。
可同时进行2个16位操作数或者4个8位操作数的运算。
用户可自定义饱和运算的模式。
可进行2个16位操作数的乘加/乘减运算及32位乘以32位的小数乘加运算。
同时8 /16位选择操作。
ARM体系结构的命名格式
ARM体系架构版本号一般命名格式:ARMvN(x)B(x)B…
基本字符串ARMv。
N为ARM指令集版本号,目前是1-7的数字字符。
B为ARM指令集所含变种的字符。由于在ARM体系版本4以后,M变种成为系统的标准部件,所以字符M通常也不单独列出来。
最后使用的字符x表示排除某种功能。
ARM微处理器系列
ARM7微处理器
ARM7采用采用ARMV4T冯·诺依曼(Von-Neumann)结构,数据存储器和程序存储器重合在一起。同时,此结构也被大多数计算机所采用。
ARM7为三级流水线结构(取指,译码,执行),平均功耗为0.6mW/MHz,时钟速度为66MHz,每条指令平均执行1.9个时钟周期。
ARM7系列微处理器包括如下几种类型的核:ARM7TDMI、ARM7TDMI-S(software)、 ARM720T(带8K的CACHE、MMU、AMBA接口和写缓冲器)、ARM7EJ。
ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器核。TDMI的基本含义为: