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

计算机体系结构总结:内存一致性模型 Memory consistency Model

存储一致性是为了保证多线程背景下的访存顺序,多线程的语句是可以交错执行,使得顺序不同产生不同的执行结果。

下面P2的输出结果可能是什么?

img

P1, P2两个线程的语句是可以交叉执行的,比如1a, 2a, 2b, 1b;一个线程内的语句,也是可以混序执行的,如P1: 1b, 1a,这取决于编译器和执行情况。所以,P2 print B, print A,会有0 0, 2 1, 0 1, 2 0四种结果。

若不控制mem consist,P2 print的B A会千奇百怪,甚至会有B 2, A 0。线程内内不遵循程序序,线程间也不

加控制,导致语句执行顺序为 1b 2a 2b 1a。

Sequential Consistency (SC)

  • 所有线程的内存访问执行的顺序必须与程序中指令顺序一致

  • 发出写操作后,发出线程等待写操作完成后再发出下一个内存操作

  • 发出读操作后,发出线程等待读操作完成,并等待返回值的写操作完成后,然后再发出下一个操作

例子1

img img

左边是核心C1的程序指定顺序,右边是核心C2的程序指定顺序,中间是实际的内存访问顺序。简而言之,不管是从哪个核心的角度,内存访问的顺序都是遵循程序指定顺序的 。

对于上述程序而言,只要是服从顺序一致性内存模型,最后程序的结果寄存器r2都能够拿到值NEW,唯一不能确定的是执行指令L1的次数。

例子2

以下为sc与非sc满足的例子:

在这里插入图片描述

左侧为Core 1,右侧为Core 2的指令顺序。只有d出现线程内部访存顺序不符合程序指令顺序,就是不符合SC的。

参考

https://zhuanlan.zhihu.com/p/161275959?utm_id=0

https://zhuanlan.zhihu.com/p/521775447

相关文章:

计算机体系结构总结:内存一致性模型 Memory consistency Model

存储一致性是为了保证多线程背景下的访存顺序,多线程的语句是可以交错执行,使得顺序不同产生不同的执行结果。 下面P2的输出结果可能是什么? P1, P2两个线程的语句是可以交叉执行的,比如1a, 2a, 2b, 1b;一个线程内的语…...

高速列车运行控制系统(CTCS)介绍

1、CTCS功能 安全防护 在任何情况下防止列车无行车许可运行防止列车超速运行防止列车超过进路允许速度防止列车超过线路结构规定的速度防止列车超过机车车辆构造速度防止列车超过临时限速及紧急限速防止列车超过铁路有关运行设备的限速防止列车溜逸 人机界面 以字符、数字及…...

C#“System.Threading.ThreadStateException”类型的未经处理的异常

备忘 最近做一个功能,从主界面进入另一个界面时,数据量较大,处理信息较多,程序宕机。而且点击程序还会提示程序无响应。不得已用另一个线程显示界面。但在界面中使用控件时,报错:“System.Threading.Thread…...

为什么要交叉编译?

一、什么是交叉编译、为什么要交叉编译 1、什么是交叉编译? 交叉编译:是在一个平台上生成另一个平台上的可执行代码。比如我们在 x86 平台上,编写程序并编译成能运行在 ARM 平台的程序,编译得到的程序在 x86 平台上是不能运行的…...

java版本电子招标采购系统源码—企业战略布局下的采购

​ 智慧寻源 多策略、多场景寻源,多种看板让寻源过程全程可监控,根据不同采购场景,采取不同寻源策略, 实现采购寻源线上化管控;同时支持公域和私域寻源。 询价比价 全程线上询比价,信息公开透明&#xff0…...

【MATLAB数据处理实用案例详解(17)】——利用概念神经网络实现柴油机故障诊断

目录 一、问题描述二、利用概念神经网络实现柴油机故障诊断原理三、算法步骤3.1 定义样本3.2 样本归一化3.3 创建网络模型3.4 测试3.5 显示结果 四、运行结果五、完整代码 一、问题描述 柴油机的结构较为复杂,工作状况非常恶劣,因此发生故障的可能性较大…...

神奇字符串、密钥格式化----2023/5/6

神奇字符串----2023/5/6 神奇字符串 s 仅由 ‘1’ 和 ‘2’ 组成,并需要遵守下面的规则: 神奇字符串 s 的神奇之处在于,串联字符串中 ‘1’ 和 ‘2’ 的连续出现次数可以生成该字符串。 s 的前几个元素是 s “1221121221221121122……” 。…...

STM32F4_十进制和BCD码的转换

目录 前言 1. BCD码 2. BCD码和十进制转换的算法 前言 最近在学习STM32单片机(不仅仅是32)的RTC实时时钟系统的过程中,需要配置时钟的时间、日期;这些都需要实现BCD码和十进制之间进行转换。这里和大家一起学习BCD码和十进制之…...

random — 伪随机数生成器(史上总结最全)

