ARM微处理器概述
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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