今天在编译mplayer for mx27ads的时候, 碰到了armv5te与armv6优化的问题。 默认的交叉编译器支持armv5te也支持armv6,就默认使用了mplayer中mpeg4的armv6解码代码, 结果在在mx27ads版上,播放mpeg4视频时颜色空间转换出错。 对比x86后总算找到了这个问题,顺手根据ARM官方资料和网上资料整理了一篇arm cpu的架构及分类说明。
ARM微处理器系列
ARM 微处理器目前包括下面几个系列,以及其它厂商基于 ARM 体系结构的处理器,除了具有
ARM 体系结构的共同特点以外,每一个系列的 ARM 微处理器都有各自的特点和应用领域。
- ARM7 系列
- ARM9 系列
- ARM9E 系列
- ARM10E 系列
- ARM11系列
- Cortex 系列
- SecurCore 系列
- OptimoDE Data Engines
- Xcale
其中,ARM7、ARM9、ARM9E 和 ARM10 为4 个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。SecurCore 系列专门为安全要求较高的应用而设计。
以下我们来详细了解一下各种处理器的特点及应用领域。
ARM7系列
ARM7 系列微处理器为低功耗的 32位 RISC 处理器, 最适合用于对价位和功耗要求较高的消费
类应用。ARM7 微处理器系列具有如下特点:
- 具有嵌入式 ICE-RT 逻辑,调试开发方便。
- 极低的功耗,适合对功耗要求较高的应用,如便携式产品。
- 能够提供 0.9MIPS/MHz 的三级流水线结构。
- 代码密度高并兼容 16 位的 Thumb 指令集。
- 对操作系统的支持广泛,包括 Windows CE、Linux、Palm OS 等。
- 指令系统与 ARM9 系列、ARM9E 系列和 ARM10E 系列兼容,便于用户的产品升级换代。
- 主频最高可达 130MIPS,高速的运算处理能力能胜任绝大多数的复杂应用。
ARM7 系列微处理器的主要应用领域为:工业控制、Internet 设备、网络和调制解调器设备、移
动电话等多种多媒体和嵌入式应用。
ARM7 系列微处理器包括如下几种类型的核:ARM7TDMI、ARM7TDMI-S、
ARM720T、ARM7EJ。其中,ARM7TMDI是目前使用最广泛的 32 位嵌入式 RISC 处理器,属低端
ARM 处理器核。TDMI的基本含义为:
T: 支持 16 为压缩指令集 Thumb;
D: 支持片上 Debug; ARM应用系统开发详解──基于S3C4510B的系统设计 3
M:内嵌硬件乘法器(Multiplier)
I: 嵌入式 ICE,支持片上断点和调试点;
Samsung公司的 S3C4510B 即属于该系列的处理器。
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
Cache Size |
Tightly |
Memory |
Bus |
Thumb |
DSP |
Jazelle |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
ARM720T |
8k unified |
- |
MMU |
AHB |
Yes |
No |
No |
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
ARM7EJ-S |
- |
- |
- |
Yes |
Yes |
Yes |
Yes |
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
ARM7TDMI |
- |
- |
- |
Yes** |
Yes |
No |
No |
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
ARM7TDMI-S |
- |
- |
- |
Yes |
Yes |
No |
No |
|
|
ARM9系列
ARM9 系列微处理器在高性能和低功耗特性方面提供最佳的性能。具有以下特点:
- 5 级整数流水线,指令执行效率更高。
- 提供 1.1MIPS/MHz 的哈佛结构。
- 支持 32 位 ARM 指令集和 16 位 Thumb 指令集。
- 支持 32 位的高速 AMBA总线接口。
- 全性能的 MMU,支持 Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。
- MPU支持实时操作系统。
- 支持数据 Cache 和指令Cache,具有更高的指令和数据处理能力。
ARM9 系列微处理器主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数字摄像机等。
ARM9 系列微处理器包含 ARM920T、ARM922T和 ARM940T 三种类型,以适用于不同的应用场合。
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
Cache Size |
Tightly |
Memory |
Bus |
Thumb |
DSP |
Jazelle |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
ARM920T |
16k/16k |
- |
MMU |
ASB |
Yes |
No |
No |
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
ARM922T |
8k/8k |
- |
MMU |
ASB |
Yes |
No |
No |
|
ARM9E系列
ARM9E 系列微处理器为可综合处理器,使用单一的处理器内核提供了微控制器、DSP、Java
应用系统的解决方案,极大的减少了芯片的面积和系统的复杂程度。ARM9E 系列微处理器提供了
增强的 DSP 处理能力,很适合于那些需要同时使用 DSP 和微控制器的应用场合。
ARM9E 系列微处理器的主要特点如下:
- 支持 DSP 指令集,适合于需要高速数字信号处理的场合。
- 5 级整数流水线,指令执行效率更高。
- 支持 32 位 ARM 指令集和 16 位 Thumb 指令集。
- 支持 32 位的高速 AMBA总线接口。
- 支持 VFP9 浮点处理协处理器。
- 全性能的 MMU,支持 Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。
- MPU支持实时操作系统。
- 支持数据 Cache 和指令Cache,具有更高的指令和数据处理能力。
- 主频最高可达 300MIPS。
ARM9 系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备等领域。
ARM9E 系列微处理器包含 ARM926EJ-S、ARM946E-S 和 ARM966E-S 三种类型,以适用于不同的应用场合。
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
Cache Size |
Tightly |
Memory |
Bus |
Thumb |
DSP |
Jazelle |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
ARM926EJ-S |
Variable |
Yes |
MMU |
2x AHB |
Yes |
Yes |
Yes |
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
ARM946E-S |
Variable |
Yes |
MPU |
AHB |
Yes |
Yes |
No |
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
ARM966E-S |
- |
Yes |
- |
AHB |
Yes |
Yes |
No |
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
ARM968E-S |
n/a |
Yes |
DMA |
AHB-Lite |
Yes |
Yes |
No |
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
ARM996HS |
n/a |
|
MPU(optional) |
Dual AMBA AHB |
Yes |
Yes |
No |
|
|
ARM10E系列
ARM10E 系列微处理器具有高性能、 低功耗的特点, 由于采用了新的体系结构, 与同等的 ARM9器件相比较,在同样的时钟频率下,性能提高了近 50%,同时,ARM10E 系列微处理器采用了两种先进的节能方式,使其功耗极低。
ARM10E 系列微处理器的主要特点如下:
- 支持 DSP 指令集,适合于需要高速数字信号处理的场合。 ARM应用系统开发详解──基于S3C4510B的系统设计 4
- 6 级整数流水线,指令执行效率更高。
- 支持 32 位 ARM 指令集和 16 位 Thumb 指令集。
- 支持 32 位的高速 AMBA总线接口。
- 支持 VFP10浮点处理协处理器。
- 全性能的 MMU,支持 Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。
- 支持数据 Cache 和指令Cache,具有更高的指令和数据处理能力
- 主频最高可达 400MIPS。
- 内嵌并行读/写操作部件。
ARM10E 系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、通信和信息系统等领域。
ARM10E 系列微处理器包含 ARM1020E、ARM1022E和 ARM1026EJ-S 三种类型,以适用于不同的应用场合。
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
Cache Size |
Tightly |
Memory |
Bus |
Thumb |
DSP |
Jazelle |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
ARM1020E |
32k/32k |
- |
MMU |
2x AHB |
Yes |
Yes |
No |
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
ARM1022E |
16k/16k |
- |
MMU |
2x AHB |
Yes |
Yes |
No |
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
ARM1026EJ-S |
Variable |
Yes |
MMU or MPU |
2x AHB |
Yes |
Yes |
Yes |
|
|
ARM11系列
ARM11系列微处理器是ARM公司近年推出的新一代RISC处理器,它是ARM新指令架构——ARMv6的第一代设计实现。该系列主要有ARM1136J,ARM1156T2和RM1176JZ三个内核型号,分别针对不同应用领域。
ARMv6架构通过以下几点来增强处理器的性能:
·多媒体处理扩展
使MPEG4编码/解码加快一倍
音频处理加快一倍
·增强的Cache结构
实地址Cache
减少Cache的刷新和重载
减少上下文切换的开销
·增强的异常和中断处理
使实时任务的处理更加迅速= 支持Unaligned和Mixed-endian数据访问
使数据共享、软件移植更简单,也有利于节省存储器空间
对绝大多数应用来说,ARMv6保持了100%的二进制向下兼容,使用户过去开发的程序可以进一步继承下去。ARMv6 保持了所有过去架构中的T(Thumb指令)和E(DSP指令)扩展,使代码压缩和DSP处理特点得到延续;为了加速Java代码执行速度的ARM Jazalle技术也继续在ARMv6架构中发挥重要作用。
ARM11处理器是为了有效的提供高性能处理能力而设计的。在这里需要强调的是,ARM并不是不能设计出运行在更高频率的处理器,而是,在处理器能提供超高性能的同时,还要保证功耗、面积的有效性。ARM11优秀的流水线设计是这些功能的重要保证。
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
Cache Size |
Tightly |
Memory |
Bus |
Thumb |
DSP |
Jazelle |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
ARM11 MPCore |
Variable |
- |
MMU + cache coherency |
1x or 2x AMBA AXI |
Yes |
Yes |
Yes |
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
ARM1136J(F)-S |
Variable |
Yes |
MMU |
5x AHB |
Yes |
Yes |
Yes |
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
ARM1156T2(F)-S |
Variable |
Yes |
MPU |
3xAXI |
Yes |
Yes |
No |
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
ARM1176JZ(F)-S |
Variable |
Yes |
MMU + TrustZone |
4x AXI |
Yes |
Yes |
Yes |
|
|
Cortex系列
新的ARM Cortex处理器系列包括了ARMv7架构的所有系列,含有面向复杂操作系统、实时的和微控制器应用的多种处理器。ARM Cortex-A系列是针对日益增长的,运行包括Linux、Windows CE和Symbian在内的操作系统的消费者娱乐和无线产品设计的;ARM Cortex-R系列针对的是需要运行实时操作系统来进行控制应用的系统,包括有汽车电子、网络和影像系统;ARM Cortex-M系列则是为那些对开发费用非常敏感同时对性能要求不断增加的嵌入式应用所设计的
ARM Cortex-M系列支持Thumb-2指令集,它是Thumb指令集的扩展集,可以执行所有已存的为早期的处理器编写的代码。通过一个前向的转换方式,为ARM Cortex-M系列处理器所写的用户代码可以与ARM Cortex-R系列微处理器完全兼容。ARM Cortex-M系列系统代码(例如实时操作系统)可以很容易地移植到基于ARM Cortex-R系列的系统。ARM Cortex-A和-R系列处理器还支持ARM 32位指令集,向后完全兼容早期的ARM处理器,包括从1995年发布的ARM7TDMI处理器到最近的ARM11处理器系列。
在命名方式上,基于ARMv7架构的ARM处理器已经不再延用过去的数字命名方式,而是冠以Cortex的代号。基于v7A的称为"Cortex-A系列",基于v7R的称为"Cortex-R系列",基于v7M的称为"Cortex-M3"。
Cortex-M系列处理器主要包含ARM Cortex-M1, ARM Cortex-M3两款处理器。
Cortex-R系列处理器目前包括ARM Cortex-R4和ARM Cortex-R4F两个型号,主要适用于实时系统的嵌入式处理器。
Cortex-A系列处理器目前包括ARM Cortex-A8, ARM Cortex-A9-MPCore, ARM Cortex-A9-Single Core Processor。
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
Cache Size |
Tightly |
Memory |
Bus |
Thumb |
DSP |
Jazelle |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
ARM Cortex-A8 |
Variable |
- |
MMU+TrustZone |
AMBA 3 AXI |
Yes |
Yes |
Yes |
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
ARM Cortex-A9 MPCore |
16k/64k |
|
MMU+TrustZone |
AMBA 3 AXI |
Yes |
Yes |
Yes |
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
ARM Cortex-A9 Single Core Processor |
16k/64k |
|
MMU+TrustZone |
AMBA 3 AXI |
Yes |
No |
Yes |
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
ARM Cortex-M1 |
|
Yes |
- |
AMBA AHB-Lite + APB |
Yes |
No |
No |
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
ARM Cortex-M3 |
- |
- |
MPU (optional) |
3x AHB-Lite + APB |
Yes |
No |
No |
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
ARM Cortex-R4(F) |
0K-64k |
Variable |
MPU |
AMBA 3 AXI |
Yes |
Yes |
No |
|
|
SecurCore系列
SecurCore 系列微处理器专为安全需要而设计,提供了完善的 32 位 RISC 技术的安全解决方案,
因此,SecurCore 系列微处理器除了具有 ARM 体系结构的低功耗、高性能的特点外,还具有其独特
的优势,即提供了对安全解决方案的支持。
SecurCore 系列微处理器除了具有 ARM 体系结构各种主要特点外, 还在系统安全方面具有如下
的特点:
- 带有灵活的保护单元,以确保操作系统和应用数据的安全。
- 采用软内核技术,防止外部对其进行扫描探测。
- 可集成用户自己的安全特性和其他协处理器。
SecurCore 系列微处理器主要应用于一些对安全性要求较高的应用产品及应用系统,如电子商
务、电子政务、电子银行业务、网络和认证系统等领域。
SecurCore系列微处理器包含SecurCore SC100、 SecurCore SC110、 SecurCore SC200和SecurCore
SC210 四种类型,以适用于不同的应用场合。
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
Cache Size |
Tightly |
Memory |
Bus |
Thumb |
DSP |
Jazelle |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
SecurCore SC100 |
- |
- |
MPU |
- |
Yes |
No |
No |
|
||||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
SecurCore SC200 |
- |
- |
MPU |
- |
Yes |
Yes |
Yes |
OptimoDE Data Engines
ARM的OptimoDE Data Engine是许可使用的IP,它具有一个相关工具环境、一个数据路径函数资源库以及具有各种并行机制和性能的预配置微结构。OptimoDE定位于高性能嵌入式信号处理应用,开发者能够使用它作为单机处理器或具有微处理器核的设计中。它支持并行性、虚拟无限的数据路径配置(包括混合宽度)、用户扩展以及访问固定功能或可编
程的数据引擎。OptimoDE Data Engine与ARM的DSP接口规范兼容,这种接口规范规定了核与核之间基于邮箱的指令控制讯息和大量数据传送的接口、纠错和追踪接口以及多核纠错协议、还有针对处理器交互通信的软件API。
通过支持可编程性能,OptimoDE设计流程使设计者能够冻结Data Engine的结构,继续通过软件改变来调整算法。这种方法使具有相似要求的多个算法能够使用同样的Data Engine硬件。在开发者将设计提交给工厂或者批量供应后,他们还能重新编程OptimoDE Data Engine,重新生成代码来包容增加的设计改进或替代算法,而不用改变底层的硬件结构。
工具环境使设计者能够配置和扩展数据路径资源单元的类型和数目。设计者还能配置本地存储的类型和大小以及交互连接的级别。ARM提供一个C编译器和性能分析工具,开发者使用它们用C或C++来对OptimoDE Data Engine进行编程。一旦数据引擎在一个设计中组合应用,OptimoDE工具环境就能够自动生成仿真模型,设计者使用它可以验证集成过程。OptimoDE Data Engine具有AMBA兼容特性并能和ARM的多种系统IP一起工作。
Xscale系列
Xscale 处理器是基于 ARMv5TE体系结构的解决方案,是一款全性能、高性价比、低功耗的处
理器。它支持 16 位的 Thumb 指令和 DSP 指令集,已使用在数字移动电话、个人数字助理和网络产
品等场合。
Xscale 处理器是以前Intel主要推广的一款ARM微处理器. 但在2006年11月8日,Marvell完成了对英特尔公司手机和应用处理器业务部门的收购。根据该项收购协议,英特尔将在2008年6月前为Marvell制造和供应芯片.