#include <stdio.h>
#include <math.h>
#include <c6x.h>
#include <time.h>
int i;
int a[1000]={0};
clock_t t_overhead, t_start, t_stop;
void main()
{TSCH=0;TSCL=0;t_start = _itoll(TSCH, TSCL);for(i=0;i<1000;i++){a[i]=i;}t_stop = _itoll(TSCH, TSCL);t_overhead = t_stop - t_start;
}
上述程序在C6657开发板上的运行Cycle:16037
Simulation的Cycle:16016
各位TI工程师们,请问下这是什么原因
Tao_LL:
程序是在1MB LOCAL L2/SRAM中跑的
Ryan BL:
回复 Tao_LL:
没用过sim. 感觉像是sim.中跑的程序cache模拟的不充分,导致其性能比较好,如果你放到L1中运行估计就是一致的,甚至比sim.还高一点点的性能.
Tao_LL:
回复 Shine:
TI工程师您好,请问下为什么会产生这种现象。里边没有给出具体的解释,只有结果和数据。我想知道是什么原因造成的。
Ryan BL:
回复 Tao_LL:
cycle仿真会以最接近CPU执行cycle的步骤进行仿真,速度会很慢;
另外的仿真只是将指令进行对照的翻译执行,只保证算法结果一致,作为算法的验证。类似QEMU的几种虚拟机机制。
TI中文支持网

