一、ARM简介
ARM于1990年11月在英国伦敦成立,ARM是Advanced RISC Machines的缩写,是微处理器行业的一家知名企业,该企业设计了大量廉价、高性能、低功耗的RISC处理器架构相关技术及软件。目前,全世界有几十家著名的半导体公司都使用ARM公司的授权,其中包括TI、Motorola、Philips、IBM、Intel、ST、NEC、LG、ATMEL等。
ARM不仅代表一个公司,同样代表一类微处理器,也代表一种技术,还代表一种新型的产业发展模式。
ARM公司是知识产权(IP)公司,本身不生产芯片,靠转让设计许可,由合作伙伴公司来生产各具特色的芯片
近年来ARM技术的突出成果表现在:第一片ARM处理器是1983年10月到1985年4月间在位于英国剑桥的Acorn Computer公司开发,1990年,为广泛推广ARM技术而成立了独立的公司——ARM,并快速融入世界市场,在ARM的发展历程中,从ARM7开始,ARM核得到普遍认可和广泛使用,ARM9、ARM10、Strong-ARM、ARM11和Cortex等系列性能优越,尤其在面向高端数字音视频处理等多媒体产品的应用,Cortex是ARM为满足不断扩展的嵌入式技术应用所做的一次改进。
广泛的产业联盟和丰富的软硬件支持,使得基于ARM的嵌入式应用领域更加广阔,产品投放市场更为迅速据最新统计,全球有100多家巨型IT公司,超过95%的手机,超过四分之一的电子设备都在使用ARM技术,ARM已经成为世界上销量最大的32位微处理器,迄今为止,还没有任何商业化的IP核交易和使用达到ARM的规模,造就了IP核的商业神话。
二、ARM处理器的特点
2.1 体积小、功耗低、成本低、性能高
2.2 支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容16位器件
2.3 大量使用寄存器,使得指令执行速度更快寻址方式简单灵活,执行效率高
2.4 指令长度固定
三、ARM处理器的应用
ARM微处理器除了具有ARM的共同特点以外,每一个系列的ARM微处理器都有各自的特点和应用领域,目前包括下面几个系列:ARM1、ARM2、ARM3、ARM6、ARM7、ARM8、ARM9、ARM10、SecurCore、Inter的Xscale和StrongARM、ARM11和Cortex以及对应的修改版或增强版。随着架构升级,初始频率越高、架构越先进,功能也越强,Cortex主要用于高端和多核处理器上。
3.1 高性能方向:
Samsung(三星):S5PC100、S5PC110、S5PV210均采用Cortex-A8核,600MHZ--1GHZ
Apple A4 Cortex-A8核1GHz(iPad、iPod、touch4、iPhone4)
中芯微 VC882 Cortex-A8 1GHz--1.2GHz(主要应用于国内一些MID产品)
高通snapdragon QSD8250
高通第一代1GHZ单核处理器,Cortex-A8(HTC HD2手机)
3.2 低成本、低功耗的微控制器方向
Cortext-M3(工业控制)
代表:ST的stm32系列36MHz--72MHz
3.3 实时方向
Cortex-R4(汽车电子、硬盘控制器等)
代表:TI的TMS570LS
3.4 安全方向
SecurCore系统(智能卡、监控、POS机等)
代表:大量的智能卡、和SIM卡等
四、ARM体系结构介绍及分类
ARM采用RISC结构,简化了处理器设计,并在减少复杂指令的同时,提高了处理器的速度只提供load/store指令与存储器打交道,其余指令都不允许进行存储器操作。
下面对两种指令集的对比:(大意摘自百度百科)
CISC:全称是Complex Instruction Set Computer,中文意是复杂指令计算机,它是台式计算机系统的基本处理部件,每个微处理器的核心是运行指令的电路。指令由完成任务的多个步骤所组成,把数值传送进寄存器或进行相加运算。这样一来,它能够以更快的速度执行操作。因为计算机执行每个指令类型都需要额外的晶体管和电路元件,计算机指令集越大就会使微处理器更复杂,执行操作也会更慢。
RISC:全称是Reduced Instruction Set Computer,中文意是精简指令集计算机,它是计算机中央处理器的一种设计模式,这种设计思路对指令数目和寻址方式都做了精简,使其实现更容易,指令并行执行程度更好,编译器的效率更高。常用的精指令集微处理器包括DECAlpha、ARC、ARM、AVR、MIPS、PA-RISC、PowerArchitecture(包括PowerPC)和SPARC等。这种设计思路最早的产生缘自于有人发现,尽管传统处理器设计了许多特性让代码编写更加便捷,但这些复杂特性需要几个指令周期才能实现,并且常常不被运行程序所采用。此外,处理器和主内存之间运行速度的差别也变得越来越大。在这些因素促使下,出现了一系列新技术,使处理器的指令得以流水执行,同时降低处理器访问内存的次数。早期,这种指令集的特点是指令数目少,每条指令都采用标准字长、执行时间短、中央处理器的实现细节对于机器级程序是可见的。
4.1 Cortex-A8简单介绍
Cortex-A8内核使用了13级的整型指令流水线和10级NEON指令流水线,并改善了指令分支预测命中率,从
ARM11的88%提高到Cortex-A8的95%。
采用对称双ALU超标量流水线(ALU0和ALU1),支持并行发射两条指令,集成二级缓存(L2)
Cortex-A8中采用的TrustZone技术确保消费类产品中的安全交易(如运行开放式操作系统的手机、POS
机和机顶盒等)、数据隐私和DRM得到保护
Cortex开启了ARM处理器的新纪元
4.2 ARM系列产品命令规则,例如:ARM7 TDMI的基本含义为:
T:Thumb指令是把32位ARM指令集重新编码后形成的一个特殊的16位的指令集
D:支持片上Debug
M:内嵌硬件乘法器(Multiplier)
I:嵌入式ICE(In Circuit Emulator),支持在线调试
4.3 ARM系列产品后缀规则,例如:ARM 926EJ-S
增强型DSP指令(E变种),E变种的ARM体系增加了一些增强处理器对典型的DSP算法处理能力的附加指令
Java硬件加速器Jazelle(J变种),ARM的Jazelle技术是Java语言和先进的32位RISC芯片完美结合的产物,主要用于支持JVM。
ARM多媒体功能扩展(S变种),支持SIMD(Single Instruction Multiple Data),即单指令多数据处理。
第一个数字:系列名称
9: ARM9,10: ARM10,11: ARM11
第二个数字:Memory system
2: 带有MMU(如ARM720T、ARM922T、ARM1020E)
4: 带有MPU(如ARM940T、ARM946EJ-S)
6: 无MMU与MPU(如ARM966EJ-S、ARM968EJ-S)
第三个数字:Memory size
0: 标准Cache (4-128KB)
2: 减小的Cache
6: 可变的Cache
五、ARM处理器版本与体系结构的关系:
V1 => ARM1
V2 => ARM2
V2a => ARM2As,ARM3
V3 => ARM6,ARM600,ARM610,ARM7,ARM700,ARM710
V4 => StrongARM,ARM8,ARM810
V5T => ARM7TDMI,ARM710T,ARM720T,ARM740T,ARM9TDMI,ARM920T,ARM940T
V5TE => ARM9E-S,ARM10TDMI,ARM1020E
V6 => ARM1136J(F)-S,ARM1176JZ(F)-S,ARM11,MPCore
V6T2 => ARM1156T2(F)-S
V7 => ARM Cortex-M,ARM Cortex-R,ARM Cortex-A8/9/15
V8 => ARM Cortex-A57/53
六、ARMv8架构的未来