• |
  • 注册
  • |
  • 手机云汉
    扫码关注云汉官方微信

    扫码关注云汉官方微信

    扫码关注云汉小程序

    扫码关注云汉小程序

DSP已美人迟暮,FPGA未来的崛起才是王道?

来源:我爱方案网
时间:2013-11-29

分享至:

【导读】DSP技术似乎有种慢慢淡出市场的感觉,Freesacle、ADI、NXP早就停掉了新技术发展,而当前从大的方面说只剩下TI一家扛着Digital Signal Processor的大旗。因为ARM已经迅速的占领了市场,尤其是cortex-A9双核、A15四核系列性能已经是逆天了。对于FPGA,Xilinx和Altera两大公司也不示弱,Xilinx推出了基于ARM cortex-A9的双核Zynq处理器,标志着FPGA已进入嵌入式行业。

关于FPGA和DSP未来的命运,基本上大多数人的意思就是二者都有各自擅长的领域,DSP注重于算法和数据处理,而FPGA注重于时序和逻辑。这里笔者在网上做了一个简单的抽样调查,大概9.6%的网友明确观点支持FPGA会取代DSP;不到1%的网友认为DSP以后发展会超过FPGA;有6.7%的网友认为二者不是竞争关系,以后会慢慢走向合作。基于以上的三种观点,这里有专业的人士做了一个分析,只基于他个人的观点。


对于DSP ,有两个解释,个Digital Signal Processing,是数字信号处理,是门学科技术,简单的说是讲现实世界中的模拟信号量转换为数字信号量然后进行分析、离散变换、调制解调等等方面的数字运算。其有别于简单的加减乘数等四则运算;第二个解释就是Digital Signal Processor, 数字信号处理器 ,简单的说就是嵌入了可以快速处理数字信号分析、离散变换、调制解调等方面的一种特殊的微处理器。
从解释上可以看出,DSP芯片就是一颗加入了数字信号处理功能的微处理器芯片。
那么ARM、和Intel的芯片也是微处理器芯片,大家其实工作都是进行运算,那么不带数字信号处理功能的微处理器和带该功能的处理器有什么区别呢?
DSP处理器有一个指标,就是“乘法和累加运算”,就是一个32位数乘上另一个32位数其积再加一个32位数,这个运算过程要在一两个指令周期内完成。换了ARM和Intel的微处理器,是不可能在一两个指令周期完成的,它们乘法就要跑好几个指令周期了。而DSP芯片自带了一个MAC模块,主频相同情况下,可以比ARM和INTEL快N倍的计算出来。类似的还有快速傅里叶变换功能,这种数学运算在没有DSP功能的芯片中,往往要算好长时间才能出结果。
那么你会说了,那我ARM和Intel的芯片业嵌入这种模块就行了啊。是的,可以嵌。但是,一旦嵌入这种芯片,那么ARM芯片也可以叫做DSP芯片了。
所以,DSP只是一种技术,一种嵌了该技术的芯片,谁都可以生产。其实有些ARM芯片内部就嵌入了DSP功能,比如很多高通的一系列用于手机上的ARM主控芯片就自带DSP功能。
而Intel自身发展是做计算领域的主控,在工业航天医疗等嵌入式领域才用得多的数字信号处理他们并不怎么涉及,所以他们的东西基本不会嵌入DSP模块。
Microchip为了避免和TI的C2000系列DSP直接竞争,他们把旗下的dsPIC系列DSP芯片叫做DSC,其实还是DSP芯片,而且他们一直在推出下新品。还有,飞思卡尔、ADI、NXP他们还都有生产DSP,只是他们争不过TI的专用DSP。主要一点还是发现争不过FPGA芯片。
这里又引出了FPGA这个技术,说到这个,或许才真的是DSP的真正敌人。目前做FPGA芯片的大厂有Altera、Xilinx等。他们不属于Intel公司,也不生产ARM芯片,他们只专注于FPGA芯片。
我们知道,微处理器芯片其实是一堆数字电路大规模超高密度集成在芯片中,其小单元其实就是 晶体管 ,晶体管集成一个个门电路。门电路通过一系列排列组合形成了芯片内部CPU、存储单元。这都是出厂前固化好的。
那我能否修改一下CPU 模块的某个门电路,让它有别的用途呢?已经出厂就固化的没法改,但现在有了FPGA,你可以用程序编一个你自己发明的CPU内核出来,嵌到FPGA芯片中去,那么你想加入DSP有的MAC模块等都可以,如果你觉得一个CPU内核不过瘾,还可以再加一个内核进去(前提是FPGA芯片容量和资源够大,当然这芯片就贵了)。
所以,现在飞思卡尔、ADI等看到FPGA芯片如此强势,工业级的DSP成本又高,卖的价格跟FPGA差不多,价格比FPGA低点但又争不过TI的DSP市场。所以没办法,只好慢慢退出了。现在TI也是靠以前的老客户死扛着。万一哪天,高端的FPGA降到跟他们差不多的价格,他们也要退出了。
当然FPGA的缺点除了自身成本高以外,如果要嵌入ARM、DSP核的话,这些核也更是要花钱的。同时就是FPGA的HDL开发难度要远大于DSP的C,特别是在典型的图像处理算法上,这也在一定程度上限制了FPGA的发展。虽然现在Xilinx的Vivado支持high level synthesis,把C转成HDL,但是,这也是一个很困难的问题。这也不是一个明智的选择。

