DSP 技术基本概念及典型系统分析
1. 基本概念与典型的DSP系统
通常 DSP(Digital Signal Processing)是指数字信号处理。DSP 芯片是专用的数字信号处理器(Digital Signal Processor),它采用哈佛结数、流水线作业方式的并行处理技术,有专用的指令系统,尤其适用于数字信号的算法实现,编码变换等处理。
2、DSP 的发展历史和现状
(1)DSP 发展的历史背景
现代信号处理起源于 17-18 世纪的数学,并以 1807 年 12 月 21 日法国工程师 J、B、Fourier 提出 FT 变换为标志。我们现在讨论的数字信号处理,是随着数字电子计算机的发展而发展起来。在数字信号处理的初期(本世纪 50~60 年代),人们只是在通用的数字计算机上进行算法的研究和处理系统的模拟与仿真,1965 年库利-图基(Cooley Tukey)提出快速付氏变换 FFT 是数字信号处理发展史上的一个里程碑。同时随着 FFT 及其它算法的提出,也促进了专用数字处理硬件的发展,并最终导致高速高位 DSP 的出现。
DSP 的特点与应用
DSP 总线结构都采用哈佛结构或改进的哈佛结构。通用的微处理采用
冯.诺依曼结构,即程序指令和数据共用一个存储空间及单一的地址和数据总线。为进一步提高运算速度,以满足实时信号处理的要求,当前的 DSP 芯片采用哈佛结构。
所谓哈佛结构,是将指令和数据的存储空间分开。这样使得处理指令和处理数据可以同时进行,从而大大提高处理效率。
(2)采用流水线技术
DSP 大多采用了流水线技术。计算机在进行一条指令时,要经过取指、译码、访问数据、执行等几个步骤,需若干个指令周期才能完成。
流水线技术将各指令和执行时间可以重叠起来。即第一条指令取指后,在进行译码的同时,可进行第二条指令的取指;第一条指令访问数据时,第二条指令译码……。这样尽管每条指令的执行时间仍然是几个指令周期,但由于用了流水线的作业方式,使得总体处理速度大大提高。而 DSP 所采用的指令与数据存储空间分开的哈佛结构,为实现流水线作业方式提供了方便。
(3)具有硬件乘法器和 MAC 单元
在数字信号处理算法中,乘法和累加是最基本和大量的运算,例如在卷积运算、数字滤波、快速付里叶变换、相关计算、矩阵运算等算法中大多都有乘加(乘法和累加)运算。通用的乘法运算是采用软件实现的,往往一次乘法运算需要若干个机器周期才能完成。DSP中都设置了硬件乘法器和 MAC 乘加(乘法并累加)一类指令,取两个操作数到乘法器中作乘法,并将乘积加到累加器中,这些操作在 DSP 芯片中往往可以在单个在指令周期内完成,使得 DSP 作乘和累加这种数字信号处理基本运算的速度大为提高。
(4)具有循环寻址(circular addressing)及位倒序(bit reverse)寻址功能。
为满足 FFT、卷积等数字信号处理的特殊要求,当前的 DSP 大多在指令系统中设置了循环寻址及位倒序指令及其它特殊指令、体现在作这些运算时寻址、排序及计算机速度大大提高。
另外,DSP 系统设计和软件开发,往往需要相当规模的仿真调试系统,为方便用户的设计与调试,许多 DSP 在片上设置了仿真模块或仿真调试接口、如 Motorala 在 DSP 片是设置了一个 QnCE(On-Chip Emalation)功能块、通过行脚、使用户可以检查片内存储器、寄存器及外设,用单步运行,设置断点、跟踪等方式控制与调试程序。Ti 则在 DSP 片上设置了 JIAG(Joint Test Aotion Group)标准测试接口及相应的控制器。在 PC 机上插入一块调试插板,接通 JIAG 接口,就可以在 PC 机上运行一个软件去控制它。
DSP 有自己的汇编语言指令系统,为适用于高级语言编程,各公司也陆续推出适用于DSP 的高级语言编译器,主要是 C 语言编译器,也有 Ada、Pascal 等编译器,程序员可用高级语言编程,通过编译器,将程序汇编、连接成 DSP 目标代码。