新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > TMS320C6000系列DSP的软件优化

TMS320C6000系列DSP的软件优化

作者:时间:2012-06-20来源:网络收藏

本文引用地址:http://www.eepw.com.cn/article/257422.htm


使用并行指令完成点积代码如例5所示。

使用并行指令,循环体内需要8个时钟周期。这段循环代码的执行周期为8×200=1600 cycles。 3.4 使用字存取原short型数据
为进一步提高效率,使用字存取原short型数据,如例6所示。


这段代码在循环体内仍然是8个时钟周期,迭代100次为8×100=800 cycles。


4 软件流水技术

软件流水技术是用在循环语句中调用指令的方法,即安排循环中的多个迭代运算并行执行。在编译C语言代码时,可以选择编译器的-o2或-o3选项,编译器将根据程序尽可能地安排软件流水。图3所示为运用软件流水的循环结构,它包括A、B、C、D、E五次迭代,同一周期最多执行五次迭代的不同指令(阴影部分)。图3中阴影部分称为循环内核,核中不同的指令并行执行。核前执行的过程称为流水线填充,核后执行的过程称为流水线排空。


算法中存在大量的循环操作,因此充分运用软件流水线方式,能极大地提高程序的运行速度。当手绘软件流水时,首先要画出相关图,如图4所示,然后建立软件流水迭代间隔编排表,最后根据编排表写出程序。 在画相关图时应遵循:

①画出节点和路径;
②写出完成各指令需要的CPU周期;
③为各节点指派功能单元;
④分开路径,以使最多的功能单元被使用。

根据相关图写出模迭代间隔安排表,如表1所列。

由此迭代间隔表写出对应代码:

由此得到的代码所需CPU时钟周期为7+100+l=108 cycles。

5 总 结

各种优化技术所需时钟数如表2所列。表中括号内数字为循环内核时钟周期,括号前数字为流水线填充时钟周期,括号后数字为流水线排空CPU时钟周期。


由此得出遵循以上的流程和代码优化技术,可以极大地提高代码效率,这对实际应用具有重大意义。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