缓存一致性

缓存一致性:

  CPU读写数据过程:

    CPU从主存中加载数据到高速缓存

    CPU对高速缓存中数据进行读写

    CPU将数据写回主存

  问题描述:

    多核CPU:每个核都有自己的高速缓存,每个CPU对同一份数据进行处理,就会产生数据不一致的问题。

  解决方法:

    (1)通过在总线加LOCK#锁的方式

        当有CPU对缓存中数据进行操作时,就往总线发送一个lock信号,其它CPU收到信号后就不会对这个数据进行处理,当CPU释放锁之后,所有CPU从内存中获取数据,但是用锁的方式,其它和就得排队等候,CPU效率下降

    (2)通过缓存一致性协议(锁缓存)

        核心思想是:当CPU向内存写入数据时,如果发现操作的变量是共享变量,即在其他CPU中也存在该变量的副本,会发出信号通知其他CPU将该变量的缓存置为无效状态,因此当其他CPU需要读取这个变量时,发现自己缓存中缓存行是无效的,那么它就会从内存重新读取

原文地址:https://www.cnblogs.com/youayou/p/11418565.html