1.2 DSP芯片
1.2.1 DSP芯片的特点
DSP芯片(也称为数字信号处理器芯片)是一种具有特殊结构的微处理器,它可以快速地实现各种数字信号处理算法。根据数字信号处理的要求,DSP芯片一般具有如下主要特点:
① 在一个指令周期内可完成一次乘法和一次加法;
② 程序和数据空间分开,可以同时访问指令和数据;
③ 片内具有快速RAM,通常可通过独立的数据总线同时访问两块芯片;
④ 具有低开销或无开销循环及跳转的硬件支持;
⑤ 快速的中断处理和硬件I/O支持;
⑥ 具有在单周期内操作的多个硬件地址产生器;
⑦ 可以并行执行多个操作;
⑧ 支持流水线操作,使取指、译码和执行等操作可以并行执行;
⑨ 为适应一般系统的开发,片内具有一定容量的闪存(Flash Memory,FLASH),可使得系统的体积更小。
1.2.2 DSP芯片的基本结构
DSP芯片一般包括以下基本结构:
① 哈佛结构。哈佛结构的主要特点是将程序和数据分别存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编程,独立访问。与两个存储器相对应的是系统中设置了程序总线和数据总线,从而使数据的吞吐率提高了一倍。由于程序和数据存储在两个分开的空间中,因此取指和执行能完全重叠进行。
② 流水线操作。流水线与哈佛结构相关。DSP芯片广泛采用流水线,以减少指令执行的时间,从而增强了处理器的处理能力。处理器可以并行处理2~4条指令,每条指令处于流水线的不同阶段。图1-2所示为一个三级流水线操作的例子。
图1-2 三级流水线操作示意图
③ 专用的硬件乘法器。通用微处理器中的乘法指令往往需要多个指令周期,如MCS-51的乘法指令需要4个周期。相比而言,由于DSP芯片具有专用的硬件乘法器,使得乘法可在一个指令周期内完成,还可以与加法并行进行,即完成一个乘法和加法只需一个指令周期。可见,高速的乘法指令和并行操作大大提高了DSP处理器的性能。
④ 特殊的DSP指令。DSP芯片采用了一些特殊指令,这些特殊指令进一步提高了DSP芯片的处理能力。如DMOV、LTD指令等,均可完成一些特殊功能。
1.2.3 DSP芯片的分类
DSP芯片可以按照下列3种方式进行分类:
① 按基础特性分类。这是根据DSP芯片的工作时钟和指令类型来分类的。如果在某时钟频率范围内的任何时钟频率上,DSP芯片都能正常工作,除计算速度有变化外,没有性能的下降,这类DSP芯片一般称为静态DSP芯片。例如,日本OKI电气公司的DSP芯片、TI公司的TMS320C2xx系列芯片属于这一类。如果有两种或两种以上的DSP芯片,它们的指令集和相应的机器代码及管脚结构相互兼容,则这类DSP芯片称为一致性DSP芯片。例如,美国TI公司的TMS320C54x就属于这一类。
② 按数据格式分类。这是根据DSP芯片工作的数据格式来分类的。数据以定点格式工作的DSP芯片称为定点DSP芯片,如TI公司的TMS320C1x/C2x、TMS320C2xx/C5x、TMS320C54x/C62xx系列,AD公司的ADSP21xx系列,AT&T公司的DSPl6/16A,Motorola公司的MC56000等。以浮点格式工作的称为浮点DSP芯片,如TI公司的TMS320C3x/ C4x/C8x,AD公司的ADSP21xxx系列,AT&T公司的DSP32/32C,Motorola公司的MC96002等。不同浮点DSP芯片所采用的浮点格式不完全一样,有的DSP芯片采用自定义的浮点格式,如TMS320C3x,而有的DSP芯片则采用IEEE的标准浮点格式,如Motorola公司的MC96002、Fujitsu公司的MB86232和Zoran公司的ZR35325等。
③ 按用途分类。按照DSP的用途来分,可分为通用型DSP芯片和专用型DSP芯片。通用型DSP芯片适合普通的DSP应用,如TI公司的一系列DSP芯片属于通用型DSP芯片。专用DSP芯片是为特定的DSP运算而设计的,更适合特殊的运算,如数字滤波、卷积和FFT。如Motorola公司的DSP56200、Zoran公司的ZR34881、Inmos公司的IMSAl00等就属于专用型的DSP芯片。
1.2.4 DSP芯片的选择
设计DSP应用系统时,选择DSP芯片是非常重要的一个环节,DSP芯片的选择应根据实际的应用系统需要而确定,应用场合和应用目的不同,对DSP芯片的选择也是不同的。一般来说,选择DSP芯片时应考虑如下因素。
1.运算量
运算量是确定DSP处理能力的基础。若运算量小则可选用处理能力不是很强的DSP芯片,这样可以降低系统的成本。若运算量大则必须选用处理能力很强的DSP芯片,否则可能达不到处理要求,若使用一片芯片的处理能力还达不到要求,则可选用多片芯片并行处理。
2.运算速度
运算速度是DSP芯片的一个最重要的性能指标,也是选择DSP芯片时所需要考虑的一个主要因素。DSP芯片的运算速度可以用以下几种性能指标来衡量:
① 指令周期,即执行一条指令所需的时间,通常以ns(纳秒)为单位,如TMS320LF2407A在主频为40 MHz时的指令周期为25 ns。
② MAC时间,即一次乘法加上一次加法的时间,如TMS320LF2407A的MAC时间就是12.5 ns。
③ FFT执行时间,即运行一个N点FFT程序所需的时间。由于FFT运算在数字信号处理中很有代表性,因此FFT运算时间常作为衡量DSP芯片运算能力的一个指标。
④ MIPS,即每秒执行的百万条指令操作,如TMS320LF2407A的处理能力为40 MIPS。
⑤ MOPS,即每秒执行的百万次操作,如TMS320C40的运算能力为275 MOPS。
⑥ MFLOPS,即每秒执行的百万次浮点操作,如TMS320C31在主频为40 MHz时的处理能力为40 MFLOPS。
⑦ BOPS,即每秒执行的十亿次操作,如TMS320C80的处理能力为2 BOPS。
3.价格
价格也是选择DSP芯片所需考虑的一个重要因素。如果选用的芯片价格昂贵,即使性能再高,其应用范围肯定会受到一定的限制,尤其是民用产品。因此应根据实际系统的应用情况,确定一个价格适中的DSP芯片。
4.硬件资源
不同的DSP芯片所提供的硬件资源是不相同的,如片内RAM/ROM的数量、外部可扩展的程序和数据空间、总线接口、I/O接口等。即使是同一系列的DSP芯片(如TI的TMS320C24x系列),系列中不同DSP芯片也具有不同的内部硬件资源,可以适应不同的需要。
5.运算精度
一般的定点DSP芯片的字长为16位,如TMS320系列。但有的公司的定点芯片为24位,如Motorola公司的MC56001等。浮点芯片的字长一般为32位。
6.开发工具
在DSP系统的开发过程中,开发工具是必不可少的。如果没有开发工具的支持,要想开发一个复杂的DSP系统几乎是不可能的。如果有功能强大的开发工具的支持,则开发的时间就会大大缩短。
7.功耗
在DSP的某些应用场合,功耗也是一个需要特别注意的问题。如便携式电子设备、野外应用的电子设备等对功耗有特殊的要求。目前,3.3 V供电的低功耗高速DSP芯片已大量使用。
8.其他
选择DSP芯片还应考虑到封装的形式、质量标准、供货情况、生命周期等。例如有的DSP芯片采用DIP、PGA、PLCC、PQFP、BGA等多种封装形式,有些DSP系统的要求是工业级或军用级标准。如果所设计的DSP系统是需要批量生产并可能有几年甚至十几年的生命周期,那么需要考虑所选DSP芯片的供货是否也有同样甚至更长的生命周期等。