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一致性问题
标签:Cache,读取,DDR,什么,cache,程序,一致性,数据 From: https://www.cnblogs.com/blackandwhite/p/17204456.html