手机SoC上的DSP能被开发人员技能树随意使用吗

效能再提升 骁龙820内建3个可编程DSP_网易手机
效能再提升 骁龙820内建3个可编程DSP
用微信扫码二维码
分享至好友和朋友圈
如果你认为智能手机仅仅是可以装几个应用的电话,那你绝对算不上科技达人。在智能手机时代,当我们拿起手机行走时,手机中的三轴加速传感器便开始工作记录下行走的状态。当我们使用手机拍照时,开启摄像头取景后会判断当前的环境光线以匹配最合适的参数。再比如待机情况下的信息推送,手机的调试解调器或WI-FI模块控制数据流的通讯,交换数据后像之类的应用会提示信息。诸如此类应用场景的实现,需要手机的多个硬件之间协同工作后,最终将结果通过软件显示在手机上。
既然这些应用场景下需要开启手机上的多个硬件,那就意味着CPU处理器需要一直计算各硬件反馈的数据。而在计算的同时,如需确保手机整体的使用流畅,旗舰手机需要配备核数更多或是性能更强的处理器来胜任,这然显然不是下一代高性能、低功耗处理器的发展方向。
为解决这个难题,可以处理单项任务的DSP处理器诞生了。这就好像是PC计算机中独立的声卡、显卡、网卡一般,这些独立的硬件可以单独处理大量数据,处理结果可以直接被CPU调用,这大大降低了CPU的计算强度。
iPhone6的宣传页中对M8协处理器进行详细介绍
手机行业中苹果最先宣传iPhone5的处理器中有一个命名为M7的协处理器,它可以以极低的功耗完成三轴加速传感器的数据处理。实际上早在2008年高通骁龙S1处理器诞生之日起,其架构中就已经集成名为Hexagon的DSP。
在骁龙S1的年代,这颗DSP可以直接处理音频解码,当消费者通过手机播放MP3音乐的时候,DSP可以完成MP3文件的解码和播放,而无需通过CPU进行解码计算。因此这里我们可以模糊的将DSP看做是一个低功耗的CPU,它可以协同CPU、GPU、ISP等重要内核工作,以达到像苹果宣传的那样节省整机能耗。
高通在8月25日召开的媒体沟通会上,首次确认了骁龙820处理器将搭载全新架构的Hexagon 680 DSP,并详细介绍了如何实现移动SOC计算效率基础上实现用户体验创新。
三个DSP实现最高效率
骁龙820处理器实际上是一个SOC片上系统,它包含CPUGPUISPMODEMDSP等部分,高通骁龙820的SOC处理器中内建三个独立Hexagon 680 DSP,这三个DSP分别负责低功耗计算、影像音视频计算和低功率岛传感器计算。尤其需要强调的是,这三个DSP是可编程的,换句话说未来不论是方案厂商还是软件公司都可以重新定义这三个DSP的功能。
现在的多数手机存在性能过剩的问题,大量的软件并未对处理器进行多核心优化,而这也直接导致处理器陷入了不断增加核心数、提升主频的恶性循环。实际上大部分需要并行计算的应用,是可以依托DSP来完成的。 骁龙820上搭载的Hexagon 680 DSP虽是单核计算架构,但设计上可以同时运行多达4个线程,每一个线程都有支持的软件。那么通过Hexagon 680可以带给消费者和合作伙伴哪些过去没有的体验呢?
&继CPU和GPU之后的第三大计算硬件
Hexagon 680是一个四线程的可编程计算引擎,它的计算能力虽然没有骁龙820上的CPU和GPU强,但对于普通任务的并行执行是完全没有问题的。就好像前文笔者举的例子,当这个DSP被编程作为音频解码时,听音乐的时候就可以直接由DSP解码并输出,省去了CPU解码的过程,不仅降低了功耗而且还提升了CPU的计算效率。
音频解码只是应用案例之一,Hexagon 680相比过去架构进行了扩展,目前加入图像任务、摄影、计算机视觉、虚拟现实、机器学习等功能,目前有1000多个合作伙伴使用骁龙工具链在开发更多的应用。
&业内首款支持向量扩展(HVX)的计算DSP
骁龙820中集成的Hexagon是业内首个支持向量SIMD(单指令流多数据流)扩展的DSP,它虚拟现实、摄像头计算机视觉和视频领域开发新的用例,可以让DSP通过一个指令同时处理多个视频流。高通曾展示过基于此实现的摄像头识别场景的功能,当我们将放置与摄像头后时,系统软件可自动识别场景和物体。
通过DSP完成原本CPU需要重度计算的任务
实际上实现这个功能的感知计算是通过类比成千上万个已经归类的图片,从而找到最相似的进行匹配并形成独特的学习数据库。而在骁龙处理器平台上,该功能的实现无需借助CPU计算,仅使用DSP就够了。
这一技术需要经过三个过程:识别图像、判断图像、调整图像
与此同时,当Hexagon向量扩展(HVX)和Spectra ISP协同工作时,又可以颠覆传统CPU对图像的计算瓶颈,以获得更好的影像画面。当我们使用骁龙820平台进行拍照,在弱光、强光或暗光录制视频等应用场景中,DSP会察觉画面中较暗或过曝的部分并进行修正,从而达到弱光部分适度增强,而整体的明亮程度并不发生变化。使用DSP实现这一功能,其处理速度相当于骁龙801的三倍,而能耗则减少10倍。
&低功率岛让感知应用随时待命
智能手机越来越智能,像计步、、语音唤醒、敲击亮屏等功能的实现,都离不开传感器的实时监控。骁龙820可利用Hexagon 680的低功率岛控制传感器的工作状态,在设计上支持所有的传感器并提供完整的传感器软件框架和算法。目前低功率岛已经完成包括对Android L的支持,相比骁龙808来看,在计步器、旋转向量(传感器辅助定位)应用上可以降低3倍和2倍的能耗。
总的来说,骁龙820中的DSP将充当一个小型CPU的角色,将并不需要复杂计算以及CPU计算起来功耗过大的工作,都交由DSP来完成。或许这与GPU异构计算很像,但还是有所不同的。首先如果计算中包括连续不断的数据流,GPU计算是非常好的选择,它的效率比CPU要高出不少。但如果数据流处理中,需要决策的话,那GPU的效率就非常低了。此时DSP将会更高效,很多新型算法可以定制在DSP中,继而完成虚拟现实、扩增实境等计算。
实际上通过DSP和GPU的异构计算,可以获得比CPUGPU异构更好的运算效能。比如DSP可以通过计算机视觉算法决定从一个图像中识别一个图形,然后GPU根据识别出来的数据将该图像显示出来,整个过程中无需CPU进行计算,从而达到功耗下降效能提升的目的。
所以简而言之,未来DSP将承担更多的计算任务,使用CPU计算所有数据的时代已经过去。在未来,手机处理器并不需要很多CPU核,取而代之的则是功能更多的DSP处理器。实际上在过去英伟达也曾推出过所谓4+1核的产品,这个1核就是一个低功耗的核心,但它仅可以执行像桌面刷新、低码率视频解码等功能,而联发科技也曾推出过十几个低功耗核心产品。
以上这些低功耗CPU相比可定制功能的Hexagon 680 DSP来看,显然Hexagon在效率和能耗上更有优势,因为CPU需要同时计算的数据太多,而定制后的DSP可以快速的完成定制内容。相信在未来可定制DSP将会是手机SOC的一个发展趋势,高通再一次的领先了整个行业。
本文来源:pchome电脑之家
责任编辑:王晓易_NE0011
用微信扫码二维码
分享至好友和朋友圈
加载更多新闻
热门产品:   
:        
:         
热门影院:
阅读下一篇
用微信扫描二维码
分享至好友和朋友圈干货丨ARM、MCU、DSP、FPGA、SOC各是什么?区别是什么?
[ 亿欧导读 ]
FPGA主频时钟最高可达几Ghz甚至上10Ghz,当然它的成本也不菲。如果将FPGA与ARM、DSP等作为比较,从主频上进行比较是没有多大意义的,毕竟并行计算的能力要远远超出一般通用的处理器采用的串行计算几十倍。
处理器是Acorn计算机有限公司面向低预算市场设计的第一款RISC微处理器。更早称作AcornRISCMachine。ARM处理器本身是32位设计,但也配备16位指令集,一般来讲比等价32位代码节省达35%,却能保留32位系统的所有优势。
ARM历史发展:
日,物理学家赫尔曼·豪泽(HermannHauser)和工程师ChrisCurry,在英国剑桥创办了CPU公司(CambridgeProcessingUnit),主要业务是为当地市场供应电子设备。1979年,CPU公司改名为Acorn计算机公司。
起初,Acorn公司打算使用摩托罗拉公司的16位,但是发现这种芯片太慢也太贵。&一台售价500英镑的机器,不可能使用价格100英镑的CPU!&他们转而向Intel公司索要80286芯片的设计资料,但是遭到拒绝,于是被迫自行研发。
1985年,RogerWilson和SteveFurber设计了他们自己的第一代32位、6MHz的处理器,RogerWilson和SteveFurber用它做出了一台RISC指令集的计算机,简称ARM(AcornRISCMachine)。这就是ARM这个名字的由来。
RISC的全称是&精简指令集计算机&(reducedinstructionsetcomputer),它支持的指令比较简单,所以功耗小、价格便宜,特别合适移动设备。早期使用ARM芯片的典型设备,就是苹果公司的牛顿PDA。
20世纪80年代后期,ARM很快开发成Acorn的台式机产品,形成英国的计算机教育基础。
日,Acorn公司正式改组为ARM计算机公司。苹果公司出资150万英镑,芯片厂商VLSI出资25万英镑,Acorn本身则以150万英镑的知识产权和12名工程师入股。公司的办公地点非常简陋,就是一个谷仓。20世纪90年代,ARM32位嵌入式RISC(Reduced lnstruction Set Computer)处理器扩展到世界范围,占据了低功耗、低和高性能的嵌入式系统应用领域的领先地位。ARM公司既不生产芯片也不销售芯片,它只出售芯片技术授权。
MCU本质为一片单片机,指将计算机的CPU、RAM、ROM、定时计数器和多种I/O接口集成在一片芯片上,形成的芯片级的计算机。
MCU做得好的厂商:瑞萨(Renesas)、恩智浦(NXP)、新唐、微芯(Microchip)、意法半导体(ST)、爱特梅尔(Atmel)、英飞凌(Infineon)、德州仪器(TI)、东芝(Toshiba)、三星(Samsung)、赛普拉斯(Cypress)、亚德诺半导体(ADI)、高通(Qualcomm)、富士通(Fujitsu)、超威半导体(AMD)、盛群/合泰半导体(Holtek)、中颖电子、炬力、华润微、沛城、义隆、宏晶、松翰、凌阳、华邦电子、爱思科微、十速科技、佑华微、应广、欧比特、贝岭、东软载波微、君正、中微、兆易、晟矽微、芯海、联华、希格玛、汇春、建荣科技、华芯微、神州龙芯、紫光微、时代民芯、国芯科技、中天微等等。
DSP(DigitalSignalProcessing),数字信号处理,简称DSP。DSP是用数值计算的方式对信号进行加工的理论和技术。另外DSP也是DigitalSignalProcessor的简称,即数字信号处理器,它是集成专用计算机的一种芯片,只有一枚硬币那么大。
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA做得好的厂商:Altera((阿尔特拉)被Intel收购)、Xilinx(赛灵思)、Actel、Lattice(莱迪思)、Atmel、京微雅格、QuickLogic、Microsemi、Cypress、TI、上海复旦微、广东高云、同方国芯、西安智多晶、中国电子、成都华微、深圳国微、遨格芯等等。
SoC的定义多种多样,由于其内涵丰富、应用范围广,很难给出准确定义。一般说来,SoC称为系统级芯片,也有称片上系统,意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。同时它又是一种技术,用以实现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程。
ARM、MCU、DSP、FPGA、SOC的比较
1、采用架构
ARM:架构采用32位精简指令集(RISC)处理器架构,从ARM9开始ARM都采用了哈佛体系结构,这是一种将指令与数据分开存放在各自独立的存储器结构,独立的程序存储器与数据存储器使处理器的处理能力得到较大的提高。ARM多采用流水线技术,此技术通过多个功率部件并行工作来缩短程序执行时间,使指令能在多条流水线上流动,从而提高处理器的效率和吞吐率。现今ARM7采用了典型的三级流水线,ARM9采用五级流水线技术,而ARM11使用了7级流水线,ARMCortex-A9更是使用了可变流水线结构(支持8-11级流水线)。在多核心的支持上ARMCortex-A9最多可支持4个核心,这是ARM系列处理器中首次支持多核心技术。下图表示了ARMCortex-A9的内部结构。
MCU:大都在结构上是基于冯·诺伊曼结构的,这种结构清楚地定义了嵌入式系统所必需的四个基本部分:一个中央处理器核心,程序存储器(只读存储器或者闪存)、数据存储器(随机存储器)、一个或者更多的定时/计数器,还有用来与外围设备以及扩展资源进行通信的输入/输出端口——所有这些都被集成在单个集成电路芯片上。指令集上早期的MCU是采用CISC的,后面被RISC取代。在总线位数上,MCU覆盖了4位、8位、16位、32位,应用十分广泛。
DSP:又名数字信号处理器,它是一种专用于实时的数字信号处理的微处理器。结构上它采用哈佛结构,同样采用流水线技术。此外,DSP被用于宿主环境时可作为直接内存存取设备运作,还支持从模拟数字转换器(ADC)获得数据,最终输出的是由数字模拟转换器(DAC)转换为模拟信号的数据,支持一定的并行处理。
FPGA:FPGA是英文Field Programmable Gate Array(现场可编程门阵列)的缩写,它是在PAL、GAL、PLD等可编程器件的基础上进一步发展的产物,是专用集成电路(ASIC)中集成度最高的一种。FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个新概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。用户可对FPGA内部的逻辑模块和I/O模块重新配置,以实现用户的逻辑。它还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改。FPGA有别于DSP、ARM、MCU的地方主要在于它的并行处理能力,它的强大并行性使复杂的运算得到极大的速度比提升。
SOC: 系统芯片是一个将计算机或其他电子系统集成单一芯片的集成电路。系统芯片可以处理数字信号、模拟信号、混合信号甚至更高频率的信号。系统芯片常常应用在嵌入式系统中。系统芯片的集成规模很大,一般达到几百万门到几千万门。SOC相对比较灵活,它可以将ARM架构的处理器与一些专用的外围芯片集成到一起,组成一个系统。其实现有的ARM处理器如Hisi-3507、hisi3516等处理器都是一个SOC系统,尤其是应用处理器它集成了许多外围的器件,为执行更复杂的任务、更复杂的应用提供了强大的支持。
ARM:可以说ARM之所以在移动市场上得到极大的成功,其中最主要的原因便是它的低功耗。众所周知的是在移动市场上的电子产品对处理器的功耗是十分敏感的,在过去PC平台上处理器的功耗在几十W到上百W不等,这样的功耗放在移动平台上是不可想像的,ARM在主频1G的情况下功耗才几百mW,强劲的低功耗使它能适应移动电子产品。
DSP:在与非网的一组数据上显示,在数字信号处理方面的市场占有率DSP与FPGA各得半壁江山。DSP相对于FPGA的一个优势是它的功耗相对较低,DSP生产厂商通过提高处理器的主频、努力降低功耗来保证它的市场占有率,因为在高性能的数字处理市场上FPGA似乎更占有优势。如果单纯从DSP领域上来看,DSP在功耗上、性能上做得最好的要数TI公司,TI公司的DSP处理器相对其它的DSP厂商生产的处理器成本更低、功耗更低,所以TI的DSP芯片更在竞争力。
MCU:MCU面世时间最长,各种厂商都有它们自己的架构与指令集,如果从低功耗方面来看,TI的MSP430型MCU做得相对较好。
FPGA:FPGA由于它的内部结构原因造成它的功耗相对较高、芯片发热量大,这也是它的一个缺点。但这也是不可避免的,在支持高性能的并发计算数字电路,且内部的逻辑门大都采用标准的宽长比,最终生成的数字电路必然会在功耗上无法与ASIC等专用处理器比较。
SOC:由于SOC自身的灵活性,它将多个器件集成到一个极小的芯片上从而组成一个系统,SOC系统相对于MCU等处理器组成的系统来说,它在功耗上具有优势。并且,SOC芯片可在版图层面上结合工艺、电路设计等因素对系统的功耗进行系统的优化,这样比由现今外围的PCB版搭建出来的系统功耗更低,占用面积更小。
ARM随着市场应用的需求提高,ARM厂商纷纷通过优化来提高它的主频,提升它的性能。从开始的100Mhz到惊人的2.3Ghz,ARM主频以惊人的速度向前发展。
DSP现今最快的主频能达到1.2Ghz。当然不能单纯从主频判断它的性能会比ARM差,DSP具有单时钟周期内完成一次乘法和一次加法的能力,一般的ARM不具备这样的能力,DSP在计算领域优势尤其明显,所以TI结合了ARM和DSP两者的优势,生产出达芬奇异构芯片,当然这是属于SOC的范畴了。
MCU作为低端的应用处理器,它的主频从数M到几十Mhz不等。
FPGA主频时钟最高可达几Ghz甚至上10Ghz,当然它的成本也不菲。如果将FPGA与ARM、DSP等作为比较,从主频上进行比较是没有多大意义的,毕竟并行计算的能力要远远超出一般通用的处理器采用的串行计算几十倍。如同样的一个滤波算法在主频为100Mhz的FPGA上实现要比在主频为1Ghz的ARM上实现仍要快。
4、应用与市场
ARM处理器现在主要是三个系列分别为A系列、R系列、M系列,其中A系列主攻消费电子应用,应用十分广泛。
计算:上网本、智能本、输入板、电子书阅读器、瘦客户端
手机:智能手机、特色手机
数字家电:机顶盒、数字电视、蓝光播放器、游戏控制台
汽车:信息娱乐、导航
企业:激光打印机、路由器、无线基站、VOIP电话和设备
无线基础结构:Web2.0、无线基站、交换机、服务器
R系列处理器主要针对一些对实时性要求较高的应用,如航空航天、汽车电子等场合,它具备高可靠性、高可用性、高容错能力、实时响应等优点。
M系列处理器主要针对较低端的应用,它的最初目标是替换现有的市面上的MCU。
ARMCortex-M0
ARMCortex-M0+
ARMCortex-M3
ARMCortex-M4
“8/16位”应用
“8/16位”应用
“16/32位”应用
“32位/DSC”应用
低成本和简单性
低成本,最佳能效
高性能,通用
有效的数字信号控制
DSP主要针对一些计算能力要求较高的应用,如视频图像处理、智能、数字无线、宽带访问、数字音频、高分辨率成像和数字电机控制等。
MCU应用最为广泛,主要利益于它的成本控制上,使它能在许多对计算能力要求不那么高的应用立足。相信在未来几年里,MCU市场关键增长驱动力将来自于绿色能源,智能电子设备,智能电网以及电子产品的升级换代比如汽车电子。
SOC应用也十分广泛,主要是因为现有主流ARM芯片采用的架构便是SOC架构的一种,SOC是一个比较广泛的概念,现阶段许多ARM、DSP都开始采用SOC的方式来将多个器件加到处理器上组成复杂的系统。
5、开发成本
ARM主要是搭载LINUX、ANDROID、WINCE等操作系统,在开发难度上看,相对MCU、DSP较难入门,它需要开发人员对操作系统有较深的了解;从成本来看,ARM的单芯片成本较MCU要高,主要还是应用于一些较为复杂的系统上。
MCU入门最容易,上手也快,开发难度较小,并且它的成本低,在低端市场应用最为广泛。
DSP入门较容易,但单芯片成本较高,主要还是应用于对计算能力要求高的应用。当然DSP也可以搭载操作系统,搭载操作系统后可适用于多任务的应用上。
FPGA的开发难度较大并且开发周期也相对较长,此外它的单芯片成本很高。
例子:SOBEL算子(水平边沿)
正常来说要进行一次这样的算子需要9次乘法8次加法,这样的计算在FPGA、DSP上显得十分轻松,但对于ARM、MCU来说,它们的并行能力不强,当要处理的图像较大时,如1280P时,它们便会显得比较吃力了。
然而,这样的算子是十分容易对其进行优化的。如1与-1这两个位置的像素点可以直接进行一次加法完成,同理最后一行也是如此,中间一行的2与-2对应的像素点也可进行一次加法后再进行一次移位操作便完成这样的一次算子运算。计算从原来的9次乘法8次加法转换成三次加法与一次移位(移位操作在大多处理器上都可以在单个周期时钟内完成)。
【2017亿欧创新者年会暨第三届创新奖颁奖盛典】将于12月13日-14日在北京中国大饭店举行。来自全球的100+名国内外顶级大咖、300+家主流媒体、4000名合作伙伴与行业精英共同参会,共话产业创新的未来与发展。邀您共同参与!
猛戳链接查看活动详情:
你知道都发生了什么事情吗?
2017发展热点看热词
解决用户问题才是根本
快来扫描二维码,参与话题讨论吧!
微信扫码登录
发送验证码
发送验证码
发送验证码
如果你遇到下面的问题
我在注册/找回密码的过程中无法收到手机短信消
我先前用E-mail注册过亿欧网但是现在没有办法通过它登录,我想找回账号
其他问题导致我无法成功的登录/注册
账号密码登录
关联已有账户
曾经使用手机注册过亿欧网账户的用户
创建并关联新账户
曾用微信登录亿欧网但没有用手机注册过亿欧的用户
没有注册过亿欧网的新用户
先前使用邮箱注册亿欧网的老用户,请点击这里进入特别通道
填写个人信息
扫描二维码,下载亿欧客户端
Android & iOS
亿欧公众号
小程序-亿欧plus【Altera SOC体验之旅 】Soc FPGA之DSP进阶---NEON高性能媒体引擎(一) - 【Altera SoC】 -
电子工程世界-论坛
后使用快捷导航没有帐号?
请完成以下验证码
查看: 1841|回复: 6
【Altera SOC体验之旅 】Soc FPGA之DSP进阶---NEON高性能媒体引擎(一)
在线时间347 小时
芯币2122枚
E金币264枚
TA的帖子TA的资源
一粒金砂(中级), 积分 72, 距离下一级还需 128 积分
一粒金砂(中级), 积分 72, 距离下一级还需 128 积分
本小节对NEON做简单介绍
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 技术的 ARM Cortex™-A 系列处理器,以及 ARM 的 Mali 多媒体硬件解决方案可用于多媒体应用,范围从智能手机和移动计算设备到 HDTV。
NEON是ARM公司的商标,也是高端ARM处理器集成的硬IP,类似intel的MMX、SSE硬件指令集。
NEON 的特征和优点NEON 支持用于 Internet 应用程序的范围广泛的多媒体编解码器:许多软编解码器标准:MPEG-4、H.264、On2 VP6/7/8、Real、AVS对于各种格式的正常大小的“Internet 流”解码来说,是理想的解决方案不仅仅针对编解码器,还适用于 2D 和 3D 图形和其他矢量处理提供现有工具、操作系统支持和生态体系支持
所需周期减少:NEON 可使复杂视频编解码器的性能提升 60-150%单个简单 DSP 算法可实现更大的性能提升(4 倍 -8 倍)处理器可更快进入睡眠状态,从而在整体上节约了动态功耗
NEON 技术的大量元素能够提高性能并简化软件开发过程,如:通过对齐和非对齐数据访问,可对 SIMD 操作进行有效的矢量化。清晰的指令集架构,设计用于自动矢量化编译器和手动编码。有效访问打包数组,如 ARGB 或 xyz 坐标支持整数和浮点操作,以确保适合从编解码器、高性能计算到 3D 图形等广泛应用领域。与 ARM 处理器紧密结合,提供单指令流和内存的统一视图,从而能够提供一个具有更简单工具流的开发平台目标。通过具有双 128 位/64 位视图的大型 NEON 寄存器文件,可有效处理数据并尽可能减少对内存的访问,从而增加了数据吞吐量。
如何使用 NEONOpenMAX DL 库:加速 AV 编解码器的建议方法以源格式释放的库,在 ARM 网站上免费提供支持以下格式:MPEG-4 简单配置文件、H.264 基准、JPEG、MP3、AAC支持以下功能:FIR、IIR、FFT、点积、色彩空间转换、de-blocking.de-ringing、旋转、缩放、合成
矢量化编译器:使用现有源代码自动搜索 NEON SIMD受 ARM RealView 开发套件(v3.1 Pro 及更高版本)支持在 2007q3 及更高版本中受 gcc 支持
C 内部函数:C 函数调用接口至 NEON 操作支持 NEON 支持的所有数据类型和操作在 ARM RealView 开发套件(3.1 及更高版本)和 gcc 2007q3 及更高版本中受支持
汇编器:针对确实需要在最低级别进行优化的用户在 ARM 的 RealView 开发套件(3.1 及更高版本)和 gcc 2007q3 及更高版本中受支持
开源社区中的 NEON 支持当前,在以下开源项目中支持 NEON:Android – NEON 优化
使用 NEON,Skia 库 S32A_D565_Opaque 的速度加快了 5 倍
Ubuntu 09.04 支持 NEON:
关键共享库的 NEON 版本
Bluez – 官方 Linux 蓝牙协议堆栈
NEON SBC 音频编码器
Pixman(Cairo 2D 图形库的一部分)
合成/alpha 混合X.Org、Mozilla Firefox、Fennec 和 Webkit 浏览器例如,使用 NEON 后,fbCompositeSolidMask_nx8x0565neon 的速度提高了 8 倍
ffmpeg - libavcodec
用于众多 Linux 分发版的 LGPL 媒体播放器视频:MPEG-2、MPEG-4ASP、H.264 (AVC)、VC1音频:Ogg Vorbis
x264 – Google 2009 年度编程之夏
GPL h.264 编码器 – 例如,针对视频会议
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 处理器的设备上重用。这些扩展广泛适用于大量细分市场,包括无线、大容量存储、汽车、消费娱乐和数字图像。NEON原理
NEON 指令可执行“打包的 SIMD”处理:
寄存器被视为同一数据类型的元素的矢量
数据类型可以为:签名/未签名的 8 位、16 位、32 位、64 位单精度浮点
& && && & 原理图如下:
& && && && &下图通过SISD(单指令单数据)和SIMD(单指令多数据)的对比,来说明NEON的工作原理:
& && && && &
& & 从图上可以看到,对于SISD,每个指令只能处理一个数据,而SIMD一个指令可以处理多个数据,因为多个数据的处理是平行的,因此从时间来说,一个指令执行的时间,SISD和SIMD是差不多的。由于SIMD一次可以处理N个数据,所以它的处理的时间也就缩短到SISD的1/N。
& &&&需要指出一点,NEON是需要硬件的支持的,需要有一块寄存器放到硬件上来处理这个的。
NEON的使用
&&NEON的函数是C语言风格,但是编译后成为汇编语句,这样执行的效率会提高。
& &NEON代码的计算效率很高,举例1为实现信号增益的代码实例。
& &标准C语言:
& & for(i=0;i&BUFFERLENGTH;i++)
& &&&output=
& &上述代码每次迭代仅能处理单一的值,通过这个展开循环可以进一步提高效率。
& & for(i=0;i&BUFFERLENGTH;i+=4)
& &&&output=
& &&&output[i+1]=input[i+1];
& &&&output[i+2]=input[i+2];
& &&&output[i+3]=input[i+3];
& &这样可以减少系统资源开销,提高性能,增加并发代码可能性。可是,乘法指令循环复杂的问题仍然存在,使用NEON内部函数,代码看起来会截然不同。
& &for(i=0;i&BUFFERLENGTH;i+=4)
& &&&//加载
& &&&samples_f32=vldlq_f32(input+i);
& &&&//执行乘法运算
& &&&samples_f32=vmulq_f32(samples_f32,1.2);
& &&&//储存结果
& &&&samples_f32=vstlq_f32(output+i,samples_f32);
&& &&举例2
& & 下面是一个用C现实的将GRB转化成灰度图的算法
下面是一个用NEON现实的将GRB转化成灰度图的算法
对以上函数进行说明如下:
把权重放入NEON寄存器
& & 一次载入8 pixles到三个NOEN寄存器,这个地方是重点可以说明NEON的高效率。
& && & 计算结果
在线时间3590 小时
威望5161分
芯币12260枚
E金币387枚
TA的帖子TA的资源
多多指点啊 希望能顺利完成这个系列&
生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙
===================================
做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
在线时间347 小时
芯币2122枚
E金币264枚
TA的帖子TA的资源
一粒金砂(中级), 积分 72, 距离下一级还需 128 积分
一粒金砂(中级), 积分 72, 距离下一级还需 128 积分
多多指点啊& & 希望能顺利完成这个系列
在线时间3590 小时
威望5161分
芯币12260枚
E金币387枚
TA的帖子TA的资源
其实我看不懂 只是前来围观 学习
您太谦虚了&
生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙
===================================
做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
在线时间347 小时
芯币2122枚
E金币264枚
TA的帖子TA的资源
一粒金砂(中级), 积分 72, 距离下一级还需 128 积分
一粒金砂(中级), 积分 72, 距离下一级还需 128 积分
其实我看不懂 只是前来围观 学习
您太谦虚了& &&&
在线时间445 小时
威望1474分
芯币5323枚
TA的帖子TA的资源
纯净的硅(高级), 积分 1474, 距离下一级还需 526 积分
纯净的硅(高级), 积分 1474, 距离下一级还需 526 积分
NEON虽然号称很猛,不过我也没实际使用过,跟LZ多学习学习,以后好跟客户做推广
在线时间555 小时
芯币23426枚
E金币230枚
TA的帖子TA的资源
纯净的硅(中级), 积分 951, 距离下一级还需 249 积分
纯净的硅(中级), 积分 951, 距离下一级还需 249 积分
学习了。。。。。。。。
分享铸就美好未来。。。
EEWORLD 官方微信
EE福利 唾手可得
Powered by

我要回帖

更多关于 开发人员能力等级 的文章

 

随机推荐