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

数组放在DDR3和SL2中运行效率为什么一样

我用fread()函数从电脑硬盘上读取一幅图像数据,然后把图像数据等分六分,分别交给c6678的6个核来处理,我的想象是把图像数据放在SL2中要比放在DDR中效率要高很多,但是我发现效率没有任何提高,请问是怎么回事?

分配空间是这样进行的:

#pragma DATA_SECTION(img1, "image_1")
#pragma DATA_ALIGN(img1, 128)
int img1[640*100];

#pragma DATA_SECTION(img2, "image_2")
#pragma DATA_ALIGN(img2, 128)
int img2[640*100];

img1 ,img2。。。。。都是全局变量

其余4个核类似

然后用

image_1  >  SL2

image_2  >  DDR3

我多次运行发现无论放在SL2或DDR3中,对运行效率没有任何影响,

我想可能在以下3个环节有问题

1、通过fread()函数从电脑硬盘上读取图像的时候,应该是先把整幅图像读到DDR中,即使我用image_1  >  SL2,实际上图像任然需要从DDR拷贝到SL2中,这个过程比较耗时,所以和image_2  >  DDR3用时一样?

2、我从网上看需要把SL2映射到DDR3中,并且需要MSMC的内存设置为non-cacheable才行,请问怎么把SL2映射到DDR3,用MPAX怎么映射?

3、我的存放方法有问题吗,能使用image_1  >  SL2这种方式吗?

Thomas Yang1:

请问您L2 CACHE 开了没有,如果开了,CPU CORE 访问SL2 和DDR3的路径都是通过 L1D CACHE- L2 CACHE – Share memory/DDR3, 您实测到的访问速度差不多有可能都是从CACHE中读到的

赞(0)
未经允许不得转载:TI中文支持网 » 数组放在DDR3和SL2中运行效率为什么一样
分享到: 更多 (0)