分享

DSP & SIMD & NEON

 Kinetis 2015-03-23

DSP 扩展

ARM DSP 指令集扩展增加了高性能应用中 ARM 解决方案的 DSP 处理能力,同时通过便携式、电池电源设备提供所需的低能耗。DSP 扩展已经过优化,适用于众多软件应用(包括伺服马达控制、Voice over IP (VOIP) 和视频/音频编解码器),其中此扩展可增强 DSP 性能,使其能够有效处理所需任务。

特点

  • 单周期 16x16 和 32x16 MAC 实现
  • 与基于 ARM7? 处理器的 CPU 产品相比,DSP 性能提高了 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?-A5Cortex-A8 和 Cortex-A9。这些 SIMD 扩展增强了基于 ARM 处理器的 SoC 的处理能力,而实际上不会增加功耗。SIMD 扩展已经过优化,可适用于众多软件应用领域,包括视频音频编解码器,这些扩展将性能提高了将近 75% 或更多。 

ARMv6 SIMD 功能:

  • 在处理音频和视频时,使性能提高了 75%
  • 同时计算 2x16 位或 4x8 位操作数
  • 小数运算
  • 用户可定义的饱和模式(任意字宽)
  • 双 16x16 乘加/减 32x32 小数 MAC
  • 同时 8/16 位选择操作
  • 在 800MHz 时性能最高达 3.2 GOPS
  • “几乎不增加”典型实现中的功耗即可获得性能。

应用:

  • 媒体流
  • Internet 设备
  • MPEG4 和 H264 编码/解码
  • 语音和手写识别
  • FFT 处理
  • 复杂运算
  • Viterbi 处理

与具有单独可编程 DSP 或加速器的体系结构相比,SIMD 扩展可通过提供一个工具链和处理设备来简化应用软件的开发过程。该工具链环境可缩短上市时间,因为软件在产品开发过程中扮演着越来越重要的角色。SIMD 扩展对操作系统 (OS) 完全透明,因此可以使用现有 OS 端口。可对 OS 上运行的新应用程序进行编写,以显式使用 SIMD 扩展,从而提供额外功率/性能优势。

除 ARMv6 SIMD 外:

与 ARMv6 体系结构中的 32 位宽 SIMD 相比,NEON? 技术是根据 SIMD 概念构建的,该技术采用一个专用模块提供 128 位宽的矢量操作。ARMv7 架构中引入了 NEON 技术,该技术只适用于 ARM Cortex-A 类处理器。

更多信息:

NEON

NEON Image
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 打包的 SIMD 处理的图表

使用 NEON 技术的 ARM Cortex?-A 系列处理器,以及 ARM 的 Mali 多媒体硬件解决方案可用于多媒体应用,范围从智能手机移动计算设备到 HDTV

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多