一、NEON
1、简介
NEON是适用于ARM Cortex-A系列处理器的一种128位SIMD(Single Instruction, Multiple Data,单指令、多数据)扩展结构。ARM® NEON™ 通用 SIMD 引擎可有效处理当前和将来的多媒体格式,从而改善用户体验。
NEON 技术可加速多媒体和信号处理算法(如视频编码/解码、2D/3D 图形、游戏、音频和语音处理、图像处理技术、电话和声音合成),其性能至少为 ARMv5 性能的 3 倍,为 ARMv6 SIMD 性能的 2 倍。
2、如何使用 NEON
OpenMAX DL 库: 加速 AV 编解码器的建议方法
以源格式释放的库,在 ARM 网站上免费提供
支持以下格式:MPEG-4 简单配置文件、H.264 基准、JPEG、MP3、AAC
支持以下功能:FIR、IIR、FFT、点积、色彩空间转换、de-blocking、de-ringing、旋转、缩放、合成
a、矢量化编译器
使用现有源代码自动搜索 NEON SIMD
受 ARM RealView 开发套件(v3.1 Pro 及更高版本)支持
在 2007q3 及更高版本中受 gcc 支持
b、内部函数
C 函数调用接口至 NEON 操作
支持 NEON 支持的所有数据类型和操作
在 ARM RealView 开发套件(3.1 及更高版本)和 gcc 2007q3 及更高版本中受支持
c、汇编器
针对确实需要在最低级别进行优化的用户
在 ARM 的 RealView 开发套件(3.1 及更高版本)和 gcc 2007q3 及更高版本中受支持
二、针对多媒体的 SIMD 扩展
当前的智能手机和 Internet 设备必须提供高级媒体和图形性能,才具有竞争力。ARMv6 和 ARMv7 体系结构中的 SIMD 扩展改进了此类性能。
ARM SIMD 媒体扩展随 ARMv6 体系结构引入,从 ARM1136 开始,持续经过 ARM1176™、ARM11™ MPCore™、Cortex™-A5、Cortex-A8 和 Cortex-A9。这些 SIMD 扩展增强了基于 ARM 处理器的 SoC 的处理能力,而实际上不会增加功耗。SIMD 扩展已经过优化,可适用于众多软件应用领域,包括视频和音频编解码器,这些扩展将性能提高了将近 75% 或更多。
与具有单独可编程 DSP 或加速器的体系结构相比,SIMD 扩展可通过提供一个工具链和处理设备来简化应用软件的开发过程。该工具链环境可缩短上市时间,因为软件在产品开发过程中扮演着越来越重要的角色。SIMD 扩展对操作系统 (OS) 完全透明,因此可以使用现有 OS 端口。可对 OS 上运行的新应用程序进行编写,以显式使用 SIMD 扩展,从而提供额外功率/性能优势。
与 ARMv6 体系结构中的 32 位宽 SIMD 相比,NEON™ 技术是根据 SIMD 概念构建的,该技术采用一个专用模块提供 128 位宽的矢量操作。ARMv7 架构中引入了 NEON 技术,该技术只适用于 ARM Cortex-A 类处理器。
三、DSP 扩展
ARM DSP 指令集扩展增加了高性能应用中 ARM 解决方案的 DSP 处理能力,同时通过便携式、电池电源设备提供所需的低能耗。DSP 扩展已经过优化,适用于众多软件应用(包括伺服马达控制、Voice over IP (VOIP) 和视频/音频编解码器),其中此扩展可增强 DSP 性能,使其能够有效处理所需任务。
用于 ARM 架构的编译器可以使用这些 DSP 扩展来改进标准 C 和 C++ 软件的代码生成过程,或者允许软件开发人员要求通过内部函数或内联汇编代码显式使用这些扩展。
ARM DSP 扩展改进了 DSP 性能,且无需非常高的时钟频率。几乎不增加典型实现中的功耗即可获得此性能。DSP 扩展广泛应用于智能手机以及需要大量信号处理的类似嵌入式系统,从而避免使用其他硬件加速器。DSP 扩展可与 32 位 ARM 和 16 位 Thumb® 指令集完全兼容,从而确保所有现有操作系统和应用程序代码都可在支持 DSP 且基于 ARM 处理器的设备上重用。