在某些工程师看来,作为一个带有专用计算单元的处理器。DSP是为了满足专用市场做的一种带许多数学计算功能的处理器。比如哈弗结构,比如带SIMD、VLIW技术的计算单元,曾经让DSP在专用市场很多。而TI DSP的优势就是低功耗、高运算性能、成熟稳定,再加上明显的价格优势。
从架构来说,TI固守的哈弗结构近十年没大的改动,而arm、intel推陈出新的速度还是有目共睹的。看两个小例子,intel的分支预测TI家很多;再比如TI的二级缓存、片内片外还需要用户来管理,cache miss penalty也相当高,而intel高超的缓存技术让你基本感觉不到片内片外的区别。
再看运算单元,现在arm有neon,intel有sse、avx、乱序执行,还有专用图像计算的gpp;再加上FPGA。这些产品计算单元都已经很强悍了,所以说DSP的数学计算性能已经不能算是了。比如DSP里两个4字节整型做乘加运算,TI的C674x需要4个时钟周期,intel的sse3处理16个字节的乘加运算也只需要4个周期;
而在复杂算法领域,比如图像处理、模式识别,DSP是真的不够用了,跑个boosting都吃力的要死,压缩感知算法也就预研预研,终绝大部分还是跑在intel、amd平台。
单算法,可选的处理器太多,所以重要的就是价格。我看好arm,而fpga没有价格优势。当然现在c2000现在还是有很多拥趸的,但是已经被别的处理器吃掉不少市场了。
以上是以计算性能为核心介绍的,没有涉及到功耗。而在同样的计算量,耗时相近的情况下,DSP的功耗控制是秀的,ARM、atom都不如DSP功耗低(asic可能也很好,但是不算通用处理器)。这也是为什么在嵌入式复杂算法市场,还是DSP为主流。
而就陈工看来,DSP的计算优势并不在于普通四则运算上。就拿快速傅里叶变换FFT来说,同频率下,其他任何不带DSP内核的微处理器的FFT都要逊色于DSP。我们做DSP或者嵌入式其他的算法,都是根据《自动控制原理》或者《信号系统》,而不是根据《数据结构》。
他认为DSP做boosting不是一个明智的选择,DSP对频域方面的运算能力可以设计一个实时声音过滤器(将嘈杂环境中的声音全部通过麦克风传到AD电路上,后通过DSP运算,把其中某个人的声音摘出来,并通过喇叭实时放出来某人的声音。这样的数字滤波器可以做到比手机还小)。在TI DSP供货的工业控制、航天领域,多数的DSP应用上跟计算机算法技术没啥关系。
而说到DSP的低功耗,当然DSP做滤波、音频处理等方面的时候,没用到DSP功能把(只是把它们当一个单片机那样来使用),这样功耗是很低的。但如果用DSP做SPWM或数字滤波器什么的时候,功耗就大起来。具体对比数值我已经忘了,以前做矿用电机控制的时候对比过用ARM控制的功耗。(但好像Microchip的DSP芯片在做滤波时候功耗更低)。
其实,16bit/32bit的DSP芯片(或是其他32位MCU/ARM嵌入DSP功能的芯片)在长期发展中一直和各种单片机、ARM、PowerPC、X86等共存,并且不仅仅是TI,其他很多厂家都专门生产或者嵌入DSP模块(比如Microchip的dsPIC系列DSP芯片,就一直不断出新品)。这就说明DSP拥有着其他各种架构处理器都不拥有的信号处理能力。
综合看下来,FPGA才是未来的大杀器,大家怎么看待?当然,整个讨论只是一家之言,希望大家能够理性看待整个讨论。

网友经典回复:

这世界真是疯了,貌似有人连FPGA原理是什么都不知道就开始来学习FPGA了。
DSP就是一个指令比较独特的处理器。它虽然是通用处理器,但是实际上不怎么“通用”。技术很牛的人可以用DSP做一台电脑出来跑windows,而实际上真正这么干的肯定是蠢材。用DSP做信号处理,比其他种类的处理器要厉害;用DSP做信号处理之外的事情,却并不见长。而且信号处理的代码一般需要对算法很精通的人才能真正写好。数据结构里面的时间复杂度和空间复杂度在这里是一把很严酷的尺子。
FPGA只不过披着软件的外衣,实际上是硬件。FPGA内部有两层相对独立的电路。使用者“编码->编译”后生成一个映像,这个映像作用于层电路。这层电路之际上就是一个0,1的开关矩阵,这个开关矩阵用来控制第二层工作电路,将第二层工作电路配置成一个相应的处理器。理论上FPGA可以配置成任何需要的处理器,而实际上为了尽量少出bug,FPGA开发都使用已经开发好的“库文件”,也就是把人家能稳定工作的电路图拿过来。因此,对大多数FPGA开发者来说,FPGA内部有几个核基本上只能从库文件里面选——除非你有能力自己设计核心内部的电路和核间总线——ram和rom也是用宏来配置,自己只需要改改外部的专用电路和接线方式等等。甚至外部的专用电路都有库文件,搭个积木就完事了。玩FPGA真正挣钱的人是做积木的人,你原创几个积木并且能申请专利,迫使人家给你交专利费,那你这辈子可以衣食无忧了。

标签 晶体管 数字信号处理器 芯片代购 小批量芯片代购 ICKEY代购网 ICKEY IC代购

更多新闻