硬件平台:6670,软件平台:ccs5.5
L1D和L1P的cache全开,即各32kB,L2的cache打开256KB,在core0上写SL2数据,然后writeback;在core1上对SL2地址做invalide操作,再读SL2数据,这种情况,SL2开头部分数据(48个int 字)没进入cache中,导致读出错误数据。
附上配置图:
附上memory 数据截图:
核0勾选L2缓存和不勾选数据都是一致的;
核一
不勾选L2缓存:
勾选L2缓存:(此处的红色的数据是上一次的数据,而SL2是本次的新数据)
这样导致我接下来使用的数据就是错误的;
第二个问题是:
CACHE_invL2((void*)fft_data, sizeof(fft_data), CACHE_WAIT);这个函数第三个参数有两种配置 CACHE_WAIT 和 CACHE_FENCE_WAIT,
如图
请问 CACHE_invL2Wait(); 和 _mfence(); 有什么区别,问题比较多,希望TI员工可以给回答一下,问题比较着急,谢谢了




