This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

C6678的Cache维护的一些原则讨论



请教:

         在当前基于C6678的大型项目开发中,在cache的维护上遇到了一些问题,为此希望建立一些基本的维护规则。在应用中,变量可以认为有以下3种:仅核自身用到的变量;多核共享的标志变量(用于核间传递信息);核与外设交互的数据。cache只使用L1D,L2不作cache用。

         考虑采用下述原则:

         1、核自身用到的变量,定义于L2上,并不作任何一致性维护;

          2、多核交互变量,定义于共享内存,任何核写入后均立刻writeback,读出前Invalid;变量定义全部对齐到cache line大小(以避免对一个变量的回写和无效影响其它变量)

          3、核与外设交互的数据,当其定义于L2或MSMC上时,分别参照第1条和第2条。

          根据大家的开发经验,这些原则是否正确和全面?希望有开发经验的同学能分享经验。