# Linux Kernel Module Cheat

##### 37.6.1.7. MOESI cache coherence protocol

https://en.wikipedia.org/wiki/MOESI_protocol

MESI cache coherence protocol + MOSI cache coherence protocol, not much else to it!

In gem5 9fc9c67b4242c03f165951775be5cd0812f2a705, MOESI is the default cache coherency protocol of the classic memory system as shown at Section 24.22.4.3.1, “What is the coherency protocol implemented by the classic cache system in gem5?”.

A good an simple example showing several MOESI transitions in the classic memory model can be seen at: Section 24.22.4.4, “gem5 event queue AtomicSimpleCPU syscall emulation freestanding example analysis with caches and multiple CPUs”.

gem5 12c917de54145d2d50260035ba7fa614e25317a3 has several Ruby MOESI models implemented: `MOESI_AMD_Base`, `MOESI_CMP_directory`, `MOESI_CMP_token` and `MOESI_hammer`.