[摘要] 让你说出知道的芯片的名称,你可能会一时想不起,也不能一一罗列DSP 芯片都有哪些。
或许是对DSP芯片深刻的了解才了然于心,由于种种原因的忘却;或许是因为大家在说DSP芯片好,既然大家都说好,那才是真的好,至于怎样好,可能是似懂非懂。
那好吧,不管是懂还是不懂,现在让我们从新的视角来读懂这个芯片的世界,让你发现不曾明白的细节让你说出知道的芯片的名称,你可能会一时想不起,也不能一一罗列DSP芯片都有哪些。
或许是对DSP芯片深刻的了解才了然于心,由于种种原因的忘却;或许是因为大家在说DSP芯片好,既然大家都说好,那才是真的好,至于怎样好,可能是似懂非懂。
那好吧,不管是懂还是不懂,现在让我们从新的视角来读懂这个芯片的世界,让你发现不曾明白的细节。
DSP芯片,也称数字信号处理器,采用特殊的软硬件结构,是一种专注于进行数字信号处理运算的微处理器,其主要应用是实时快速地实现各种数字信号处理,是数字信号处理理论实用化过程的重要技术工具。
在语音处理、图像处理等技术领域得到了广泛的应用。
那根据对DSP芯片的理解来对比与其他芯片的最要的区别是什么?杭州海康威视数字技术股份有限公司的高级嵌入式开发经理黄田认为,DSP芯片与其它芯片的最大区别在于它拥有针对各种算法设计的大量专用指令,比如各种向量运算。
另外DSP芯片在设计时更多地考虑到数据总线的带宽以及吞吐量,避免数据访问成为影响算法性能的瓶颈。
芯片的基本结构为了快速地实现数字信号处理运算,DSP芯片一般都采用特殊的软硬件结构。
下面简单介绍DSP芯片的基本结构。
(1)哈佛结构主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址,独立访问。
与两个存储器相对应的是系统中设置了程序总线和数据总线,从而使数据的吞吐率提高了一倍。
由于程序和数据在两个分开的空间,因此取指和执行能完全重叠。
(2)流水线操作流水线与哈佛结构相关,DSP芯片广泛采用流水线以减少指令执行时间,从而增强了处理器的处理能力。
处理器可以并行处理二到四条指令,每条指令处于流水线的不同阶段。
下面所列是一个三级流水线操作的例子:CLLOUT1取指N N-1 N-2;译码N-1 N N-2;执行N-2 N-1 N,(3)专用的硬件乘法器专用的硬件乘法器,乘法速度越快,DSP处理器的性能越高。
由于具有专用的应用乘法器,乘法可在一个指令周期内完成。
(4)特殊的DSP指令DSP是采用特殊的指令。
(5)快速的指令周期特殊的DSP指令,DSP芯片是采用特殊的指令。
快速的指令周期、哈佛结构、流水线操作、专用的硬件乘法器、特殊的DSP指令,再加上集成电路的优化设计可使DSP芯片的指令周期在200ns以下。
DSP系统的特点数字信号处理有别于普通的科学计算与分析,它强调运算处理的实时性,因此DSP除了具备普通微处理器所强调的高速运算和控制功能外,针对实时数字信号处理,在处理器结构、指令系统、指令流程上具有许多新的特征,其特点如下:算术单元具有硬件乘法器和多功能运算单元,硬件乘法器可以在单个指令周期内完成乘法操作,这是DSP区别于通用的微处理器的一个重要标志。
多功能运算单元可以完成加减、逻辑、移位、数据传送等操作。
新一代DSP内部甚至还包含多个并行的运算单元,以提高其处理能力。
针对滤波、相关、矩阵运算等需要大量乘和累加运算的特点,DSP的算术单元的乘法器和加法器,可以在一个时钟周期内完成相乘、累加两个运算。
近年出现的一些DSP如ADSP2106X、DSP96000系列DSP可以同时进行乘、加、减运算,大大加快了FFT的蝶形运算速度。
总线结构传统的通用处理器采用统一的程序和数据空间、共享的程序和数据总线结构,即所谓的冯.诺依曼结构。
DSP普遍采用了数据总线和程序总线分离的哈佛结构或者改进的哈佛结构,极大地提高了指令执行速度。
片内的多套总线可以同时进行取指令和多个数据存取操作,许多DSP片内嵌有DMA控制器,配合片内多总线结构,使数据块传送速度大大提高。
专用寻址单元DSP面向数据密集型应用,伴随着频繁的数据访问,数据地址的计算也需要大量时间。
DSP内部配置了专用的寻址单元,用于地址的修改和更新,它们可以在寻址访问前或访问后自动修改内容,以指向下一个要访问的地址。
地址的修改和更新与算术单元并行工作,不需要额外的时间。
DSP的地址产生器支持直接寻址、间接寻址操作,大部分DSP还支持位反转寻址(用于FFT算法)和循环寻址(用于数字滤波算法)。
片内存储器针对数字信号处理的数据密集运算的需要,DSP对程序和数据访问的时间要求很高,为了减小指令和数据的传送时间,许多DSP内部集成了高速程序存储器和数据存储器,以提高程序和数据访问存储器的速度。
流水处理技术DSP大多采用流水技术,即将一条指令的执行过程分解成取指、译码、取数、执行等若干个阶段,每个阶段称为一级流水。
每条指令都由片内多个功能单元分别完成取指、译码、取数、执行等操作,从而在不提高时钟频率的条件下减少了每条指令的执行时间。
DSP与其它处理器的差别数字信号处理器(DSP)、通用微处理器(MPU)、微控制器(MCU)三者的区别在于:DSP面向高性能、重复性、数值运算密集型的实时处理;MPU 大量应用于计算机;MCU则适用于以控制为主的处理过程。
DSP芯片的优点DSP的运算速度比其它处理器要高得多,以FFT为例,高性能DSP不仅处理速度是MPU的4~10倍,而且可以连续不断地完成数据的实时输入/输出。
DSP结构相对单一,普遍采用汇编语言编程,其任务完成时间的可预测性相对于结构和指令复杂(超标量指令)、严重依赖于编译系统的MPU强得多。
以一个FIR滤波器实现为例,每输入一个数据,对应每阶滤波器系数需要一次乘、一次加、一次取指、二次取数,还需要专门的数据移动操作,DSP可以单周期完成乘加并行操作以及3~4次数据存取操作,而普通MPU完成同样的操作至少需要4个指令周期。
因此,在相同的指令周期和片内指令缓存条件下,DSP 的运算速度可以超过MPU运算速度的4倍以上。
DSP芯片的浮点与定点之分在选择DSP器件的时候,是采用浮点还是采用定点,如果用定点是16位还是32位?其实这个问题和你的算法所要求的信号的动态范围有关。
浮点运算DSP比定点运算DSP的动态范围(动态范围:如音响系统重放时最大不失真输出功率与静态时系统噪声输出功率之比的对数值,又如一个多媒体硬盘播放器输出图像的最亮和最暗部分之间的相对比值)要大很多。
定点DSP 的字长每增加1bit,动态范围扩大6dB,16bit字长的动态范围为96dB。
程序员必须时刻关注溢出的发生。
例如:在做图像处理时,图像做旋转、移动等,就很容易产生溢出。
这时,要么不断地移位定标,要么作截尾。
前者要耗费大量的程序空间和执行时间,后者则很快带来图像质量的劣化。
总之,是使整个系统的性能下降。
在处理低信噪比信号的场合,例如进行语音识别、雷达和声纳信号处理时,也会发生类似的问题。
而32bit浮点运算DSP的动态范围可以作到1536dB,这不仅大大扩大了动态范围,提高了运算精度,还大大节省了运算时间和存储空间,因为大大减少了定标,移位和溢出检查。
由于浮点DSP的浮点运算用硬件来实现,可以在单周期内完成,因而其处理速度大大高于定点DSP,这一优点在实现高精度复杂算法时尤为突出。
定点的计算不过是把一个数据当作整数来处理,通常AD采样来的都是整数,这个数相对于真实的模拟信号有一个刻度因子,大家都知道用一个16位的AD 去采样一个0到5V的信号,那么AD输出的整数除以2^16再乘以5V就是对应的电压。
在定点DSP中是直接对这个16位的采样进行处理,并不将它转换成以小数表示的电压,因为定点DSP无法以足够的精度表示一个小数,它只能对整数进行计算。
而浮点DSP的优势在于它可以把这个采样得到的整数转换成小数表示的电压,并不损失精度(这个小数用科学记数法来表示),原因在于科学记数法可以表示很大的动态范围的一个信号,以IEEE754浮点数为例,单精度浮点格式:[31] 1位符号[30-23]8位指数[22-00]23位小数。
这样的能表示的最小的数是+-2^-149,最大的数是+-(2-2^23)*2^127,动态范围为20*log(最大的数/最小的数)=1667.6dB这样大的动态范围使得在编程的时候几乎不必考虑乘法和累加的溢出,而如果使用定点处理器编程,对计算结果进行舍入和移位则是家常便饭,这在一定程度上会损失精度。
原因在于定点处理的信号的动态范围有限,比如16位定点DSP,可以表示整数范围为1-65536,其动态范围为20*log(65536/1)=96dB.对于32定点DSP,动态范围为20*log(2^32/1)=192dB,远小于32位ieee浮点数的1667.6dB,但是实际上192dB对绝大多数应用所处理的信号已经足够了。
由于AD转换器的位数限制,一般输入信号的动态范围都比较小,但在DSP的信号处理中,由于点积运算会使中间节点信号的动态范围增加,所以主要考虑信号处理流程中中间结果的动态范围,以及算法对中间结果的精度要求,来选择相应的DSP。
另外就是浮点的DSP更易于编程,定点DSP 编程中程序员要不断调整中间结果的PQ值,实际就是不断对中间结果进行移位调整和舍入。
实数运算可直接透过代码加入硬件运算中,而定点元件必须透过软件才能间接执行实数运算,这就增加了运算法指令并延长了开发时间。
整体上说,定点DSP在成本上具有优势而浮点DSP在易用上较优。
DSP芯片的发展现状与应用自从DSP芯片诞生以来,DSP芯片得到了飞速的发展。
一方面得益于集成电路的发展,另一方面也得益于巨大的市场。
在短短的十多年时间,DSP芯片已经在信号处理、通信等许多领域得到了广泛的应用。
对于DSP芯片的发展现状和DSP如何与其他产品搭配应用解决方案海康威视的黄田作出了如下这样的看法:DSP芯片已经在向专业化、多元化方向发展,各厂家的市场划分越来越细,差异性也越来越大。
另外,单纯的DSP芯片已经不多见,更多的是DSP芯片与其它处理核心集成在一起,形成一个集成度高、针对性强的SOC,不仅极大地降低了板级空间,也带来了功耗、成本以及开发周期的全面优势,从而推动了行业的发展和产品性能的提高。
DSP的优势在于灵活的算法集成,可以给产品提供强大的性能以及灵活的定制,同一产品针对各类客户不同的需求实现不同的解决方案。
为了提高产品的竞争力,厂商都会在算法上做足文章,算法变得越来越复杂,但是算法的稳定性、产品的功耗、开发周期等都会成为难以驾驭的风险。
DSP算法不是一大堆理论公式的堆砌,而是与所使用DSP芯片的具体特点紧密结合的精致软件。