搜索
bottom↓
回复: 12

DSP为什么快?(希望版主先别将此贴转移到DSP版块,谢谢。)

[复制链接]

出0入0汤圆

发表于 2009-5-5 09:36:37 | 显示全部楼层 |阅读模式
遇到一位高手问我一个问题:DSP为什么快?这个问题是不是很高深?  到目前为止,还真说不清为什么快?

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2009-5-5 09:40:31 | 显示全部楼层
具体问题具体分析,DSP不一定什么都快。

不过,指令集和寻址方式,不是通用处理器都能支持的。典型的来一个FFT的位反转寻址,解除流水线互锁的跳转指令。

出0入0汤圆

发表于 2009-5-5 09:41:18 | 显示全部楼层
硬件乘法器占了很大的优势吧

出0入0汤圆

 楼主| 发表于 2009-5-5 09:41:42 | 显示全部楼层
同样跑40M的ARM和DSP,  完成同样一个算法,那个快?  如果软件做到最优化的程度,哪个执行的的指令周期少,就是哪个快,至于为什么指令周期执行的少,那就是由于两种处理器的指令结构不同,至于为什么会有差异,那是由于DSP的内核结构所决定的,不知道我这么回答对不对,那个高手说只说对了一点点

出0入0汤圆

 楼主| 发表于 2009-5-5 09:43:14 | 显示全部楼层
我说了硬件乘法器,高手说 只是一点点,不是主要的

出0入0汤圆

发表于 2009-5-5 09:54:43 | 显示全部楼层
专门为数字计算而设计的结构当然快了,包括硬件本身,总线结构,专用硬件运算器等等。

出0入0汤圆

 楼主| 发表于 2009-5-5 09:58:10 | 显示全部楼层
圈圈如果按照上面的说,肯定会被那位绝顶高手挫的一塌糊涂的

出0入0汤圆

发表于 2009-5-5 10:03:12 | 显示全部楼层
DSP整体来看,就是硬件体系结构,指令集等等针对特定数值算法进行了高度优化。这也是它本身的设计目标。就是专门跑这些东西的。
硬件乘法器只是结构上很小的一部分。

硬件结构可以看看TI的一些DSP的,典型如MAC单元,那个ACC比REG的位数要多,通用MCU一般不这么搞。DSP数值算法,这样能有效避免溢出。然后对于非VLIW的处理器,有的会出现并行指令机制,就是Load/Store操作和REG操作流水线分离,这个在通用处理器上也少见。再加上总线结构的设计。通过编译器的优化,可以充分利用流水线资源。
和指令集结合起来,典型的就是寻址方式,更典型的就是位反转寻址,FFT基本指望这个;然后还有MAC操作。这些通用处理器没有优化,也不太支持。另外就是流水线可以不互锁,典型的就是跳转指令后不刷流水线,不浪费。
诸如此类。

说过的,这些特性跑专门数值算法对于通用处理器而言有着巨大的优势,反映在指令上就是指令数目少。

出0入0汤圆

 楼主| 发表于 2009-5-5 10:04:39 | 显示全部楼层
