DSP芯片,也称数字信号处理器,由于采用特殊的软硬件结构,是一种特别适合于进行数 字信号处理运算的微处理器,其主要应用是实时快速地实现各种数字信号处理算法。根 据数字信号处理的要求,DSP芯片一般具有如下一些主要特征[2]:
在一个指令周期内可完成一次乘法和一次加法;
程序和数据空间分开,可以同时访问指令和数据;
片内的快速RAM通常可以通过独立的数据总线在两块中同时访问;
具有低开销或无开销的循环和跳转硬件支持;
具有在单周期内操作的多个硬件地址产生器;
可以并行执行多个操作;
支持流水线操作,使取指、译码和执行等操作可以重叠执行。
以下是目前常用的DSP芯片的主要性能指标列表[6]:
另外,TI公司在原来已被人们熟知的TMS320C1X、TMS320C25、TMS320C3X/4X、TMS320C5 X、TMS320C8X的基础上发展了三种新的DSP系列,它们是:TMS320C2000、TMS320C5000、TMS320C6000系列,成为当前和未来相当长时期内TI DSP的主流产品。其中,TMS320C60 00系列的速度已超过1G flops。
1.1、DSP芯片的基本结构
为了快速地实现数字信号处理运算,DSP芯片一般都采用特殊的软硬件结构。我们以TMX 320C3x系列芯片为例介绍DSP芯片的基本结构。TMX320C3x系列芯片的基本结构包括[2]: (1)哈佛结构;(2)流水线操作;(3)专用的硬件乘法器;(4)特殊的DSP指令。这 特点使得TMX320C3x系列芯片可以实现快速的DSP运算,并使大部分DSP操作指令在一个 周期内完成。下面分别介绍这些特点如何在TSM320C3x系列DSP芯片中应用并使得芯片的 功能的到加强。
哈佛结构
传统的微处理器采用的冯·诺依曼(Von Neuman)结构将指令和数据存放在同一存储空 间中,统一编址,指令和数据通过同一总线访问同一地址空间上的存储器[5]。而DSP芯 片采用的哈佛结构则是不同于冯·诺依曼结构的一种并行体系结构,其主要特点是程序 和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器 ,每个存储器独立编制、独立访问。与之相对应的是系统中设置的两条总线棗程序总线 和数据总线,从而使数据的吞吐率提高了一倍。
在 哈佛结构中,由于程序和数据存储器在两个分开的空间里,因此取指和执行能完全重 叠运行。为了进一步提高运行速度和灵活性,TMS320C3x DSP芯片在基本哈佛结构的基础 上作了改进,一是允许数据存放在程序存储器中,并能被算术运算指令直接使用,增强 芯片的灵活性;二是增加了高速缓冲器(Cache),Cache中的指令在执行时不用再从存 储器中读取,节约了一个指令周期,在TMS320C3x系列芯片中有64个字的Cache。高速缓 器(Cache)的作用和算法请参看参考文献[5]P172~201,这里不予详述。
流水线
DSP芯片广泛采用流水线以减少指令执行时间,增强处理器的处理能力。TMS320C3x采用 四级流水线,处理器可并行处理四条指令。TMS320C3x流水线结构的五个单元和它们的功 能如下表:
表2、TMS320C3x流水线结构单元
单元名称
功能
取指单元(Fetch Unit)
从存储器中取指令和调整程序计数器(PC)
译码单元(Decode Unit)
对指令字译码和产生地址
读单元(Read Unit)
从存储器中读操作数
执行单元(Execute Unit)
从寄存器组中读操作数,执行所需的操作,将结果写入寄存器组中或存储器中
DMA通道(DMA Channel)
读和写存储器
基本指令分为四级:取指、译码、读和执行。当处理器并行处理四条指令使,各条指令处于流水线的不同单元。在不发生流水线冲突的情况下,具有流水线结构的处理器的长 时间执行效率接近于没有流水线结构的处理器的四倍。流水线冲突和解决请参见参考文 献{3}10-2到10-14;流水线的具体实现和算法请参见参考文献[5]P276 ~ 320 。一般来 说,流水线对用户是透明的。
专用的硬件乘法器
在通用微处理器中算法指令需要多个指令周期,如MCS-51的乘法指令需4个周期。相比而 言,DSP芯片的特征就是有一个专用的硬件乘法器,乘法可以在一个指令周期内完成,还 可以与加法并行进行,完成一个乘法和一个加法只需一个指令周期。例如,在一般形式 的FIR滤波器中,乘法是重用组成部分,对每个滤波器抽头,必须做一次乘法和一次加法 :
FIR: LDF 0.0,R0 ;R0初始化
LDF 0.0,R1 ;R2初始化
RPTS N-1 ;建立重复
MPYF3 *AR0++,*AR1++(1)%,R0 ;R0=h(N-1-i)*x[n-(N-1-i)]
|| ADDF3 R0,R2,R2 ;乘/累加
ADDF3 R0,R2,R0 ;加最后一个乘积
程序说明:
调用上述程序时,首先要初始化AR0、AR1、BK三个寄存器。其中AR0指向h(N-1),AR1指向
x[n-(N-1)],BK=N,N为滤波器的阶数; 滤波的结果放在寄存器R0中。
可见,高速的乘法指令和并行操作大大提高DSP处理器的性能。特殊的DSP指令
DSP芯片的另一个特点是采用特殊的指令,这些特殊指令进一不提高了DSP芯片的处理能 力。TMS320C3x主要有三类特殊指令:重复方式、延迟转移和并行指令。
(1)重复方式允许实现过零循环。TMS320C3x有两条支持过零循环的指令:RPTB(重复 一个程序模块)和RPTS(重复单条指令,仅通过一次取指来减轻总线拥挤)它们都是四 周期指令,仅在第一次通过程序循环回路是产生四个周期的管理开销,以后所有通过循
环回路的管理开销是零周期。当在重复方式中调整程序计数器时,三个寄存器与程序计 数器的调整相联系,下表对这些寄存器进行了描述:
表3、重复方式寄存器
寄存器 功能 RS
重复起始地址寄存器,持有重复程序模块的第一条指令的地址 RE
重复结束地址寄存器,持有重复程序模块的最后一条指令的地址 RC
重复结束计数寄存器,记录的数值为模块重复次数减1 RS在重复操作的下一条指令地址,RE在单指令重复操作中与RE相同。值得注意的是单指 令循环执行过程不被中断打断。以下提供两个小程序模块,说明重复操作的使用:
LDI 9H,RC ;重复10次
RPTB RPT_END ;RPT_END->RE,PC+1->RS
RPT_START ...
...
RPT_END ...
FPTS 9H ;重复10次,PC+1->RS,RE
...
(2)TMS320C3x的转移能力主要包括标准转移和延迟转移。标准转移在执行转移之前是 流水线变空,这导致标准转移的执行占据四个指令周期。而延迟转移则不使流水线变空 ,它保证随后的三条指令在程序计数器被转移修改前执行,而此时延迟指令悬空,并且 禁止中断,执行完毕这三条指令。这样,延迟转移仅需一个周期。TMS320C3x的延迟转移 是BcondD、BRD和DbcondD。
(3)由于拥有专门的硬件乘法器、多个独立的地址产生器和相互独立的程序、数据总线 。TMS320C3x具有多条不同方面的并行指令。这些并行操作指令组有高度并行操作能力, 具有如下功能:
·寄存器并行装入
·并行算术运算
·并行算术/逻辑运算和存储运算
使用并行指令时要注意必须满足这些指令操作数的寻址要求。附录中列出了TMS320C3x的 并行指令集。
(4)值得一提的还有TMS320C3x提供的在片直接存储器寻址(DMA)控制器。DMA控制器 能够在没有CPU干预下执行输入输出功能,从而减少CPU对执行输入输出功能的需要。
1.2、DSP芯片的应用
现代数字信号处理器是执行高速数字信号处理的IC电路、它恰好适应多媒体信息化社会 需求,迅速发展壮大。如今,世界电子器件市上,各种各样的DSP器件已相当丰富,大大 小小封装形式的DSP器件,已广泛应用于各种产品的生产领域,而且DSP的应用领域仍在不断地扩大,发展迅速异常。DSP的应用主要有:
信号处理;
通信,如调制解调器、数据加密、数据压缩、扩频通信、纠错编码、可视电话等;
语音,如语音编码,语音识别、语音合成等;
图形/图象,如三维图象处理、图象压缩与传输、动画、机器人视觉等;
军事,如雷达处理、声纳处理、导航、导弹制导等;
自动控制,如引擎控制、声控、磁盘控制等;
家用电器,汽车电子系统及其它应用领域。
应用DSP的领域可以说是不胜枚举,电视会议系统里,也大量应用DSP器件。视听机器里
也都应用DSP。随着科学技术的发展,将会出现许许多多的DSP新应用领域。