LearnViz CompSci
Home / Learn / Computer Architecture & Logic / Memory Consistency Models

Advanced Topic 46 of 51 Computer Architecture & Logic

Memory Consistency Models

Rules on the apparent order of memory operations across cores.

How it works

A memory consistency model defines the order in which memory reads and writes by different threads may appear to each other. Sequential consistency requires a single global order matching each program's order, while weaker models such as x86 total store order and ARM or RISC-V relaxed models let hardware reorder operations for speed using store buffers and caching. Fences and atomic operations with acquire and release semantics restore ordering where needed.

Step-by-step walkthrough

  1. Core 1 writes x = 1 then y = 1.
  2. Core 2 reads y and sees 1.
  3. With a weak model it may still read x = 0.
  4. Store buffers and reordering make writes visible in different orders.
  5. Fences or atomic operations enforce the order the program needs.

Where it is used

Writing lock-free algorithms, implementing locks and atomics, designing language memory models in C++, Java and Rust and reasoning about concurrent code depend on the consistency model.

Common pitfall

Code that works on x86 may break on ARM because of weaker ordering. Data races without synchronization give undefined or surprising results. Compilers also reorder operations. Use the language's atomics and locks rather than hand-rolled flags, and test on weak-memory hardware.

Where it fits in the course

Memory Consistency Models is topic 46 of 51 in Computer Architecture & Logic, rated Advanced. It follows RAID. The next topic is Microarchitecture Side Channels.

Practice and explore

How to study this topic

  1. Read the explanation above and restate the definition in your own words.
  2. Open the interactive lesson and answer its mini quiz.
  3. Read the common pitfall, then write a short example that avoids it.
  4. Check your understanding in the Computer Architecture & Logic quiz, and revisit the topic if you miss a question.

Frequently asked questions

What is Memory Consistency Models?
Rules on the apparent order of memory operations across cores. It belongs to Computer Architecture & Logic and is an advanced-level topic.
Where do people use Memory Consistency Models?
Writing lock-free algorithms, implementing locks and atomics, designing language memory models in C++, Java and Rust and reasoning about concurrent code depend on the consistency model.
What is the most common mistake with Memory Consistency Models?
Code that works on x86 may break on ARM because of weaker ordering.
What should I learn before this topic?
Start with RAID, the topic just before it in Computer Architecture & Logic.
How can I practice it?
Answer the mini quiz in the interactive lesson, then take the Computer Architecture & Logic quiz.
Is Memory Consistency Models hard to learn?
It is an Advanced topic. Expect to read the explanation more than once and to connect it with earlier topics. Working through a small example by hand helps most.
How long does it take to learn Memory Consistency Models?
Most learners can read the explanation and finish the interactive lesson in under an hour. Fluency comes from applying the idea, so plan a few short practice sessions with the quiz.
Which topics are related to Memory Consistency Models?
RAID, Microarchitecture Side Channels, Storage Devices are closely connected. The full list is in the related topics section of this page.
What should I study after Memory Consistency Models?
Continue with Microarchitecture Side Channels, the next topic in Computer Architecture & Logic.

Related topics