2021-02-09

内存访问模型——顺序一致性

  在单核的情况下,顺序一致性模型的含义是:

  1. 访存指令流的顺序与实际的内存访问操作的顺序是一致的。有些访存机制希望调整访存顺序来提高效率,会被限制。
  2. 前一个访存操作完全结束之后才能执行后一个访存操作。这限制了流水线操作。

  在多核的情况下,由于存在多个访存指令流,这些指令流之间本来就没有顺序。所以,第一个条件仅限于核内指令流。关于第二个条件也要修改,尽管不同的核访问内存操作的顺序没做要求,但也不能允许他们同时执行。为此,第二个条件可以用原子性代替。所以,多核情况下,顺序一致性模型的含义是:

  1. 每个核访存指令流的顺序与实际的内存访问操作的顺序是一致的。
  2. 所有的访存指令都是原子操作。

  原子操作可以认为是瞬间完成的,尽管条件有点强,并非完全必要,但顺序一致性模型并没有更多的想法,用原子性这个概念很清楚。
  显然,上述单核的情况只是多核的特例 。

你可能感兴趣的:(多线程)