定点dsp与浮点dsp的比较

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

定点DSP与浮点DSP的比较

定点运算DSP在应用中已取得了极大的成功,而且仍然是DSP应用的主体。然而,随着对DSP处理速度与精度、存储器容量、编程的灵活性和方便性要求的不断提高、自80年代中后期以来,各DSP生产厂家陆续推出了各自的32bit浮点运算DSP。

和定点运算DSP相比,浮点运算DSP具有许多优越性:

浮点运算DSP比定点运算DSP的动态范围要大很多。定点DSP的字长每增加1bit,动态范围扩大6dB。16bit字长的动态范围为96dB。程序员必须时刻关注溢出的发生。例如,在作图像处理时,图像作旋转、移动等,就很容易产生溢出。这时,要么不断地移位定标,要么作截尾。前者要耗费大量的程序空间和执行时间,后者则很快带来图像质量的劣化。总之,是使整个系统的性能下降。在处理低信噪比信号的场合,例如进行语音识别、雷达和声纳信号处理时,也会发生类似的问题。而32bit浮点运算DSP的动态范围可以作到1536dB,这不仅大大扩大了动态范围,提高了运算精度,还大大节省了运算时间和存储空间,因为大大减少了定标,移位和溢出检查。

由于浮点DSP的浮点运算用硬件来实现,可以在单周期内完成,因而其处理速度大大高于定点DSP。这一优点在实现高精度复杂算法时尤为突出,为复杂算法的实时处理提供了保证。

32bit浮点DSP的总线宽度较定点DSP宽得多,因而寻址空间也要大得多。这一方面为大型复杂算法提供了可能、因为省的DSP目标子程序已使用到几十MB存储器或更多;另一方面也为高级语言编译器、DSP操作系统等高级工具软件的应用提供了条件。

DSP的进一步发展,必然是多处理器的应用。新型的浮点DSP已开始在通信口的设置和强化、资源共享等方面有所响应。

DSP学习进阶

学习TI的各种DSP,本着循序渐进的原则,可以分为多个层次。根据我多年开发DSP的经验,在这里总结一下各个层次的进阶:

1、DSP2000(除了2812):

进阶:标准C -> C和汇编混合编程

说明:把DSP2000当作单片机来玩就可以了,非常简单。

2、DSP5000(包括DSP2812)

主要:标准C -> C和汇编混合编程 -> DSP/BIOS -> RF3

说明:DSP5000是个中等产品,性能不高不低,基本上也没有开发难度。

3、DSP6000

主要:标准C -> C和汇编混合编程 -> DSP/BIOS -> XDAIS -> RF5

说明:DSP6000的开发难度明显增大,不论是硬件还是软件。还分为两种档次:(1)DSP62XX & DSP67XX:开发这两类DSP,硬件上会初步遇到信号完整性问题,软件方面来说,DSP/BIOS是必需的,复杂的程序还需要XDAIS和RF3、R F5的知识。

(2)DSP64XX:开发难度比较大,硬件方面需要重点考虑系统合理架构问题,信号完整性问题;软件方面,需要综合运用各种比较先进、专业的知识,例如用DSP/BIOS作为RTOS,用RF5作为程序架构,尽量采用MiniDriver来编写底层驱动程序等。如果深入编程,还会遇到令人困惑的Cache冲突问题(虽然TI最近专门针对这个难题升级了CCS),等等。

另外还有一些辅助知识,根据自己需要可以选学:

1、GEL:推荐所有阶段的开发者都要学;

2、RTDX:一般来说没有必要学习;

3、CCS中的C++面向对象编程技术:不建议采用;

4、CSL:对于DSP6000以上的开发,必须的;

5、各种DSP库函数:对于复杂算法程序,建议学习。

相关文档
最新文档