Gain a Splash of New Skills - Coursera+ Annual Nearly 45% Off
Free courses from frontend to fullstack and AI
Overview
Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
Explore a comprehensive conference talk from NDC TechTown that delves into the intricate relationship between programming language memory models and CPU memory models. Learn how programming languages like C, C++, and Rust define memory models to manage memory operation ordering in programs, crucial for multithreaded program correctness and performance. Discover the complexities of compiler-generated Assembly code through practical C/C++ examples, both single and multithreaded, including lock-free algorithm implementations. Understand critical concepts like data races, atomic operations, and memory orderings (sequentially consistent, relaxed, acquire, and release) in C++, along with happens-before relationships. Examine CPU memory models in detail, including various sources of memory operation reordering such as compiler optimization, CPU pipeline, micro-ops, store buffers, memory coalescing, and cache systems. Compare and contrast how different CPU architectures like x86, ARM, and RISC-V approach memory ordering, and understand how CPU memory models support programming language memory models. Gain valuable insights into programming language guarantees and CPU operations that enable safe and efficient program execution, while learning to avoid common pitfalls in Assembly code interpretation.
Syllabus
The Two Memory Models - Anders Schau Knatten - NDC TechTown 2024
Taught by
NDC Conferences