This document provides background reading for memory models and related 
 | 
tools.  These documents are aimed at kernel hackers who are interested 
 | 
in memory models. 
 | 
  
 | 
  
 | 
Hardware manuals and models 
 | 
=========================== 
 | 
  
 | 
o    SPARC International Inc. (Ed.). 1994. "The SPARC Architecture 
 | 
    Reference Manual Version 9". SPARC International Inc. 
 | 
  
 | 
o    Compaq Computer Corporation (Ed.). 2002. "Alpha Architecture 
 | 
    Reference Manual".  Compaq Computer Corporation. 
 | 
  
 | 
o    Intel Corporation (Ed.). 2002. "A Formal Specification of Intel 
 | 
    Itanium Processor Family Memory Ordering". Intel Corporation. 
 | 
  
 | 
o    Intel Corporation (Ed.). 2002. "Intel 64 and IA-32 Architectures 
 | 
    Software Developer’s Manual". Intel Corporation. 
 | 
  
 | 
o    Peter Sewell, Susmit Sarkar, Scott Owens, Francesco Zappa Nardelli, 
 | 
    and Magnus O. Myreen. 2010. "x86-TSO: A Rigorous and Usable 
 | 
    Programmer's Model for x86 Multiprocessors". Commun. ACM 53, 7 
 | 
    (July, 2010), 89-97. http://doi.acm.org/10.1145/1785414.1785443 
 | 
  
 | 
o    IBM Corporation (Ed.). 2009. "Power ISA Version 2.06". IBM 
 | 
    Corporation. 
 | 
  
 | 
o    ARM Ltd. (Ed.). 2009. "ARM Barrier Litmus Tests and Cookbook". 
 | 
    ARM Ltd. 
 | 
  
 | 
o    Susmit Sarkar, Peter Sewell, Jade Alglave, Luc Maranget, and 
 | 
    Derek Williams.  2011. "Understanding POWER Multiprocessors". In 
 | 
    Proceedings of the 32Nd ACM SIGPLAN Conference on Programming 
 | 
    Language Design and Implementation (PLDI ’11). ACM, New York, 
 | 
    NY, USA, 175–186. 
 | 
  
 | 
o    Susmit Sarkar, Kayvan Memarian, Scott Owens, Mark Batty, 
 | 
    Peter Sewell, Luc Maranget, Jade Alglave, and Derek Williams. 
 | 
    2012. "Synchronising C/C++ and POWER". In Proceedings of the 33rd 
 | 
    ACM SIGPLAN Conference on Programming Language Design and 
 | 
    Implementation (PLDI '12). ACM, New York, NY, USA, 311-322. 
 | 
  
 | 
o    ARM Ltd. (Ed.). 2014. "ARM Architecture Reference Manual (ARMv8, 
 | 
    for ARMv8-A architecture profile)". ARM Ltd. 
 | 
  
 | 
o    Imagination Technologies, LTD. 2015. "MIPS(R) Architecture 
 | 
    For Programmers, Volume II-A: The MIPS64(R) Instruction, 
 | 
    Set Reference Manual". Imagination Technologies, 
 | 
    LTD. https://imgtec.com/?do-download=4302. 
 | 
  
 | 
o    Shaked Flur, Kathryn E. Gray, Christopher Pulte, Susmit 
 | 
    Sarkar, Ali Sezgin, Luc Maranget, Will Deacon, and Peter 
 | 
    Sewell. 2016. "Modelling the ARMv8 Architecture, Operationally: 
 | 
    Concurrency and ISA". In Proceedings of the 43rd Annual ACM 
 | 
    SIGPLAN-SIGACT Symposium on Principles of Programming Languages 
 | 
    (POPL ’16). ACM, New York, NY, USA, 608–621. 
 | 
  
 | 
o    Shaked Flur, Susmit Sarkar, Christopher Pulte, Kyndylan Nienhuis, 
 | 
    Luc Maranget, Kathryn E. Gray, Ali Sezgin, Mark Batty, and Peter 
 | 
    Sewell. 2017. "Mixed-size Concurrency: ARM, POWER, C/C++11, 
 | 
    and SC". In Proceedings of the 44th ACM SIGPLAN Symposium on 
 | 
    Principles of Programming Languages (POPL 2017). ACM, New York, 
 | 
    NY, USA, 429–442. 
 | 
  
 | 
