《电子产品世界》杂志,19%6年第9期,ppl11k32 如何选用数字信号处理器 清华大学计算机系郑方 fzheng@hs752dcstsinghua.edu.cn,(010)62594141 随着大规模集成电路和计算机技术的飞速发展,数字信号处理OSP)技术已经渗 透到几乎各个领域,包括计算机语音学、计算机视觉、计算机多媒体技术、超文本 数据传输等各个领域,而用于进行数字信号处理的专用DSP芯片的性能价格比也在 惊人地增加。目前DSP的主要生产厂家有 Analog devices,Inc.公司、 Texas Instruments 公司、AT&T、 Motorala公司、NEC公司等,而笔者认为在诸多DSP生产厂家中 TI公司和ADI公司是比较突出的,他们将以其产品的独特性而成为DSP芯片市场 的主要领导者之 从事DSP研究和设计的工程师在工作中面临的主要问题就是如何选用DSP芯 片。这既需要对具体产品规格有清楚的了解,又需要对各种DSP芯片的性能和特长 有比较全面的了解,才能选用适合于特定任务的芯片。 在很多情况下,DSP处理器的特性主要由其MIPS速度来描述,但由于一种DSP 器件的指令并不一定等同于另一种DSP器件,因此仅考虑MIPS常常会导致不正确 的结论。与DSP器件能力有关的其它一些结构及其性能要求,如运算、寻址、程序 定序和ⅣO吞吐能力等,往往会更重要。下面将从几个方面介绍选用DSP芯片必须 注意的几个因素,希望能对读者选用芯片有一定的帮助。 DSP的算法特点和硬件要求 数字信号处理的算法有这样一些特点:(1)信号处理以算术运算为主。比如数字 滤波器以Z变换为基础,其差分方程完全可以用算术运算来实现;又如FFT算法中 除指数运算可以用速査表外,其余运算全为乘法和加法。(2)信号处理算法运算量大, 要求速度快。不论是一维的语音信号,还是二维的图象信号,一般地算法的运算量 都很大,且算法的实现都必须实时。(3)信号处理算法常具有某些特定模式。比较典 型的有卷积运算中的乘积和以及数字滤波器中的连续递推移位。(4)信号处理要求专 门的接口。一个非常重要的接口是把模拟信号与数字信号相互转换的ADC和DAC, 另外大量的数据交换需要有高速的数据吞吐能力 数字信号处理的特点要求DSP芯片必须是专门设计的。DSP芯片的设计必须满 足数字信号处理的这样一些要求:(1)快速灵活的运算:单周期;允许任意计算次序 (2)乘/累加的动态扩展范围:保证卷积运算(乘积和)不发生中间溢出。(3)单周期内取 两个操作数:保证快速乘积和运算。(4)硬件循环缓冲区:由硬件处理地址指针的跳
《电子产品世界》杂志,1996 年第 9 期,pp.111&32 如何选用数字信号处理器 清华大学计算机系 郑方 fzheng@hs752.dcs.tsinghua.edu.cn, (010)62594141 随着大规模集成电路和计算机技术的飞速发展,数字信号处理(DSP)技术已经渗 透到几乎各个领域,包括计算机语音学、计算机视觉、计算机多媒体技术、超文本 数据传输等各个领域,而用于进行数字信号处理的专用 DSP 芯片的性能价格比也在 惊人地增加。目前DSP的主要生产厂家有Analog Devices, Inc.公司、Texas Instruments 公司、AT&T、Motorala 公司、NEC 公司等,而笔者认为在诸多 DSP 生产厂家中, TI 公司和 ADI 公司是比较突出的,他们将以其产品的独特性而成为 DSP 芯片市场 的主要领导者之一。 从事 DSP 研究和设计的工程师在工作中面临的主要问题就是如何选用 DSP 芯 片。这既需要对具体产品规格有清楚的了解,又需要对各种 DSP 芯片的性能和特长 有比较全面的了解,才能选用适合于特定任务的芯片。 在很多情况下,DSP 处理器的特性主要由其 MIPS 速度来描述,但由于一种 DSP 器件的指令并不一定等同于另一种 DSP 器件,因此仅考虑 MIPS 常常会导致不正确 的结论。与 DSP 器件能力有关的其它一些结构及其性能要求,如运算、寻址、程序 定序和 I/O 吞吐能力等,往往会更重要。下面将从几个方面介绍选用 DSP 芯片必须 注意的几个因素,希望能对读者选用芯片有一定的帮助。 一、DSP 的算法特点和硬件要求 数字信号处理的算法有这样一些特点:(1)信号处理以算术运算为主。比如数字 滤波器以 Z 变换为基础,其差分方程完全可以用算术运算来实现;又如 FFT 算法中 除指数运算可以用速查表外,其余运算全为乘法和加法。(2)信号处理算法运算量大, 要求速度快。不论是一维的语音信号,还是二维的图象信号,一般地算法的运算量 都很大,且算法的实现都必须实时。(3)信号处理算法常具有某些特定模式。比较典 型的有卷积运算中的乘积和以及数字滤波器中的连续递推移位。(4)信号处理要求专 门的接口。一个非常重要的接口是把模拟信号与数字信号相互转换的 ADC 和 DAC, 另外大量的数据交换需要有高速的数据吞吐能力。 数字信号处理的特点要求 DSP 芯片必须是专门设计的。DSP 芯片的设计必须满 足数字信号处理的这样一些要求:(1)快速灵活的运算:单周期;允许任意计算次序。 (2)乘/累加的动态扩展范围:保证卷积运算(乘积和)不发生中间溢出。(3)单周期内取 两个操作数:保证快速乘积和运算。(4)硬件循环缓冲区:由硬件处理地址指针的跳
转和回绕(取模寻址)。(5)无额外开销的循环和转移:条件判断与跳转仅占一个周期 ADI的ADSP21xx系列和T的TMS320xx系列无疑正是按照这样的要求设计 的,它们都是定点的DSP处理器芯片中的骄骄者,但两者之间也有一些差异。下面 介绍一下ADSP-21xx芯片 ADSP21xx系列处理器的结构特点 ADI公司的ADSP21xx系列处理器(代表器件是ADSP-2101)是基于修改的 Harvard结构的16bit定点系列处理器,这样的结构可以将操作数的数据从程序存储 器和数据存储器送到运算部分。 1.汇编语言的所有指令都是单字、单周期指令,并使用代数语法进行书写,可读 性强。比如MR=MXO*MYO(SS)指令,它把取自寄存器MX0和MYO的两个有符号 数乘起来后存到MR寄存器上,该指令看起来直观、方便。 2.汇编语言中有大量的(单周期)并行指令,这些并行指令从功能上可分为两部分, 部分进行计算,另一部分进行操作数存取。处理器采用修改的 Harvard结构,数 据和程序存储器的数据和地址总线(共4条)是分离的,保证可同时从程序和数据存 储器中各取一个数据。另外“操作数读操作发生在指令周期开始时、写操作发生在 周期结束时”的读写规则保证了在并行指令中一个操作的源可以是另一个操作的目 的,节省指令条数。一个典型的并行指令的例子是,MR=MR+MXO*MYO(SS, MX0=DM(⑩0,M1),MY0=PM(14,M5),该指令把乘累加及取两个操作数集中在一个周 期内完成,它使得常见的乘积和运算只用一个单指令循环体就可以实现,可谓高效。 3.乘/累加的动态扩展范围大,两个16位的数据相乘,其结果保存在40位宽的 MR寄存器中,该寄存器既可以做累加用,又可以分为三个小存储器单独使用。这 么大的动态范围保证在一定循环次数的乘累加运算不至于发生中间溢出。 4.单周期的条件指令是另一个有用的指令形式,该指令允许根据上次运算或测试 的结果决定是否进行运算或跳转,这种形式保证了条件判断无需额外的周期开销 不仅如此,循环启动指令(仅占一个周期)旦执行,循环的主要周期开销就在循环 体的指令上,而条件判断和分支跳转都由硬件实现,不需任何额外的周期开销 5.数据存取指令具有很大的灵活性。它可以根据需要在对一个操作数进行完存取 之后自动修改地址指针,修改步长可由程序任意指定。如果需要,硬件可以在地址 指针超过循环缓冲区的尾部时自动把指针回绕到缓冲区的头部,这就是“硬件循环 缓冲区”的取模寻址。比如,若指针修改寄存器M1=3,长度寄存器L0=16,地址指 针寄存器I0=14,那么对DM(I0,M1)存取之后,I0将自动变为(14+3)mod16=1。 6.另一个特别有用的是串行口数据传输的自动缓冲区。如果允许了这个功能,那 么只有在整个缓冲区(大小是可编程的)的接收或发送全部完成时才会发生串行口中 断。这节约了一些不必要的额外开销
转和回绕(取模寻址)。(5)无额外开销的循环和转移:条件判断与跳转仅占一个周期。 ADI 的 ADSP-21xx 系列和 TI 的 TMS320xx 系列无疑正是按照这样的要求设计 的,它们都是定点的 DSP 处理器芯片中的骄骄者,但两者之间也有一些差异。下面 介绍一下 ADSP-21xx 芯片。 二、ADSP-21xx 系列处理器的结构特点 ADI 公司的 ADSP-21xx 系列处理器(代表器件是 ADSP-2101)是基于修改的 Harvard 结构的 16bit 定点系列处理器,这样的结构可以将操作数的数据从程序存储 器和数据存储器送到运算部分。 1. 汇编语言的所有指令都是单字、单周期指令,并使用代数语法进行书写,可读 性强。比如 MR=MX0*MY0(SS)指令,它把取自寄存器 MX0 和 MY0 的两个有符号 数乘起来后存到 MR 寄存器上,该指令看起来直观、方便。 2. 汇编语言中有大量的(单周期)并行指令,这些并行指令从功能上可分为两部分, 一部分进行计算,另一部分进行操作数存取。处理器采用修改的 Harvard 结构,数 据和程序存储器的数据和地址总线(共 4 条)是分离的,保证可同时从程序和数据存 储器中各取一个数据。另外“操作数读操作发生在指令周期开始时、写操作发生在 周期结束时”的读写规则保证了在并行指令中一个操作的源可以是另一个操作的目 的,节省指令条数。一个典型的并行指令的例子是,MR=MR+MX0*MY0(SS), MX0=DM(I0,M1), MY0=PM(I4, M5),该指令把乘累加及取两个操作数集中在一个周 期内完成,它使得常见的乘积和运算只用一个单指令循环体就可以实现,可谓高效。 3. 乘/累加的动态扩展范围大,两个 16 位的数据相乘,其结果保存在 40 位宽的 MR 寄存器中,该寄存器既可以做累加用,又可以分为三个小存储器单独使用。这 么大的动态范围保证在一定循环次数的乘累加运算不至于发生中间溢出。 4. 单周期的条件指令是另一个有用的指令形式,该指令允许根据上次运算或测试 的结果决定是否进行运算或跳转,这种形式保证了条件判断无需额外的周期开销。 不仅如此,循环启动指令(仅占一个周期)一旦执行,循环的主要周期开销就在循环 体的指令上,而条件判断和分支跳转都由硬件实现,不需任何额外的周期开销。 5. 数据存取指令具有很大的灵活性。它可以根据需要在对一个操作数进行完存取 之后自动修改地址指针,修改步长可由程序任意指定。如果需要,硬件可以在地址 指针超过循环缓冲区的尾部时自动把指针回绕到缓冲区的头部,这就是“硬件循环 缓冲区”的取模寻址。比如,若指针修改寄存器 M1=3, 长度寄存器 L0=16,地址指 针寄存器 I0=14,那么对 DM(I0, M1)存取之后,I0 将自动变为(14+3) mod 16=1。 6. 另一个特别有用的是串行口数据传输的自动缓冲区。如果允许了这个功能,那 么只有在整个缓冲区(大小是可编程的)的接收或发送全部完成时才会发生串行口中 断。这节约了一些不必要的额外开销
7.另外还有一些特别有用的功能,如乘法可以指定操作数为有符号数、无符号数 或一个是有符号数一个是无符号数;可以自动产生FFT按位逆序地址;中断状态的 自动保存和恢复;单周期的中断现场保存和恢复;串行口字长可编程为3~16位; 程序可从 EPROM上电自动加载;…等等,无不使DSP算法的效率大为提高。在 30ns指令周期的ADSP-2181处理器上,1024点的复数FFT运算的时间只有1.07ms。 三、结论 从上面的介绍中,我们向读者介绍了运算能力、数据寻址能力、程序定序能力 和IO操作能力是必须首先考虑的因素,它们和MIPS指标同样重要。我们在选用 时必须注意到这些因素。两种不同厂家的具有相同MIPS指标的DSP芯片,往往在 进行一些DSP运算时表现出的性能差异很大 还有一个非常重要的因素是考虑一下DSP厂家是否提供了很好的软件模拟和 硬件仿真工具。不要忽视了这些因素,好的开发工具往往能大大缩短开发周期。在 这方面,AD和TI公司都做得不错,有的是厂家提供的,有的是第三方开发商提供 开发工具的
7. 另外还有一些特别有用的功能,如乘法可以指定操作数为有符号数、无符号数 或一个是有符号数一个是无符号数;可以自动产生 FFT 按位逆序地址;中断状态的 自动保存和恢复;单周期的中断现场保存和恢复;串行口字长可编程为 3~16 位; 程序可从 EPROM 上电自动加载;…等等,无不使 DSP 算法的效率大为提高。在 30ns 指令周期的 ADSP-2181 处理器上,1024 点的复数 FFT 运算的时间只有 1.07ms。 三、结论 从上面的介绍中,我们向读者介绍了运算能力、数据寻址能力、程序定序能力 和 I/O 操作能力是必须首先考虑的因素,它们和 MIPS 指标同样重要。我们在选用 时必须注意到这些因素。两种不同厂家的具有相同 MIPS 指标的 DSP 芯片,往往在 进行一些 DSP 运算时表现出的性能差异很大。 还有一个非常重要的因素是考虑一下 DSP 厂家是否提供了很好的软件模拟和 硬件仿真工具。不要忽视了这些因素,好的开发工具往往能大大缩短开发周期。在 这方面,ADI 和 TI 公司都做得不错,有的是厂家提供的,有的是第三方开发商提供 开发工具的
三、目标板的设计 ADSP-21xx系列处理器的结构特点对硬件设计是很方便的,其接口标准、简单, 存储器扩容方便。处理器对外设的控制也异常简单,所有挂到处理器上的外设都可 以映象到处理器的数据存储器单元上 除此以外,ADⅠ公司提供了丰富的软硬件开发工具。 软件模拟器可以进行算法的验证和方案的论证。在模拟器中,编程者不仅可以 对程序进行单步、多步调试,还可以对串行口、定时器等各种内部中断等进行配置 和调试,达到了软件模拟硬件的目的。 硬件仿真器可以实时地对实际的目标板进行调试,通过目标板与仿真器之间的 传输通道,设计人员可以对目标板的时序及具体的硬件配合进行实地调试 所有这些工具缩短了开发周期。 四、应用实例 由于ADSP具有上面所介绍的一些特点,因此在数字信号处理的几乎各个应用 领域中ADSP芯片都堪称为上乘之选 它可以用在一维的信号处理中,如语音处理。 Oak Technology公司的 Mozart 声卡就是以ADSP21xx芯片为主要处理器的。事实上,第三方开发厂商开发了大量 的标准代码,如FFT标准算法、相关分析算法、向量运算、卷积运算等以及GSM 和CELP语音压缩算法等,用户可以用较低的投入获得这些代码。北京声迅公司生 产的数字电话答录机就是采用了GSM语音压缩算法的,用户通过这样的答录机可 以在本地或异地方便地读取其中的留言信息,这种随机存取信息的方便特性将给用 户带来很大的方便,标志着顺序存取的磁带式答录机的结束。仅是语音的压缩与还 原还不能说明问题,更复杂的语音识别算法也可以用ADSP汇编语言方便地实现。 清华大学计算机系与中国科技开发院江门分院联合研制的傻瓜式声控电话机就是比 较成功的一例。使用傻瓜电话机,用户免去了记电话号码之苦,打电话时只需口呼 对方的姓名,傻瓜机就会把预先存好的电话号码自动拨出去,一台傻瓜机可存200 门电话之多。不仅如此,这样的机器对盲人或夜间使用者带来了福音 在二维的数字信号处理中比较典型的应用是进行图象压缩和还原。图象的一些 典型的处理如图象增强、抽边、直方图分析、旋转、艺术处理等都可以用软件方便 地实现。设计出专用的电路板,可以对图象进行实时的压缩和回放。在多媒体电视 会议系统中可以发挥其强大的优势 除了数字信号处理方面,ADSP的另外一些非常重要的应用领域就是工业控制、 无线通讯、声纳、图形等。ADSP有很好的外部接口,通过这些接口,主CPU可以
三、目标板的设计 ADSP-21xx 系列处理器的结构特点对硬件设计是很方便的,其接口标准、简单, 存储器扩容方便。处理器对外设的控制也异常简单,所有挂到处理器上的外设都可 以映象到处理器的数据存储器单元上。 除此以外,ADI 公司提供了丰富的软硬件开发工具。 软件模拟器可以进行算法的验证和方案的论证。在模拟器中,编程者不仅可以 对程序进行单步、多步调试,还可以对串行口、定时器等各种内部中断等进行配置 和调试,达到了软件模拟硬件的目的。 硬件仿真器可以实时地对实际的目标板进行调试,通过目标板与仿真器之间的 传输通道,设计人员可以对目标板的时序及具体的硬件配合进行实地调试。 所有这些工具缩短了开发周期。 四、应用实例 由于 ADSP 具有上面所介绍的一些特点,因此在数字信号处理的几乎各个应用 领域中 ADSP 芯片都堪称为上乘之选。 它可以用在一维的信号处理中,如语音处理。Oak Technology 公司的 Mozart 声卡就是以 ADSP-21xx 芯片为主要处理器的。事实上,第三方开发厂商开发了大量 的标准代码,如 FFT 标准算法、相关分析算法、向量运算、卷积运算等以及 GSM 和 CELP 语音压缩算法等,用户可以用较低的投入获得这些代码。北京声迅公司生 产的数字电话答录机就是采用了 GSM 语音压缩算法的,用户通过这样的答录机可 以在本地或异地方便地读取其中的留言信息,这种随机存取信息的方便特性将给用 户带来很大的方便,标志着顺序存取的磁带式答录机的结束。仅是语音的压缩与还 原还不能说明问题,更复杂的语音识别算法也可以用 ADSP 汇编语言方便地实现。 清华大学计算机系与中国科技开发院江门分院联合研制的傻瓜式声控电话机就是比 较成功的一例。使用傻瓜电话机,用户免去了记电话号码之苦,打电话时只需口呼 对方的姓名,傻瓜机就会把预先存好的电话号码自动拨出去,一台傻瓜机可存 200 门电话之多。不仅如此,这样的机器对盲人或夜间使用者带来了福音。 在二维的数字信号处理中比较典型的应用是进行图象压缩和还原。图象的一些 典型的处理如图象增强、抽边、直方图分析、旋转、艺术处理等都可以用软件方便 地实现。设计出专用的电路板,可以对图象进行实时的压缩和回放。在多媒体电视 会议系统中可以发挥其强大的优势。 除了数字信号处理方面,ADSP 的另外一些非常重要的应用领域就是工业控制、 无线通讯、声纳、图形等。ADSP 有很好的外部接口,通过这些接口,主 CPU 可以
通过采集来的信息进行综合和分析,确定出比较合理的动作系列以控制外围设备 比如模糊控制洗衣机就可以采用这样的芯片进行控制
通过采集来的信息进行综合和分析,确定出比较合理的动作系列以控制外围设备。 比如模糊控制洗衣机就可以采用这样的芯片进行控制