本文介绍了基于ARM v7-A架构的ARM Cortex-A系列处理器(Cortex-A5, Cortex-A7, Cortex-A8, Cortex-A9, Cortex-A15)的基本特性,基本上都可以支持ARM、Thumb-2、Thumb指令集,支持Java加速扩展的Jazelle技术、ThustZone的安全扩展以及针对浮点FPU的VFP硬件扩展和并行多数据的SIMD的NEON多媒体处理器扩展、支持主流的嵌入式OS(Symbian、Linux、Android、Windows Mobile、Windows Phone)、支持分支预测branch prediction。但各处理器在VFP/NEON的类型、半精度浮点(16-bit half precision floating-point)的支持、多核MPCore、流水线pipeline、单MHz处理性能、L1/L2 cache控制器、乱序执行、指令dual-issue并发等方面有略有不同。
ARM Cortex系列处理器核包括Cortex-A系列(高性能,具备MMU,可以运行如Symbian、Linux、Android,Windows CE等操作系统)、Cortex-R系列(高端嵌入式满足高性能高可靠性的实时需求)、Cortex-M(嵌入式单片机,低功耗,低成本)。
表1. ARM Cortex 处理器和架构版本 (应用处理器、实时处理器和微控制器)
v7-A (Applications) |
v7-R (Real Time) |
v6-M/v7-M (Microcontroller) |
Cortex-A5 (Single/MP) |
Cortex-R4 |
Cortex-M0+ (ARMv6-M) |
Cortex-A7 (MP) |
Cortex-R5 |
Cortex-M0 (ARMv6-M) |
Cortex-A8 (Single) |
Cortex-R7 |
Cortex-M1 ? (ARMv6-M) |
Cortex-A9 (Single/MP) |
Cortex-M3 ? (ARMv7-M) |
|
Cortex-A15 (MP) |
Cortex-M4(F) (ARMv7E-M) |
http://houh-1984.blog.163.com/
图1. ARM Cortex-A5处理器框架图
Cortex-A5处理器支持ARMv7-A架构的特性,包括TrustZone安全扩展NEON多媒体处理引擎,芯片面积和功耗特性很好,但处理性能性对于其他Cortex-A略差,如只相当于Cortex-A8的80%性能,Cortex-A15的一半性能。Cortex-A5可以支持多核。Cortex-A5处理器支持双发dual issue以及分支预测branch prediction。NEON和VFP的硬件可选。Cortex-A5支持ARM和Thumb指令集,并可以包含
Jazelle-DBX 和Jazelle-RCT的Java加速技术。
Cortex-A5 处理器是尺寸最小、功耗最低(可以低至0.08mw~0.12mw/MHz)的 ARM 多核处理器,能够向最广泛的设备提供 Internet 访问:包括超低成本手机、特色手机和智能移动终端以及普遍采用的嵌入式、消费类和工业设备。Cortex-A5 处理器的应用与 Cortex-A8、Cortex-A9 和 Cortex-A15 处理器完全兼容,能够立即访问已得到认可的开发平台和软件体系,包括 Android、Adobe Flash、Java Platform Standard Edition (Java SE)、JavaFX、Linux、Microsoft Windows Embedded、Symbian 和 Ubuntu。Cortex-A5 与 Cortex-A8、Cortex-A9 和 Cortex-A15 处理器的完全应用兼容性, 为大量现有 ARM926EJ-S? 和 ARM1176JZ-S? 处理器授权使用方提供了高价值的迁移途径。Cortex-A5功耗和面积只有 Cortex-A9 的 1/3,且具有完全的指令集兼容性。
特性关键字
VFP, NEON, Jazelle RCT, Thumb/Thumb-2, 1–4 cores,Variable (L1?+?L2) Cache, MMU?+?TrustZone
Cortex-A5设备
http://www.cnx-software.com/2012/06/14/52-99-usd-cx-01-mini-android-4-0-tv-box-powered-by-telechips-tcc8923-cortex-a5/
图2. ARM Cortex-A7处理器框架图
Cortex-A7 处理器的功耗和面积与超高效 Cortex-A5 相似,但性能提升 15~20%,Cortex-A7是ARM的大小核设计中的小核部分,并且与高端 Cortex-A15 CPU 体系结构完全兼容。Cortex-A7处理器包括了高性能处理器Cortex-A15的一切特性,包括虚拟化(virtualization)、大容量物理内存地址扩展(Large Physical Address Extensions (LPAE),可以寻址到1TB的存储空间)、NEON、VFP以及AMBA 4 ACE coherency (AMBA4 Cache Coherent Interconnect (CCI))。Cortex-A7支持多核MPCore的设计以及Big+Little的大小核设计。小型高能效的 Cortex-A7 是最新低成本智能手机和平板电脑中独立 CPU 的理想之选,并可在 big.LITTLE 处理配置中与 Cortex-A15 结合。
特性关键字
VFPv4 FPU, NEON, Thumb-2, Jazelle RCT/DBX, out-of-order speculative issue superscalar, Large Physical Address Extensions (LPAE), Hardware virtualization, 1–4 SMP cores, 32?KB/32?KB L1, up to 4?MB L2, MMU?+?TrustZone
Cortex-A8处理器是第一个使用ARMv7-A架构的处理器。很多应用处理器以Cortex-A8为核心,如
S5PC100 (Samsung),OMAP3530 (TI,Texas Instruments),i.MX515 (Freescale)。下图3是Cortex-A8的处理器包括pipeline流水线的框架图。
图3. ARM Cortex-A8处理器框架图
Cortex-A8 处理器是一个双指令执行的有序超标量处理器,针对高度优化的能效实现可提供 2.0 Dhrystone MIPS(每 MHz),这些实现可提供基于传统单核处理器的设备所需的高级别的性能。Cortex-A8 在市场中构建了 ARMv7 体系结构,可用于不同应用,包括智能手机、智能本、便携式媒体播放器以及其他消费类和企业平台。分开的L1指令和数据cache大小可以为16KB或者32KB,指令和数据共享L2 cache,容量可以到1MB。L1和L2 cache的cache数据宽度为128比特,L1 cache是虚拟索引,物理上连续,而L2完全使用物理地址。Cortex-A8的L1 cache行宽度为64byte,L2 cache在片内集成。另外和Cortex-A9相比,由于Cortex-A8支持的浮点VFP运算非常有限,其VFP的速度非常慢,往往相同的浮点运算,其速度是Cortex-A9的1/10。Cortex-A8能并发某些NEON指令(如NEON的load/store和其他的NEON指令),而Cortex-A9因为NEON位宽限制不能并发。Cortex-A8的NEON和ARM是分开的,即ARM核和NEON核的执行流水线分开,NEON访问ARM寄存器很快,但是ARM端需要NEON寄存器的数据会非常慢。
特性关键字
VFP, NEON, Jazelle RCT, Thumb-2, 13-stage superscalar pipeline,Variable (L1?+?L2) Cache, MMU?+?TrustZone
使用Cortex-A8的设备
使用Cortex-A8处理器的设备包括Apple的ipad1(apple A4处理器),BeagleBoard (TI OMAP3530 or TI DM 3730)。HTC Desire, SBM7000, Oregon State University OSWALD, Gumstix Overo Earth, Pandora, Apple iPhone 3GS, Apple iPod touch (3rd and 4th Generation), Apple iPad (A4), Apple iPhone 4 (A4), Archos 5, BeagleBoard, Motorola Droid, Motorola Droid X, Motorola Droid 2, Motorola Droid R2D2 Edition, Palm Pre, Samsung Omnia HD, Samsung Wave S8500, Samsung i9000 Galaxy S, Sony Ericsson Satio, Touch Book, Nokia N900, Meizu M9, Google Nexus S, Sharp PC-Z1 "Netwalker
Cortex-A9 MPCore或者单核处理器单MHz性能比Cortex-A5 或者 Cortex-A8高,支持ARM, Thumb, Thumb-2, TrustZone, Jazelle RCT,Jazelle DBX技术。L1的cache控制器提供了硬件的cache一致性维护支持多核的cache一致性。核外的L2 cache控制器(L2C-310, or PL310) 支持最多8MB的cache。Cortex-A9的L1 cache行宽度为32byte,L2 cache因为多核的原因在核外集成,即通过SCU来访问多核共享的L2 cache。
图4. ARM Cortex-A9 单核处理器框架图
特性关键字
Application profile, VFPv3 FPU, NEON, Thumb-2, Jazelle RCT/DBX, out-of-order speculative issue superscalar, 1–4 core SMP, 32?KB/32?KB L1, up to 4?MB L2, MMU?+?TrustZone
使用Cortex-A9的设备
常见的Cortex-A9处理器包括nVidia's 双核Tegra-2, 以及TI's OMAP4平台。使用Cortex-A9处理器的设备包括Apple的ipad2(apple A5处理器),LG Optimus 2X (nVidia Tegra-2),Samsung Galaxy S II (Samsung Exynos 4210),Sony NGP PSP2,PandaBoard (TI OMAP4430 or TI OMAP 4460),Motorola Atrix 4G,Motorola DROID BIONIC, Motorola Xoom。
Cortex-A15 MPCore处理器是目前Cortex-A系列中性能最高的处理器,一个突出的特性是其硬件的虚拟化技术(Hardware virtualization)以及大物理内存的扩展(Large Physical Address Extension (LPAE), 能寻址到1TB的内存)。
图5. ARM Cortex-A15 单核处理器框架图
特性关键字
? An out-of-order superscalar pipeline.
? Tightly-coupled low-latency level-2 cache (up to 4MB in size).
? Improved floating-point and NEON media performance.
? Full hardware virtualization.
? Large Physical Address Extension (LPAE) addressing up to 1TB of memory.
? Error correction capability for fault-tolerance and soft-fault recovery.
? Multiple coherent multi-core processor clusters through AMBA4 technology.
? AMBA4 Cache Coherent Interconnect (CCI) allowing full cache coherency between multiple Cortex-A15 MPCore processors.
Application profile, VFPv4 FPU, NEON, Thumb-2, Jazelle RCT/DBX, out-of-order speculative issue superscalar, Large Physical Address Extensions (LPAE), Hardware virtualization, 1–4 SMP cores, 32?KB/32?KB L1, up to 4?MB L2, MMU?+?TrustZone
使用Cortex-A15的设备
目前集成Cortex-A15的处理器量产的只有Samsung的Exynos 5系列处理器,但TI的OMAP5系列处理器也采用Cortex-A15的核。具体的设备有Arndale Board (http://www.arndaleboard.org/wiki/index.php/Main_Page )以及Samsung的Chromebook (http://www.samsung.com/us/computer/chromebook )。
表2. ARM Cortex-A各处理器(Cortex-A5, Cortex-A7, Cortex-A8, Cortex-A9, Cortex-A15)差别
类别 |
Cortex-A5 |
Cortex-A7 |
Cortex-A8 |
Cortex-A9 |
Cortex-A15 |
发布时间 |
2009年12月 |
2011年10月 |
2006年7月 |
2008年3月 |
2011年4月 |
时钟频率 |
~1GHz |
~1GHz on 28nm |
~1GHz on 65nm |
~2GHz on 40nm |
~2.5GHz on 28nm |
Execution order 执行顺序 |
In-order 顺序执行 |
In-order |
In-order |
Out of order 乱序 |
Out of order 乱序执行 |
多核支持 |
1 to 4 |
1 to 4 |
1 (只单核) |
1 to 4 |
1 to 4 |
峰值指令处理速度 |
1.6DMIPS/MHz |
1.9DMIPS/MHz |
2 DMIPS/MHz |
2.5 DMIPS/MHz |
3.5 DMIPS/MHz |
VFP/NEON 支持 |
VFPv4/NEON |
VFPv4/NEON |
VFPv3/NEON |
VFPv3/NEON |
VFPv4/NEON |
Half precision 半精度扩展(16-bit floating-point) |
是 |
是 |
否,只有32-bit单精度和64-bit双精度浮点 |
是 |
是 |
FP/NEON 寄存器重命名 |
否 |
否 |
否 |
否 |
是 |
GP寄存器重命名 |
否 |
否 |
否 |
是 |
是 |
硬件的除法器 |
否 |
是 |
否 |
否 |
是 |
LPAE (40-bit physical address) |
No |
Yes |
No |
No |
yes |
硬件虚拟化 |
No |
Yes |
No |
No |
Yes |
big.LITTLE |
No |
LITTLE |
No |
No |
Big |
融合的MAC 乘累加 |
是 |
是 |
否 |
否 |
是 |
流水线级数 pipeline stages |
8 |
8 |
13 |
9 to 12 |
15+ |
指令译码 decodes |
1 |
Partial dual issue |
2 (dual-issue) |
2 (dual-issue) |
3 |
返回堆栈stack条目 |
4 |
8 |
8 |
8 |
48 |
浮点运算单元FPU |
Optional |
Optional |
Yes |
Optional |
Optional |
AMBA总线宽度 |
64-bit I/F AMBA 3 |
128-bit I/F AMBA 4 |
64 or 128-bit I/F AMBA 3 |
2× 64-bit I/F AMBA 3 |
128-bit |
L1 Data Cache Size |
4K to 64K |
8KB to 64KB |
16/32KB |
16KB/32KB/64KB |
32KB |
L1 Instruction Cache Size |
4K to 64K |
8KB to 64KB |
16/32KB |
16KB/32KB/64KB |
32KB |
L1 Cache Structure |
2-way set associative (Inst) 4-way set associative (Data) |
2-way set associative (Inst) 4-way set associative (Data) |
4-way set associative |
4-way set associative (Inst) 4-way set associative (Data) |
2-way set associative (Inst) 4-way set associative (Data) |
L2 Cache type |
External |
Integrated |
Integrated |
External |
Integrated |
L2 Cache size |
- |
128KB to 1MB |
128KB to 1MB |
- |
512KB to 1MB |
L2 Cache Structure |
- |
8-way set associative |
8-way set associative |
- |
8-way set associative |
Cache line (bytes) |
32 |
32 |
64 |
32 |
64 |
http://houh-1984.blog.163.com/
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.den0013a/index.html
http://www.360doc.com/content/12/0806/14/350555_228637047.shtml
https://silver.arm.com/download/Software/BX100-DA-98001-r0p0-01rel2/DEN0013C_cortex_a_series_PG.pdf
本文介绍了基于ARM v7-A架构的ARM Cortex-A系列处理器(Cortex-A5, Cortex-A7, Cortex-A8, Cortex-A9, Cortex-A15)的基本特性,基本上都可以支持ARM、Thumb-2、Thumb指令集,支持Java加速扩展的Jazelle技术、ThustZone的安全扩展以及针对浮点FPU的VFP硬件扩展和并行多数据的SIMD的NEON多媒体处理器扩展、支持主流的嵌入式OS(Symbian、Linux、Android、Windows Mobile、Windows Phone)、支持分支预测branch prediction。但各处理器在VFP/NEON的类型、半精度浮点(16-bit half precision floating-point)的支持、多核MPCore、流水线pipeline、单MHz处理性能、L1/L2 cache控制器、乱序执行、指令dual-issue并发等方面有略有不同。