baiwfg2 / awesome-readings

记录看各种文章、论文的心得
2 stars 0 forks source link

A Primer on memory consistency and coherence #49

Open baiwfg2 opened 2 years ago

baiwfg2 commented 2 years ago

2 coherence basics

fig 2.1 一个基础系统模型 fig 2.2 incoherence的例子

作者对coherence有自己的定义,将一个给定内存地址的lifetime分成epochs, 其基础是SWMR invariant

6-9 章详细谈invalidate protocols

coherence 的粒度是cache block

区分consistency 和coherence,前者在SC时要求系统看上去对所有内存地址的执行顺序与程序顺序在total order上保持一致,而后者是强调所有线程对单个内存地址处的读写顺序与每个线程的程序顺序一致

Hennessy, Patterson的coherence定义有3个invariants,作者认为 sufficiently separated time 这种说法是模糊的

严格来讲,一个系统如果服从某种memory consistency model,即使它是 incoherent,但它仍可是correct (这种情况不太好想象),但实际上这么多consistency model实现依赖于常见的coherence属性

baiwfg2 commented 2 years ago

3 consistency and SC

sidebar: 大多数时候,我们只需reason about对两个不同地址的操作的reorder

所有的处理器默认都是 non-deterministic,所有的架构都是允许线程interleaving执行的,我们有时看到的determinism 是因为软件用了同步语义

memory model 指出了在共享内存场景下多线程程序执行时所能允许的行为规范。

我们认为应该将consistency实现与coherence实现解耦

SC

fig 3.1 画出了sequentially consistent execution fig 3.2 画出了可能的执行,很好