CPU缓存一致性协议MESI

CPU中为什么要有高速缓存

        内存和硬盘的发展速度远远比不上CPU,高性能的内存和硬盘价格很高,不利于普通用户的推广使用。所以CPU厂商在CPU中内置了少量的高速缓存以解决I/O速度和CPU运算速度之间的不匹配问题。

        在CPU访问存储设备时,无论是存取数据还是存取指令,都在一片连续的区域中进行,这就被称为局部性原理。

        时间局部性:如果一个信息项正在被访问,那么在近期它很可能还会被再次访问。比如循环、递归、方法的反复调用等。

        空间局部性:如果一个存储器的位置被引用,那么将来他附近的位置也会被引用。比如顺序执行的代码、连续创建的两个对象、数组等。

带有高速缓存的CPU执行计算的流程

        1.程序以及数据被加载到主内存

        2.指令和数据被加载到CPU的高速缓存

        3.CPU执行指令,把结果写到高速缓存

        4.高速缓存中的数据写回主内存

多核CPU多级缓存一致性协议MESI

        多核CPU的情况下有多个一级缓存,如何保证缓存内部数据的一致,不让系统数据混乱。这里就引出了一个一致性的协议MESI。

你可能感兴趣的:(CPU缓存一致性协议MESI)