1. ARM概述
1.1 Application Cortex Processors (ARM Cortex 应用处理器 )
• Cortex™-A 系列 - 开放式操作系统的高性能处理器
Cortex 应用处理器在先进工艺节点中可实现高达 2GHz+ 标准频率的卓越性能,从而可支持下一代的移动 Internet 设备。这些处理器具有单核和多核种类,最多提供四个具有可选 NEON™ 多媒体处理模块和先进浮点执行单元的处理单元。
所有 Cortex-A 处理器都共享共同的体系结构和功能集。 这使其成为开放式平台设计的最佳解决方案,因为此时不同设计之间软件的兼容性和可移植性最重要:
ARMv7-A 体系结构
对所有操作系统的支持
Linux 完整分配 - Android、Chrome、Ubuntu 和 Debian
Linux 第三方 - MontaVista、QNX、Wind River
Symbian
Windows CE
需要使用内存管理单元的其他操作系统支持
指令集支持 - ARM、Thumb-2、Thumb、Jazelle®、DSP
TrustZone® 安全扩展
高级单精度和双精度浮点支持
NEON™ 媒体处理引擎
1.2 Embedded Cortex Processors (ARM Cortex 嵌入式处理器)
• Cortex-R 系列 - 面向实时应用的卓越性能
• Cortex-M 系列 - 面向具有确定性的微控制器应用的成本敏感型解决方案
Cortex 嵌入式处理器旨在为各种不同的市场提供服务。
Cortex-M 系列处理器主要是针对微控制器领域开发的,在该领域中,既需进行快速且具有高确定性的中断管理,又需将门数和可能功耗控制在最低。
而 Cortex-R 系列处理器的开发则面向深层嵌入式实时应用,对低功耗、良好的中断行为、卓越性能以及与现有平台的高兼容性这些需求进行了平衡考虑。
1.3 Classic ARM Processors (经典 ARM 处理器)
• ARM11™ 系列 - 基于 ARMv6 架构的高性能处理器
• ARM9™ 系列 - 基于 ARMv5 架构的常用处理器
• ARM7™ 系列- 面向通用应用的经典处理器
ARM 经典处理器适用于那些希望在新应用中使用经过市场验证的技术的组织。这些处理器提供了许多的功能、卓越的能效和范围广泛的操作性能,适用于成本敏感型解决方案。这些处理器每年都有数十亿的发货量,因此可确保设计者获得最广泛的生态系统和资源,从而最大限度地减少集成过程中出现的问题并缩短上市时间。
2. ARM架构
ARM 架构在不断演进的同时在各个实现之间保持了很高的兼容性。
• ARMv4T架构
引进了 16 位 Thumb® 指令集和 32 位 ARM 指令集,目的是在同一个架构中同时提供高性能和领先的代码密度。16 位 Thumb 指令集相对于 32 位 ARM 指令集可缩减高达 35% 的代码大小,同时保持 32 位架构的优点。
示例处理器- ARM7TDMI®
• ARMv5TEJ 架构
引进了数字信号处理 (DSP) 算法(如饱和运算)的算术支持和 Jazelle® Java 字节码引擎来启用 Java 字节码的硬件执行,从而改善用 Java 编写的应用程序的性能。与非 Java 加速内核比较,Jazelle 将 Java 执行速度提高了 8 倍,并且减少了 80% 的功耗。许多基于 ARM 处理器的便携式设备中已使用此架构,目的是在游戏和多媒体应用程序的性能方面提供显著改进的用户体验。
示例处理器 - ARM926EJ-S™ 和 ARM968E-S™
• ARMv6 架构
引进了包括单指令多数据 (SIMD) 运算在内的一系列新功能。SIMD 扩展已针对多种软件应用程序(包括视频编解码和音频编解码)进行优化,对于这些软件应用程序,SIMD 扩展最多可将性能提升四倍。此外,还引进了作为 ARMv6 体系结构的变体的 Thumb-2 和 TrustZone 技术。
示例处理器 - ARM1176JZ 和 ARM1136EJ
• ARMv6M 架构
为低成本、高性能设备而设计,向以前由 8 位设备占主导地位的市场提供 32 位功能强大的解决方案。其 16 位 Thumb 指令集架构允许设计者设计门数最少却十分经济实惠的设备。始终如一的中断处理结构和编程器模式为所有 Cortex-M 系列处理器(从 Cortex-M0 处理器到 Cortex-M3 处理器)提供了完全向上兼容的途径。
示例处理器 - Cortex™-M0 和 Cortex-M1
• ARMv7 架构
向目标应用提供一组自定义配置文件。所有 Cortex 处理器都实现了 ARMv7 架构(实现 ARMv6M 的 Cortex-M 系列处理器除外)。所有 ARMv7 架构配置文件都实现了 Thumb-2 技术(一个经过优化的 16/32 位混合指令集),在保持与现有 ARM 解决方案的代码完全兼容的同时,既具有 32 位 ARM ISA 的性能优势,又具有 16 位 Thumb ISA 的代码大小优势。ARMv7 架构还包括 NEON™ 技术扩展,可将 DSP 和媒体处理吞吐量提升高达 400%,并提供改进的浮点支持以满足下一代 3D 图形和游戏以及传统嵌入式控制应用的需要。Cortex 架构旨在横跨各种应用领域(从成本少于 1 美元的微控制器到功能强大,运行速度超过 2GHz 的多核设计)。此架构分为 3 种配置文件:
• Cortex-A -应用配置文件,它拥有MMU(内存管理单元)、用于多媒体应用的可选 NEON 处理单元以及支持半精度、单精度和双精度运算的高级硬件浮点单元的基础上实现了虚拟内存系统架构。 它适用于高端消费电子设备、网络设备、移动互联网设备和企业市场。示例处理器 - Cortex-A9, Cortex-A8 和 Cortex-A5
• Cortex-R - 实时配置文件,它在 MPU(内存保护单元)的基础上实现了受保护内存系统架构。它适用于高性能实时控制系统(包括汽车和大容量存储设备)。示例处理器 - Cortex-R4(F)
• Cortex-M - 微控制器配置文件,可进行快速中断处理,适用于需要高度确定的行为和最少门数的成本敏感型设备。示例处理器 - Cortex-M3
• ARMv8 架构
ARMv8-A 将 64 位体系结构支持引入 ARM 体系结构中,其中包括:
• 64 位通用寄存器、SP(堆栈指针)和 PC(程序计数器)
• 64 位数据处理和扩展的虚拟寻址
两种主要执行状态:
• AArch64 - 64 位执行状态,包括该状态的异常模型、内存模型、程序员模型和指令集支持
• AArch32 - 32 位执行状态,包括该状态的异常模型、内存模型、程序员模型和指令集支持
这些执行状态支持三个主要指令集:
• A32(或 ARM):32 位固定长度指令集,通过不同体系结构变体增强部分 32 位体系结构执行环境现在称为 AArch32
• T32 (Thumb),以 16 位固定长度指令集的形式引入,随后在引入 Thumb-2 技术时增强为 16 位和 32 位混合长度指令集。部分 32 位体系结构执行环境现在称为 AArch32
• A64:提供与 ARM 和 Thumb 指令集类似功能的 32 位固定长度指令集。随 ARMv8-A 一起引入,它是一种 AArch64 指令集。
• ARM ISA 不断改进,以满足前沿应用程序开发人员日益增长的要求,同时保留了必要的向后兼容性,以保护软件开发投资。在 ARMv8-A 中,对 A32 和 T32 进行了一些增补,以保持与 A64 指令集一致。
3. NEON
ARM® NEON™ 通过 SIMD 引擎可有效处理当前和将来的多媒体格式,从而改善用户体验。
NEON 技术可加速多媒体和信号处理算法(如视频编码/解码、2D/3D 图形、游戏、音频和语音处理、图像处理技术、电话和声音合成),其性能至少为 ARMv5 性能的 3 倍,为 ARMv6 SIMD 性能的 2 倍。
NEON 技术是通过清晰方式构建的,并可无缝用于其本身的独立流水线和寄存器文件。
NEON 技术是 ARM Cortex™-A 系列处理器的 128 位 SIMD(单指令多数据)体系结构扩展,旨在为消费性多媒体应用提供灵活强大的加速功能,从而明显改善用户体验。 它具有 32 个寄存器,64 位宽(是 16 个寄存器,128 位宽的双倍视图。)
NEON 指令可执行“打包的 SIMD”处理:
寄存器被视为同一数据类型的元素的矢量
数据类型可为:有符号/无符号的 8 位、16 位、32 位、64 位单精度浮点
指令在所有通道中执行同一操作
使用 NEON 技术的 ARM Cortex™-A 系列处理器,以及 ARM 的 Mali 多媒体硬件解决方案可用于多媒体应用,范围从智能手机和移动计算设备到 HDTV。
3.1 NEON 增强了用户体验
NEON 可增强许多多媒体用户体验:
观看任意格式的任意视频
编辑和强化捕获的视频 – 视频稳定性
锯齿消除渲染和合成
游戏处理
快速处理几百万像素的照片
语音识别
强大的多通道高保真音频处理
3.2 NEON 的特征和优点
3.2.1 NEON 支持用于 Internet 应用程序的范围广泛的多媒体编解码器:
许多软编解码器标准:MPEG-4、H.264、On2 VP6/7/8、Real、AVS.....
对于各种格式的正常大小的“Internet 流”解码来说,是理想的解决方案
不仅仅针对编解码器,还适用于 2D 和 3D 图形和其他矢量处理
提供现有工具、操作系统支持和体系支持
3.2.2 所需周期减少:
NEON 可使复杂视频编解码器的性能提升 60-150%
单个简单 DSP 算法可实现更大的性能提升(4 倍 -8 倍)
处理器可更快进入睡眠状态,从而在整体上节约了动态功耗
3.2.3 NEON 技术的大量元素能够提高性能并简化软件开发过程,如:
通过对齐和非对齐数据访问,可对 SIMD 操作进行有效的矢量化。
清晰的指令集体系结构,设计用于自动矢量化编译器和手动编码。
有效访问打包数组,如 ARGB 或 xyz 坐标
支持整数和浮点操作,以确保适合从编解码器、高性能计算到 3D 图形等广泛应用领域。
与 ARM 处理器紧密结合,提供单指令流和内存的统一视图,从而能够提供一个具有更简单工具流的开发平台目标。nbsp;
通过具有双 128 位/64 位视图的大型 NEON 寄存器文件,可有效处理数据并尽可能减少对内存的访问,从而增加了数据吞吐量。764261140
|