请教:
在当前基于C6678的大型项目开发中,在cache的维护上遇到了一些问题,为此希望建立一些基本的维护规则。在应用中,变量可以认为有以下3种:仅核自身用到的变量;多核共享的标志变量(用于核间传递信息);核与外设交互的数据。cache只使用L1D,L2不作cache用。
考虑采用下述原则:
1、核自身用到的变量,定义于L2上,并不作任何一致性维护;
2、多核交互变量,定义于共享内存,任何核写入后均立刻writeback,读出前Invalid;变量定义全部对齐到cache line大小(以避免对一个变量的回写和无效影响其它变量)
3、核与外设交互的数据,当其定义于L2或MSMC上时,分别参照第1条和第2条。
根据大家的开发经验,这些原则是否正确和全面?希望有开发经验的同学能分享经验。