硬件内存模型论文阅读

Published: 14 Mar 2014 Category:

硬件内存模型论文阅读

引言

内存模型定义了内存操作的语义,提出内存模型的目的在于指明内存操作之间的次序有何限制.

内存模型并不直接指定内存操作的次序,它只提供一种行为描述,只要你的执行结果按内存模型规定的次序执行结果 一致就行,并不要求具体实现一定按这个顺序.

论文

Lamport 1979

  • 论文名 Lamport L. How to make a multiprocessor computer that correctly executes multiprocess programs[J]. Computers, IEEE Transactions on, 1979, 100(9): 690-691.

  • 主要内容

    • 提出 sequencial consistency 的概念
    • SC 的两个条件
      • 程序的任意一次执行,其结果都和所有处理器操作以某种次序依次执行的结果一致
      • 在上述次序中,同一处理器的操作之间的次序与它们在程序中的次序一致
    • 多处理器计算机实现SC的两个条件
      • 每个处理器都按照程序给出的顺序 issue 内存请求
      • 所有处理器被 issue 到同一 memory module的操作都在一个FIFO队列中接受服务
  • 参考文献

SPARC-V9 1994

  • 论文名

The SPARC architecture manual[M]. Englewood Cliffs, NJ 07632: PTR Prentice Hall, 1994.

  • 主要内容

    • 定义了三种内存模型:TSO,PSO,RMO
    • 介绍了 Sparc Processor Model:描述 了issue, reorder, execution
  • 参考文献

Gharachorloo 1990

  • 论文名

Gharachorloo K, Lenoski D, Laudon J, et al. Memory consistency and event ordering in scalable shared-memory multiprocessors[M]. ACM, 1990.

  • 主要内容

    • 提出release consistency内存模型
    • RC 对weak consistency进行扩展,支持更多的buffering和pipelining
    • RC与SC对进行足够同步的并行程序而言是等价的
    • 介绍了 performed , globally performed
    • 采用event ordering 的方式描述内存模型
    • 回顾之前的内存模型: sequential consistency, processor consistency, weak consistency.
    • 与 weak consistency 相比, 将同步操作分成 acquire 和 release, 对次序进行进一步的放松
  • 参考文献

    • Memory access buffering in multiprocessors. 1986: 使用 event ordering 描述内存模型, 提出 weak consistency(weak ordering).
    • Efficient and correct execution of parallel programs that share memory. 1988: conflicting accesses.

Sewell 2010

  • 论文名 Sewell P, Sarkar S, Owens S, et al. x86-TSO: a rigorous and usable programmer's model for x86 multiprocessors[J]. Communications of the ACM, 2010, 53(7): 89-97.

  • 主要内容

    • 动机: x86系列处理器文档中对内存模型的描述不精确,有些甚至是错误的,与实际的实现不一样,这妨碍了程序员编写正确的程序,也不利于对内存模型进行验证.
    • 回顾了各种x86系列处理器内存模型描述中的错误
    • 给出了对x86系列处理器内存模型数据化的精确描述以解决上述错误
  • 参考文献

comments powered by Disqus