什么是cache一致性?

1. 什么是cache一致性?

   1)cache的作用。

   Zynq7000系列的架构图部分内容如下图所示,它的PS侧有两个cpu arm核,分别成为0核、1核,

每个cpu核都有一个D-Cache(数据缓冲区)。由于磁盘上的数据读取比内存上的读取慢的多,因此为了

提高数据读取的速度,设计了Cache这个器件,大大提升了GPP上程序的运行速度。

    

 

              图1-1 Zynq7000系列架构图

 

 

   2)数据在程序、cache、DDR(内存)之间的关系。

    cache只是临时保存数据,当系统掉电后,它上面的数据就会清空丢失;

    DDR可以永久的保存数据,系统掉电,不会丢失数据,就像电脑上的磁盘文件一样。  

    如下图所示,程序在运行时,操作系统会在DDR的可用地址空间上分配一块内存给程序用。

程序中数据的读写就是对DDR上的数据进行读取,Cache在其中扮演的作用是:把DDR上的内容,读取

到Cache上,程序对DDR的读写就是对Cache的读写,Cache会在适当的时机把数据同步到DDR上。

       

 

                    图1-2 程序、Cache与DDR的映射关系

 

 

     3)Cache上的数据由于没有及时同步到DDR上,多核通信时会出现不一致的问题。

    如下图所示,0核和1核上的程序使用同一块DDR进行数据通信,如果某一时刻,0核上的程序把数据写入到

0核cache上的cache,并且没有同步到DDR上,而1核上的程序恰好此时读取DDR上的数据,它读取的数据就是旧的数据,

也是错误的数据,引起这个错误的问题,就是Cache一致性问题

 

    

 

                  图1-3 多核通信引起的cache一致性问题

 

posted @ 2023-03-10 19:57  猿起5-2  阅读(406)  评论(0)    收藏  举报