- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DSP体系结构系统设计方案
DSP体系结构系统设计方案
姓名: 学号:
一、DSP技术简介
DSP一方面是Digital Signal Processing的缩写,意思是数字信号处理,就是指数字信号理论研究。DSP另一方面是Digital Signal Processor,意思是数字信号处理器,就是用来完成数字信号处理的器件。
作为数字信号处理器来说,DSP结构复杂,片内设计有硬件乘法器及累加器,多处理单元,多总线结构,流水线技术,专门的指令系统,能够高速、实时地实现具有乘积累加特点的、复杂的数字信号处理算法。如TI的TMS320系列等。
二.关键技术
为了完成高速、高精度的数字信号处理任务,DSP有如下关键技术的应用:
1)VLIM
VLIM是Very Long Instruction Word的缩写,意即“超长指令集架构”。超长指令字说的是计算机处理结构,在这个结构里面语言编译器或者预处理器中断程序指令分解到可以被处理器并行执行的基本操作(也就是同时)。这些指令放在一个超长指令字里,这样处理器就可以直接分解它而不用进一步分析,对应每个指令到适当的功能单元。
VLIW处理器主要的优点是复杂性从硬件移到了软件,这就意味着硬件可以变得更小、更便宜并且耗电量也更少。一种非常长的指令组合,它把许多条指令连在一起,增加了运算的速度。
超长指令字(VLIW)是指令级并行,超线程(Hyper-Threading)是线程级并行,而多内核则是芯片级并行。这三种方式都是提高并行计算性能的有效途径。
DMA传输是“直接存储器访问”的缩写,由DMA控制器完成数据传输,不需要CPU操作,因此可节省CPU开销,传输速度快,突发操作每时钟搬移一个数据。要通过CPU搬移数据的话,CPU要先读到他的寄存器,再从寄存器写到存储器,就是流水操作总要4-8个时钟或更多,速度就差了几倍。
DSPDMA传输的数据可以细分,一个总的传输块(BLOCK)里面,又可以分若干个帧(FRAME),每传完一帧都可以开启中断。而且在整个DMA传输期间,不管是循环模式或者是其他一次性的模式,都可以中途暂停,因为它的DMA控制器可以记录当前暂停时的传输大小,和传输地址索引,然后下次再次开启的时候,会紧接着上次中断后的地方来传输。
在DMA传输方式下,外设通过DMA控制器(DMAC)向CPU提出接管总线控制权的总线使用请求。CPU在当前总线周期结束后,响应DMA请求,把总线控制权交给DMA控制器。于是在DMAC的控制下,外设和存储器挪用CPU的一个总线周期,直接进行数据交换,而无需CPU进行数据传输控制干预。DMA传输结束后,再将总线控制权交还给CPU。
在高速大数据流量传输场合,DMA方式由于系统开销小,传输效率高,比中断方式优越,被采用。
3)定点数乘法的booth算法
比较好的带符号数乘法的方法是布斯(Booth)算法。它采用相加和相减的操作计算补码数据的乘积。Booth算法对乘数从低位开始判断,根据两个数据位的情况决定进行加法、减法还是仅仅移位操作。判断的两个数据位为当前位及其右边的位(初始时需要增加一个辅助位0),移位操作是向右移动。在上例中,第一次判断被乘数0110中的最低位0以及右边的位(辅助位0),得00;所以只进行移位操作;第二次判断0110中的低两位,得10,所以作减法操作并移位,这个减法操作相当于减去2a的值;第三次判断被乘数的中间两位,得11,于是只作移位操作;第四次判断0110中的最高两位,得01,于是作加法操作和移位,这个加法相当于加上8a的值,因为a的值已经左移了三次。
一般而言,设y=y0,yly2…yn为被乘数,x为乘数,yi是a中的第i位(当前位)。根据yj与yi+1的值,Booth算法表示如下表所示,其操作流程如下图所示。在Booth算法中,操作的方式取决于表达式(yi+1-yi)的值,这个表达式的值所代表的操作为:
0 无操作
+1 加x
-1 减x
Booth算法操作表示
yi yi+1 操作 说明
0 0 无 处于0串中,不需要操作
0 1 加x 1串的结尾
1 0 减x 1串的开始
1 1 无 处于1串中,不需要操作
乘法过程中,被乘数相对于乘积的左移操作可表示为乘以2,每次循环中的运算可表示为对于x(yi+1-yi)2^31-i项的加法运算(i=3l,30,…,1,0)。这样,Booth算法所计算的结果 可表示为:
x×(0-y31)×2^0
+x×(y31-y30)×2^1
+x×(y30-y29)×2^2
…
[1] +x×(y1-y0)×2^31
=x×(-y0×231 +y1×2^30 +y2×2^29+y31×2^0)
=x×y
如果了解到DSP算法的一个共同的特点,即大多数的处理时间是
文档评论(0)