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

TMS320C6678: 主从核cache一致性

Part Number:TMS320C6678

CACHE_wbInvL2(cnew, mnew * nnew * sizeof(float), CACHE_FENCE_WAIT);

主核和从核一起处理数据,但是主核缓存了从核的部分数据,当主核处理完数据,进行cache写回失效,再从核处理数据写回,但是主核执行该函数并没有把数据写回,缓存中还存在脏数据,主核进行下一步处理时,主核还是用了缓存中的脏数据,并没有用从核写入内存的数据。

Nancy Wang:

相关完整的代码贴出来看一下。读取数据之前是否执行Invalidate操作。

,

Qu Zhong:

CACHE_wbInvL2(cnew, Info->Mnew * nnew * sizeof(float), CACHE_WAIT); CACHE_invL2(Info->Cnew, mnew*nnew*sizeof(float), CACHE_WAIT); _mfence(); _mfence();

这段代码执行后,内存中这部分数据并没有改变

,

Qu Zhong:

我是打断点去看对应的内存,但是这段代码执行后好像跟没执行一样,ddr中的数据没有改变,cache中还是脏数据,是需要导入额外的头文件还是?我目前导入了一个<csl_cacheAux.h>

,

Nancy Wang:

配置MAR看看,详细内容请阅读 2.3 Cacheability

https://www.ti.com.cn/cn/lit/ug/sprugy8/sprugy8.pdf

,

Qu Zhong:

我现在遇到的问题主要是小范围的写回是可以执行的,但是cache_inv指定的范围大一点,cpu中的缓存就不会写回

,

Nancy Wang:

有部分可以应该不是头文件的问题。

有没有测试过多大的范围有效?修改数据存放地址,多测试看一下。

赞(0)
未经允许不得转载:TI中文支持网 » TMS320C6678: 主从核cache一致性
分享到: 更多 (0)