第一章:Introduction to Consistency and Coherence
chapter1:简介
单核处理器对访存行为的结果定义为一个正确和多个不正确,根据给定的输入获得明确的输出。但是对于共享内存,涉及到多个线程的loads和stores,来自不同线程的指令可能存在很多种合法交织,这就导致了确定当前执行结果是否正确变得十分复杂。
对于cache coherence是内存consistency的有一部分,通过实现coherence支持consistency。Coherence在共享内存中应与单核系统中的cache一样在功能上 不可见。
1、内存一致性(consistency)
Consistency model根据load和store定义正确的共享内存行为,不涉及coherence。举个例子,某学校计算机体系结构课本来安排在152教室,但临近开学,调整到252教室。教师发邮件要求网站管理员更新课表,几分钟后教师通过短信通知学生检查新的时间表。这时候就可能存在这样一个场景,网站管理员延迟更新了时间表,某同学收到短信后查看在线课表发现还是152号教室。这位同学可能会因此还是去到152房间,无法完成上课。Consistency model就是要定义这种行为究竟是正确还是不正确,明确告诉程序员那哪些是允许的,哪些是不允许的。
共享内存的正确性由consistency model指定,对于使用特定输入数据执行的多线程程序,内存模型确定动态加载可能返回的值以及内存可能的最终状态。与单线程执行只有一个结果不同,多线程执行可能存在更多结果。
2、缓存一致性(coherence)
当多个master访问数据的多个副本(存在多个缓存钟),并且有至少一次是写操作时,就可能出现coherence问题。考虑第一节中的类似场景,某学生查看在线课表发现体系结构课在152上课,并将此信息记录在了手机中。而上课教室改到252后,手机中的信息就已经过时,这就是一种incoherent行为。
coherence协议时系统内定义的一组规则,可以防止对过时数据的访问。尽管此协议存在不同的实现方式,但基本都是将某master的写入操作传播到所有缓存,使得其他master也能看见该操作,保持所有缓存中数据同步。但是不同实现方式在同步发生的时间(when)和方式(how)上有所差异。主要分为两大类,第一类中,写操作同步传播到所有缓存,及时更新;第二类中,写操作异步传播,这种方式不能保证在线课程表更新后手机中的信息也立即更新,但是可以保证
3、小测试,看有无必要读这本书
1、在顺序一致性(SC)中,core是否必须按程序顺序发送一致性请求?(3.8节)
2、consistency model指定了一致性事务的合法顺序?(3.8节)
3、为了执行一个原子读-修改-写指令,一个core是否必须始终与其他core通信?(3.9节)
4、在具有多线程核心的 TSO 系统中,线程可能会 bypass(旁路)write buffer 中的值,而不管哪个线程写入了该值。对或错?(第 4.4 节)
5、编写与高级语言的 consistency model(例如 Java)相关的正确同步代码的程序员不需要考虑架构的 memory consistency model。对或错?(第 5.9 节)
6、在 MSI 监听协议中,cache block 可能仅处于三种 coherence 状态之一。对或错?(第 7.2 节)
7、Snooping cache coherence 协议要求核心在总线上进行通信。对或错?(第 7.6 节)
8、GPU 不支持硬件 cache coherence。因此,他们无法强制执行 memory consistency model。对或错?(第 10.1 节)。
4、 本书不能做什么
本书不包括以下内容。
- 同步。Coherence使缓存不可见。Consistency 可以使共享内存看起来像一个单独的内存模块。然而,程序员可能需要locks、barriers和其他同步技术来使他们的程序有用。
- 商用的 Relaxed Consistency Model。本入门书不涉及 ARM、PowerPC 和 RISC-V 内存模型的微妙之处,但确实描述了它们提供哪些机制来强制执行顺序。
- 并行编程。本书不讨论并行编程模型、方法或工具。
- 分布式系统的 Consistency。本入门书仅限于共享内存多核内的 consistency,不包括在一般分布式系统中的 consistency 模型及其实现。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】