原创 基础知识:32位MCU开发攻略连载之八—ARM内核详解

2010-10-12 01:49 3279 8 8 分类: MCU/ 嵌入式
前面的章节中我们介绍了微控制器的基本组成,本章我们将详细介绍流行的ARM MCU内核知识。
3.1 ARM嵌入式处理器简介
ARM系列嵌入式处理器是英国先进RISC(Reduced Instruction Set Computer)机器公司(Advanced RISC Machines,简称ARM公司)的产品。ARM公司是业界领先的知识产权供应商,与一般的公司不同,ARM公司既不生产芯片,也不销售芯片,而是设计出高性能、低功耗、低成本和高可靠性的IP内核。

如ARM处理器内核(如ARM7TDMI、ARM9TDMI、ARM10TDMI等)和ARM处理器宏核(ARM720T、ARM920T/922T/940T、ARM1020E/1022E等),授权给各半导体公司使用;半导体公司(ARM公司合作伙伴)在ARM技术的基础上,根据自己公司的产品定位,添加自己的设计并推出各种嵌入式微处理器MPU或微控制器MCU芯片产品;最后由OEM客户采用这些芯片来构建基于ARM技术的最终应用系统产品。


由上面可以得知,ARM并不是一款处理器的名称,它只是一个公司的名称,或者说是嵌入式处理器的内核名称。所以,ARM嵌入式处理器应该理解为以ARM为内核的嵌入式处理器。


ARM处理器是精简指令集计算机(RISC)。RISC的概念源于斯坦福大学和伯克利大学在1980年前后进行的处理器研究计划。最初ARM是1983到1985年间在英国剑桥的Acorn Computer公司开发的。它是第一个为商业用途开发的RISC微处理器,同后来的RISC体系结构有明显的不同。1990年,ARM特别为扩大开发ARM技术而成立了独立的公司。从那以后,ARM已被授权给世界各地的许多半导体制造厂。它已经成为低功耗和追求成本的嵌入式应用的市场领导者。


ARM微处理器主要系列包括ARM7系列、ARM9系列、ARM9E系列、ARM10E系列、ARM11系列、SecurCore系列、OptimoDE系列、StrongARM系列、XScale系列,以及Cortex系列等。
ARM芯片还获得了许多实时操作系统供应商的支持,比较知名的有:Windows CE、uCLinux、pSOS、Vxworks、Nucleus、uC/OS、Palm OS等。


目前ARM公司已形成完整的产业链。图3.1列出了ARM的全球合作伙伴,主要由半导体和系统伙伴、操作系统伙伴、开发工具伙伴、应用伙伴、ARM技术共享计划(ATAP)组成。图的左下方是操作系统提供商,可以看到有一些比较知名的公司,如WindRiver公司(风河公司),提供Vxworks操作系统;Microsoft(微软)公司,提供Windows CE操作系统。图的左上方是ARM技术共享计划,也就是说,这些公司和ARM公司合作研发并且共同使用开发的成果。图的右上方是开发工具提供商,有的公司提供开发环境,有的提供JTAG仿真器。图右下方是ARM的应用伙伴。另外还有生产ARM处理器的半导体厂家,有Motorala公司(目前Motorala的半导体生产已经独立出来,现称Freescale(飞思卡尔)半导体有限公司)、Philips公司(半导体生产也已经独立出来,现称NXP(恩智浦)半导体有限公司)、Samsung(三星)公司等。


 



ARM公司合作伙伴组成结构图



图3.1 ARM公司合作伙伴组成结构图


目前,ARM系列芯片以低功耗、低成本的特性在嵌入式应用领域确立了市场领导地位,是32位处理器市场中使用最为广泛的微处理器,ARM嵌入式处理器已被广泛应用于移动电话、手持式计算机以及各种各样的嵌入式应用领域。


3.1.1 ARM内核特点


ARM处理器为RISC芯片,其简单的结构使ARM内核非常小,这使得器件的功耗也非常低。它具有经典RISC的特点:


* 大的、统一的寄存器文件;
* 简单的寻址模式;
* 统一和固定长度的指令域,3地址指令格式,简化了指令的译码。编译开销大,尽可能优化,采用三地址指令格式、较多寄存器和对称的指令格式便于生成优化代码;
* 单周期操作,ARM指令系统中的指令只需要执行简单的和基本的操作,因此其执行过程在一个机器周期内完成;
* 固定的32位长度指令,指令格式固定为32位长度,这样使指令译码结构简单,效率提高;
* 采用指令流水线技术。


3.1.2 ARM内核体系结构


ARM架构自诞生至今,已经发生了很大的演变,至今已定义了7种不同的版本:


V1版架构:该架构只在原型机ARM1出现过,其基本性能包括基本的数据处理指令(无乘法)、字节、半字和字的Load/Store指令、转移指令,包括子程序调用及链接指令、软件中断指令、寻址空间64MB。


V2版架构:该版架构对V1版进行了扩展,如ARM2与ARM3(V2a版)架构,增加的功能包括乘法和乘加指令、支持协处理器操作指令、快速中断模式、SWP/SWPB的最基本存储器与寄存器交换指令、寻址空间64MB。


