TMS320C55x DSP原理及应用(第3版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2 数字信号处理器的特点

DSP系统的应用领域极其广泛,目前其主要的应用领域如下。

(1)基本信号处理:数字滤波器、自适应滤波、FFT、相关运算、谱分析、卷积运算、模式匹配、窗函数、波形产生和变换等。

(2)通信:调制解调、自适应均衡、数据加密、数据压缩、回波抵消、多路复用、传真、扩频通信、纠错编码等。

(3)语音:语音编码、语音合成、语音识别、语音增强、说话人的辨认和确认、语音邮件、语音储存等。

(4)图形图像:二维和三维的图形处理和图像的压缩、传输与增强、机器人视觉等。

(5)军事:保密通信、雷达信号处理、声呐信号处理、导航、导弹制导等。

(6)仪器仪表:频谱分析、函数发生、锁相环、地震信号处理等。

(7)控制:引擎控制、声控、自动驾驶、机器人控制、磁盘控制等。

(8)医疗:助听、超声设备、诊断工具、患者监护等。

(9)家用电器:高保真音响、智能玩具与游戏、数字电话、数字电视等。

DSP当前最大的应用领域是通信。以无线通信领域中的数字蜂窝电话为例,蜂窝电话中的DSP协调模拟基带芯片、电源处理芯片,数字基带处理芯片,RF射频处理芯片合理而快速地工作,并兼有开发和测试的功能。使移动通信设备更加个性化、智能化。

军事领域是高性能DSP的天地。例如,雷达图像处理中使用DSP进行目标识别和实时飞行轨迹估计,要求浮点DSP每秒执行数十亿次浮点运算,而定点DSP的运算能力已经高达9600MIPS。

嵌入DSP的家用电器已经融入了我们的生活之中。例如,在高清晰数字电视中,就采用DSP实现了其中关键的MPEG2译码电路;又如,使用DSP技术的家庭音响可以产生比模拟音响更自然、更清晰和更丰富的音响效果;再如,配置了DSP处理器的洗衣机、冰箱不仅提高了系统的功能、效率和可靠性,减少了系统能耗和电磁干扰,而且更加容易操作和控制。

DSP的应用领域也在不断地扩大。例如,DSP是运行计算机图像学(Computer Graphics,CG)软件和提供虚拟现实(Virtual Reality,VR)系统三维图形处理能力最为关键的器件。DSP使CG、VR传统分析方法得到了质的飞跃。可以预见,随着DSP芯片性价比的不断提高和新的实用DSP算法的不断出现,DSP系统的应用在深度和广度上会有更大的发展。

1.2.1 存储器结构

众所周知,微处理器的存储器结构分为两大类:冯·诺伊曼结构和哈佛结构。由于成本的原因,GPP广泛使用冯·诺伊曼存储器结构。典型冯·诺伊曼结构的特点是只有一个存储器空间、一套地址总线和一套数据总线;指令、数据都存放在这个存储器空间中,统一分配地址,所以处理器必须分时访问程序和数据空间。通常,做一次乘法会发生4次存储器访问,用掉至少4个指令周期。

为了提高指令执行速度,DSP采用了程序存储器空间和数据存储器空间分开的哈佛结构和多套地址、数据总线,其结构如图1-2所示。哈佛结构是并行体系结构,程序和数据存于不同的存储器空间,每个存储器空间独立编址、独立访问。因此,DSP可以同时取指令(来自程序存储器)和取操作数(来自数据存储器);而且,还允许在程序空间和数据空间之间相互传送数据。哈佛读/写结构使DSP很容易实现单周期乘法运算。

图1-2 双总线存储器结构

今天,高性能GPP采用了片内高速缓存(Cache)技术以加快其处理速度。在DSP中也引入了这一技术, TMS320VC5510就为内核提供了指令高速缓存。采用这一技术的原因是指令可能存储在内部存储器或外部存储器,而当其存储在外部存储器时,CPU可以用高速缓存保存最近执行的指令,从而提高了系统的处理效率。

1.2.2 流水线

流水线结构将指令的执行分解为取指、译码、取操作数和执行等几个阶段。在程序运行过程中,不同指令的不同阶段在时间上是重叠的,流水线结构提高了指令执行的整体速度,有助于保证数字信号处理的实时性。因此,所有DSP均采用一定级数的流水线,如TMS320C54x DSP采用6级流水线,而TMS320C6xxx DSP采用8级流水线。TMS320C55x DSP的流水线则被分为指令流水线和执行流水线两部分,指令流水线完成访问地址产生、等待存储器回应、取指令包、预解码等工作;执行流水线完成译码、读取/修改寄存器、读操作数和输出结果等工作。

1.2.3 硬件乘法累加单元

由于DSP任务包含大量的乘法—累加操作,所以DSP处理器使用专门的硬件来实现单周期乘法,并使用累加器寄存器来处理多个乘积的累加;而且几乎所有DSP指令集都包含有MAC指令。而GPP通常使用微程序实现乘法。

1.2.4 零开销循环

DSP算法的特点之一是主要的处理时间用在程序中的循环结构中,因此多数DSP都有专门支持循环结构的硬件。所谓“零开销”(zero overhead)是指循环计数、条件转移等循环机制由专门硬件控制,而处理器不用花费任何时间。通常GPP的循环控制是用软件来实现的。

1.2.5 特殊的寻址方式

除了立即数寻址、直接寻址、间接寻址等常见寻址方式之外,DSP还支持一些特殊的寻址方式。例如为了降低卷积、自相关算法和FFT算法的地址计算开销,多数DSP支持循环寻址和位倒序寻址。而GPP一般不支持这些寻址方式。

1.2.6 高效的特殊指令

DSP指令集设计了一些特殊的DSP指令用于专门的数字信号处理操作。这些指令充分利用了DSP的结构特点,提高了指令执行的并行度,从而大大加快了完成这些操作的速度。例如TMS320C55xx中的FIRSADD指令和LMS指令,分别用于对称结构FIR滤波算法和LMS算法。

1.2.7 丰富的片内外设

根据应用领域的不同,DSP片内集成了众多类型的硬件设备。例如,定时器、串行口、并行口、主机接口(HPI)、DMA控制器、等待状态产生器、PLL时钟产生器、JTEG标准测试接口、ROM、RAM及Flash等,如图1-3所示。这些片内外设提高了处理速度和数据吞吐能力,简化了接口设计,同时降低了系统功耗和节约了电路板空间。

图1-3 DSP片内外设实例

除了上述软、硬件区别之外,从程序开发的角度上,DSP和GPP也有重要区别。例如, GPP一般使用C语言或C++语言等高级语言;但因为大多数高级语言并不适合于描述典型DSP算法,所以DSP应用程序一般要用汇编语言或C语言与汇编语言嵌套的方式编写。即使采用C源代码编译为汇编代码的方法,许多核心代码最后还要用汇编语言进行手工优化。此外,大多数DSP厂商都提供一些开发仿真工具,以帮助程序员完成其开发仿真工作。DSP仿真工具能够精确到指令周期,这对于确保实时性和代码优化非常重要。而GPP厂商通常并不需要提供这样的工具。