参考:
1、硬件系统结构描述 从硬件的系统结构开始_橙色逆流的博客-CSDN博客
2、CPU CACHE (一) CPU cache(上)_橙色逆流的博客-CSDN博客_cpu cache tag vaild
3、CPU CACHE (二) CPU cache(中)_橙色逆流的博客-CSDN博客
访问内存的物理行为变迁
1、DAM引入(释放cpu)
2、NUMA体系结构引入(释放北桥)
3、cache引入(平衡cpu主频和DDR速度)(哈佛结构数据和指令单独存储)
cpu访问所有的数据都需要经过北桥,其中包含对内存的数据访问
1、为了解决CPU访问内存的瓶颈点,引入了DMA
2、释放北桥,将内存控制器放到cpu中(每个cpu可以单独访问RAM,内存再一致),引入了NUMA
cacheline的结构
tag:通过数据块在主存的地址解析获取的
Data block:主存数据
Flag bit:invalid(cache数据无效) dirty(内存数据无效,cache数据未同步到内存)
主存地址解析cacheline
tag:区分cache line
Cache set:指明内存单元位于哪个cache set(一个cache set包含多个cache line)
多处理器cache一致性
MESI协议中利用这两位(dirty,invalid)组成4种状态,分别是Modified,Exclusive,Shared和Invalid。
Modified:本地处理器修改了cache line中的数据,并且数据只存在于这一个cache中,在其他cache中没有备份。(本地dirty,其他invalid)
Exclusive:cache line中的数据没有被修改,并且数据只存在于这一个cache中,在其他cache中没有备份。(本地valid,其他invalid)
Shared:cache line中的数据没有本修改,该数据有可能在其他cache中有备份。(本地和其他valid)
Invalid:cache line中的数据是无效的。(本地invalid)