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的时候有点疑问,想要请教下大家:

      1.如果对于定义在MSMC中的某个变量,其中一个核改变了它的初始值,而另一个核需要获取这个新值得话需要考虑cache一致性的问题。是否是每个核都有一段cache?而这些cache空间是从L2 SRAM中分出来的?也就是说如果要读取MSMC中的变量的话每个核一定要在自己的L2 SRAM中分一部分出来作为cache吗?

     2.对于维护cache一致性,使用了函数cache_wb()以及函数cache_Inv(),这两个函数的第二个参数和.cfg文件中配置的cachelinesize的关系是什么呢?如果在.cfg中,将cachelinesize配置为128,而cache_wb()函数的第二个参数配置为2,那是否意味着将128*2=256个字节回写到MSMC中?

    谢谢!

  • 每个core都有各自的L1及L2 memory,可以软件配置L1及L2 memory cache的大小;MSMC memory默认是只经过L1 cache,不会经过L2 cache,如果通过MPAX将MSMC memory映射为L3 memory则会经过L1及L2两级cache;cache一致性维护需要填写数据起始地址及长度,两者都需要保证cache line对齐,L1 cache line是64bytes,L2 cache line是256bytes。