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

C6748汇编指令运行速度的问题

最近刚刚接触C6748,目前主要测试C6748的运行速度问题,已决定是否取代现有的28335,应用时主频456M,L1作为Cache,程序放在L2中,优化o3,查看TI自带的Delay函数时,发现其汇编代码单步运行时,每步需要6个时钟周期,请问这种运行速度是否正常?

ps:之前一直在用28335,相同的程序在28335中运行大概需要2.4us,在C6748中需要1.5us,C6748的运行速度貌似并没有想象中的强大,有什么途径可以改善呢?

以下为Delay函数的汇编代码:

          Delay:
118040c0:   07BF005A            SUB.L2        SP,8,SP
118040c4:   AC45                STW.D2T1      A4,*B15[1]
371           while(delay–);
118040c6:   BC4D                LDW.D2T2      *B15[1],B4
118040c8:   FDA6                MVK.L1        -1,A3
118040ca:   FEA7                MVK.L2        -1,B5
118040cc:   2C6E                NOP           2
118040ce:   EE41                ADD.L2        B4,-1,B4
118040d0:   BC45                STW.D2T2      B4,*B15[1]
118040d2:   BC4D                LDW.D2T2      *B15[1],B4
118040d4:   6C6E                NOP           4
118040d6:   86E9                CMPEQ.L2      B4,B5,B0
118040d8:   202CA121     [ B0]  BNOP.S1       $C$DW$L$Delay$0$3$E (PC+88 = 0x11804118),5
118040dc:   E7C00000            .fphead       n, l, W, BU, nobr, nosat, 0111110
118040e0:   3000A35A ||  [!B0]  MVK.L2        0,B0

 

Tony Tang:

自带的delay函数是啥样的啊?

上面汇编里没一条指令是并行的,需要多少周期直接数就行了。-o3是对C代码优化,如果这个delay里加了汇编的nop,则对-O几没作用。如果没有汇编nop,加优化后,这种delay函数直接就被优化没了。delay肯定是希望达到真正的delay目的,而且时间相对要有确定性,不能因为加不加优化变化很大吧,比如本来想延时一ms,一优化变成1us,那也不是想要的结果啊。

上面的比法,还是在比频率。

要比的话,最好写一段真正的算法,比如一个简单的乘累加循环,加优化编译。

下面链接是C6000的优化教程,非常好。有兴趣可以看看:

http://processors.wiki.ti.com/index.php/TMS320C6000_DSP_Optimization_Workshop

user1553532:

回复 Tony Tang:

谢谢您的回答;

Dealy函数是这样的:

static void Delay(volatile unsigned long delay){ while(delay–);}

上面的汇编程序与这个函数是对应的,因为单步运行的时候发现执行一条汇编指令需要6个时钟周期,请问这是否正常?

Denny%20Yang99373:

回复 user1553532:

具体到某条指令可能6个或者更对的时钟周期是有可能的,还要看具体指令,如果从DDR取数,可能时钟周期更多。

优化好主要是增加并行度,比如8条指令同时执行,这样速度就起来了。

Tony Tang:

回复 user1553532:

通过simulator可以看到,一条nop只运行了一个clock,而硬件仿真时是6 cycle,所以这个额外的时间是由于内存的延时造成的.

user1553532:

回复 Tony Tang:

谢谢回答

请问内存的延时可以减小或者避免吗?

Tony Tang:

回复 user1553532:

如果是外部内存DDR等,Cache可以减少内存的延时,但目前已经是在L2上跑了,所以这个延时没法减少了。

赞(0)
未经允许不得转载:TI中文支持网 » C6748汇编指令运行速度的问题
分享到: 更多 (0)