首先是DSP处理器的基本概念,可以参考下面两篇文章:
1、DSP是什么
http://dsp.blueidea.com/column/weekly/001/62.asp
2、浅谈数字信号处理器
http://dsp.blueidea.com/column/weekly/001/183.asp
然后是目前DSP处理器的类型
主要有两类,一类是通用DSP处理器芯片,比如TI的C6x,C5x系列,ADI的21xxx系列,TigerSHARC系列。一类是DSP IP核,比如LSI的ZSP400,Starcore的SC1400等。详细的列表及性能比较可以参考:
3、DSP处理器选型指南
http://www.bdti.com/pocket/pocket.htm
这里值得说明的是,目前市场上的通用DSP处理器芯片基本都是SOC,内部除了DSP处理器核,一般都会有片内的存储器以及DMA等IO协处理器,构成一个相对独立的系统,比如TI的C64,C67,ADI的ADSP21xxx系列和TS101,TS201系列。
然后介绍一下ADI的Blackfin系列和TI的OMAP和达芬奇系列,由于单纯功能的DSP芯片已经逐渐不能胜任嵌入式系统越来越多功能需求,比如在手机中,通话的处理需要DSP来完成,而控制手机中的操作系统,玩手机游戏等,显然光靠DSP是不够的,这就引发了一股DSP和GPP(通用处理器)的融合浪潮,前面说的三款DSP处理器和方案就是在这股浪潮下产生的。
DSP和GPP的融合主要有两种方法,一种是在一个SOC中两个处理器核共存,每个都有自己的指令集,相对独立,TI的OMAP和达芬奇系列就是这样类型的,其中OMAP是C55加ARM核面向低功耗,低成本,达芬奇系列是C64加ARM核,面向高性能。这种融合的方式好处是TI的C5x系列,C64系列,还有ARM核,都有大量的使用者,有很多原有的开发程序可以直接在上面使用,不需要重新开发,缺点是存在冗余的部分,两者耦合得不是很紧密。
另一种方法就是根据DSP和GPP的特性,推出一个全新的架构,全新的指令集,Blackfin就是这样的类型,它是ADI和Intel合作联合推出的,特点是性价比特别高,功耗低,做为一块SOC,除了有一个兼有DSP和GPP特点的处理器核,外部还有大量的接口,比如DMA,USB,PCI,UART等等,功能非常多,而价格很低畋阋说腂lackfin只卖几美元,所以特别适合消费电子,据说Blackfin占了ADI公司DSP销售额的80%,风头远远盖过了ADI的TigerSHRC系列,从这里也可以看出,不是高性能的才叫DSP,也不是高性能的DSP才有市场,才有用。
然后再说说DSP处理器的市场份额吧,总体来说,目前做通用DSP处理器的公司越来越少了,现在能看到的基本就是TI,ADI,飞思卡尔和Ageer,从市场占有率来说,排名基本是TI,飞思卡尔,Ageer和ADI,不过大家可以去看看这四个公司的DSP产品线,可以与TI抗衡的实际上只有ADI,TI做出了世界上最快的定点DSP,而ADI做除了世界上性能最高的浮点DSP,TI有OMAP平台,达芬奇平台,ADI有Blackfin系列,基本TI的每一款DSP产品ADI都可以有产品与之抗衡,所以真正的通用DSP处理器巨头我心目中只有两家,那就是TI和ADI,飞思卡尔和Ageer的市场份额大我觉得主要是因为他们有相应的应用领域(个人猜想,没有调查),就比如联想的安全芯片,可能设计水平不一定是国内同类产品中第一,但联想把它用到所有自己的电脑上,那算起来市场份额绝对是全国第一。
最后我说说我对DSP处理器设计的认识和观点,有不对的地方请高手指正,一起探讨。
1、不是所有商用的DSP处理器芯片都需要定制的,TI的C2x系列中有全综合出来的,也不是所有的DSP处理器的datapath都需要定制的,ADI的某款高性能浮点DSP的运算部件是综合出来的(具体型号不方便说)。
2、衡量一块DSP处理器的性能,不应该看MIPS(每秒百万指令数),也不应该单单看MOPS(每秒百万操作次数),MAC/s(每秒乘累加数)或者MFLOPS(每秒百万浮点操作数),而应该看整个结构的均衡性,即DSP的运算能力和数据传入传出吞吐能力的比率达到1:1,因为如果你运算能力再强,数据卡在喉咙眼进不去或屁股门出不来,也是白搭(比喻有点不雅:P)。所以主频不是衡量DSP性能的唯一标准。
3、设计DSP没有有些人想象中的那么复杂,一定需要全定制,也有不需要定制的DSP,同时设计DSP也没有某些人想像中的那么简单,就是乘法器加特殊的寻址部件,现在的高性能DSP已经大量运用了许多现代通用处理器的设计技术,同时对嵌入式片内存储的研究和设计已经到了登峰造极的地步,足以使很多通用处理器望尘。
4、想起上体系结构<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />时老师说过的一句话,设计一个处理器芯片,如果你成功了99%,如果有1%是失败的,那你整个芯片就是失败的。特别是在国内的环境下,你真正做到大的芯片项目,特别是高性能的处理器芯片,有很多事情是根本预料不到的,而很多并不单单是设计上的问题,从设计,验证,到流片,封装,老化考核,高温低温考核,到最后量产,那个环节上出了小小问题,都会使工期的时间大大拖后。有些人看不起国内设计处理器的,比如龙芯等,觉得做一个处理器也就那么回事,我觉得他们根本就是单纯的从设计角度考虑,认为写出RTL处理器就出来了,更有人大嚷开源开源,好像做芯片就和做软件一样,有了源代码就行了,唉。。。
路还是要一点点的走下去,其实设计处理器的意义不在于处理器本身,而在于,有了设计高性能处理器的方法和经验,可以灵活的运用于别的高性能电路设计中。
dongbei06_409353400 2015-2-16 21:17
dongbei06_409353400 2015-2-16 21:14
用户377235 2015-2-16 09:17
Hello, 对于用冗余还是诊断,主要是要看整个系统架构以及你的系统, 比如说你的系统是fail-safe的系统,那么诊断是必须的; 如果是fail-operation的系统, 那么在系统层面看你用诊断其实没有任何意义。 当然还有fail-tolerance等系统, case by case.
dongbei06_409353400 2015-2-9 14:42
用户1318772 2015-2-9 10:52
dongbei06_409353400 2015-1-31 18:38
用户439609 2015-1-30 09:55
用户88449 2007-7-9 22:29
好帖啊
尤其是
用户1053025 2006-9-14 10:11
期待你的个人风采哦