比较NEON与其它的技术实现

  1. 比较NEON与其它的技术实现
    1. NEON与ARMv6 SIMD的比较

ARMv6架构引入了一个很小的SIMD指令集,它能够并行执行打包到标准32-bit通用寄存器的多个16-bit或8-bit值。这些指令在没有增加额外计算单元情况下,提升了2倍或4倍的速度。

ARMv6 SIMD 指令“UADD8 R0, R1, R2”并行执行一个32-bit寄存器里的4个8-bit值与另一个32-bit寄存器里的4个8-bit值相加,如图所示:

图   ARMv6 SIMD 指令的4 lane的8-bit并行运算

ARM NEON技术建立在SIMD理念的基础上并支持128-bit向量操作,而不是ARMv6 框架内的32-bit向量操作。

NEON单元默认包含在 Cortex-A7和 Cortex-A15处理器中的;但是,在其它的 ARMv7 Cortex-A 系列处理器中是可选的。

 

The NEON unit is included by default in the Cortex-A7 and Cortex-A15 processors, but is

optional in other ARMv7 Cortex-A series processors.

特性

ARMv7 NEON扩展

ARMv6 SIMD

打包的数据

 4 x 16-bit,  2 x 32-bit,  8x8-bit

4 x 8-bit

数据类型

支持整数;如果有VFP单元,支持单精度浮点数。

只支持整数

同步执行操作个数

最大16,当16x8-bit时

最大4,当4 x 8-bit

专用寄存器

运行在单独的NEON寄存器文件上,与VFP共享;32x64-bit或者16x128-bit寄存器

使用32-bit通用寄存器。

流水线

NEON有专门的流水线来优化性能

与其它指令使用相同的流水线

表1-1 NEON与ARMv6 SIMD的比较

      1. 比较NEON与其它SIMD方案

NEON与MMX、 Altivec比较如下:

特性

NEON

x86 MMX/SSE

Altivec

寄存器个数

32×64-bit(also visible as 16 × 128-bit)

SSE2: 8 × 128-bit XMM (in x86-32 mode)

Additional 8 registers in x86-64 mode

32 × 128-bit

内存和寄存器操作符

基于寄存器的3-操作符指令

Mix of register and memory operations

Register-based 3- and 4-operand instructions

打包数据的加载和存储支持

Yes as 2,3, or 4 element

NO

NO

标量与向量寄存器之间移动

Yes

Yes

no

浮点运算支持

单精度

单精度和双精度

单精度

表1-2 NEON与MMX、 Altivec比较

 

      1. 比较NEON与数字信号处理器

许多ARM处理器也可以与数字信号处理器(DSP)协作,或者用户定制的信号处理硬件;因此,它们可以包含一个NEON单元和一个DSP单元。使用NEON技术与使用DSP有一些不同。

NEON技术特征如下:

  1. 扩展了ARM处理器的流水线;
  2. 为内存寻址使用了ARM core registers;
  3. 控制的单线程可以更容易开发和调试;
  4. OS多任务的支持(如果OS能保存/恢复NEON和浮点寄存器文件)。
  5. SMP能力。在一个MPCore处理器中,每个ARM core有一个NEON单元。在多核中,它提供了比使用标准线程高好几倍的性能。
  6. 作为ARM处理器架构的一部分,NEON单元可以运行在更快的处理器上,并且很多SoCs的ARM处理器都支持它。
  7. 由开源社区和ARM生态系统提供了广泛的NEON tools支持。

 

DSP特征如下:

  1. 与ARM处理器并行执行;
  2. 没有OS和任务频繁切换,能提供可靠的性能。当然前提是,DSP系统设计要预测性能。
  3. 通常应用开发者更难使用,两套工具集,独立的调试,潜在的同步问题;
  4. 与ARM处理器集成比较松散。在DSP与ARM处理器之间转移数据时,需要cache clean或出现flush overhead,这使得在处理小的数据块时使用DSP效率会更低。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值