您现在正在浏览:首页 > 职教文章 > 职教论文 > 如何选用数字信号处理器

如何选用数字信号处理器

日期: 2010-3-26 19:14:21 浏览: 94 来源: 学海网收集整理 作者: 未知

随着大规模集成电路和计算机技术的飞速发展,数字信号处理(DSP)技术已经渗透到几乎各个领域,包括计算机语音学、计算机视觉、计算机多媒体技术、超文本数据传输等各个领域,而用于进行数字信号处理的专用DSP 芯片的性能价格比也在惊人地增加。目前DSP的主要生产厂家有Analog Devices, Inc.公司、Texas Instruments公司、AT&T、Motorala公司、NEC 公司等,而笔者认为在诸多DSP 生产厂家中,TI公司和ADI公司是比较突出的,他们将以其产品的独特性而成为DSP 芯片市场的主要领导者之一。
从事DSP 研究和设计的工程师在工作中面临的主要问题就是如何选用DSP 芯片。这既需要对具体产品规格有清楚的了解,又需要对各种DSP 芯片的性能和特长有比较全面的了解,才能选用适合于特定任务的芯片。在很多情况下,DSP 处理器的特性主要由其MIPS 速度来描述,但由于一种DSP器件的指令并不一定等同于另一种DSP 器件,因此仅考虑MIPS 常常会导致不正确的结论。与DSP 器件能力有关的其它一些结构及其性能要求,如运算、寻址、程序定序和I/O吞吐能力等,往往会更重要。下面将从几个方面介绍选用DSP 芯片必须注意的几个因素,希望能对读者选用芯片有一定的帮助。
一、DSP 的算法特点和硬件要求
数字信号处理的算法有这样一些特点:(1)信号处理以算术运算为主。比如数字滤波器以Z变换为基础,其差分方程完全可以用算术运算来实现;又如FFT算法中除指数运算可以用速查表外,其余运算全为乘法和加法。(2)信号处理算法运算量大,要求速度快。不论是一维的语音信号,还是二维的图象信号,一般地算法的运算量都很大,且算法的实现都必须实时。(3)信号处理算法常具有某些特定模式。比较典型的有卷积运算中的乘积和以及数字滤波器中的连续递推移位。(4)信号处理要求专门的接口。一个非常重要的接口是把模拟信号与数字信号相互转换的ADC 和DAC,另外大量的数据交换需要有高速的数据吞吐能力。数字信号处理的特点要求DSP 芯片必须是专门设计的。DSP 芯片的设计必须满足数字信号处理的这样一些要求:(1)快速灵活的运算:单周期;允许任意计算次序。
(2)乘/累加的动态扩展范围:保证卷积运算(乘积和)不发生中间溢出。(3)单周期内取两个操作数:保证快速乘积和运算。(4)硬件循环缓冲区:由硬件处理地址指针的跳转和回绕(取模寻址)。(5)无额外开销的循环和转移:条件判断与跳转仅占一个周期。ADI的ADSP-21xx 系列和TI的TMS320xx 系列无疑正是按照这样的要求设计的,它们都是定点的DSP 处理器芯片中的骄骄者,但两者之间也有一些差异。下面介绍一下ADSP-21xx 芯片。
二、ADSP-21xx 系列处理器的结构特点
ADI公司的ADSP-21xx 系列处理器(代表器件是ADSP-2101)是基于修改的Harvard 结构的16bit 定点系列处理器,这样的结构可以将操作数的数据从程序存储器和数据存储器送到运算部分。
1. 汇编语言的所有指令都是单字、单周期指令,并使用代数语法进行书写,可读性强。比如MR=MX0*MY0(SS)指令,它把取自寄存器MX0 和MY0 的两个有符号数乘起来后存到MR 寄存器上,该指令看起来直观、方便。
2. 汇编语言中有大量的(单周期)并行指令,这些并行指令从功能上可分为两部分,一部分进行计算,另一部分进行操作数存取。处理器采用修改的Harvard 结构,数据和程序存储器的数据和地址总线(共4条)是分离的,保证可同时从程序和数据存储器中各取一个数据。另外“操作数读操作发生在指令周期开始时、写操作发生在周期结束时”的读写规则保证了在并行指令中一个操作的源可以是另一个操作的目的,节省指令条数。一个典型的并行指令的例子是,MR=MR+MX0*MY0(SS),MX0=DM(I0,M1), MY0=PM(I4, M5),该指令把乘累加及取两个操作数集中在一个周期内完成,它使得常见的乘积和运算只用一个单指令循环体就可以实现,可谓高效。
3. 乘/累加的动态扩展范围大,两个16 位的数据相乘,其结果保存在40 位宽的MR 寄存器中,该寄存器既可以做累加用,又可以分为三个小存储器单独使用。这么大的动态范围保证在一定循环次数的乘累加运算不至于发生中间溢出。
4. 单周期的条件指令是另一个有用的指令形式,该指令允许根据上次运算或测试的结果决定是否进行运算或跳转,这种形式保证了条件判断无需额外的周期开销。不仅如此,循环启动指令(仅占一个周期)一旦执行,循环的主要周期开销就在循环体的指令上,而条件判断和分支跳转都由硬件实现,不需任何额外的周期开销。
5. 数据存取指令具有很大的灵活性。它可以根据需要在对一个操作数进行完存取之后自动修改地址指针,修改步长可由程序任意指定。如果需要,硬件可以在地址指针超过循环缓冲区的尾部时自动把指针回绕到缓冲区的头部,这就是“硬件循环缓冲区”的取模寻址。比如,若指针修改寄存器M1=3, 长度寄存器L0=16,地址指针寄存器I0=14,那么对DM(I0, M1)存取之后,I0 将自动变为(14+3) mod 16=1。
6. 另一个特别有用的是串行口数据传输的自动缓冲区。如果允许了这个功能,那么只有在整个缓冲区(大小是可编程的)的接收或发送全部完成时才会发生串行口中断。这节约了一些不必要的额外开销。
7. 另外还有一些特别有用的功能,如乘法可以指定操作数为有符号数、无符号数或一个是有符号数一个是无符号数;可以自动产生FFT按位逆序地址;中断状态的自动保存和恢复;单周期的中断现场保存和恢复;串行口字长可编程为3~16 位;程序可从EPROM 上电自动加载;…等等,无不使DSP 算法的效率大为提高。在30ns指令周期的ADSP-2181处理器上,1024点的复数FFT运算的时间只有1.07ms。
三、结论
从上面的介绍中,我们向读者介绍了运算能力、数据寻址能力、程序定序能力和I/O操作能力是必须首先考虑的因素,它们和MIPS 指标同样重要。我们在选用时必须注意到这些因素。两种不同厂家的具有相同MIPS 指标的DSP 芯片,往往在进行一些DSP 运算时表现出的性能差异很大。还有一个非常重要的因素是考虑一下DSP 厂家是否提供了很好的软件模拟和硬件仿真工具。不要忽视了这些因素,好的开发工具往往能大大缩短开发周期。在这方面,ADI和TI公司都做得不错,有的是厂家提供的,有的是第三方开发商提供开发工具的。

返回顶部