数字信号处理是将信号以数字方式表示并处理的理论和技术。数字信号处理与模拟信号处理是信号处理的子集。数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波。因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现。而数字信号处理的输出经常也要变换到模拟域,这是通过数模转换器实现的。
应用简介基本简介数字信号处理器(digital signal processor) 由大规模或超大规模集成电路心片组成的用来完成某种信号处理任务的处理器。它是为适应高速实时信号处理任务的需要而逐渐发展起来的。随着集成电路技术和数字信号处理算法的发展,数字信号处理器的实现方法也在不断变化,处理功能不断提高和扩大。
内置数字信号处理器(DSP,DigitalSignalProcessor)是车载主机内以逻辑电路对音视频数字信号进行再加工处理的专用元件,是一个统称名词,包括数字效果器、EQ、3D环绕等等。数字信号处理器(DSP,即DigitalSignalProcessor)是进行数字信号处理的专用芯片,是伴随着微电子学、数字信号处理技术、计算机技术的发展而产生的新器件。
应用数字信号处理器并非只局限于音视频层面,它广泛的应用于通信与信息系统、信号与信息处理、自动控制、雷达、军事、航空航天、医疗、家用电器等许多领域。以往是采用通用的微处理器来完成大量数字信号处理运算,速度较慢,难以满足实际需要;而同时使用位片式微处理器和快速并联乘法器,曾经是实现数字信号处理的有效途径,但此方法器件较多,逻辑设计和程序设计复杂,耗电较大,价格昂贵。数字信号处理器DSP的出现,很好的解决了上述问题。DSP可以快速的实现对信号的采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式。
对于车载主机而言,数字信号处理器DSP主要是提供特定的音场或效果,例如剧场、爵士乐等等,有些还能接收高清晰度(HD)无线电和卫星无线电等等,以达到最大的视听享受。数字信号处理器DSP增强了车载主机的性能和可用性,提高了音视频质量、提供了更多的灵活性和更快的设计周期。随着技术的发展,相信以后还能提供更多的听觉和视觉特效,而使车载主机成为车内的高科技信息和娱乐中心1。
分类数字信号处理器按其可编程性可分为可编程和不可编程两大类。不可编程的信号处理器以信号处理算法的流程为基本逻辑结构,没有控制程序,一般只能完成一种主要的处理功能,所以又称专用信号处理器。如快速傅里叶变换处理器、数字滤波器等。这类处理器虽然功能局限,但有较高的处理速度。可编程信号处理器则可通过编程改变处理器所要完成的功能,有较大的通用性,所以又称通用信号处理器。随着通用信号处理器性能价格比的不断提高,它在信号处的应用日益普及。
已开发的可编程信号处理器大致上有三类:①位由基本位长为2,4,8位的微处理片为主体,配以程序控制片、中断及DMA控制片、时钟片等构成。采用微程序控制、分组指令格式,可按需要构成所需字长的系统。其优点是处理速度快、效率高。缺点是功耗较大,片子的数量也较多。②单片信号处理器。它将运算器、乘法器、存储器、程序只读存储器(ROM)、输入输出接口,甚至模/数数/模转换等全部集成在单片上。其运算速度快、精度高、功耗低通用性强。与通用的微处理器相比它的指令集合和寻址方式更适合于信号处理常用的运算和数据结构。③超大规模集成电路(VLSI)阵列处理器。这是一种利用大量处理单元在单指令序列控制下对不同的数据完成相同的操作,从而获得高速计算的信号处理器。非常适合于大数据量、大计算量、运算重复性强的信号处理任务。它们常与通用计算机联用,构成强有力的信号处理系统现有的阵列处理器大致上有两类,即脉动阵列处理器。
和波动阵列处理器。前者采用全阵列统一的同步时钟和控制驱动机制,具有结构简单、模块性好、易于扩展等优点。而后者采用各单元独立定时,数据驱动机制。给编程和容错设计带来一定方便,在处理速度上也提高2。
发展方向数字信号处理器从20世纪70年代的专用信号处理器开始发展到VLSI阵列处理器,其应用领域已经从最初的语音、声纳等低频信号的处理发展到雷达、图像等视频大数据量的信号处理。由于浮点运算和并行处理技术的利用,信号处理器理能力已得到极大的提高。数字信号处理器还将继续沿着提高处理速度和运算精度两个方向发展在体系结构上数据流结构以至人工神经网络结构等将可能成为下一代数字信号处理器的基本结构模式。
算法格式
DSP的算法有多种。绝大多数的DSP处理器使用定点算法,数字表示为整数或-1.0到+1.0之间的小数形式。有些处理器采用浮点算法,数据表示成尾数加指数的形式:尾数×2指数。
浮点算法是一种较复杂的常规算法,利用浮点数据可以实现大的数据动态范围(这个动态范围可以用最大和最小数的比值来表示)。浮点DSP在应用中,设计工程师不用关心动态范围和精度一类的问题。浮点DSP比定点DSP更容易编程,但是成本和功耗高。
由于成本和功耗的原因,一般批量产品选用定点DSP。编程和算法设计人员通过分析或仿真来确定所需要的动态范围和精度。如果要求易于开发,而且动态范围很宽、精度很高,可以考虑采用浮点DSP。
也可以在采用定点DSP的条件下由软件实现浮点计算,但是这样的软件程序会占用大量处理器时间,因而很少使用。有效的办法是“块浮点”,利用该方法将具有相同指数,而尾数不同的一组数据作为数据块进行处理。“块浮点”处理通常用软件来实现。
数据宽度
所有浮点DSP的字宽为32位,而定点DSP的字宽一般为16位,也有24位和20位的DSP,如摩托罗拉的DSP563XX系列和Zoran公司的ZR3800X系列。由于字宽与DSP的外部尺寸、管脚数量以及需要的存储器的大小等有很大的关系,所以字宽的长短直接影响到器件的成本。字宽越宽则尺寸越大,管脚越多,存储器要求也越大,成本相应地增大。在满足设计要求的条件下,要尽量选用小字宽的DSP以减小成本。
在关于定点和浮点的选择时,可以权衡字宽和开发复杂度之间的关系。例如,通过将指令组合连用,一个16位字宽的DSP器件也可以实现32位字宽双精度算法(当然双精度算法比单精度算法慢得多)。如果单精度能满足绝大多数的计算要求,而仅少量代码需要双精度,这种方法也可行,但如果大多数的计算要求精度很高,则需要选用较大字宽的处理器。
请注意,绝大多数DSP器件的指令字和数据字的宽度一样,也有一些不一样,如ADI(模拟器件公司)的ADSP-21XX系列的数据字为16位而指令字为24位。
处理速度
处理器是否符合设计要求,关键在于是否满足速度要求。测试处理器的速度有很多方法,最基本的是测量处理器的指令周期,即处理器执行最快指令所需要的时间。指令周期的倒数除以一百万,再乘以每个周期执行的指令数,结果即为处理器的最高速率,单位为每秒百万条指令MIPS。
但是指令执行时间并不能表明处理器的真正性能,不同的处理器在单个指令完成的任务量不一样,单纯地比较指令执行时间并不能公正地区别性能的差异。一些新的DSP采用超长指令字(VLIW)架构,在这种架构中,单个周期时间内可以实现多条指令,而每个指令所实现的任务比传统DSP少,因此相对VLIW和通用DSP器件而言,比较MIPS的大小时会产生误导作用。
即使在传统DSP之间比较MIPS大小也具有一定的片面性。例如,某些处理器允许在单个指令中同时对几位一起进行移位,而有些DSP的一个指令只能对单个数据位移位;有些DSP可以进行与正在执行的ALU指令无关的数据的并行处理(在执行指令的同时加载操作数),而另外有些DSP只能支持与正在执行的ALU指令有关的数据并行处理;有些新的DSP允许在单个指令内定义两个MAC。因此仅仅进行MIPS比较并不能准确得出处理器的性能。
解决上述问题的方法之一是采用一个基本的操作(而不是指令)作为标准来比较处理器的性能。常用到的是MAC操作,但是MAC操作时间不能提供比较DSP性能差异的足够信息,在绝大多数DSP中,MAC操作仅在单个指令周期内实现,其MAC时间等于指令周期时间,如上所述,某些DSP在单个MAC周期内处理的任务比其它DSP多。MAC时间并不能反映诸如循环操作等的性能,而这种操作在所有的应用中都会用到。
最通用的办法是定义一套标准例程,比较在不同DSP上的执行速度。这种例程可能是一个算法的“核心”功能,如FIR或IIR滤波器等,也可以是整个或部分应用程序(如语音编码器)。图1为使用BDTI公司的工具测试的几款DSP器件性能。
在比较DSP处理器的速度时要注意其所标榜的MOPS(百万次操作每秒)和MFLOPS(百万次浮点操作每秒)参数,因为不同的厂商对“操作”的理解不一样,指标的意义也不一样。例如,某些处理器能同时进行浮点乘法操作和浮点加法操作,因而标榜其产品的MFLOPS为MIPS的两倍。
其次,在比较处理器时钟速率时,DSP的输入时钟可能与其指令速率一样,也可能是指令速率的两倍到四倍,不同的处理器可能不一样。另外,许多DSP具有时钟倍频器或锁相环,可以使用外部低频时钟产生片上所需的高频时钟信号。
实际应用
语音处理:语音编码、语音合成、语音识别、语音增强、语音邮件、语音储存等。
图像/图形:二维和三维图形处理、图像压缩与传输、图像识别、动画、机器人视觉、多媒体、电子地图、图像增强等。
军事;保密通信、雷达处理、声呐处理、导航、全球定位、跳频电台、搜索和反搜索等。
仪器仪表:频谱分析、函数发生、数据采集、地震处理等。
自动控制:控制、深空作业、自动驾驶、机器人控制、磁盘控制等。
医疗:助听、超声设备、诊断工具、病人监护、心电图等。
家用电器:数字音响、数字电视、可视电话、音乐合成、音调控制、玩具与游戏等。
生物医学信号处理举例:
CT:计算机X射线断层摄影装置。(其中发明头颅CT英国EMI公司的豪斯菲尔德获诺贝尔奖。)
CAT:计算机X射线空间重建装置。出现全身扫描,心脏活动立体图形,脑肿瘤异物,人体躯干图像重建。心电图分析。
存储管理
DSP的性能受其对存储器子系统的管理能力的影响。如前所述,MAC和其它一些信号处理功能是DSP器件信号处理的基本能力,快速MAC执行能力要求在每个指令周期从存储器读取一个指令字和两个数据字。有多种方法实现这种读取,包括多接口存储器(允许在每个指令周期内对存储器多次访问)、分离指令和数据存储器(“哈佛”结构及其派生类)以及指令缓存(允许从缓存读取指令而不是存储器,从而将存储器空闲出来用作数据读取)。图2和图3显示了哈佛存储器结构与很多微控制器采用的“冯·诺曼”结构的差别。
另外要注意所支持的存储器空间的大小。许多定点DSP的主要目标市场是嵌入式应用系统,在这种应用中存储器一般较小,所以这种DSP器件具有小到中等片上存储器(4K到64K字左右),备有窄的外部数据总线。另外,绝大多数定点DSP的地址总线小于或等于16位,因而可外接的存储器空间受到限制。
一些浮点DSP的片上存储器很小,甚至没有,但外部数据总线宽。例如TI公司的TMS320C30只有6K片上存储器,外部总线为24位,13位外部地址总线。而ADI的ADSP2-21060具有4Mb的片上存储器,可以多种方式划分为程序存储器和数据存储器。
选择DSP时,需要根据具体应用对存储空间大小以及对外部总线的要求来选择。
类型特点
DSP处理器和诸如英特尔、奔腾或Power
PC的通用处理器(GPPs)有很大的区别,这些区别产生于DSPs的结构和指令是专门针对信号处理而设计和开发的,它具有以下特点。
·硬件乘法累加操作(MACs)
为了有效完成诸如信号滤波的乘法累加运算,处理器必需进行有效的乘法操作。GPPs起初并不是为繁重的乘法操作设计的,把DSPs同早期的GPPs区别开来的第一个重大技术改进就是添加了能够进行单周期乘法操作的专门硬件和明确的MAC指令。
·哈佛结构
传统的GPPs使用冯.诺曼存储结构,在这种结构中,有一个存储空间通过两条总线(一条地址总线和一条数据总线)连接到处理器内核,这种结构不能满足MAC必须在一个指令周期中对存储器进行四次访门的要求。DSPs一般使用哈佛结构,在哈佛结构中,有两个存储空间:程序存储空间和数据存储空间。处理器内核通过两套总线与这些存储空间相连,允许对存储器同时进行两访问,这种安排使处理器的带宽加倍。在哈佛结构中,有时通过增加第二个数据存储空间和总线来实现更大的存储带宽。现代高性能GPPs通常具有两个片上超高速缓冲存储器一个存放数据,一个存放指令。从理论的角度上讲,这种双重片上高速缓存与总线连接等同于哈佛结构,但是,GPPs使用控制逻辑来确定哪些数据和指令字驻留在片上高速缓存里,这个过程通常不为程序设计者所见,而在DSPs里,程序设计者能明确的控制哪些数据和指令被存储在片上的存储单元或缓存中。
·零消耗循环控制
DSP算法的共同特征:大部分处理时间花在执行包含在相对小循环内的少量指令上。因此,大部分DSP处理器具有零消耗循环控制的专门硬件。零消耗循环是指处理器不用花时间测试循环计数器的值就能执行一组指令的循环,硬件完成循环跳转和循环计数器的衰减。有些DSPs还通过一条指令的超高速缓存实现高速的单指令循环。
·特殊寻址模式
DSPs经常包含有专门的地址产生器,它能产生信号处理算法需要的特殊寻址,如循环寻址和位翻转寻址。循环寻址对应于流水FIR滤波算法,位翻转寻址对应于FFT算法。
·执行时间的可预测性
大多数DSP应用都具有硬性实时要求,在每种情况下所有处理工作都必须在指定时间内完成。这种实时限制要求程序设计者确定每个样本究竟需要多少时间或者在最坏情况下至少用去多少时间。DSPs执行程序的进程对程序员来说是透明的,因此很容易预测处理每项工作的执行时间。但是,对于高性能GPPs来说,由于大量超高速数据和程序缓存的使用,动态分配程序,因此执行时间的预测变得复杂和困难。
·具有丰富的外设
DSPs具有DMA、串口、Link口、定时器等外设3。
知识简介算法格式DSP的算法有多种。绝大多数的DSP处理器使用定点算法,数字表示为整数或-1.0到+1.0之间的小数形式。有些处理器采用浮点算法,数据表示成尾数加指数的形式:尾数×2指数。
浮点算法是一种较复杂的常规算法,利用浮点数据可以实现大的数据动态范围(这个动态范围可以用最大和最小数的比值来表示)。浮点DSP在应用中,设计工程师不用关心动态范围和精度一类的问题。浮点DSP比定点DSP更容易编程,但是成本和功耗高。
由于成本和功耗的原因,一般批量产品选用定点DSP。编程和算法设计人员通过分析或仿真来确定所需要的动态范围和精度。如果要求易于开发,而且动态范围很宽、精度很高,可以考虑采用浮点DSP。
也可以在采用定点DSP的条件下由软件实现浮点计算,但是这样的软件程序会占用大量处理器时间,因而很少使用。有效的办法是“块浮点”,利用该方法将具有相同指数,而尾数不同的一组数据作为数据块进行处理。“块浮点”处理通常用软件来实现。
数据宽度所有浮点DSP的字宽为32位,而定点DSP的字宽一般为16位,也有24位和20位的DSP,如摩托罗拉的DSP563XX系列和Zoran公司的ZR3800X系列。由于字宽与DSP的外部尺寸、管脚数量以及需要的存储器的大小等有很大的关系,所以字宽的长短直接影响到器件的成本。字宽越宽则尺寸越大,管脚越多,存储器要求也越大,成本相应地增大。在满足设计要求的条件下,要尽量选用小字宽的DSP以减小成本。
在关于定点和浮点的选择时,可以权衡字宽和开发复杂度之间的关系。例如,通过将指令组合连用,一个16位字宽的DSP器件也可以实现32位字宽双精度算法(当然双精度算法比单精度算法慢得多)。如果单精度能满足绝大多数的计算要求,而仅少量代码需要双精度,这种方法也可行,但如果大多数的计算要求精度很高,则需要选用较大字宽的处理器。
请注意,绝大多数DSP器件的指令字和数据字的宽度一样,也有一些不一样,如ADI(模拟器件公司)的ADSP-21XX系列的数据字为16位而指令字为24位。
处理速度处理器是否符合设计要求,关键在于是否满足速度要求。测试处理器的速度有很多方法,最基本的是测量处理器的指令周期,即处理器执行最快指令所需要的时间。指令周期的倒数除以一百万,再乘以每个周期执行的指令数,结果即为处理器的最高速率,单位为每秒百万条指令MIPS。
但是指令执行时间并不能表明处理器的真正性能,不同的处理器在单个指令完成的任务量不一样,单纯地比较指令执行时间并不能公正地区别性能的差异。一些新的DSP采用超长指令字(VLIW)架构,在这种架构中,单个周期时间内可以实现多条指令,而每个指令所实现的任务比传统DSP少,因此相对VLIW和通用DSP器件而言,比较MIPS的大小时会产生误导作用。
即使在传统DSP之间比较MIPS大小也具有一定的片面性。例如,某些处理器允许在单个指令中同时对几位一起进行移位,而有些DSP的一个指令只能对单个数据位移位;有些DSP可以进行与正在执行的ALU指令无关的数据的并行处理(在执行指令的同时加载操作数),而另外有些DSP只能支持与正在执行的ALU指令有关的数据并行处理;有些新的DSP允许在单个指令内定义两个MAC。因此仅仅进行MIPS比较并不能准确得出处理器的性能。
解决上述问题的方法之一是采用一个基本的操作(而不是指令)作为标准来比较处理器的性能。常用到的是MAC操作,但是MAC操作时间不能提供比较DSP性能差异的足够信息,在绝大多数DSP中,MAC操作仅在单个指令周期内实现,其MAC时间等于指令周期时间,如上所述,某些DSP在单个MAC周期内处理的任务比其它DSP多。MAC时间并不能反映诸如循环操作等的性能,而这种操作在所有的应用中都会用到。
最通用的办法是定义一套标准例程,比较在不同DSP上的执行速度。这种例程可能是一个算法的“核心”功能,如FIR或IIR滤波器等,也可以是整个或部分应用程序(如语音编码器)。图1为使用BDTI公司的工具测试的几款DSP器件性能。
在比较DSP处理器的速度时要注意其所标榜的MOPS(百万次操作每秒)和MFLOPS(百万次浮点操作每秒)参数,因为不同的厂商对“操作”的理解不一样,指标的意义也不一样。例如,某些处理器能同时进行浮点乘法操作和浮点加法操作,因而标榜其产品的MFLOPS为MIPS的两倍。
其次,在比较处理器时钟速率时,DSP的输入时钟可能与其指令速率一样,也可能是指令速率的两倍到四倍,不同的处理器可能不一样。另外,许多DSP具有时钟倍频器或锁相环,可以使用外部低频时钟产生片上所需的高频时钟信号。
实际应用语音处理:语音编码、语音合成、语音识别、语音增强、语音邮件、语音储存等。
图像/图形:二维和三维图形处理、图像压缩与传输、图像识别、动画、机器人视觉、多媒体、电子地图、图像增强等。
军事;保密通信、雷达处理、声呐处理、导航、全球定位、跳频电台、搜索和反搜索等。
仪器仪表:频谱分析、函数发生、数据采集、地震处理等。
自动控制:控制、深空作业、自动驾驶、机器人控制、磁盘控制等。
医疗:助听、超声设备、诊断工具、病人监护、心电图等。
家用电器:数字音响、数字电视、可视电话、音乐合成、音调控制、玩具与游戏等。
生物医学信号处理举例:
CT:计算机X射线断层摄影装置。(其中发明头颅CT英国EMI公司的豪斯菲尔德获诺贝尔奖。)
CAT:计算机X射线空间重建装置。出现全身扫描,心脏活动立体图形,脑肿瘤异物,人体躯干图像重建。
心电图分析。
存储管理DSP的性能受其对存储器子系统的管理能力的影响。如前所述,MAC和其它一些信号处理功能是DSP器件信号处理的基本能力,快速MAC执行能力要求在每个指令周期从存储器读取一个指令字和两个数据字。有多种方法实现这种读取,包括多接口存储器(允许在每个指令周期内对存储器多次访问)、分离指令和数据存储器(“哈佛”结构及其派生类)以及指令缓存(允许从缓存读取指令而不是存储器,从而将存储器空闲出来用作数据读取)。图2和图3显示了哈佛存储器结构与很多微控制器采用的“冯·诺曼”结构的差别。
另外要注意所支持的存储器空间的大小。许多定点DSP的主要目标市场是嵌入式应用系统,在这种应用中存储器一般较小,所以这种DSP器件具有小到中等片上存储器(4K到64K字左右),备有窄的外部数据总线。另外,绝大多数定点DSP的地址总线小于或等于16位,因而可外接的存储器空间受到限制。
一些浮点DSP的片上存储器很小,甚至没有,但外部数据总线宽。例如TI公司的TMS320C30只有6K片上存储器,外部总线为24位,13位外部地址总线。而ADI的ADSP2-21060具有4Mb的片上存储器,可以多种方式划分为程序存储器和数据存储器。
选择DSP时,需要根据具体应用对存储空间大小以及对外部总线的要求来选择。
类型特点DSP处理器和诸如英特尔、奔腾或Power
PC的通用处理器(GPPs)有很大的区别,这些区别产生于DSPs的结构和指令是专门针对信号处理而设计和开发的,它具有以下特点。
·硬件乘法累加操作(MACs)
为了有效完成诸如信号滤波的乘法累加运算,处理器必需进行有效的乘法操作。GPPs起初并不是为繁重的乘法操作设计的,把DSPs同早期的GPPs区别开来的第一个重大技术改进就是添加了能够进行单周期乘法操作的专门硬件和明确的MAC指令。
·哈佛结构
传统的GPPs使用冯.诺曼存储结构,在这种结构中,有一个存储空间通过两条总线(一条地址总线和一条数据总线)连接到处理器内核,这种结构不能满足MAC必须在一个指令周期中对存储器进行四次访门的要求。DSPs一般使用哈佛结构,在哈佛结构中,有两个存储空间:程序存储空间和数据存储空间。处理器内核通过两套总线与这些存储空间相连,允许对存储器同时进行两访问,这种安排使处理器的带宽加倍。在哈佛结构中,有时通过增加第二个数据存储空间和总线来实现更大的存储带宽。现代高性能GPPs通常具有两个片上超高速缓冲存储器一个存放数据,一个存放指令。从理论的角度上讲,这种双重片上高速缓存与总线连接等同于哈佛结构,但是,GPPs使用控制逻辑来确定哪些数据和指令字驻留在片上高速缓存里,这个过程通常不为程序设计者所见,而在DSPs里,程序设计者能明确的控制哪些数据和指令被存储在片上的存储单元或缓存中。
·零消耗循环控制
DSP算法的共同特征:大部分处理时间花在执行包含在相对小循环内的少量指令上。因此,大部分DSP处理器具有零消耗循环控制的专门硬件。零消耗循环是指处理器不用花时间测试循环计数器的值就能执行一组指令的循环,硬件完成循环跳转和循环计数器的衰减。有些DSPs还通过一条指令的超高速缓存实现高速的单指令循环。
·特殊寻址模式
DSPs经常包含有专门的地址产生器,它能产生信号处理算法需要的特殊寻址,如循环寻址和位翻转寻址。循环寻址对应于流水FIR滤波算法,位翻转寻址对应于FFT算法。
·执行时间的可预测性
大多数DSP应用都具有硬性实时要求,在每种情况下所有处理工作都必须在指定时间内完成。这种实时限制要求程序设计者确定每个样本究竟需要多少时间或者在最坏情况下至少用去多少时间。DSPs执行程序的进程对程序员来说是透明的,因此很容易预测处理每项工作的执行时间。但是,对于高性能GPPs来说,由于大量超高速数据和程序缓存的使用,动态分配程序,因此执行时间的预测变得复杂和困难。
·具有丰富的外设
DSPs具有DMA、串口、Link口、定时器等外设。
评估标准性能分档DSP处理器的性能可分为三个档次:低成本、低性能DSPs,低能耗的中段DSPs和多样化的高端DSPs。低成本性能的低端DSPs是工业界使用最广泛的处理器。在这一范围内的产品有:ADSP-21xx,TMS320C2xx,DSP560xx等系列,它们的运行速度一般为20~50MIPS,并在维持适当能量消耗和存储容量的同时,提供优质的DSP性能。价格适中的DSP处理器,通过增加时钟频率,结合更为复杂的硬件来提高的性能,形成了DSPs的中段产品,如DSP16xx,TMS320C54x系列,它们的运行速度为100~150MIPS,通常用在无线电讯设备和高速解调器中,要求相对高的处理速度和低的能耗。高端DSPs由于被超高速处理需求的推动,其结构真正开始进行分类和向多样化发展,有关结构下节详述。高端DSPs的主频达到150MHz以上,处理速度为1000MIPS以上,如TI的TMS320C6X系列、ADI的Tiger SHARC等。
评价指标评价处理器性能的指标有很多,最常用的是速度,但能耗和存储器容量指标也很重要,特别是在嵌入系统应用上。鉴于DSPs的日益增多,系统设计者要想选出在给定应用设备上能够提供最佳性能的处理器变得比较困难。过去,DSP系统设计者依靠MIPS或类似的量度,来大概了解不同芯片提供的相对性能。不幸的是,随着处理器技术的多样化,象MIPS这样的传统量度越来越不准确,因为MIPS并不是实际测量性能。由于DSP应用程序的特征之一是大部分的处理工作集中在程序的一部分(核心程序),因此可以用与信号处理相关的基准程序来测试评估DSP处理器。BDTI公司已完成成套的核心标准,并注册了一种新型混合速度度量:BDTI分数2。
结构简介概述最近两年,DSP处理器的更高性能由于不能从传统结构中得到解决,因此提出了各种提高性能的策略。其中提高时钟频率似乎是有限的,最好的方法是提高并行性。提高操作并行性,可以由两个途径实现:提高每条指令执行的操作的数量,或者是提高每个指令周期中执行的指令的数量。这两种并行要求产生了多种DSPs新结构。
增强型DSP
以前,DSP处理器使用复杂的、混合的指令集,使编程者可以把多个操作编码在一条指令中。传统上DSP处理器在一条指令周期只发射并执行一条指令。这种单流、复杂指令的方法使得DSP处理器获得很强大的性能而无需大量的内存。
在保持DSP结构和上述指令集不变的情况下,要提高每个指令的工作量,其中的一个办法是用额外的执行单元和增加数据通路。例如,一些高端的DSP有两个乘法器,而不是一个。我们把使用这种方法的DSP叫做撛銮啃统9妫模樱袛,因为它们的结构与前一代的DSP相似,但性能在增加执行单元后大大增强了。当然,指令集必须也同时增强,这样编程者才能在一条指令中指定更多的并行操作,以利用额外的硬件。增强型DSPs的例子有朗讯公司的DSP16000,ADI的ADSP2116x。增强型DSPs的优点是兼容性好,而且与较早的DSP具有相似的成本和功耗。缺点是结构复杂、指令复杂,进一步发展有限。
VLIW结构
如前所述,传统上的DSP处理器使用复杂的混合指令,并在一条指令循环中只流出和执行一条指令。然而,最近有些DSP采用一种更RISC化的指令集,并且在一条指令周期执行多条指令,使用大的统一的寄存器堆。例如,Siemems的Carmel、Philips的TriMedia和TI的TMS320C62XX处理器族都使用了超长指令字(VLIW)结构。C62xx处理器每次取一个256位的指令包,把包解析为8个32位的指令,然后把它们引到其8个独立的执行单元。在最好的情况下,C62xx同时执行8个指令枣这种情况下达到了极高的MIPS率(如1600MIPS)。VLIW结构的优点是高性能、结构规整(潜在的易编程和好的目标编译系统)。缺点是高功耗、代码膨胀-需要宽的程序存储器、新的编程/编译困难(需跟踪指令安排,易破坏流水线使性能下降)。
超标量体超标量体系结构
象VLIW处理器一样,超标量体系结构并行地流出和执行多个指令。但跟VLIW处理器不同的是,超标量体系结构不清楚指定需要并行处理的指令,而是使用动态指令规划,根据处理器可用的资源,数据依赖性和其他的因素来决定哪些指令要被同时执行。超标量体系结构已经长期用于高性能的通用处理器中,如Pentium和PowerPC。最近,ZSP公司开发出第一个商业的超标量体系结构的DSP
ZSP164xx。超标量结构的优点是性能有大的跨越、结构规整、代码宽度没有明显增长。缺点是非常高的功耗、指令的动态安排使代码优化困难。
SIMD结构
单指令多数据流(SIMD)处理器把输入的长的数据分解为多个较短的数据,然后由单指令并行地操作,从而提高处理海量、可分解数据的能力。该技术能大幅度地提高在多媒体和信号处理中大量使用的一些矢量操作的计算速度,如坐标变换和旋转。
通用处理器SIMD增强的两个例子是Pentium的MMX扩展和PowerPC族的AltiVec扩展。simd在一些高性能的DSP处理器中也有应用。例如,DSP16000在其数据路中支持有限的SIMD风格的操作,而Analog
Devices最近推出了有名的SHARC的新一代DSP处理器,进行了SIMD能力的扩展。SIMD结构由于使总线、数据通道等资源充分使用,并无需改变信号处理(含图象、语音)算法的基本结构,因此SIMD结构使用越来越普遍。SIMD结构遇到的问题是算法、数据结构必须满足数据并行处理的要求,为了加速,循环常常需要被拆开,处理数据需要重新安排调整。通常SIMD仅支持定点运算。
混合结构DSP/微控制器的混合结构
许多的应用需要以控制为主的软件和DSP软件的混合。一个明显的例子是数字蜂窝电话,因为其中有监控和语音处理的工作。一般地,微处理器在控制上能提供良好的性能而在DSP性能上则很糟,专用的DSP处理器的特性则刚好相反。因此,最近有一些微处理器产商开始提供DSP增强版本的微处理器。用单处理器完成两种软件的任务是很有吸引力的,因为其可以潜在地提供简化设计,节省版面空间,降低总功耗,降低系统成本等。DSP和微处理器结合的方法有:
·在一个结上集成多种处理器,如MotorolaDSP5665x
·DSP作为协处理器,如ARMPiccolo
·DSP核移值到已有的位处理器,如SH-DSP
·微控制器与已有的DSP集成在一起,如TMS320C27xx
·全部新的设计,如TriCore
随着对DSP能力需求的提高,DSP处理器结构正在进行新的和革新的设计,DSP、MCU、CPU的结构优点相互借用。
发展趋势综述DSP处理器发展的趋势是结构多样化,集成单片化用户化,开发工具更完善,评价体系更全面更专业。
趋势VLIW结构、超标量体系结构和DSP/MCU混合处理器是DSPs结构发展的新潮流。VLIW和超标量结构能够获得很高的处理性能。DSP/MCU混合可以简化应用系统设计,降低体积和成本。高性能通用处理器(GPPs)借用了DSPs的许多结构优点,其浮点处理速度比高档DSPs还要快。高性能GPPs一般时钟频率为200~500MHz,具有超标量、SIMD结构,单周期乘法操作,好的存储器带宽,转移预测功能,因此GPPs正在涉足DSP领域。但由于GPPs缺乏实时可预测性,优化DSP代码困难,有限的DSP工具支持,高功耗等问题,因此GPPs在DSP中的应用还有限。但瞄准嵌入系统应用的高性能GPPs与DSPs进行混合,形成专用的嵌入GPPs,如Hitachi的SH-DSP,ARM的Piccolo,Siemens的TriCore。嵌入GPPs保留原有的高性能,并加强DSP实时预测、控制等方面的能力,与专用DSP处理器形成了对照。
在DSPs综合集成方面,处理器核和快速用户可定制能力是重要的。预计将出现和流行:用户可定制DSPs,块组建DSPs,可编程整数DSPs,DSPs化现场可编程门阵列(FPGAs),更专用化的DSPs,多媒体DSPs等。更令人鼓舞的是未来DSP处理器将集成DSP处理器核,微控制器,存储器RAM和ROM,串行口,模数转换器,数模转换器,用户定义数字电路,用户定义模拟电路等,因此DSP处理系统一般将不再是若干印制板(如信号调理板,A/D板,D/A板,接口定时板等)组成的大系统。
由于DSPS结构的多样化,DSPS性能测试将变得更加困难,MIPS、MOPS、MFLOPS、BOPS等指标将越来越不能准确反映DSPS的性能,因此需要更细更专业化的测试评价标准。对具体应用来说,某些单项功能测试结果,可能显得更重要。
随着DSPs性能的提高,开发工具可能比处理器结构将更重要,因为只有有效的开发工具,才能使处理器得到普遍使用,并使性能充分发挥。片上Debug是实时调试的最好手段,它将采用与JTAG兼容的Debug口。C编译器的效率仍然是重点,如何方便容易地进行有效代码开发是关键。指令软件仿真器显得更重要,更精确的指令软件仿真器将得到开发。多类型DSP调试开发工具将混合集成在一起。DSPs开发工具将是一个充满机遇和挑战的领域。
DSP处理器存在两种发展趋势:一是DSP应用越来越多,如手机和便携式音频播放器等。DSP将集成更多功能,如A/D转换、LCD控制器等,系统成本和器件数将会大为降低。另一个趋势是将DSP作为IP出售,如亿恒科技公司的Camel和TriCore内核。随着EDA工具的不断成熟,系统设计工程师将更容易地修改DSP内核,加入用户专用外围电路以实现更专业化、更低成本的DSP解决方案。
80年代还属于少数人研究的数字信号处理(DSP),进入90年代以来,已逐渐成为人们最常用的工程术语之一。处理器应用广泛的原因在于,处理器的制造技术发展得极为先进,使处理器的成本下降到这一水平:它可用在消费品和其它对成本敏感的系统中;处理器的处理速度上升到这一水平:它可满足大部分高速实时信号处理的需求。在产品中越来越多地使用DSP处理器,加剧了对更快、更便宜、更节省能量的DSP处理器的开发和迅速发展。
DSP处理器(DSPs)的品种越来越繁多,除了大家熟知的四大DSPs产商:TexasInstruments(德州仪器)公司、Lucent Technologies(朗讯技术)公司、Analog
Devies(模拟设备)公司和Motorola(摩托罗拉)公司,大约还有80家DSPs产商。它们生产的DSPs主要用于特殊功能的设备,如调制解调器、MPEG译码器、硬盘驱动器等。DSP处理器可分为两大类:定点DSPs和浮点DSPs。定点DSPs发展迅速,品种最多,处理速度为20~2000MIPS。浮点DSPs基本由TI和AD公司垄断,处理速度40~1000MFLOPS。DSPs的性能已形成低、中、高三档,高端产品处理器结构发生了深刻的变化,形成了多样化的趋势。
选购指南DSP处理器的应用领域很广,但实际上没有一个处理器能完全满足所有的或绝大多数应用需要,设计工程师在选择处理器时需要根据性能、成本、集成度、开发的难易程度以及功耗等因素进行综合考虑。
DSP器件按设计要求可以分为两类。第一类,应用领域为廉价的、大规模嵌入式应用系统,如手机、磁盘驱动(DSP用作伺服电机控制)以及便携式数字音频播放器等。在这些应用中价格和集成度是最重要的考虑因素。对于便携式电池供电的设备,功耗也是一个关键的因素。尽管这些应用常常需要开发运行于DSP的客户应用软件和外围支持硬件,但易于开发的要求仍然是次要的因素,因为批量生产可以分摊开发成本,从而降低单位产品的开发成本。
另外一类是需要用复杂算法对大量数据进行处理的应用,例如声纳探测和地震探测等,也需要用DSP器件。该类设备的批量一般较小、算法要求苛刻、产品很大而且很复杂。所以设计工程师在选择处理器时会尽量选择性能最佳、易于开发并支持多处理器的DSP器件。有时,设计工程师更喜欢选用现成的开发板来开发系统而不是从零开始硬件和软件设计,同时可以采用现成的功能库文件开发应用软件。
在实际设计时应根据具体的应用选择合适的DSP。不同的DSP有不同的特点,适用于不同的应用,在选择时可以遵循以下要点。
DSP开发的简便性对不同的应用来说,对开发简便性的要求不一样。对于研究和样机的开发,一般要求系统工具能便于开发。而如果公司在开发下一代手机产品,成本是最重要的因素,只要能降低最终产品的成本,一般他们愿意承受很烦琐的开发,采用复杂的开发工具(当然如果大大延迟了产品上市的时间则是另一回事)。
因此选择DSP时需要考虑的因素有软件开发工具(包括汇编、链接、仿真、调试、编译、代码库以及实时操作系统等部分)、硬件工具(开发板和仿真机)和高级工具(例如基于框图的代码生成环境)。
选择DSP器件时常有如何实现编程的问题。一般设计工程师选择汇编语言或高级语言(如C或Ada),或两者相结合的办法。大部分的DSP程序采用汇编语言,由于编译器产生的汇编代码一般未经最优化,需要手动进行程序优化,降低程序代码大小和使流程更合理,进一步加快程序的执行速度。这样的工作对于消费类电子产品很有意义,因为通过代码的优化能弥补DSP性能的不足。
使用高级语言编译器的设计工程师会发现,浮点DSP编译器的执行效果比定点DSP好,这有几个原因:首先,多数的高级语言本身并不支持小数算法;其次,浮点处理器一般比定点处理器具有更规则的指令,指令限制少,更适合编译器处理;第三,由于浮点处理器支持更大的存储器,能提供足够的空间。编译器产生的代码一般比手动生成的代码更大。
不管是用高级语言还是汇编语言实现编程,都必须注意调试和硬件仿真工具的使用,因为很大一部分的开发时间会花在这里。几乎所有的生产商都提供指令集仿真器,在硬件完成之前,采用指令集仿真器对软件调试很有帮助。如果所用的是高级语言,对高级语言调试器功能进行评估很重要,包括能否与模拟机和/或硬件仿真器一起运行等性能。
大多数DSP销售商提供硬件仿真工具,许多处理器具有片上调试/仿真功能,通过采用IEEE1149.1JTAG标准的串行接口访问。该串行接口允许基于扫描的仿真,即程序员通过该接口加载断点,然后通过扫描处理器内部寄存器来查看处理器到达断点后寄存器的内容并进行修改。
很多的生产商都可以提供现成的DSP开发系统板。在硬件没有开发完成之前可用开发板实现软件实时运行调试,这样可以提高最终产品的可制造性。对于一些小批量系统甚至可以用开发板作为最终产品电路板。
支持多处理器在某些数据计算量很大的应用中,经常要求使用多个DSP处理器。在这种情况下,多处理器互连和互连性能(关于相互间通信流量、开销和时间延迟)成为重要的考虑因素。如ADI的ADSP-2106X系列提供了简化多处理器系统设计的专用硬件。
电源管理和功耗DSP器件越来越多地应用在便携式产品中,在这些应用中功耗是一个重要的考虑因素,因而DSP生产商尽量在产品内部加入电源管理并降低工作电压以减小系统的功耗。在某些DSP器件中的电源管理功能包括:
a.降低工作电压:许多生产商提供低电压DSP版本(3.3V,2.5V,或1.8V),这种处理器在相同的时钟下功耗远远低于5V供电的同类产品。
b.“休眠”或“空闲”模式:绝大多数处理器具有关断处理器部分时钟的功能,降低功耗。在某些情况下,非屏蔽的中断信号可以将处理器从“休眠”模式下恢复,而在另外一些情况下,只有设定的几个外部中断才能唤醒处理器。有些处理器可以提供不同省电功能和时延的多个“休眠”模式。
c.可编程时钟分频器:某些DSP允许在软件控制下改变处理器时钟,以便在某个特定任务时使用最低时钟频率来降低功耗。
d.外围控制:一些DSP器件允许程序停止系统未用到的外围电路的工作。
不管电源管理特性怎么样,设计工程师要获得优秀的省电设计很困难,因为DSP的功耗随所执行的指令不同而不同。多数生产商所提供的功耗指标为典型值或最大值,而TI公司给出的指标是一个例外,该公司的应用实例中详细地说明了在执行不同指令和不同配置下的功耗。
成本因素在满足设计要求条件下要尽量使用低成本DSP,即使这种DSP编程难度很大而且灵活性差。在处理器系列中,越便宜的处理器功能越少,片上存储器也越小,性能也比价格高的处理器差。
封装不同的DSP器件价格也存在差别。例如,PQFP和TQFP封装比PGA封装便宜得多。
在考虑到成本时要切记两点。首先,处理器的价格在持续下跌;第二点,价格还依赖于批量,如10,000片的单价可能会比1,000片的单价便宜很多3。
国内外现状数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。数字信号处理是围绕着数字信号处理的理论、实现和应用等几个方面发展起来的。数字信号处理在理论上的发展推动了数字信号处理应用的发展。反过来,数字信号处理的应用又促进了数字信号处理理论的提高。而数字信号处理的实现则是理论和应用之间的桥梁。数字信号处理是以众多的学科为理论基础的,它所涉及的范围及其广泛。例如,在数学领域,微积分、概率统计、随机过程、数值分析等都是数字信号处理的基本工具,与网络理论、信号与系统、控制论、通信理论、故障诊断等也密切相关。一些新兴的学科,如人工智能、模式识别、神经网络等,都与数字信号处理密不可分。可以说,数字信号处理是把许多经典的理论体系作为自己的理论基础,同时又使自己成为一系列新兴学科的理论基础。
长期以来,信号处理技术—直用于转换或产生模拟或数字信号。其中应用得最频繁的领域就是信号的滤波。此外,从数字通信、语音、音频和生物医学信号处理到检测仪器仪表和机器人技术等许多领域中,都广泛地应用了数字信号处理(digital signal processing,DSP)技术。数字信号处理己经发展成为一项成熟的技术,并且在许多应用领域逐步代替了传统的模拟信号处理系统。世界上三大DSP芯片生产商:1.德克萨斯仪器公司(TI) 2.模拟器件公司(ADI) 3.摩托罗拉公司(Motorola).这三家公司几乎垄断了通用DSP芯片市场。数字信号处理的书籍很多,其中以麻省理工学院奥本海姆编著的《Discrete Time Signal Processing》最为经典 ,有中译本《离散时间信号处理》由西安交通大学出版2。
本词条内容贡献者为:
胡启洲 - 副教授 - 南京理工大学