cache coherence和memory consistency被中文翻译成cache 一致性和内存一致性,由于后两个不同的英文单词被翻译成相同的中文,这就导致两个术语在中文的技术领域经常被弄混,也因此导致不少人对这两个概念认识模糊不清。 计算机技术源自西方,自然要去看原汁原味的解释。 不逐字翻译,cache coherence指的是不同CPU cache保存...
国内的翻译经常把Cache coherence 和 Memeory Consistency都翻译成缓存一致性,有时候把前者翻译成缓存一致性,后者翻译成内存一致性。这两个名词的内涵是实际上不同的,为了准确性我把前者翻译成缓存一致性,后者翻译成内存时序性。内存时序性这个词很可能是我的独创。知乎上除了我似乎还有别的体系结构民科分享此类知识,有...
Memory Consistency and Cache Coherence—— cache一致性协议(MESI) cache监听一致性主要是获得cache的总线访问权,比如core1和core2同时写入相同的地址,会交由总线进行仲裁,确定哪个核先写入,在获得写入权限后,会通过总线广播使地址失效。一般的smp架构cpu cache结构如下图: 其中分为三级cache,第一级和第二级cache是...
对于sequential consistency和TSO等比较简单的consistency model来说,保证了coherence的cache可以被看成一个“黑盒”甚至对consistency model透明,黑盒中有cache实现有保证cache使用正确的coherence protocol,而consistency更关注程序(或处理器核)的访存顺序。因此对于简单的consistency model和coherence protocol来说,两者是解耦的...
Relaxed Memory Consistency(宽松内存一致性模型): 弱一致性模型,对以上四种访存方式都可以重新排序,所以在编写并发程序时会增加难度,要将可能出现的一致性情况都要考虑清除,在ARM, IBM POWER, DEC ALPHA等上的系统程序要考虑的更多一些。宽松一致性模型常见的优化有: ...
在翻译过程中,为了区分两个术语,将“memory consistency”翻译为“内存连贯性”,“cache coherence”翻译为“缓存一致性”。尽管如此,在需要时,本系列文章将尽量避免翻译这两个术语,以减少混淆。本书分为多个章节,涵盖内存一致性与缓存一致性,以及它们在现代计算机系统中的应用。章节从基础概念开始,...
Coherence and Consistency Aleskey 大神的 JMM 讲解: Aleksey Shipilëv - 不要误解Java内存模型(上) Aleksey Shipilëv - 不要误解Java内存模型(下) 相信很多 Java 开发,都使用了 Java 的各种并发同步机制,例如 volatile,synchronized 以及 Lock 等等。也有很多人读过 JSR 第十七章 Threads and Locks(地址:...
Memory Consistency and Cache Coherence—— cache一致性协议(MESI),程序员大本营,技术文章内容聚合第一站。
在讨论 consistency 之前,我们需要先铺垫一点 coherence 的知识。 基线系统模型 我们考虑这样的系统: 有一个多核处理器和一块内存; 每个核心是单线程的,且每个核心有自己的 data cache; 所有核心共用一个 LLC (last-level cache) ; 用物理地址,write-back 策略 ...
这本书主要介绍在共享内存的系统中的两个概念:memory consistency 和 cache coherence。这两者似乎分别被翻译为“内存一致性”和“缓存一致性”,不过这里的“一致性”却对应着两个不同的词,因此我在下文中还是老老实实写英文吧。 Consistency Memory consistency 是用来定义正确性的。然而这个“正确性”本身就很难下...