DSPоƬ
1 什么是 DSP 芯片 DSP 芯片,也称数字信号处理器,是一种具有特殊结构的微处理器。DSP 芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的 DSP 指令,可以用来快速地实现各种数字信号处理算法。根据数字信号处理的要求,DSP 芯片一般具有如下的一些主要特点:
(1) 在一个指令周期内可完成一次乘法和一次加法。
(2) 程序和数据空间分开,可以同时访问指令和数据。
(3) 片内具有快速 RAM,通常可通过独立的数据总线在两块中同时访问。
(4) 具有低开销或无开销循环及跳转的硬件支持。(5) 快速的中断处理和硬件 I/O 支持。
(6) 具有在单周期内操作的多个硬件地址产生器。(7) 可以并行执行多个操作。
(8) 支持流水线操作,使取指、译码和执行等操作可以重叠执行。与通用微处理器相比,DSP 芯片的其他通用功能相对较弱些。
4.2 DSP 芯片的发展世界上第一个单片 DSP 芯片是 1978 年 AMI 公司宣布的 S2811,1979 年美国 Iintel 公司发布的商用可编程期间 2920 是 DSP 芯片的一个主要里程碑。这两种芯片内部都没有现代 DSP 芯片所必须的单周期芯片。 1980 年。日本 NEC 公司推出的μPD7720 是第一个具有乘法器的商用 DSP 芯片。第一个采用 CMOS 工艺生产浮点 DSP 芯片的是日本的 Hitachi 公司,它于 1982 年推出了浮点 DSP 芯片。
1983 年,日本的 Fujitsu 公司推出的 MB8764,其指令周期为 120ns,且具有双内部总线,从而处理的吞吐量发生了一个大的飞跃。而第一个高性能的浮点 DSP 芯片应是 AT&T 公司于 1984 年推出的 DSP32。在这么多的 DSP 芯片种类中,最成功的是美国德克萨斯仪器公司(Texas Instruments,简称 TI)的一系列产品。TI 公司灾 982 年成功推出启迪一代 DSP 芯片 TMS32010 及其系列产品 TMS32011、TMS32C10/C14/C15/C16/C17 等,之后相继推出了第二代 DSP 芯片 TMS32020、TMS320C25/C26/C28,第三代 DSP 芯片 TMS32C30/C31/C32,第四代 DSP 芯片 TMS32C40/C44,第五代 DSP 芯片 TMS32C50/C51/C52/C53 以及集多个 DSP 于一体的高性能 DSP 芯片 TMS32C80/C82 等。
自 1980 年以来,DSP 芯片得到了突飞猛进的发展,DSP 芯片的应用越来越广泛。从运算速度来看,MAC(一次乘法和一次加法)时间已经从 80 年代初的 400ns(如 TMS32010)降低到 40ns(如 TMS32C40),处理能力提高了 10 多倍。DSP 芯片内部关键的乘法器部件从 1980 年的占模区的 40 左右下降到 5 以下,片内 RAM 增加一个数量级以上。从制造工艺来看,1980 年采用 4μ的 N 沟道 MOS 工艺,而现在则普遍采用亚微米 CMOS 工艺。
DSP 芯片的引脚数量从 1980 年的最多 64 个增加到现在的 200 个以上,引脚数量的增加,意味着结构灵活性的增加。此外,DSP 芯片的发展,是 DSP 系统的成本、体积、重量和功耗都有很大程度的下降。
4.3 DSP 芯片的分类 DSP 的芯片可以按照以下的三种方式进行分类。
1. 按基础特性分这是根据 DSP 芯片的工作时钟和指令类型来分类的。如果 DSP 芯片在某时钟频率范围内的任何频率上能正常工作,除计算速度有变化外,没有性能的下降,这类 DSP 芯片一般称之为静态 DSP 芯片。如果有两种或两种以上的 DSP 芯片,它们的指令集和相应的机器代码机管脚结构相互兼容,则这类 DSP 芯片称之为一致性的 DSP 芯片。
2. 按数据格式分这是根据 DSP 芯片工作的数据格式来分类的。数据以定点格式工作的 DSP 芯片称之为定点 DSP 芯片。以浮点格式工作的称为 DSP 芯片。不同的浮点 DSP 芯片所采用的浮点格式不完全一样,有的 DSP 芯片采用自定义的浮点格式,有的 DSP 芯片则采用 IEEE 的标准浮点格式。
3. 按用途分按照 DSP 芯片的用途来分,可分为通用型 DSP 芯片和专用型的 DSP 芯片。通用型 DSP 芯片适合普通的 DSP 应用,如 TI 公司的一系列 DSP 芯片。专用型 DSP 芯片市为特定的 DSP 运算而设计,更适合特殊的运算,如数字滤波,卷积和 FFT 等。
4.4 DSP 芯片的选择设计 DSP 应用系统,选择 DSP 芯片时非常重要的一个环节。只有选定了 DSP 芯片才能进一步设计外围电路集系统的其它电路。总的来说,DSP 芯片的选择应根据实际的应用系统需要而确定。一般来说,选择 DSP 芯片时考虑如下诸多因素。
1. DSP 芯片的运算速度。运算速度是 DSP 芯片的一个最重要的性能指标,也是选择 DSP 芯片时所需要考虑的一个主要因素。DSP 芯片的运算速度可以用以下几种性能指标来衡量:
(1) 指令周期。就是执行一条指令所需要的时间,通常以 ns 为单位。
(2) MAC 时间。即一次乘法加上一次加法的时间。
(3) FFT 执行时间。即运行一个 N 点 FFT 程序所需的时间。(4) MIPS。即每秒执行百万条指令。(5) MOPS。即每秒执行百万次操作。
(6) MFLOPS。即每秒执行百万次浮点操作。(7) BOPS。即每秒执行十亿次操作。
2. DSP 芯片的价格。根据一个价格实际的应用情况,确定一个价格适中的 DSP 芯片。3. DSP 芯片的硬件资源。4. DSP 芯片的运算速度。5. DSP 芯片的开发工具。6. DSP 芯片的功耗。
7. 其它的因素,如封装的形式、质量标准、生命周期等。DSP 应用系统的运算量是确定选用处理能力多大的 DSP 芯片的基础。那么如何确定 DSP 系统的运算量以选择 DSP 芯片呢。
1. 按样点处理按样点处理就是 DSP 算法对每一个输入样点循环一次。例如;一个采用 LMS 算法的 256 抽头德的自适应 FIR 滤波器,假定每个抽头的计算需要 3 个 MAC 周期,则 256 抽头计算需要 256*3=768 个 MAC 周期。如果采样频率为 8KHz,即样点之间的间隔为 125μs 的时间,DSP 芯片的 MAC 周期为 200μs,则 768 个周期需要 153.6μs 的时间,显然无法实时处理,需要选用速度更快的芯片。
2. 按帧处理有些数字信号处理算法不是每个输入样点循环一次,而是每隔一定的时间间隔(通常称为帧)循环一次。所以选择 DSP 芯片应该比较一帧内 DSP 芯片的处理能力和 DSP 算法的运算量。假设 DSP 芯片的指令周期为 P(ns),一帧的时间为⊿τ(ns),则该 DSP 芯片在一帧内所提供的最大运算量为⊿τ/ P 条指令。
4.5 DSP 芯片的基本结构 DSP 芯片的基本结构包括:(1)哈佛结构;(2)流水线操作;(3)专用的硬件乘法器;(4)特殊的 DSP 指令;
(5)快速的指令周期。哈佛结构哈佛结构的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址,独立访问。与两个存储器相对应的是系统中设置了程序总线和数据总线,从而使数据的吞吐率提高了一倍。由于程序和存储器在两个分开的空间中,因此取指和执行能完全重叠。流水线与哈佛结构相关,DSP 芯片广泛采用流水线以减少指令执行的时间,从而增强了处理器的处理能力。
处理器可以并行处理二到四条指令,每条指令处于流水线的不同阶段。入图示出一个三级流水线操作的例子。CLLOUT1 取指 N N-1 N-2 译码 N-1 N N-2 执行 N-2 N-1 N 图 4-1 三级流水线操作专用的硬件乘法器乘法速度越快,DSP 处理器的性能越高。由于具有专用的应用乘法器,乘法可在一个指令周期内完成。特殊的 DSP 指令 DSP 芯片是采用特殊的指令。快速的指令周期哈佛结构、流水线操作、专用的硬件乘法器、特殊的 DSP 指令再加上集成电路的优化设计可使 DSP 芯片的指令周期在 200ns 以下。
4.6 DSP 系统的特点数字信号处理系统是以数字信号处理为基础,因此具有数字处理的全部特点:
(1) 接口方便。DSP 系统与其它以现代数字技术为基础的系统或设备都是相互兼容,这样的系统接口以实现某种功能要比模拟系统与这些系统接口要容易的多。
(2) 编程方便。DSP 系统种的可编程 DSP 芯片可使设计人员在开发过程中灵活方便地对软件进行修改和升级。
(3) 稳定性好。DSP 系统以数字处理为基础,受环境温度以及噪声的影响较小,可靠性高。(4) 精度高。16 位数字系统可以达到的精度。
(5) 可重复性好。模拟系统的性能受元器件参数性能变化比较大,而数字系统基本上不受影响,因此数字系统便于测试,调试和大规模生产。
(6) 集成方便。DSP 系统中的数字部件有高度的规范性,便于大规模集成。
4.7 DSP 芯片的应用自从 DSP 芯片诞生以来,DSP 芯片得到了飞速的发展。DSP 芯片高速发展,一方面得益于集成电路的发展,另一方面也得益于巨大的市场。在短短的十多年时间,DSP 芯片已经在信号处理、通信、雷达等许多领域得到广泛的应用。目前,DSP 芯片的价格也越来越低,性能价格比日益提高,具有巨大的应用潜力。DSP 芯片的应用主要有:
(1) 信号处理--如,数字滤波、自适应滤波、快速傅里叶变换、相关运算、频谱分析、卷积等。
(2) 通信--如,调制解调器、自适应均衡、数据加密、数据压缩、回坡抵消、多路复用、传真、扩频通信、纠错编码、波形产生等。
(3) 语音--如语音编码、语音合成、语音识别、语音增强、说话人辨认、说话人确认、语音邮件、语音储存等。
(4) 图像/图形--如二维和三维图形处理、图像压缩与传输、图像增强、动画、机器人视觉等。
(5) 军事--如保密通信、雷达处理、声纳处理、导航等。
(6) 仪器仪表--如频谱分析、函数发生、锁相环、地震处理等。
(7) 自动控制--如引擎控制、深空、自动驾驶、机器人控制、磁盘控制。
(8) 医疗--如助听、超声设备、诊断工具、病人监护等。
(9) 家用电器--如高保真音响、音乐合成、音调控制、玩具与游戏、数字电话/电视等