处理器一致性模型和顺序一致性模型有什么区别?

问题描述 投票:0回答:1

我理解顺序一致性的定义,但我对下面的例子感到困惑。

p1:W(x)a p2:W(x)b p3:R(x)b R(x)a p4: R(x)b R(x)a

这个系统是顺序一致的 但下面的情况并不是因为 p3 和 p4 以不同的顺序看到 x 的值 p1:W(x)a p2:W(x)b p3:R(x)a R(x)b p4: R(x)b R(x)a

所以我怀疑系统 SC p3 和 p4 应该一致并且看到相同的 x 值,这就是处理器一致性的定义。 那么PC和SC有何不同?

consistency
1个回答
0
投票

在第一个示例中,内存操作有一个总顺序,因为每个读者都以相同的顺序看到写入(他们并不反对)。

SC的定义:

  1. 所有记忆动作的总顺序
  2. 订单需与PO一致
  3. 加载必须在内存顺序之前看到最近的写入。

第一个例子满足这些条件,因此它是 SC。该示例是一个蹩脚的 SC 示例,因为只涉及一个地址。这实际上是一致性的一个例子。一致性可以看作是单个地址的 SC。

以下示例:

p1: W(x)a p2: W(x)b p3: R(x)a R(x)b p4: R(x)b R(x)a

由于 p3 和 p4 在顺序上不一致,因此不存在全序,因此我们违反了 SC 的第一个条件。

该示例也不是 PC。对于 PC,可以以不同的顺序看到不同进程发出的对不同地址的写入(查找 IRIW 试金石测试);因此,所有负载和存储都没有总顺序(所以显然不是 SC)。但PC仍然需要一致性。

© www.soinside.com 2019 - 2024. All rights reserved.