DSP基础知识集锦之5 数字信号处理的方方面面
[复制链接]
DSP基础知识集锦之5 数字信号处理的方方面面
数字信号处理器(DSP)主要针对代表连续信号的数字进行数学运算,以得到相应的处理结果。这种数学运算是以快速叶变换(FFT)为基础,对数字信号进行实时处理。近二十年来,由于集成电路技术的高速发展,使得用硬件来实现各种数字滤波和快速傅立叶变换成为可能,从而使DSP得到了极其迅速的发展和广泛的应用。在数字化的世界和互联网的时代,DSP变得越来越重要,可以说是无处不在。
DSP最基本的特征是:
1)能够在一个指令周期内实现一次或多次乘法累加(MAC)运算。所以,在DSP中集成了多个乘法累加运算单元,可以进行并行乘法累加运算。
2)能够在一个指令周期内完成对存储器的多次读取。所以,在DSP中集成了多个片内总线和多端口片内存储器。
3)为了加快处理器中的运算,在DSP中集成了多个地址产生单元,以支持循环寻址和位翻转寻址。
4)处理器中的运算大多是重复的运算,为了方便使用,大部分DSP都支持这种重复运算,而不用额外编写重复运算的指令。
5)大部分DSP都提供多个串行或并行I/O接口,以及特别I/O接口来处理特殊的数据,以降低成本和提高输出/输入性能。
虽然应用于不同领域的DSP有不同的型号,但其内部结构大同小异,都具有哈佛(Harvard)结构的特征。它包括处理器内核,指令缓冲器,数据存储器和程序存储器,I/O接口控制器,程序地址总线和程序数据总线,直接读取的地址总线和数据总线等单元,其中最核心的是处理器内核。它的性能好坏直接决定了DSP的性能和使用范围。Analog Device公司的TigerSHARC处理器内核就具有典型的哈佛结构特征。它于1998年10月问世,具有特大指令字组(VLIW)的结构,一个周期可执行四条32位指令,可以工作于多种数据宽度,支持定点和浮点两种格式, 支持两种单指令多重数据(SIMD)运算,一个周期可执行四条16x16位定点乘法,支持六种不同的数据:(8位,16位,32位,64位)定点、32位IEEE-754浮点和40位扩展精度浮点。有此处理器内核的ADSP-TSOxx可广泛应用于通信工业,如无线基站,VoN/VoP集线器,线缆调制解调器,xDSL,数据加密,3G无线等以及高性能信号处理市场如图像、CAT扫描、MRI、超声波、雷达和声呐等特别适合需要多处理器的领域。
比较箸名的处理器内核还有:
1)TI公司 的T320C2xLP是16位 定点DSP 内核。它有544x16位双读写RAM,可在一个指令周期进行读和写的运算,使得数据存储器带宽达到80个16位百万字/秒。
2)Infineon公司的Carmel是16位定点DSP内核,1998年上市。它有两组特大指令字组(VLIW),可以同时执行两条预先设定的指令组和用户自定义的可配置长指令组(CLIW),该指令组可有六条指令。它可应用于无线通信、xDSL、机顶盒和互联网等领域。
3)LSI Logic公司的ZSP DSP Core为软件工程师、系统设计师和ASIC开发人员提供了一种开发高性能可编程DSP的方法。它可以提供64K字的程序和数据存储器,支持片内指令和数据缓冲,于1998年问世。它采用基于16位定点的RISC超标量内核结构,支持双精度(32位)和单精度(16位)运算。ZSP Core有一条16位定点数据通路,而数据通路有16个通用寄存器组成,其中包括两个16位运算单元和一个乘法累加单元。它还有一个流水控制单元,负责提取指令和控制程序流程和两个地址产生单元和指令及数据单元。外围元件很容易和ZSP内核接口,从而构成复杂的系统。它在2.5V时工作在200MHz,可应用于通信设备如调制解调器、互联网网关和移动电话基站等。
4)Motorola和Lucent共同开发的StarCore SC140是16位定点VLIW DSP内核,可工作在300MHz,1999年4月推出。它是第一个低功耗高性能具有特大指令字组(VLIW)的结构的DSP内核。SC140有四条16位数据通路,每一条有一个组合的ALU/MAC位资料栏单元(BFU),每一个BFU包含40位柱式移位器。所有的数据通路是相同的,共享一组16个40位源和目的寄存器,可以在一个周期内进行16x16位的乘法或利用四条数据通路并行进行四次乘法。SC140的VLIW结构能并行执行六条指令。
SC140有两条32位地址总线和两条64位数据总线,用来传输数据。128位程序总线能在一个周期内检索八条16位指令。 SC140内核提供地址产生单元(AGU),但是不包括外围元件。Lucent 和Motorola公司在以SC140为内核的数字信号处理器MSC8101中集成了外围元件,包括通信处理模块(CPM)、Power PC总线接口、可编程存储器控制器、控制器、增强滤波器协处理器和16位并行主端口,功能十分强大。
如何选择数字信号处理器
与CPU不同,DSP种类如此众多。作为一个用户,如何选择数字信号处理器?根椐资料的介绍,有以下几条原则,综述如下:
1)算法格式 定点算法动态范围较小,如16位的定点算法,动态范围只有96dB,容易出现溢出问题,但是成本低,功耗低。所以大多数的数字信号处理器都是定点的,约占67%。浮点算法动态范围较大,如32位的浮点算法,动态范围有1536dB,处理速度大大高于定点的,总线宽度也比定点的宽,容易编程,但是成本较高,功耗也较大。浮点数字信号处理器大都用在高档产品上。
2)数据宽度 所有的浮点DSP都是32位宽度的,而定点DSP大多数是16位宽度的,也有24位的,如Motorola的DSP563xx系列;而Zoran 公司的ZR3800系列,则是20位的。数据宽度直接影响到DSP芯片的大小、封装管脚的数量和外围存储器的容量,因此也直接影响到DSP的成本。
3)速度 速度是选用DSP最重要的考虑因素。DSP的速度通常是指令周期的时间,也有指进行核心功能如FIR或 IIR滤波器的运算时间。有些DSP采用特大指令字组(VLIW)的结构,在一个周期内可执行多条指令。它和时钟的工作频率有密切关系。
4)存储器结构 存储器结构,包括总线结构对DSP的性能有很大的影响。一方面,在进行运算时如何读取数据和指令,不同的方法有不同的速度。在一个指令周期内读取一条指令和两条数据以便进行快速MAC运算。这种结构可以是多端口存储器、指令和数据分离存储器或指令缓冲器。另一方面,存储器结构也包括片内和片外支持的存储器的大小。大多数定点DSP瞄准嵌入式系统市场,因此它的存储器较小。而一些浮点DSP虽然片内存储器很小,但是需要很大外围的存储器,如TI公司的TMS320C30。
5)功耗 很多DSP用在手提式设备中,如手机、PDA、手提式声音播放机等。功耗是这些产品主要考虑的一个问题。很多处理器供应商降低工作电压,比如3.3V、2.5V、 1.8V, 同时增加电源电压管理功能,比如增加"睡眠模式,在不用时切断大部分电源和不用的外围设备,以降低能量消耗。
6)编程容易 DSP的应用对象主要是工程技术人员和工程师。早期的数字信号处理器使用汇编语言来编程,后来的产品可以用C语言来编写,但是要经过C编译器编译成汇编语言源程序,进行优化,以减少运算时间。数字信号处理器供应商一般都提供开发工具。但是不同公司的DSP产品在软件编程方面有很大不同。所以用户应该选用自己比较熟悉的开发工具。这些工具包括软件工具,如汇编语言程序、连接器、仿真器、调试器、编译器、代码库、实时操作系统等; 硬件工具如开发板、仿真器等。一般来讲,高级语言编译器较适用于浮点处理器。
7)性能价格比 成本在大量生产时也是一个重要的考虑因素。器件封装对芯片的成本也有影响,柵格阵列(PGA)封装比塑料封装PQFP和TQEP要贵。
8)是否支持多处理器 在要求运算速度特别快的地方,可以应用多个处理器并行工作。这时,各个处理器的内部连接可能是一个重要的问题。Analog Devices公司的ADSP-2106x提供特殊用途的硬件,有双向地址总线和数据总线,和六条双向总线相配合,很容易把多达六个处理器通过共同的外部总线连接成一个系统。
|