o    Christopher Pulte, Shaked Flur, Will Deacon, Jon French, 
 | 
    Susmit Sarkar, and Peter Sewell. 2018. "Simplifying ARM concurrency: 
 | 
    multicopy-atomic axiomatic and operational models for ARMv8". In 
 | 
    Proceedings of the ACM on Programming Languages, Volume 2, Issue 
 | 
    POPL, Article No. 19. ACM, New York, NY, USA. 
 | 
  
 | 
  
 | 
Linux-kernel memory model 
 | 
========================= 
 | 
  
 | 
o    Jade Alglave, Will Deacon, Boqun Feng, David Howells, Daniel 
 | 
    Lustig, Luc Maranget, Paul E. McKenney, Andrea Parri, Nicholas 
 | 
    Piggin, Alan Stern, Akira Yokosawa, and Peter Zijlstra. 
 | 
    2019. "Calibrating your fear of big bad optimizing compilers" 
 | 
    Linux Weekly News.  https://lwn.net/Articles/799218/ 
 | 
  
 | 
o    Jade Alglave, Will Deacon, Boqun Feng, David Howells, Daniel 
 | 
    Lustig, Luc Maranget, Paul E. McKenney, Andrea Parri, Nicholas 
 | 
    Piggin, Alan Stern, Akira Yokosawa, and Peter Zijlstra. 
 | 
    2019. "Who's afraid of a big bad optimizing compiler?" 
 | 
    Linux Weekly News.  https://lwn.net/Articles/793253/ 
 | 
  
 | 
o    Jade Alglave, Luc Maranget, Paul E. McKenney, Andrea Parri, and 
 | 
    Alan Stern.  2018. "Frightening small children and disconcerting 
 | 
    grown-ups: Concurrency in the Linux kernel". In Proceedings of 
 | 
    the 23rd International Conference on Architectural Support for 
 | 
    Programming Languages and Operating Systems (ASPLOS 2018). ACM, 
 | 
    New York, NY, USA, 405-418.  Webpage: http://diy.inria.fr/linux/. 
 | 
  
 | 
o    Jade Alglave, Luc Maranget, Paul E. McKenney, Andrea Parri, and 
 | 
    Alan Stern.  2017.  "A formal kernel memory-ordering model (part 1)" 
 | 
    Linux Weekly News.  https://lwn.net/Articles/718628/ 
 | 
  
 | 
o    Jade Alglave, Luc Maranget, Paul E. McKenney, Andrea Parri, and 
 | 
    Alan Stern.  2017.  "A formal kernel memory-ordering model (part 2)" 
 | 
    Linux Weekly News.  https://lwn.net/Articles/720550/ 
 | 
  
 | 
o    Jade Alglave, Luc Maranget, Paul E. McKenney, Andrea Parri, and 
 | 
    Alan Stern.  2017-2019.  "A Formal Model of Linux-Kernel Memory 
 | 
    Ordering" (backup material for the LWN articles) 
 | 
    https://mirrors.edge.kernel.org/pub/linux/kernel/people/paulmck/LWNLinuxMM/ 
 | 
  
 | 
  
 | 
Memory-model tooling 
 | 
==================== 
 | 
  
 | 
o    Daniel Jackson. 2002. "Alloy: A Lightweight Object Modelling 
 | 
    Notation". ACM Trans. Softw. Eng. Methodol. 11, 2 (April 2002), 
 | 
    256–290. http://doi.acm.org/10.1145/505145.505149 
 | 
  
 | 
o    Jade Alglave, Luc Maranget, and Michael Tautschnig. 2014. "Herding 
 | 
    Cats: Modelling, Simulation, Testing, and Data Mining for Weak 
 | 
    Memory". ACM Trans. Program. Lang. Syst. 36, 2, Article 7 (July 
 | 
    2014), 7:1–7:74 pages. 
 | 
  
 | 
o    Jade Alglave, Patrick Cousot, and Luc Maranget. 2016. "Syntax and 
 | 
    semantics of the weak consistency model specification language 
 | 
    cat". CoRR abs/1608.07531 (2016). https://arxiv.org/abs/1608.07531 
 | 
  
 | 
  
 | 
Memory-model comparisons 
 | 
======================== 
 | 
  
 | 
o    Paul E. McKenney, Ulrich Weigand, Andrea Parri, and Boqun 
 | 
    Feng. 2018. "Linux-Kernel Memory Model". (27 September 2018). 
 | 
    http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0124r6.html. 
 |