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

TMS570LS1227的工作性能

1,在技术文档中有描述“The TMS570LS12x/11x integrates the ARM® Cortex™-R4F Floating Point CPU that offers an efficient 1.6 DMIPS/MHz and has configurations that can run up to 180MHz providing up to 288 DMIPS. ”

288 DMIPS的工作性能是否指程序跑在flash空间的情况下??而且不需要将程序从flash拷贝到RAM运行就能达到此性能?

2,如果我的flash空间不够,通过“External Memory Interface” 外扩flash。我的程序是否可以存储在外扩flash下面??如果可以,此时的最高工作性能是否还可以达到288 DMIPS??

3,在技术文档中有描述“The flash supports a maximum CPU clock speed of 160MHz in pipelined mode for the PGE Package and 180MHz for the ZWT package, with one address wait state and three data wait states”。

 "one address wait state "是什么意思?? "one address wait state"是多久??

 

Jay:

你好。

robin zou

1,在技术文档中有描述“The TMS570LS12x/11x integrates the ARM® Cortex™-R4F Floating Point CPU that offers an efficient 1.6 DMIPS/MHz and has configurations that can run up to 180MHz providing up to 288 DMIPS. ”

288 DMIPS的工作性能是否指程序跑在flash空间的情况下??而且不需要将程序从flash拷贝到RAM运行就能达到此性能?

DMIPS是CPU的计算能力,是不计入Memory访问的额外时间开销的。理论上也说,Flash访问有一定的等待时间,所以MCU整体工作性能可以计入Memory的访问时间。由于TMS570具有8级流水,所以Flash的等待时间影响较小。

2,如果我的flash空间不够,通过“External Memory Interface” 外扩flash。我的程序是否可以存储在外扩flash下面??如果可以,此时的最高工作性能是否还可以达到288 DMIPS??

外部扩展的Flash能否直接运行程序与扩展的Flash类型有关。其访问时间与设置的EMIF时钟和扩展Flash的芯片本身有关。

3,在技术文档中有描述“The flash supports a maximum CPU clock speed of 160MHz in pipelined mode for the PGE Package and 180MHz for the ZWT package, with one address wait state and three data wait states”。

 "one address wait state "是什么意思?? "one address wait state"是多久??

一个Wait state 是指一个系统时钟周期。

robin zou:

回复 Jay:

Jay,你好,谢谢你的回答。我还有几个问题:

1,  请问在默认情况下,MCU的程序是跑在flash下吗?在包含flash访问时间情况下,你们是否有MCU整体工作性能的参数??

2,  在技术文档中有说明“the TCM RAM can support program and data fetches at full CPU speed without  any address or data wait states required.”  这句话是否说明如果程序跑在RAM里的话,MCU整体工作性能几乎和CPU的工作性能一样???

Jay:

回复 Jay:

你好!

不好意思,点错了一个按钮,你的那个回帖不见了~~~

Jay,你好,谢谢你的回答。我还有几个问题:

1,  请问在默认情况下,MCU的程序是跑在flash下吗?在包含flash访问时间情况下,你们是否有MCU整体工作性能的参数??

默认情况下MCU是在Flash中跑程序,当然程序也可以拷贝到RAM去运行。

我们暂时没有你所要的参数。但是你可以很容易来做一个Benchmark。写一个测试工程,做算术运算(加、减、乘、除),做测试时请注意不要计入逻辑判断的时间(如if/for/while等)。

2,  在技术文档中有说明“the TCM RAM can support program and data fetches at full CPU speed without  any address or data wait states required.”  这句话是否说明如果程序跑在RAM里的话,MCU整体工作性能几乎和CPU的工作性能一样???

可以这么理解。RAM不是需要等待时间的。

robin zou:

回复 Jay:

你好,Jay,我按照你的建议,测试如下:

 

1,  工作频率:PLL1=180MHz,按照1.6 DMIPS/MHz的性能计算,每条指令的执行时间为

t每条指令=1/1.66/180/1000000s

 

