高速缓存分为L1-L3 Cache
L1 Cache: 一级缓存是CPU第一层高速缓存,分为指令缓存和数据缓存,一般服务器的CPU的L1缓存容量在32-4096kb,现在的L1 Cache都不能直接与内存直连传输数据...缓存一致性与MESI协议
单CPU缓存的读与写操作
缓存读操作
CPU读取数据时,先在L1中寻找,再从L2中寻找,再从L3中寻找,然后是内存,最后是外存储器(持久化介质)
如果只处理读取操作,那么不论是...L1-L3的缓存,都将会和主内存的数据保持一致
缓存写操作
缓存直写:直接透过本级缓存,直接将数据写入到下一级缓存或主内存中,写入成功/失败后将对应的缓存内容也执行更新/丢弃操作,这样缓存中的数据与将与主内存数据一致...,并与主内存以及其他Cache的数据保持一致,用于读缓存操作
独占(Exclusive)缓存段: 数据有效,与主内存的数据保持一致,与S的区别就是在于该处理器处于独占的状态时,其他的cpu缓存将会失效...,在指令前插入Load Barrier,可以让高速缓存中的数据失效,强制从新主内存中加载数据读取主内存内容,让CPU缓存与主内存保持一致,避免缓存导致的一致性问题
完全内存屏障,保障了早于屏障的内存读写操作的结果提交到内存之后