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

多核间用MSMC全局变量同步的问题

我在做多核的同步的时候,定义了一个int型的flag,并且把它放到了MSMC中。在core0中将其值改写为1,但在其他核中该值依然是0,并没有随着core0改变。

怀疑是cache一致性的问题,于是加入了CACHE_invL1d((void *)(&flag),sizeof(int),CACHE_WAIT);但结果依旧。

麻烦帮我看一下。

 

非常感谢TI的工作人员和各位网友!

chao fan:

回复 Brighton Feng:

谢谢上面这位网友!用你的方法已经调通了!

wei wang6:

回复 chao fan:

我的cache配置是如下的:

L1Pcache 32k byte

L1Dcache 32k byte

L2cache 0k byte.

然后核0、核1都把数据写入到共享内存中:

1.在没有操作系统的时候,利用上面的函数核1和核0都能看到对方写的数据。

2.在有操作系统的时候,就不能看到对方写的数据了。

请问哪位高手能大概指引一下是什么原因导致的吗?

ZQ:

回复 Brighton Feng:

请问:CACHE_invL2(flag address, size of flag);CACHE_wbL2(flag address, size of flag);这两个函数中第二个变量是否有长度限制?

如果我L2开了256KB的cache空间,0核写大于256KB的数据时,1核去访问是否有问题?

Brighton Feng:

回复 ZQ:

size没有限制.

64932136:

chao fan 你好,

我现在也想弄这个MSMC和cache一致性的问题,但是不知道怎么在MSMC中定义一种标志,然后配置cache一致性。请问可不可以把这块的处理方法代码贴出来学习一下。谢谢。

ming wu4:

回复 Brighton Feng:

你好,请问这段伪代码在实际编程中怎么填写,是否有相应的例子参考,谢谢!

赞(0)
未经允许不得转载:TI中文支持网 » 多核间用MSMC全局变量同步的问题
分享到: 更多 (0)