2,  测试代码:

 

LED灯亮;

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

 {

          j=j+100;                

 }

LED灯灭;

     循环对应的汇编代码如下:

                       main_2: 

                                   ADDS R5,R5,#100

                                   ADDS R4,R4,#1

                       main_3: 

                                   LDR R0,[PC,#0x28]

                                   CMP R4,R0

                                   BCC  main_2

 

(五条汇编指令×循环数)× t每条指令=T总运行时间

 

3,设置T总运行时间=1s

     循环数=T总运行时间/ t每条指令/五条汇编指令=1×1.66×180×1000000/5=59760000,

    

4,  在代码中设置Counter=59760000,让CPU跑起来,预期T总运行时间应该为1s

 

LED灯亮;

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

 {

          j=j+100;

                 

}

LED灯灭;

 

5,  实际测试T总运行时间=4.9s;

 

为何我的测试值和理论计算值差别这么大??请问我这种测试的方法是否正确? 是否可以将每条汇编指令的运行时间都看成一个时钟周期??

Jay:

回复 robin zou:

你好。

你写的五条汇编指令是这个While循环在Disassembly窗口看到的吗?

还是你自己认为应该是这样的?

robin zou:

回复 Jay:

你好。

是在Disassembly窗口看到的。

我还做了一个测试:

1,运行频率180MHz,运行平台是TMS570LS1227开发板,IAR编译器,测试代码(源码见附件):  

	while(1){hetPORT1->DOUT=0x00000001;//LED ONfor(i=0;i<59760000;i++){j=j+100;}//Ton (LED亮的 时间)
hetPORT1->DOUT=0x00000000;//LED OFFfor(i=0;i<59760000;i++){j=j+100;j=j+100;//比上面多一条加法指令}//Toff ( LED灭的 时间)}

2,T加法理论总运行时间=59760000/1.66×180×1000000=0.2s,就是说预期Toff -Ton=0.2s;

      实际示波器拍出来Toff -Ton=1s。实际时间刚好是理论计算的5倍。

 

 

Ken Wang:

回复 robin zou:

Hi robin,

   你通I/O电平翻转的方式来测试C语言的时间本身就会有误差,同时C语言和汇编语句之间的执行周期换算也能简单的按1比1来。

这样测出来的值,参考性不大。

首先建议你用芯片内部的PMU模块来测量语句执行的周期,这个测出来的值直接就是系统运行的cycle周期,能够很直观看出你这段语句具体运行了多少cycle,从而也可以很直观的推算出,每条C语言语句对应的执行周期数。

谢谢

ken

robin zou:

回复 Ken Wang:

Hi Ken,

我在IAR编译器仿真模式下测试出每个加法指令的机器cycle为1。

由于我想测试程序运行在flash情况下执行一个cycle到底需要多少时间,所以采用以上方式。我59760000×5个指令周期才翻转一次IO,估算CPU一个cycle的时间应该可以接受这个误差。

技术文档中说:“The TMS570LS12x/11x integrates the ARM® Cortex™-R4F Floating Point CPU that offers an efficient 1.6 DMIPS/MHz and has configurations that can run up to 180MHz providing up to 288 DMIPS.” 所以 t每条指令=1/1.66/180/1000000s。但是我安装以上方法测试一个加法运算,设置工作频率PLL1=180MHz,该程序跑在flash里,t每条指令=1/1.66/180/1000000×5s,程序运行是理论计算的5倍。

是否运行在RAM中才能达到t每条指令=1/1.66/180/1000000s的速度??

请问怎么用芯片内部的PMU模块来测量语句执行的周期?一个周期的执行时间怎么测量???

robin zou:

回复 Ken Wang:

Hi Ken,

     谢谢你的答复。确实用PMU模块测试比较合理,按照你的方法测试是有效的。

谢谢。

Robin

赞(0)
未经允许不得转载:TI中文支持网 » TMS570LS1227的工作性能
分享到: 更多 (0)