EDN China > 技术文章 > 微处理器与DSP > DSP应用 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

TMS320C55x DSP并行处理技术分析与应用

周渝陇 申敏 赵春雨?? 2008年12月18日 ?? 收藏0

   4. 累加器的移位、饱和及存储操作与D单元ALU或MAC的并行处理

?????? 下面我们以一个实例来进行说明:

  MOV HI(AC0<<#18),*AR2

  ||ADD AC0,AC1

  这是一个D单元移位操作模块与D单元ALU模块的并行处理实例。它在移位操作模块中完成寄存器AC0的移位,然后将移位后的值通过E总线存储到存储器中,同时在ALU模块中完成寄存器AC0与AC1的加法运算,然后将结果存放于AC1。这两条指令不存在硬件冲突,满足并行规则1。两条指令总长度为5个字节,小于IBQ6字节的限制,满足并行规则2。这里只需使用一个存储器中的数据,不需满足并行规则3。通过上机调试,这条并行指令能够正确编译并执行。

  5. 程序控制操作与运算操作的并行

  P单元程序控制模块与其他的算术运算模块相对较独立,不易发生硬件冲突,便于进行并行处理。下面是一个程序控制指令与算术运算指令的并行:

  ADD *AR2,AC0

  ||RPTBLOCAL JUMP1 这是一个D单元ALU模块与P单元程序控制模块的并行实例。它在D单元ALU中将D总线送来的数据与AC0相加并存入AC0,同时完成程序循环控制。程序执行中不存在硬件模块和总线的冲突,满足并行规则1;两条指令总长度为5字节,满足并行规则2;此例只使用一个存储器中的数据,不需要满足并行规则3。通过上机调试,这条并行指令能够正确编译并执行。

  6. 使用常量对存储器进行初始化

  D单元拥有两条写总线(E、F总线),在通常情况下我们只使用了其中的一条写总线造成资源浪费。假如我们需要对某块数据存储区清零,通常的做法如下:

  RPT #9

  MOV #0,*AR1+

  这段程序对存储区数据逐一清零,每次只使用了D单元的E总线,总共需要10个时钟周期才能完成。在这种情况下,如果我们充分利用E、F总线,将有效地降低这段程序的运算量。具体实现如下:

  MOV #0,AC0

  ||RPT #4

  MOV AC0,DBL(*AR1+)

  这段程序与上一段的最大不同点在于,一个时钟周期内通过E、F总线将两个初始数据同时传送到指定的数据区,同时初始化两个字的存储空间。这段程序只需要5个时钟周期就可以完成10个字的初始化,比普通做法节约一半的运算量,提高了使用效率。


上一页123下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

TI? DSP? 并行处理?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