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

C6678 cache

您好:问题简单描述如下:
多核编程,所有段放在DDR里面,L1、LL2全都作为cache,采用主从模式 ,定义全局变量i=0,core0调用函数实现i++,然后通过notify一次通知core1-core7,也调用该函数实现i++,最后实验显示,core0-core7打印结果都是i=1。

请问这是什么原因,不是应该core0打印i=1,core1打印i=2………我cache没有进行一致性维护,不知道是不是这个原因?

谢谢!

Shine:

全局变量放在DDR的地方是否是cacheable的?如果是cacheable,需要维护一致性。否则某一个core不能获得其他core更新的数据,你可以把memory设置为noncacheable,这样就不需要手动维护cache一致性

qq z:

回复 Shine:

您好:

全局变量是放在数据段的,数据段放在DDR里面,我并没有让DDR作为Cacheable,按照您的说法,每个核访问的数据段的数据都是最新的?

Shine:

回复 qq z:

是的。

qq z:

回复 Shine:

您好:

但是上面实验的结果为什么是不正确的呢?

赞(0)
未经允许不得转载:TI中文支持网 » C6678 cache
分享到: 更多 (0)