| 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, 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/ | |
| 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). http://arxiv.org/abs/1608.07531 | |
| Memory-model comparisons | |
| ======================== | |
| o Paul E. McKenney, Ulrich Weigand, Andrea Parri, and Boqun | |
| Feng. 2016. "Linux-Kernel Memory Model". (6 June 2016). | |
| http://open-std.org/JTC1/SC22/WG21/docs/papers/2016/p0124r2.html. |