当前位置: 首页 > news >正文

缓存一致

内存屏障有两个能力:
1. 阻止屏障两边的指令重排序。
2. 强制把写缓冲区/高速缓存中的脏数据等写回主内存,让缓存中相应的数据失效。

对Load Barrier来说,在读指令前插入读屏障,可以让高速缓存中的数据失效,重新从主内存加载数据。
对Store Barrier来说,在写指令之后插入写屏障,能让写入缓存的最新数据写回到主内存。

Lock前缀实现了类似的能力,
1. 它先对总线/缓存加锁,然后执行后面的指令,最后释放锁后会把高速缓存中的脏数据全部刷新回主内存。
2. 在Lock锁住总线的时候,其他CPU的读写请求都会被阻塞,直到锁释放。Lock后的写操作会让其他CPU相关的cache line失效,从而从新从内存加载最新的数据。这个是通过缓存一致性协议做的。

lock前缀(或cpuid、xchg等指令)使得本CPU的Cache写入了内存,该写入动作也会引起别的CPU invalidate其Cache。IA32在每个CPU内部实现了Snoopying(BUS-Watching)技术,监视着总线上是否发生了写内存操作(由某个CPU或DMA控制器发出的),只要发生了,就invalidate相关的Cache line。 因此,只要lock前缀导致本CPU写内存,就必将导致所有CPU去invalidate其相关的Cache line。








references:
https://blog.csdn.net/iter_zc/article/details/42006811

转载于:https://www.cnblogs.com/pfsi/p/9176115.html

相关文章:

  • 七牛云上传图片
  • s22day6笔记
  • BZOJ5093 [Lydsy1711月赛]图的价值 【第二类斯特林数 + NTT】
  • 【大数据Spark_SparkSQL系列_1】Spark SQL基础(五星重要)
  • bool值的底层应用场景
  • hihocoder:#1082 : 然而沼跃鱼早就看穿了一切(用string)
  • js中提示框闪退问题
  • Web站点抓取工具webhttrack
  • 在rabbitmq操作页面上添加队列、交换器及绑定示图
  • Windows10远程报错:由于CredSSP加密Oracle修正
  • dedecms四张表对应关系
  • Confluence 6 恢复一个站点问题解决
  • js寻路算法
  • C++公有继承、保护继承和私有继承
  • jmeter3.0+ant1.10+jenkins实现接口自动化并发送邮件
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • Angularjs之国际化
  • AWS实战 - 利用IAM对S3做访问控制
  • egg(89)--egg之redis的发布和订阅
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • iOS | NSProxy
  • JS基础之数据类型、对象、原型、原型链、继承
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • OSS Web直传 (文件图片)
  • socket.io+express实现聊天室的思考(三)
  • zookeeper系列(七)实战分布式命名服务
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 力扣(LeetCode)56
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • const的用法,特别是用在函数前面与后面的区别
  • ionic异常记录
  • 我们雇佣了一只大猴子...
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • .bat批处理(一):@echo off
  • .Family_物联网
  • .form文件_SSM框架文件上传篇
  • .NET CORE Aws S3 使用
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .NetCore项目nginx发布
  • .NET开发者必备的11款免费工具
  • /etc/sudoer文件配置简析
  • ::
  • ::什么意思
  • [20161214]如何确定dbid.txt
  • [2021 蓝帽杯] One Pointer PHP
  • [BZOJ] 2427: [HAOI2010]软件安装
  • [BZOJ2850]巧克力王国
  • [BZOJ4016][FJOI2014]最短路径树问题
  • [CF494C]Helping People
  • [codeforces]Levko and Permutation