缓存一致性协议详解

缓存一致性协议和 java 的 volatile 实现无任何关系

cache line的概念 缓存行对齐 伪共享

a. cache是以cache line为单位与内存映射的,cache只要命中了就是命中64字节,对应内存中连续的64个地址,这64个地址刚好对应了地址的低6位。所以这6位被划为一个段。
b. cache分为了64组,要有hash方式确定内存中的地址在哪个cache组,可以用36位地址中的高30位模64得到组索引,模64和和取高30位中的低6位得到的结果是相同的。所以这6位就是另一个段。
c. 因为内存大小远远大于cache,内存和cache的映射必然是多对一(即多个内存映射到一块cache),这样必然会产生冲突,36位地址的高24位就是用来解决冲突问题的,所以这24位就是一个段

因为因特尔的用的比较多,所以网上写的都是英特尔的 MESI 协议

CPU 的乱序执行

发布了423 篇原创文章 · 获赞 1094 · 访问量 55万+

猜你喜欢

转载自blog.csdn.net/qq_33589510/article/details/105318221