ARM体系结构研究
随着电子消费品市场上,屏幕、触屏越来越大,像素、帧数、分辨率越来越高,各种无线通信扩展雨后春笋般此起彼伏,处理器的处理能力越来越受到这些多媒体应用的考验。在这样的背景下,ARM芯片推出了自己的解决方案——NEON。
NEON技术是ARM公司2004年发布的媒体和信号处理技术,可以加速多种类型的多媒体应用,适用于手机和消费娱乐电子,可灵活地实现多种视频编/解码、三维图像、语音处理、音频解码、图像处理和基带功能。该技术已经应用在了Cortex-A系列的ARM处理器中,同时获得了ARM和第三方工具提供商的广泛支持,适用于高端多媒体设备。
NEON技术使用64/128位单指令多数据流(SIMD)指令集,能同时执行高达16个操作,用于新一代媒体和信号处理应用加速,其编程接口简单,性能十分优异,功耗非常小。在NEON技术下执行MP3音频解码器,CPU频率可低于10MHZ;运行GSM AMR语音数字编解码器,CPU频率仅为13MHZ,和其它专业的DSP处理器相比较,NEON能获得更低的功耗和更简单的编程接口。NEON支持8位、16位、32位、64位整数及单精度浮点SIMD操作,以进行音频/视频、图像和游戏处理,满足现代电子消费品的需求。
NEON实际上是ARM的SIMD(Single Instruction Multiple Data)技术的延续,其实就是ARM处理器中的向量处理功能。而且它同其它处理单元共享CPU的资源,如:整数操作、循环控制、Caching等,显著减小了处理器的面积和功耗,同时又简化了编程环境,不用控制一些特定硬件加速器的并发访问和数据规整性维护。这是NEON体系结构同硬件加速器相比最显著的优点。
NEON的指令集对于编译器来说是十分友好的。它包括了高效的Promotion/Demotion操作和结构(Structure)的加载与写入而不用强行的向量对齐(Vector Alignment)。
在NEON扩展里,数据被组织在非常长的寄存器中,而这些寄存器可以以8、16、32、64位来提供和贮存数据,而具体用多少位来处理他们是通过在指令中显示指定的。这与x86体系结构中的AX,AL,AH的关系类似。
图2.4 NEON中的向量寄存器逻辑示意图
上图中的三个寄存器向量其实都是同一个128为的寄存器,程序开发人员可以将它当做4个32位的寄存器向量来使用,也可以当做8个16位向量或者16个8位向量来使用。下面具一个具体的例子加以说明。指令VADD.I16 D0,D1,D2
图2.5 NEON中16位向量相加示意图
上图中为将D1向量加上D2向量之后将值存入D0向量的逻辑示意图,在指令中VADD.I16表示该操作的每一个操作元为16位。
图2.6 NEON中demotion示意图
这个例子将一个4个32位元素的128位寄存器每个元素右移5位之后截取16位存至64位的D0中。指令中的I16.I32指定了这种数据降级(demotion)。
图2.6 NEON中对于结构体的指令集支持
图中将内存中的一个结构数组分别装入三个寄存器向量中,向量与向量见的同一个索引位构成了一个完成的结构(图中表示的是屏幕的三像素)。
2.2
Atom处理器,是Intel从2008年才推出的一款面向上网本、入门级PC(Entry Level PC)、Tablet PC、智能手机以及其他一些手持设备的处理器,由此可见,Intel的Atom架构瞄准的市场是已经被ARM称霸已久的移动计算领域,两方的战争可见一斑。而至今为止经历了四次重大的革新。
1)
2)
3)
4)
ARM体系结 相关文章:
- ARM体系结构研究(一)(11-28)
- ARM体系结构详解之ARM寄存器(11-21)
- ARM体系结构学习1(11-21)
- ARM体系结构学习4(11-21)
- ARM体系结构学习3(11-21)
- ARM体系结构学习2(11-21)