- 嵌入式Linux系统实用开发
- 何永琪主编
- 3793字
- 2020-08-28 03:49:52
1.3 ARM体系概况
ARM(Advanced RISC Machine)是一家专注于通用处理器知识产权(Intellectual Property,IP)研究开发的公司,自身并不直接生产处理器芯片,而是通过向其他芯片和半导体制造商提供设计授权来推广其产品,其产品和CPU技术体系架构在业内被通称为ARM处理器。
ARM处理器在技术体系上属于更为纯正的精简指令体系(RISC),在具体实现架构上与x86体系完全不同——ARM处理器多数采用的是SoC(System on Chip,片上系统)架构,CPU、图形/图像/视频处理单元、显示单元、存储控制器及其接口、基本通信单元(UART,SPI,I2C,I2S等)的控制器以及许多外部总线或接口控制器(如以太网MAC控制器、USB控制器等)都集成在单一芯片上。因此采用ARM处理器的计算机没有一般x86体系上独立的南、北桥芯片和图形加速卡、以太网卡控制器芯片等,整体架构更为精简,更适合于嵌入式应用场合。
ARM处理器体系功能集除了核心的ARM功能集外,还有如下常见的功能集。
◆ Thumb:采用16 位指令集,其中的大部分指令被直接映射成正常ARM指令,这样使得CPU能够通过运行16 位指令来实现很多需要32 位指令才能完成的功能,从而提高代码密度,节省处理器和内存资源。
◆ Thumb-2:Thumb功能集的扩展,通过增加的32 位指令来扩展指令执行位宽。
◆ Jazelle:通过在ARM结构中直接执行Java字段代码来提高Java程序的运行性能。
◆ ThumbEE(Thumb执行环境):也称为Jazelle RCT(Runtime Compilation Target),是对Thumb-2功能集的修订和扩展,实现了更好的实时编译功能——包括即时编译(Just in time compilation,JIT)和动态自适应编译(Dynamic Adaptive Compilation,DAC)。
◆ VFP(Vector Floating Point):ARM架构上的矢量浮点处理器扩展,实现满足ANSI/IEEE Std 754-1985标准的单精度/双精度浮点运算能力。
◆ NEON(Advanced SIMD):64位/128位混合SIMD(Single Instruction Multiple Data,单指令多数据)高级扩展功能,支持8 位、16 位、32 位和64 位整数和单精度浮点数据运算,以及完整的SMP(对称多处理)功能,可同时进行16 个运算操作。
◆ TrustZone:安全扩展功能。
◆ DSP指令扩展:对原有算术处理指令进行了进一步扩展,并增加了单时钟周期16×16 和32×16 乘法/加法器指令。
ARM处理器按其官方分类包括应用处理器(Application processor)、嵌入式处理器(Embedded processor)、安全内核(SecurCore)和图形处理器(Graphics processor)以及视频引擎(Video engine)。
应用处理器主要针对开放的操作系统平台上的业务应用更为广泛和丰富的市场需求,目前包括以下内核版本系列:
◆ ARM720T
◆ ARM920T
◆ ARM922T
◆ ARM926EJ-S
◆ ARM1136J(F)-S
◆ ARM1176JZ(F)-S
◆ ARM11多核
◆ ARM Cortex-A8
◆ ARM Cortex-A9单核
◆ ARM Cortex-A9多核
嵌入式处理器主要针对嵌入式体系中那些实时性要求较高、实现功能较为确定单一的市场需求,目前主要包括以下版本系列:
◆ ARM7EJ-S
◆ ARM7TDMI
◆ ARM7TDMI-S
◆ ARM946E-S
◆ ARM966E-S
◆ ARM968E-S
安全内核主要包括以下系列:
◆ SC100
◆ SC200
◆ SC300
◆ ARM1156T2(F)-S
◆ ARM Cortex-M0
◆ ARM Cortex-M1
◆ ARM Cortex-M3
◆ ARM Cortex-R4(F)
主要图形处理器目前只有Mali处理器一个系列,视频引擎也只有Mali-VE一个系列。
ARM公司对其处理器内核版本传统的命名方式是“内核版本号+扩展功能集标识”,内核版本号为3 或4 位数字,扩展功能集标识如表1.2 所示。
在嵌入式行业中,一般将ARM整个体系的处理器都视为嵌入式处理器,大致分为嵌入式应用处理器(Embedded Application Processor)和微控制器(Microcontroller或MCU)。很多获得ARM公司授权的公司,例如Freescale(飞思卡尔)公司、Atmel公司等,对自己的ARM处理器产品也并不严格遵守ARM公司的分类方法,多数按照ARM处理器的IP版本划分,分成ARM7产品、ARM9产品、ARM11产品、Cortex产品等。下面将分别介绍不同IP版本ARM处理器的基本情况。
1.3.1 ARM7
ARM7 系列采用低功耗32 位RISC处理器内核,具备MMU(Memory Management Unit,内存管理单元)和高速片上缓存(cache)的内核版本能够支持Windows CE,Palm OS,Symbian OS,Linux以及部分实时性操作系统,其指令前向兼容ARM9,ARM9E和ARM10E(以及基于ARM10E的Intel Xscale架构)。目前主要包括以下4个版本:
◆ ARM720T
◆ ARM7EJ-S
◆ ARM7TDMI
◆ ARM7TDMI-S
获得ARM7系列内核授权的半导体厂家非常多,芯片用途非常广泛,用量也相当大。常用的ARM7芯片有以下一些。
◆ NXP公司:LH75xx系列(ARM7TDMI-S)、LH79系列(ARM720T)、LPC21xx系列(ARM7TDMI-S)、LPC22xx系列(ARM7TDMI-S)、LPC23xx系列(ARM7TDMI-S)、LPC24xx系列(ARM7TDMI-S)、LPC28xx系列(ARM7TDMI)。
◆ Atmel公司:AT91SAM7xxx系列、AT91SAM42800 A/55800A、AT91x40系列(ARM7TDMI)。
◆ 三星电子:S3C44B0,S3C3410(ARM7TDM)。
◆ 德州仪器(TI):TMS470(ARM7TDMI)。
◆ 意法半导体公司:STR71x/73x系列(ARM7TDM)和75x系列(ARM7TDMI-S)。
由于功能相对较少、处理能力相对较弱,ARM7 系列的CPU在实际中多用于简单控制,常见于低端手机(入门级非智能手机)、入门级的MP3/MP4、低端工业控制器等产品,其产业角色更接近于高档32 位单片机。按照ARM公司的技术路线,ARM7 系列未来将逐渐被Cortex-M系列所替代。
1.3.2 ARM9
目前包括ARM920T和ARM922T两个内核版本,采用32 位RISC处理器内核和5 级整数流水线,并集成指令和数据缓存以及一个32 位AMBA接口,全部具有MMU,能够支持Symbian OS,Palm OS,Linux和Windows CE。
获得ARM9系列内核授权的半导体厂家不是很多,基本上都是ARM920T内核,常用芯片有如下一些。
◆ 三星电子:S3C241x系列、S3C244x系列。
◆ Cirrus Logic公司:EP93xx系列。
◆ Atmel公司:AT91RM9200。
该系列产品虽然芯片种类相对较少,但芯片产量很大、用途非常广泛,商业和银行POS终端、智能家电以及嵌入式教育培训用板卡等都会用到该系列内核的芯片。
这里需要特别指出一点,Cirrus Logic公司的EP93xx系列产品实际上并不是传统意义上的ARM芯片,而是该公司在ARM920T内核基础上进行了很大改进和增强的一款复合功能芯片,在硬件上实现了数学协处理器、2D图形加速器和加密器等实际应用中非常必要的功能,因此其整体功能明显优于传统意义上的ARM9和ARM9E内核的芯片。
1.3.3 ARM9E
ARM9E采用5 级整数流水线架构,并提供VFP9 功能增强选项,同时还使用了TCM(Tightly-Coupled Memory)技术;其数据和指令的缓存容量可变(0MB~1MB)且具有独立的AMBA AHB总线接口;特别是在原有ARM9 支持的ARM和Thumb功能(指令)集基础上增加了DSP支持,还通过单时钟周期32×16 乘法/加法器进一步强化了16 位定点性能,属于具备DSP功能的32 位RISC处理器。目前主要包括以下版本:
◆ ARM926EJ-S
◆ ARM946E-S
◆ ARM966E-S
◆ ARM968E-S
◆ ARM996HS
ARM9E系列内核的产品应用极其广泛,如中高端非智能手机、低端智能手机、工业控制产品、汽车电子设备等。获得ARM9E系列内核授权的半导体厂家很多,绝大多数都是ARM926EJ-S内核授权,常用的ARM9E芯片有如下一些。
◆ 三星电子:S3C2450。
◆ Atmel公司:AT91SAM9系列。
◆ TI公司:Da Vinci系列(Da Vinci TMS320DM系列)和OMAP-L137。
◆ NXP公司:LPC31xx系列和LPC32xx系列。
◆ Freescale(飞思卡尔)公司:MCIMX21和MCIMX27。
◆ Cirrus Logic公司:EP9608。
1.3.4 ARM10E
ARM10E仅有ARM1020E一个内核版本,它采用6 级流水线架构,内置MMU、数据和指令缓存,以及64KB片上一级缓存(32KB数据 + 32KB指令),并集成了一个支持嵌入式在线电路仿真实时逻辑(Embedded ICE-RT)的整数处理单元,配置了外部协处理接口和系统内部协处理器CP14 和CP15,整数处理单元及其缓存、写缓冲、系统总线接口和协处理器之间采用了全64 位接口,还通过独立的指令侧和数据侧64 位AHB(Advanced High performance Bus,高性能总线)接口实现了多级结构AHB支持,另外还改进了电源管理功能。
获得ARM10E内核授权的半导体厂家很少,市场上一般只能见到Marvell公司的PXA27x系列芯片,它采用的是在ARM1020E内核基础上进行了很多特殊扩展的Intel Xscale体系,中国台湾地区和大陆地区很多手机厂家的2G智能手机都采用这个体系的芯片,还有不少公司用其开发手持电脑、学习机等产品。
1.3.5 ARM11
ARM11系列是ARM公司推出的高端产品。所有产品都采用ARM v6版本的处理器内核、64位片上缓存接口,集成了一个支持Embedded ICE-RT逻辑的整数处理单元,配置了系统内部协处理器CP14和CP15,片上高速AMBA(Advanced Microcontroller Bus Architecture,高级微控制器总线结构)二级接口支持多处理器实现,还可选集成一个数学协处理器支持VFP。针对不同的市场定位包含以下4大类。
◆ ARM1136JZ(F)-S:针对视频流解码进行了扩展,8 级流水线架构,并提供外部协处理器接口,主要用于视频解码要求较高的场合。目前产品有飞思卡尔公司的MCIMX31/35/37 系列和德州仪器公司的OMAP24xx系列,主要用于中档3G手机和高档汽车娱乐设备。
◆ ARM1156T2(F)-S:9级流水线架构,具备指令与内存保护单元(Memory Protection Units,MPUs),并提供外部协处理器接口,可选集成的一个VFP数学协处理器专门解决精密控制中的高精度数学运算问题。主要用于汽车控制系统和实时性要求很高的工业控制系统。
◆ ARM1176JZ(F)-S:支持TrustZone安全扩展和智能电源管理,8 级流水线架构,可配置的低级中断潜伏(Latency),数学协处理器专门应对3D图形加速功能实现了多媒体处理功能的扩展,主要用于多媒体功能要求较高的场合(如高档智能手机灯)。目前主要产品有三星电子的S3C64xx系列(美国苹果公司的iPhone手机采用的就是该系列处理器)。
◆ ARM11 MPCore:ARM11 的多核产品,通过AXI(高级AMBA)二级接口连接多个单核CPU,最多支持4 个ARM11 CPU(每个CPU都配备了私有定时器和看门狗),配置了一个缓存轮询控制单元来实现不同ARM11 CPU片上数据缓存间的数据协同,同时具有分布式中断控制功能支持不同ARM11 CPU的中断潜伏,还支持所有的RAM事例奇偶校验。
1.3.6 Cortex
Cortex系列采用ARM v7版本的处理器内核,是ARM公司新近推出的智能处理器(Intelligent Processors)系列,也是其未来一段时间的主推产品。目前已经有不少公司推出了相应产品。该系列主要包括三类。
◆ Cortex-A用于完成复杂业务功能(如3G智能手机、高清视频处理灯),支持Linux,Windows Mobile等功能完整的嵌入式操作系统。其中Cortex-A8 和Cortex-A9 内核支持ARM,Thumb和Thumb-2 指令集,目前主要包括以下版本。
● Cortex-A8:产品有德州仪器公司的OMAP3xxx系列、飞思卡尔公司的MCIMX51,目前2G手机市场国际主流品牌的很多智能手机都采用OMAP3xxx系列芯片。
● Cortex-A9 MPCore(多核):产品有德州仪器公司的OMAP4xxx系列(单芯片集成2个Cortex-A9 MPCore),目前3G手机市场国际主流品牌的高档智能手机都采用该系列芯片。
● Cortex-A9 SingleCore(单核)
◆ Cortex-R用于实时性要求更高的系统,支持ARM,Thumb和Thumb-2指令集,目前主要包括以下版本。
● Cortex-R4:产品有德州仪器公司的TMS570M。
● Cortex-R4F
◆ Cortex-M是低成本、低功耗应用的内核,仅支持Thumb-2指令集,目前主要包括以下版本。
● Cortex-M0
● Cortex-M1
● Cortex-M3:迄今为止,取得Cortex-M3 内核授权的芯片厂商已超过28 个,2008 年全球半导体厂家排名前10 位的厂家中有6 个获得授权,已经量产供货的芯片超过250 款,典型产品有德州仪器公司的LM3Sxxxx系列、意法半导体公司的STM32 系列、NXP公司的LPC13xx和LPC17xx系列、Atmel公司的SAM3U系列。