1.对于单核来说,没有cache无效/写回一说,因为无论在cache中还是在ram中值都是对应最新的值是吧?
2.在调试6678过程中,发现一个问题.。
过程是:Core0与Core1双核运行,共享的数据放在一个结构体 X 中,然后放入MSCM内存中,
(步骤1)首先Core0把数据存入结构体X中,
(步骤2)Core1读取X中数据进行计算,并更新 X 中数据,
(步骤3)运算完成后,Core0再读取 X 中数据。
最开始不加入Cache无效/写回 的操作,会发现(步骤2)读到的X中数据不是Core0最新更新的数据。然后在(步骤3)后面加入无效
并写回的操作后,整个计算过程完全正确。
3. 那么 问题来了:
a, 问什么在(步骤1)后不用Cache写回的操作呢?
b . 还有在(步骤3)读回X数据时也不用Cache无效的操作也正确。这到底是为什么呢?
这和cache无效/写回的原理好像不太对应,哪位大神或
ti工作人员帮小弟解释解释,顺便讲讲cache无效/写回的原理机制到底是咋样????
多谢,多谢!!!