V3版架构:该版对ARM体系结构作了较大的改动,把寻址空间增至32位(4GB),增加了当前程序状态寄存器CPSR和程序状态保存寄存器SPSR以便于异常处理。增加了中止和未定义2种处理器模式。ARM6就采用该版结构。指令集变化包括增加了MRS/MSR指令,以访问新增的CPSR/SPSR寄存器、增加了从异常处理返回的指令功能。


V4版架构:V4版结构是目前最广泛应用的ARM体系结构,对V3版架构进行了进一步扩充,有的还引进了16位的Thumb指令集,使ARM使用更加灵活。ARM7、ARM9和StrongARM都采用了该版结构。其指令集中增加的功能包括符号化和非符号化半字及符号化字节的存/取指令、增加了16位Thumb指令集、完善了软件中断SWI指令的功能、处理器系统模式引进特权方式时使用用户寄存器操作、把一些未使用的指令空间捕捉为未定义指令。


V5版架构:在V4版基础上增加了一些新的指令。ARM10和XScale都采用该版架构。这些新增指令有带有链接和交换的转移BLX指令、计数前导零计数CLZ指令、BRK中断指令、增加了信号处理指令(V5TE版)、为协处理器增加更多可选择的指令。


V6版架构:ARM体系架构V6是2001年发布的。基本特点包括100%与以前的体系兼容、SIMD媒体扩展,使媒体处理速度快1.75倍、改进了的内存管理,使系统性能提高30%、改进了的混合端(Endian)与不对齐数据支持,使得小端系统支持大端数据(如TCP/IP),许多RTOS是小端的、为实时系统改进了中断响应时间,将最坏情况下的35周期改进到了11个周期。


V7版架构:ARM体系架构V7是2005年发布的。它使用了能够带来更高性能、功耗效率和代码密度的Thumb-2技术。它首次采用了强大的信号处理扩展集,对H.264和MP3等媒体编解码提供加速。Cortex-M3处理器采用的就是V7版的结构。


ARM处理器核使用的体系结构如表3.1所示。


表3.1 ARM核心采用的体系结构



ARM核心采用的体系结构


3.1.3 ARM内核种类


在高性能的32位嵌入式片上系统(SoC=System on Chip)设计中,几乎都是以ARM作为处理器核。ARM核已是现在嵌入式SoC系统芯片的核心,也是现代嵌入式系统发展的方向。ARM处理器核作为基本处理单元,根据发展需求还集成了与处理器核密切相关的功能模块,如Cache存储器和存储器管理MMU硬件,这些基于微处理器核并集成这些IP(Intelligence Property)核的标准配置的ARM核都具有基本处理器的配置,这些内核称为处理器核。基于ARM的处理器核简称ARM核,核并不是芯片,ARM核与其它部件如RAM、ROM、片内外设组合在一起才能构成现实的芯片,例如LPC2290、S3C44B0X、AT91FR40162分别是Philips(荷兰飞利浦公司)、Samsung(韩国三星公司)、Atmel(美国爱特梅尔公司)基于ARM公司ARM7TMDI核的嵌入式微处理器芯片。


ARM公司开发了很多系列的ARM处理器核,在表3.1中可以看出,目前最新的系列是ARM Cortex系列,下面我们将对ARM各内核做简单介绍。


首先介绍一下ARM核的命名规则及含义如图3.2所示。



ARM核的命名规则及含义



图3.2 ARM核的命名规则及含义


1.ARM7系列


ARM7体系结构具有三级流水、空间统一的指令与数据Cache、平均功耗为0.6mW/MHz、时钟速度为66MHz、每条指令平均执行1.9个时钟周期等特性。其中的ARM710、ARM720和ARM740为内带Cache的ARM核。ARM7指令集同Thumb指令集扩展组合在一起,可以减少内存容量和系统成本,同时,它还利用嵌入式ICE调试技术来简化系统设计,并用一个DSP增强扩展来改进性能。ARM7体系结构是小型、快速、低能耗、集成式的RISC内核结构。该产品的典型用途是数字蜂窝电话和硬盘驱动器等,目前主流的ARM7内核是ARM7TDMI、ARM7TDMI-S、ARM7EJ-S、ARM720T。现在市场上用得最多的ARM7处理器有思智浦公司的LPC2000系列微控制器、Samsung公司的S3C44BOX与S3C4510处理器、Atmel公司的AT91FR40162系列处理器、Cirrus公司的EP73xx系列等。该系列包括ARM7TDMI、ARM7TDMI-S、带有高速缓存处理器宏单元的ARM720T和扩充了Jazelle的ARM7EJ-S等。这些处理器提供Thumb16位压缩指令集和EmbededICE软件调试方式,适用于更大规模的SoC设计中。


ARM7系列广泛应用于多媒体和嵌入式设备,包括互联网设备、网络和调制解调器设备,以及移动电话、PDA等无线设备。


2.ARM9E系列


