Menu Close

什么是 DSP ?

DSP是(digital signal processor)的简称,是一种专门用来实现信号处理算法的微处理器芯片。根据使用方法的不同,DSP可以分为专用DSP和可编程DSP,专用DSP只能用来实现某种特定的数字信号处理功能,如数字滤波、FFT等。专用DSP不需编程,使用方便,处理速度快,但是灵活性差。可编程DSP则像GPP(General Purpose Processor,如Pentium)一样有完整的指令系统,通过软件实现各种功能。

DSP的发展

DSP的发展历史大致可以分成四个阶段:萌芽阶段、成长阶段、成熟阶段、突破阶段。

萌芽阶段:1982年以前

在这段时期里为解决Von Neumann结构在进行数字信号处理时总线和存储器之间的瓶颈效应,许多公司投入大量人力和物力开展了很多探索性的工作,研制出了一些DSP的雏形,如AMI的S2811、Intel的2920、AT&T的DSP-1和NEC的uPD7720。但这些产品的运算速度都太慢,而且开发工具严重不足,无法进行大规模的开发工作,还不能称作真正意义上的DSP。第一片DSP是1982年TI公司出品的TMS320C10,它是—个16位的定点DSP,采用了哈佛(Harvard)结构,有一个乘加器和一个累加器。TMS320C10完成—次乘加操作需要390ns,即在一秒钟的时间内可以完成250万次左右的乘加运算。或许正是因为生产出了第一个DSP,TI公司在此后的三十几年中一直是DSP界的领军人物。

成长阶段:1982-1987年

这段时间内各公司相继研制出了自己的DDSP并不断地改进。如1985年,TI推出了TMS320C20,它具备单指令循环的硬件支持,寻址空间达到64K字,有专门的地址寄存器,一次乘加运算只需耗时200ns。1987年,Motorola公司推山了DSP56001,采用24位的数据和指令,有专门的地址寄存器,可以循环寻址,累加器有保护位,一坎乘加运算只需耗时75ns。此外,在这段时期中还有一些代表产品,如AT&T的DSPl6A、AD的ADSP-2100,TI的TMS320C50。

成熟阶段:1987-1997年

在这个阶段里各公司不断借鉴相互的优点,并完善自身的设计,推出了特点分明的产品,如TI的TMS320C54系列、AD的ADSP2100系列、Lucent(前身为AT&T)的DSPl600系列和Motorola的DSP56000系列。它们在供电上都支持3.3v,片上的存储器也较大,都有JTAG模块支持用户在线调试。另外,TI等公司还专门提供DSP的内核,为一些专用集成电路(ASIC)的开发提供了空间。此外,在成熟阶段还首次出现了多处理核的DSP,如TI的TMS320C80和Motorola的MC68356等,虽然它们的推出在商业上并不算成功,但却指明了一个有潜力的发展方向。

突破阶段:1997年直至现在

这段时间里DSP的发展非常迅速,各公司相继建立了自己从定点到浮点,从低端到高端,从通用到专用完整的产品系列,并且在DSP设计上有了大的飞跃,推出了一些性能突出的产品。很多公司相继采用先进技术研制了计算性能很高的DSP,如AD的SHARC系列、TI的TMS320C6000系列、Motorola和Agere(前身为Lucent微电子)的StarPro等,每秒钟可以完成1G条以上的指令,计算速度惊人。TI公司还研制出功耗最小的DSP TMS320C55系列,为便携式设备提供了一个明智的选择。

回顾DSP发展的二十几年,也正是电子、信息和微电于技术快速发展的二十年,正是后者为DSP提供了必要的技术支持和应用的广阔空间,使得DSP及其相关的技术日益受到人们的重视。

DSP的应用

DSP的产生主要是为了满足通信、雷达、数字电视等领域对实时数字信号处理的需要。典型的数字信号处理算法包括数字滤波、FFT等。这些算法的共同特点是要进行密集的数学计算,因此DSP在体系结构上采取了一系列措施,使之在数学计算方面具有特别突出的性能;而在其它方面,例如文字处理、数据库管理等则不如GPP。除了密集的数学计算之外,DSP应用的另一个突出特点是实时性。在许多应用领域,如通信中的调制、解调、雷达中信号检测等等,数据是以帧为单位更新的,每她的长度一般为微秒到毫秒量级,DSP必须在这段时间之内完成处理并输出结果,这就是所谓实时处理。显然,实时处理要求处理器具有极高的处理速度,能够对外部事件迅速做出反应(能够及时迅速地响应中断),并且具有强大的IO吞吐能力。

面对DSP巨大的市场和广阔的发展前景,世界上最大的几个半导体公司都对此投入巨资、开展竞争。如TI、AD、Agere、Motorola、Siemens、Semiconductor等公司都在全力开发和生产DSP器件,不同公司DSP的侧重点都有所不同。

DSP的结构特点

1.MAC指令,硬件乘法器和累加器。

2.存储器结构

GPP一般采用Von Neumann结构,如图所示,系统只有一套总线(包括数据总线和地址总线)和单一存储器,无论是数据还是指令都要经过同样的数据通道进入处理器内核。

哈佛结构将指令存储空间和数据存储空间分离开,各自拥有独立的总线,这就使取指令和访问数据可以同时进行,从而缓解了存储器的瓶颈效应。

