缓存一致性

探讨了多核CPU环境下缓存一致性问题,包括CPU读写数据过程、数据不一致产生的原因及两种解决方法:使用LOCK#锁和缓存一致性协议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

缓存一致性:

  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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值