ARM9处理器采用ARMV4T(哈佛)体系结构。这种体系结构由于程序和数据存储器在两个分开的物理空间中,因而取指和执行能完全重叠。ARM9采用五级流水处理及分离的Cache结构,平均功耗为0.7mW/MHz。时钟速度为120MHz~200MHz,每条指令平均执行1.5个时钟周期。与ARM7处理器系列相似,其中的ARM920、ARM940和ARM9E处理器均为含有Cache的CPU核,性能为132MIPS(120MHz时钟,3.3V供电)或220MIPS(200MHz时钟)。ARM9处理器同时也配备Thumb指令扩展、调试和Harvard总线。在生产工艺相同的情况下,性能是ARM7TDMI处理器的两倍之多。常用于无线设备、仪器仪表、联网设备、机顶盒设备、高端打印机及数码相机应用中。ARM9E内核是在ARM9内核的基础上增加了紧密耦合存储器TCM及DSP部分。目前主流的ARM9内核是ARM920T、ARM922T、ARM940。相关的处理器芯片有Samsung公司的S3C2510、Cirrus公司的EP93xx系列等。主流的ARM9E内核是ARM926EJ-S、ARM946E-S、ARM966E-S等。


3.ARM10系列


ARM10E处理器采用ARMVST体系结构,可以分为六级流水处理,采用指令与数据分离的Cache结构,平均功耗1000mW,时钟速度为300MHz,每条指令平均执行1.2个时钟周期。ARM10TDMI与所有ARM核在二进制级代码中兼容,内带高速32×16 MAC,预留DSP协处理器接口。其中的VFP10(向量浮点单元)为七级流水结构。其中的ARM1020T处理器则是由ARMl0TDMI、32KB指令、数据Caches及MMU部分构成的。其系统时钟高达300MHz时钟,指令Cache和数据Cache分别为32KB,数据宽度为64位,能够支持多种商用操作系统,适用于下一代高性能手持式因特网设备及数字式消费类应用。主流的ARM10内核是ARM1020E、ARM1022E、ARM1026EJ-S等。


该系列包括ARM1020E和ARM1020E处理器核,其核心在于使用向量浮点(VFP)单元VFP10提供高性能的浮点解决方案,从而极大提高了处理器的整型和浮点运算性能。可以用于视频游戏机和高性能打印机等场合。


4.SecureCore系列


SecurCore系列处理器提供了基于高性能的32位RISC技术的安全解决方案,该系列处理器具有体积小、功耗低、代码密度大和性能高等特点。另外最为特别的就是该系列处理器提供了安全解决方案的支持。采用软内核技术,以提供最大限度的灵活性,以及防止外部对其进行扫描探测,提供面向智能卡的和低成本的存储保护单元MPU,可以灵活地集成用户自己的安全特性和其他的协处理器,目前包括有SC100、SC110、SC200、SC210计4种产品。


5.StrongARM系列和XScale系列


StrongARM处理器采用ARMV4T的五级流水体系结构。目前有SA110、SA1100、SA1110等3个版本以及Intel公司的基于ARMv5TE体系结构的XScale PXA27x系列处理器,与StrongARM相比增加了I/D Cache,并且加入了部分DSP功能,更适合于移动多媒体应用。2006年,Intel公司将XScale处理器出售给了Marvell公司。


6.ARM11处理器


ARM11处理器系列可以在使用130nm工艺技术、小至2.2mm2芯片面积和低至0.24mW/MHz的前提下达到高达500MHz的性能表现。ARM11处理器系列以众多消费产品市场为目标,推出了许多新的技术,包括针对媒体处理的SIMD,用以提高安全性能的TrustZone技术,智能能源管理(IEM),以及需要非常高的、可升级的超过2600 Dhrystone 2.1 MIPS性能的系统多处理技术。主要的ARM11处理器有ARM1136JF-S、ARM1156T2F-S、ARM1176JZF-S、ARM11 MCORE等多种。


7.ARM Cortex系列处理器


ARM Cortex系列处理器是基于ARMv7架构,又分为Cortex-M、Cortex-R和Cortex-A三类,ARM Cortex系列的三款产品全都集成了Thumb?-2指令集,可满足各种不同的日益增长的市场需求。ARM Cortex系列的三款处理器瞄准的领域如下:


* ARM Cortex-A系列:针对复杂操作系统以及用户应用设计的应用处理器;
* ARM Cortex-R系列:实时系统专用嵌入式处理器;
* ARM Cortex-M系列:针对微控制器和低成本应用专门优化的深嵌入式处理器。


Cortex-M3是首款基于ARMv7-M架构的处理器,是专门瞄准对功耗和成本敏感的嵌入式应用实现高性能而设计的,它大大简化了可编程的复杂性,使ARM架构成为各种应用方案(即使是最简单的方案)的上佳选择。


虽然很多微控制器以ARM7处理器为核心,但是因为目前已经有大量介绍ARM7内核的资料,所以本电子书着重对ARM9和Cortex-M3内核进行介绍。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
8
关闭 站长推荐上一条 /3 下一条