TI中文支持网
TI专业的中文技术问题搜集分享网站

6722B的浮点计算效率低问题

你好,我购买了一个6722的开发板,采用裸机开发,配置主频为200Mhz,不采用优化等级,直接在main函数内for循环内执行输出GPIO高低电平,采用示波器测量GPIO间隔为40ns,在两次IO操作中间,插入一次255次循环累计浮点乘法指令,如下:

x=1.1;

y=0.999;

GPIO(on)

for(i=0;i<0xff;i++)

{

 x=x*y;

}

GPIO(off)

示波器抓出IO操作间距为50us,采用优化等级-O2,则可优化到25us,而我用arm9,400Hz的测量才35us,请问是否还有优化手段,还是6722只能到这种程度了?

Thomas Yang1:

对于循环优化,TI 编译器有很多手段

建议参考文档 SPRA666(Hand-Tuning Loops and Control Code on the

TMS320C6000)

链接如下: http://www.ti.com.cn/cn/lit/an/spra666/spra666.pdf  

Yu Liu:

回复 Thomas Yang1:

Thomas在下面的链接里面还推荐了更多的优化文档。

www.deyisupport.com/…/5101.aspx

具体到您的代码“ x=x*y;”,我们可以看出循环之间非常强的依赖关系。下次的x输入依赖于上一次的x结果。这样的话可能导致编译器无法排出软件流水无法发挥TI DSP的功能。可以打开编译器的-k -s开关看看编译器产生汇编文件中的software pipeline信息。

赞(0)
未经允许不得转载:TI中文支持网 » 6722B的浮点计算效率低问题
分享到: 更多 (0)