DSP & SIMD
DSP 扩展
ARM DSP 指令集扩展增加了高性能应用中 ARM 解决方案的 DSP 处理能力,同时通过便携式、电池电源设备提供所需的低能耗。DSP 扩展已经过优化,适用于众多软件应用领域(包括伺服马达控制、Voice over IP (VOIP) 和视频/音频编解码器),扩展增强了 DSP 性能,使其能够有效处理所需任务。
功能
- 单周期 16x16 和 32x16 MAC 实现
- 与基于
ARM7™ 处理器的 CPU 产品相比,性能提高了 2-3 倍
- 零开销饱和扩展支持
- 用于加载和存储寄存器对的新指令,包含增强的寻址模式
- 新的 CLZ 指令改进了算术运算标准化,提高了除法性能
- 在 ARMv5TE、ARMv6 和 ARMv7 体系结构中完全受支持
应用
- 音频编码/解码(MP3:AAC、WMA)
- 伺服马达控制 (HDD/DVD)
- MPEG4 解码
- 语音和手写识别
- 嵌入式控制
- 位准确算法 (GSM-AMR)
用于 ARM 体系结构的编译器可以使用这些 DSP 扩展来改进标准 C 和 C++ 软件的代码生成过程,或者允许软件开发人员明确要求通过内部函数或内联汇编代码使用这些扩展。
性能
ARM DSP 扩展改进了 DSP 性能,且无需非常高的时钟频率。几乎不增加典型实现中的功耗即可获得此性能。DSP 扩展广泛应用于智能手机以及需要大量信号处理的类似嵌入式系统,从而无需使用其他硬件加速器。DSP 可与 32 位 ARM 和 16 位
Thumb® 指令集完全兼容,从而确保所有现有操作系统和应用程序代码都可在支持 DSP 且基于 ARM 处理器的设备上重用。这些扩展广泛适用于大量细分市场,包括
无线、
大容量存储、
汽车、
消费娱乐和
数字图像。
针对多媒体的 SIMD 扩展
向嵌入式应用程序提供高性能音频和视频处理
当前的智能手机和 Internet 设备必须提供高级媒体和图形性能,才具有竞争力。ARMv6 和 ARMv7 体系结构中的 SIMD 扩展改进了此类性能。
ARM SIMD 媒体扩展随 ARMv6 体系结构引入,从
ARM1136 开始,持续经过
ARM1176™、
ARM11™ MPCore™、
Cortex™-A5、
Cortex-A8
和
Cortex-A9。这些 SIMD 扩展增强了基于 ARM 处理器的 SoC 的处理能力,而实际上不会增加功耗。SIMD 扩展已经过优化,可适用于众多软件应用领域,包括
视频和
音频编解码器,这些扩展将性能提高了将近
75% 或更多。
ARMv6 SIMD 功能:
- 在处理音频和视频时,使性能提高了 75%
- 同时计算 2x16 位或 4x8 位操作数
- 小数运算
- 用户可定义的饱和模式(任意字宽)
- 双 16x16 乘加/减 32x23 小数 MAC
- 同时 8/16 位选择操作
- 在 800MHz 时性能最高达 3.2 GOPS
- “几乎不增加”典型实现中的功耗即可获得性能。
应用:
- 媒体流
- Internet 设备
- MPEG4 和 H264 编码/解码
- 语音和手写识别
- FFT 处理
- 复杂运算
- Viterbi 处理
与具有单独可编程 DSP 或加速器的体系结构相比,SIMD 扩展可通过提供一个工具链和处理设备来简化应用软件的开发过程。该工具链环境可缩短上市时间,因为软件在产品开发过程中扮演着越来越重要的角 {MOD}。SIMD 扩展对
操作系统 (OS) 完全透明,因此可以使用现有 OS 端口。可对 OS 上运行的新应用程序进行编写,以显式使用 SIMD
扩展,从而提供额外功率/性能优势。
除 ARMv6 SIMD 外:
与 ARMv6 体系结构中的 32 位宽 SIMD 相比,
NEON™ 技术是根据 SIMD 概念构建的,该技术采用一个专用模块提供 128 位宽的矢量操作。ARMv7 体系结构中引入了 NEON 技术,该技术只适用于 ARM
Cortex-A
类处理器。