DSP基础知识集锦之6 当前DSP产品的主要特点
[复制链接]
DSP基础知识集锦之6 当前DSP产品的主要特点
为了适应数字信号处理的需要,当前的DSP都设置了硬件乘法/累加器、大都能在半个指令周期内完成乘法/累加运算。当前的水平已达到每秒数千万次乃至数十亿次定点运算或浮点运算的速度。
为了满足FFT、卷积等数字信号处理的特殊要求,当前的DSP大多在指令系统中设置了“循环寻址”(Circular addressing)及“位倒序”(bit-reversed)指令和其他特殊指令,使得在作这些运算时寻址、排序及计算速度大大提高。单片DSP作1024点复数FFT所得时间已降到微秒量级。
高速数据传输能力是DSP作高速实时处理的关键之一。新型的DSP大多设置了单独的DMA总线及其控制器,在不影响或基本不影响DSP处理速度的情况下,作并行的数据传送,传送速率可以达到每秒数百兆字节、主要受到片外存储器速度的限制。
随着应用的日益广泛,DSP已经成为了许多高级设计不可或缺的组成部分。其结果,使DSP厂商的投资集小于DSP体系结构、智能化程度更高的编译程序、更好的查错工具、以及更多的支持软件。
最明显的结构改进在于提高“并行性”,即在一个指令周期内,DSP所能完成的操作的数量。一个突出例子是德克萨斯仪器公司(T1)1997年推出的带有8个功能单元,使用超长指令字(VLIW,Very Long Instruction Word)的DSP TMS320C6x,其结构如下图所示。这种32bit定点运算DSP在每个周期内可以完成8个操作,其运算速度达到了每秒执行20亿条指令(2000MIPS);如果片外存储器能够支持,其DMA的数据传输能力可以达到每秒800MByte。
尽管当前的DSP已达到较高的水平,但在一些实时性要求很高的场合,单片DSP的处理和能力还不能满足要求。因而,多处理器系统就成为提高应用性能的重要途径之一。许多算法,例如数字滤波、FFT、矩阵运算等,都包含有建立和-积形式的数列,或者是对矩阵一类规则结构作有序处理。在许多情况下,都可以将算法分解为若干级,用串行或并行来加快处理速度。因此,新型DSP的发展方向,是在提高单片DSP性能的同时,十分注重在结构设计上为多处理器的应用提供方便。例如,TI的TMS320C40,设置了6个8bit的通信口,既可以作级联,也可以作并行连接。每个口都有DMA能力。这就是专门为多处理器应用而设计的。
DSP系统设计和软件开发是一个重要而困难的问题,往往需要相当规模的仿真调试系统,包括在线仿真器、许多电缆、逻辑分析仪以及其他的测试设备。在多处理器系统中、这个问题尤为突出。为了方便用户的设计与调试,许多DSP在片上设置了仿真模块或仿真调试接口。
Motorola在其DSP片上设置了一个onCE(on-Chip Emulation)功能块,用特定的电路和引脚,使用户可以检查片内的寄存器、存储器及外设,用单步运行、设置断点、跟踪等方式控制与调试程序。
TI则在其TMS320系列芯片上设置了符合IEEE1149标准JTAG(Joint Test Action Group)标准测试接口及相应的控制器,从而不但能控制和观察多处理器系统中每一个处理器的运行,测试每一块芯片,还可以用这个接口来装入程序。在PC机上插入一块调试插板,接通JTAG接口,就可以在PC上运行一个软件去控制它。PC机上有多个窗口显示,每个窗口观察多个处理器中的一个,这就极大地简化了多处理器系统开发的复杂性。在TMS320中,和JTAG测试口同时工作的还有一个分析模块,它支持断点的设置和程序存储器、数据存储器、DMA的访问、程序的单步运行和跟踪,以及程序的分支和外部中断的计数等。
DSP的处理速度越来越高,功能越来越强,但随之而付出的代价是功耗也越来越大。而且,随着钟频的提高,功耗急速加大。尽管生产厂家几乎没有例外地都采用了CMOS工艺等技术手段来降低功耗,但有的单片DSP的功耗已达10w以上。随着DSP的大量使用,特别是在用电池供电的便携式设备中的大量使用,例如便携式计算机、移动通信设备和便携式测试仪器等,迫切要求DSP在保持与提高工作性能的同时,降低工作电压,减小功耗。为此,各DSP生产厂家正积极研制并陆续推出低电压片种。在降低功耗方面,有的片种设置了IDLE或WAIT状态,在等待中断到来期间,片内除时钟和外设以外的电路都停止工作;有的片种设置了STOP状态,它比WAlT状态更进一步,连内部时钟也停止工作,但保留了堆栈和外设的状态。总之,低工作电压和低功耗已成为DSP性能表征的重要技术指标之一。
随着专用集成电路(ASIC,Application Specific Integrated Circuit)的广泛使用,迫切要求将DSP的功能集成到ASlC中。例如,在磁盘/光盘驱动器、调制解调器(Modem)、移动通信设备和个人数字助理(PDA,Personal Digital Assistant)等应用中,这种要求来得相当突出。为了顺应这种发展并更加深入地开拓DSP市场,各DSP生产厂家相继提出了DSP核(DSP core)的概念并推出了相应的产品。一般说来,DSP核是通用DSP器件中的CPU部分,再配以按照客户的需要所选择的存储器(包括Cache、RAM;ROM、flash、EPROM等以及固化的用户软件)和外设(包括串口、并口、主机接口、DMA、定时器等),组成用户的ASIC。DSP核概念的提出与技术的发展,使用户得以将自己的设计,通过DSP厂家的专业技术来加以实现,从而提高ASlC的水准,并大大缩短产品的上市时间。DSP核的一个典型的应用是U.S.Robotis公司利用TI的DSP核技术所开发的X2芯片,最早成功地将56kbps的Modem推向了市场。除开TI公司的TMS320系列DSP核之外,Motorola公司的DSP66xx系列和AD公司的ADSP21000系列等,也都是得到成功应用的DSP核。
在DSP硬件结构和性能不断改善的同时、其开发环境和支持软件,也得到了迅速的发展与不断的完善。
各公司出品的DSP都有各自的汇编语言指令系统。使用汇编语言来编制DSP应用软件是一件繁琐与困难的工作。随着DSP处理速度的加快与功能的增强,其寻址空间越来越大,目标程序的规模也越来越大,从而使得用高级语言来对DSP编程成为必须而且紧迫的任务。各公司陆续推出厂适用于DSP的高级语言编译器,主要是C语言编译器,也有Ada,Pascal等编译器。它们能将高级语言编写的程序,编译成相应的DSP汇编源程序。程序员可在这里对DSP源程序作修改与优化,尤其是对实时处理要求很苛刻的部分作优化,然后汇编与连接,成为DSP的目标代码。
在应用软件开发与调试环境方面,除开传统的,在硬件或软件仿真器上用Debug来调试之外,各厂家陆续推出厂一些针对DSP的操作系统(例如TI的Code Composer/Code Composer Studio)。
这些操作系统运行在IBM-PC或其他的主机上为DSP应用软件的开发提供良好的集成开发环境:用C语言等高级语言编写的程序的调试,用针对DSP的C语言等编译器将其编译成相应的DSP汇编源程序,进一步的修改、调试与检查,最后汇编与连接成DSP可执行目标代码。这些操作系统的适用范围正在扩大。
DSP的生产厂家和一些其他的软件公司,为DSP应用软件的开发准备了一些适用的函数库与软件工具包,如针对数字滤波器和各种数字信号处理算法的子程序。以及各种接口程序等。这些经过优化的子程序为用户提供了极大的方便。
随着专用集成电路(ASIC)技术的发展和DSP应用范围的迅速扩大,一些EDA公司也将DSP的硬件和软件的开发纳入了EDA工作站的工作范畴,陆续推出了一些大型软件包,为用户自行设计所需要的DSP芯片和软件提供了更为良好的环境。
|