目的:实现几种类型的伪随机数生成器。 random 模块基于 Mersenne Twister 算法提供了一个快速的伪随机数生成器。Mersenne Twister 最初开发用于为蒙特卡洛模拟器生成输入,可生成具有分布均匀,大周期的数字,使其可以广泛用于各种…...

基于VBA实现成绩排序的最佳方法-解放老师的双手

作为一名老师,每到期末就要面对一件让人头疼的事情——成绩表统计。 首先,要收集每个学生的考试成绩。这需要花费大量的时间和精力,因为每个学生都有多门科目的成绩需要统计。 其次,要将每个学生的成绩录入到电子表格中。这看起来…...

OCAF如何实现引用关系和拓扑关系

在 OpenCASCADE 中,TDF_Label 是用来保存对象及其属性的基本单元。TDF_Label 可以通过添加不同类型的属性来保存不同的数据类型。属性是继承自 TDF_Attribute 类的对象,每个属性都有一个唯一的标识符(GUID)来识别其类型。TDF_Label是OpenCASCADE中用来管理数据的标签类,它…...

自动创建设备节点

在成功加载驱动模块之后,还需要使用 mknod命令创建设备节点,才能在/dev目录下创建对应的设备文件。自动创建设备节点的功能需要依赖 mdev 设备管理机制,在使用 buildroot 构建 rootfs 的时候,会默认构建 mdev 的功能,m…...

JavaWeb ( 六 ) JSP

2.4.JSP JSP (Java Server Pages) : 一种在服务器端生成动态页面的技术,本质上就是Servlet。将HTML代码嵌入到Java代码中, 通过Java逻辑控制HTML代码的结构从而生成页面。在MVC中通常担任视图层(view),负责信息的展示与收集。 2…...

2023世界超高清视频产业发展大会博冠8K明星展品介绍

2023世界超高清视频产业发展大会博冠8K明星展品介绍: 一、博冠8K全画幅摄像机B1 这是一款面向广电应用的机型,可适配外场ENG制作轻量化需求,应用于8K单边机位、新闻、专题的拍摄工作,也可应用于体育转播、文艺节目等特殊机位及各…...

Map接口以及Collections工具类

文章目录 1.Map接口概述1.1 Map的实现类的结构1.2 Map中存储的key-value结构的理解1.3 HashMap的底层实现原理(以JDK7为例)1.4 Map接口的常用方法1.5 TreeMap1.6 Map实现类之五: Properties 1.Collections工具类1.1方法1.1.1 排序操作(均为static方法)1.1.2 查找、替换 1.Map接…...

SOA协议DDS和Some/IP对比

SOME/IP 和 DDS 均已被纳入AUTOSAR AP的平台标准中。 SOME/IP 和 DDS是在不同的应用场景和不同的需求下诞生的技术,所以它们之间注定有很大的区别。 SOME/IP SOME/IP的全称为:Scalable service-Oriented MiddlewarE over IP,是一种面向服务…...

Sass使用

前言: 这份记录,主要是记录学习sass的学习记录,用于记录一些本人认为可能以后会用到的比较常用的一些知识点,更详细的请看sass官网 功能1-嵌套规则 Sass 允许将一套 CSS 样式嵌套进另一套样式中,内层的样式将它外层的…...

超大excel文件读,避免内存溢出

excel40M&#xff0c;但是用传统的读取excel方法&#xff0c;会报内存溢出的错误。 所以采用了下面的方式&#xff0c;能解决此问题&#xff1a; maven依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><ve…...

第0章 学习之前的准备

突然想写点关于linux的东西&#xff0c;一是将自己几十年来零碎的知识作以串联&#xff0c;二是能为正在学习路上的新手作些指引。而恰好作者的孩子是一位初一的学生&#xff0c;我写的这些东西也正是我手把手教授他的&#xff0c;现在分享出来并且命名为《linux中学教程》&…...

数组排序sort()方法

sort() 方法对数组的项目进行排序。 排序顺序可以是按字母或数字&#xff0c;也可以是升序&#xff08;向上&#xff09;或降序&#xff08;向下&#xff09;。 默认情况下&#xff0c;sort() 方法将按字母和升序将值作为字符串进行排序。 一、语法 array.sort(compareFunct…...

【.NET AI Books 前言】Azure OpenAI Service 入门

本书是为 .NET 开发者而写的&#xff0c;让 .NET 开发者能快速掌握 Azure OpenAI Service 的使用技巧。 ChatGPT 的到来意味着我们已经置身于 AI 引起的全新变革中&#xff0c;作为开发者你可能将面临几种改变&#xff1a; GPT 模型到来后&#xff0c;如何去架构好企业解决方案…...

散列查找实验(开散列) 题目编号:583

题目描述 请设计一个整型开散列表&#xff0c;散列函数为除留余数法&#xff0c;其中散列表的长度、除留余数法的模和关键码的个数由键盘输入&#xff0c;再根据输入由键盘输入所有的关键码。分别对三个待查值在散列表中进行查找&#xff0c;输出查找结果采用头插法。 输入描…...