看看杨大侠的回答:
  ----------
    DSP硬件结构
    ----------
    为什么说DSP特别适合数字信号处理呢?为什么它的运算速度这么快?
    原来DSP在硬件结构上做了优化,使得其运算效率非常高。
    下面我从各家DSP硬件共同点、各家硬件特点、和通用CPU共同点来说说DSP硬件结构。其实你只要掌握了任何一家的DSP硬件结构,就可以触类旁通理解其他厂家的DSP,因为只要是DSP,就有很多共同点。当然,各家也有各自的特色,我们一并对比介绍。通用CPU上也有加快运算速度的优化结构,这里列举的硬件结构主要是指和通用CPU不一样的部分。
   
    1、DSP采用哈佛结构总线,程序存储器和数据存储器分开,取指和数据访问同时进行。通用CPU采用冯.诺依曼型总线,程序和数据总线共享同一总线,取指和数据访问不能并发。
    2、流水线操作(pipeline),取指、译码、寻址、取数、运算、存储流水操作,等效单周期完成指令,而通用CPU通常一条指令需要几个时钟周期才可以完成。当然,流水线操作引入了一些新问题,比如需要在适当位置加NOP空操作指令或者调整指令位置以确保流水操作能顺利完成。
    3、独立的硬件乘法器。卷积、数字滤波、FFT、相关、矩阵运算等算法中,大量重复乘法和累加。MAC指令(取数、乘法、累加)在单周期内完成(通过流水线等效实现),比用软件乘法快很多。
    4、独立的DMA总线和控制器。通用CPU中的总线是共享的,DMA使用了总线则CPU就要等待,而DSP中的DMA使用独立的DMA总线通路,可以和CPU core并发操作。独立的源、目的地址寄存器、长度寄存器,自动计算地址和循环。光DSP处理器运算速度快还不行,还与数据吞吐率有关。
    5、中心算术逻辑单元CALU。DSP中有很多ALU,如DMA控制器、地址发生器中就含有可做乘加运算的ALU,这样他们就不用占用CALU了。DSP中的ALU非常简单,地址、乘法、移位都不管了,只管算术与逻辑运算。
    6、移位:通用CPU每次移动1bit,DSP可在一个机器周期内左移/右移多个比特。可用来对数字定标,使之放大或缩小以保证精度和防止溢出,还可以用来做定点数和浮点数之间的转换。
    7、溢出:通用CPU中,溢出发生后,设置溢出标志位,不带符号位时回绕,带符号位时反相,带来很大误差。此时,溢出已经发生,无法挽回。DSP把移位输出的最高位(MSB)存放在一个位检测状态寄存器中,检测到MSB=1时,就通知下一次会发生溢出,此时溢出还未发生,来得及采取措施防止。
    8、数据地址发生器(DAG)。取数不光要占用数据总线,还要计算地址。通用CPU数据、地址的产生和数据的处理都由ALU来完成。DSP中,设置了专门的数据地址发生器(实际上就是专门的ALU),来产生所需要的数据地址,节省公共的ALU时间。CALU主要做运算而不是做这些辅助的工作。
    9、外设(peripherals)
        时钟发生器、定时器、软件可编程等待状态发生器、GPIO、同步串口与异步串口、JTAG。
    10、CSSU比较、选择、存储单元。用于维特比译码,通信中常用算法,专门设计一个硬件单元用于此算法。
    11、片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问。片内RAM同片外存储器相比,有以下优点:(1)片内RAM的速度较快,可以保证DSP无等待运行;(2)对于C2000/C3x/C5000系列,部分片内存储器可以在一个指令周期内访问两次,使得指令可以更加高效;(3)片内RAM运行稳定,不受外部的干扰影响,也不会干扰外部。 4)DSP片内多总线,在访问片内RAM时,不会影响其它总线的访问,效率较高。
    12、具有低开销或无开销循环及跳转的硬件支持。
    13、快速的中断处理和硬件I/O支持。
    当然,与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。
   
    以上讲的是各家DSP共同点,其实,每家厂商或者同一家厂商的不同系列的DSP都有各自特点。比如:MOTOROLA DSP56系列是24bit(3字节),而TI是16bit(2字节)。MOTOROLA分成X、Y两块数据存储器同时操作,提高速度,而TI是在一个周期内访问2次,异曲同工。TI的C2000(C20x、C24x)侧重于控制;C5000(C54x、C55x)侧重于低功耗、有效性能(手机使用可以省电延长电池寿命,不用风扇散热体积小);C6000(C62xx、C67xx、C64xx)侧重于高性能;OMAP侧重于嵌入式。此外,还有一些专用DSP和多处理器DSP芯片。
   
    CACHE是DSP和通用处理器都使用的技术,就不多讲了。经过前面的讨论,再遇到新的DSP就不怕了。
   
    此外还要注意:
    定点DSP和浮点DSP,定点DSP中经常要考虑溢出问题,浮点基本不用考虑。浮点用指数表示,定点用小数表示。浮点DSP功耗高、设计难度大、价格高,手机里用定点DSP,功耗小、成本低。
    多处理器接口
    VLIW超长指令字,TMS320C6701高达256bit指令要分到8个处理单元去处理,效率高。
   
    预测图表,型号、制程(微米)、MIPS、RAM、Price、Power(mW/MIPS)
   
    DSP的发展受到应用需求多样化和集成电路技术发展的双重推动。更高的运行速度和信号处理速度;多DSP协同工作;更方便的开发环境;DSP Core;更高性价比;更广泛应用。
   
    总之,DSP硬件结构均围绕着怎么样提高数字信号处理器运算速度这个目的设计的。由此可见,DSP的确比通用处理器和单片机MCU更适合更有效地做实时数字信号处理。

出0入0汤圆

 楼主| 发表于 2009-5-5 10:19:56 | 显示全部楼层
看了杨大侠的帖子,总结如下:

不了解DSP汇编指令,是理解不到这么多的。

出0入0汤圆

 楼主| 发表于 2009-5-5 10:35:39 | 显示全部楼层
一个处理器的处理速度快慢,我们所能看见的体会到的最直观的就是 看汇编指令,一个处理器的性能如何,他的汇编指令集功能是否强大占很重要的地位,不知道这样理解是否有偏差
头像被屏蔽

出0入0汤圆

发表于 2009-5-5 10:49:29 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-25 11:14

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表