1、什么是cache一致性?
cache一致性:
-
单核系统中的Cache一致性问题,主要是指由于某些操作导致Cache和主存(如DDR)之间的数据不一致,且我们无法正确取到最新的数据。
-
多核系统的cache一致性问题,既包括cache和内存之间的一致性,还包括各个CPU的cache之间的一致性,也就是说,对内存同一位置的数据,不同CPU的cache line不应该有不同(或者说不一致)的值。
Cache一致性问题导致的后果那是相当严重的,程序无法按照预想进行运行。
正常情况下,Cache控制器有一套完善协议去保证我们对内存读写操作的正确性。但在某些复杂场景下,会发生cache一致性问题,此问题常发生在多核之间或使用DMA进行数据搬运前后。
2、如何去解决cache一致性
cache为维护一致性的操作可分为flush和invalidate。
<