Java版spring cloud 企业工程项目管理系统平台源码(三控:进度组织、质量安全、预算资金成本、二平台:招采、设计管理)

工程项目管理软件&#xff08;工程项目管理系统&#xff09;对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营&#xff0c;全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据字典&#…...

Go type关键字定义新类型和类型别名的区别

type关键字再定义类型和类型别名有很大的区别&#xff0c;前者是新定义一个数据类型&#xff0c;后者是对类型的重命名。 type NewString stringtype OldString stringtype NewString string声明了一个NewString类型&#xff0c;和string具有完全一致的数据结构&#xff0c;确…...

Neural Network学习笔记2

torch.nn: Containers: 神经网络骨架 Convolution Layers 卷积层 Pooling Layers 池化层 Normalization Layers 正则化层 Non-linear Activations (weighted sum, nonlinearity) 非线性激活 Convolution Layers Conv2d torch.nn.Conv2d(in_channels, out_channels, ke…...

用@Value注解为bean的属性赋值

1.Value注解 Value注解的源码&#xff0c;如下所示 Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE}) Retention(RetentionPolicy.RUNTIME) Documented public interface Value {String value(); }从Value注解的源码中…...

拨云见日:深入理解 HTML 解析器与有限状态机

文章目录 参考描述状态机状态机有限状态机与无限状态机有限状态机与自动售货机无限状态机与计算器 HTML 解析器HTML 解析器HTML 与有限状态机 HTML 解析器的常见状态初始状态DOCTYPE 状态注释状态标签状态开始标签状态属性状态属性名状态属性值状态 结束标签状态自闭和标签状态…...

Java线程池及其实现原理

线程池概述 线程池&#xff08;Thread Pool&#xff09;是一种基于池化思想管理线程的工具&#xff0c;经常出现在多线程服务器中&#xff0c;如MySQL。 线程过多会带来额外的开销&#xff0c;其中包括创建销毁线程的开销、调度线程的开销等等&#xff0c;同时也降低了计算机…...

进程替换函数组介绍exec*

目录 前述 execl execlp execle execv execvp execvpe 前述 介绍后缀的意义&#xff1a; l &#xff08;list&#xff09;&#xff1a;表示参数采用列表。 v&#xff08;vector&#xff09;&#xff1a;参数同数组表示。 p&#xff08;path&#xff09;&#xff1a;自…...

欧科云链OKLink:2023年4月安全事件盘点

一、基本信息 2023年4月安全事件共造约6000万美金的损失&#xff0c;与上个月相比&#xff0c;损失金额有所降落&#xff0c;但安全事件数量依旧不减。其中&#xff0c;Yearn Finance因参数配置错误&#xff0c;导致了1000多万美金的损失。同时&#xff0c;有一些已经出现过的…...

网站功能设计指什么/百度一下浏览器

卡卡小课堂---第五堂课---主要是卡卡在社群中分享的一些小技巧课程总结&#xff0c;在小课堂里可以学习到一些很简单但是确很实用的技巧&#xff0c;获得不错的效果。如果想要分享更多的技巧方法&#xff0c;可以私戳卡卡的窗哟~本次主要分享的内容是-关于稿定设计H5的那些事儿…...

互联网服务行业有哪些/廊坊优化技巧

快捷方式拷贝到这里: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp 使用 -> 运行 -> shell:startup 能快速打开这个位置 转载于:https://www.cnblogs.com/wancy86/p/startup.html...

免费新闻网站建设/百度推广运营怎么做

180万私域用户&#xff0c;每天贡献直接单量3.5万多杯&#xff0c;通过群内信息提醒促单10万多杯 达到这一目标用时仅3个月&#xff0c;其中60%以上都是活跃用户 用户入群后月消费频次提升30%&#xff0c;周复购人数提升28%&#xff0c;MAU提升10% 目前&#xff0c;私域订单贡献…...

电子商务网站建设人才调研/郑州网站seo公司

一、常用加密情况有三种 &#xff1a; 1. 资源加密&#xff0c;如图片&#xff0c;音乐&#xff08;防盗版&#xff09; 2. 网络传输过程中的加密&#xff0c;避免被人拦截并修改数据&#xff08;防作弊&#xff09; 3. 游戏数据加密&#xff08;防作弊&#xff09; 二、加密…...

千图网在线编辑/上海百度关键词优化公司

1:普通SQL语句可以用Exec执行 eg: Select*fromtableName Exec(select * from tableName) Execsp_executesql Nselect * from tableName--请注意字符串前一定要加N 2:字段名&#xff0c;表名&#xff0c;数据库名之类作为变量时&#xff0c;必须用动态SQL eg: declarefnamevar…...

青岛网页设计培训机构/株洲专业seo优化

越来越多的研究表明&#xff0c;只要语料库足够大&#xff0c;几乎任何人的面部动作都可以与语音片段同步。今年6月&#xff0c;三星的应用科学家详细介绍了一种端到端的模型&#xff0c;该模型可以在一个人的头像中动画化眉毛、嘴巴、睫毛和脸颊。几周后&#xff0c;Udacity展…...