3.寻址方式。在进行数字信号处理时,处理器往往要同时维护多个数据缓冲区,而且每个缓冲区的指针都要频繁移动。 GPP虽然有基址和变址寄存器,但是这些寄存器不能自动更新;而且数量也有限,每个寄存器往往要管理多个缓冲区。DSP用特殊的硬件来寻址数据存储器,有大量寄存器可以用作数据指针(如ADSP21060有16个),指针的更新可以和其他操作并行执行,所以不占用处理时间。DSP还支持一些特殊的寻址方式,如用来实现环形缓冲区的环形寻址,实现FFT变换所必需的逆序寻址等。

4.零耗循环(zero overhead loop)

GPP每执行一次循环都要用软件判断循环结束条件是否满足,更新循环计数器,还要进行条件转移。这些例行操作要消耗几个周期的时间,这种消耗对于短循环是相当可观的。与GPP不同,DSP可以用硬件实现更新计数器等例行操作,不用额外消耗任何时间,所以是一种零耗循环。由于数字信号处理程序百分之九十的执行时间是在循环中度过,所以零耗循环对提高程序效率是非常重要的。

5. 程序执行时间可预测

实时处理不仅要求处理器必须具有极高的计算速度,而且还要求程序的执行时间要容易预测,否则开发人员无法判断自己的系统是否满足实时要求。高性能GPP普遍采用了CACHE和动态分支预测技术,这些动态特性虽然能够从统计角度提高处理速度,但也使处时间很难精确预测,因为当前指令的执行时间要受到程序运行的历史过程的影响。尽管从理论上说,程序员可以推测出最坏情况下的执行时间,但是由于各种动态特性的相互影响,最坏执行时间可能远远超过程序的典型执行时间,这将导致系统设计过于保守,严重浪费资源。与GPP不同,DSP的动态特性较少,而且还通过设置MAX(求最大值)、MIN(求最小值)、CLIP时,DSP生产商还提供了能够精确模拟每—条指令执行状态的软件仿真器Simulator。使设计人员在硬件系统完成之前就能够调试程序并验证处理时间。值得注意的是,TI的最新产品TMS320C6011设置了可选择的两级CACHE,而AD将要推出的TigerrSHARC采用了动态分支预测技术。这是否意味着DSP正在丧失程序执行时间可预测的特点,或者正在猴备采取其他措施(如提供工具软件)来弥补因芯片结构日趋复杂对预测时间造成的不利影响,我们将拭目以待。

6.外围设备

GPP硬件系统(如PC机)的开发一般由专业公司承担,用户只从事软件开发。而DSP工程师往往要自己设计硬件平台,而且许多DSP应用系统特别是嵌入式系统对体积、功耗有严格的限制,所以DSP必须具备开发简便的特点。多数DSP支持IEEE1149.1标准,用户可以通过JTAG端口对DSP进行在线实时仿真。另外DSP体现了片上系统(System on chip)的设计思想,在片上集成了DMA、中断控制、串行通信口、上位机接口、定时器等外围设备,有的DSP还包含AD和DA转换器。所以用户通常只需要外加很少的器件就可以构成自己的DSP系统。

DSP的组成(以ADSP-21xx为例)

DSP芯片能够以很高的速度实现各种DSP算法,在其内部包括以下功能单元。

计算单元——每个处理器包括3个独立的、功能完备的计算单元:算术/逻辑单元(ALU)、乘法/累加器(MAC)和桶状移位器。

计算单元直接处理16位数据并对多精度计算提供硬件支持。

数据地址产生器和程序控制器——两个专用的地址产生器和—个程序控制器提供对片内、片外存储器的寻址。程序掉制器支持单周期的条件分支和无开销循环。双数据地址生器使处理器能同时产生两个操作数的地址。数据地址产生器和程序控制器使计算单元保持连续工作状态,使流量达到最大化。

存储器——采用修改的哈佛结构,其中数据存储器存放数据,程序存储器既可存放指令又可存放数据。所有的处理器都有片内RAM,该片内RAM构成程序存储空间和数据存储空间的一部分。片内存储器的速度很高,处理器可以在一个周期读取两个操作数(一个来自数据存储器,另一个来自程序存储器)和一条指令(来自程序存储器)。

串口——串口(SPORT)提供带有硬件数据压扩部件的完整的串行接口。支持按μ律和A律压缩的扩展。SPORT可以容易地和多种流行的串行设备直接接口。每个SPORT能产生一个可编程的内部时钟或接收—个外部时钟。SPORT有多通道选项。

定时器一一一个带有8位预分频器的定时器/计数器可产生周期性的中断。

主机接口——主机接口(HIP)有16根数据引脚和11根控制引脚,可以和主机处理器直接连接,无须连接逻辑。HIP非常灵活,易于和各种主机处理器接口。如:Motorola 6800、Intel8051或其他ADSP-21xx系列处理器可以容易地接到HIP上。

DMA接口——内部DMA接口(IDMA)和字节DMA接口(BDMA)可对内部存储器进行有效的数据传送。IDMA接口具有16位多路复用的地址和数据总线,支持24位宽的程序存储器。IDMA接口是完全异步的,在DSP全速运行时,可以写入数据。字节DMA接口允许引导装载并且存储程序指令和数据。

模拟接口——DSP片内集成了模拟和数字信号混合处理电路。该电路由模数转换器、数模转换器、模拟和数字滤波器、处理器核的并行接口等组成。转换器采用Σ-Δ技术获取样本。