5.4.15 · D1 · HinglishMemory Hierarchy & Caches

FoundationsMESI - MOESI coherence protocols

2,247 words10 min read↑ Read in English

5.4.15 · D1 · Hardware › Memory Hierarchy & Caches › MESI - MOESI coherence protocols

Yeh page MESI/MOESI ka ground floor hai. Pehle hum Modified jaisi states ya BusRdX jaisi messages ki baat kar sakein, humein har word kamana padega: cache kya hai, "line" kya hai, "dirty" ka matlab kya hai, "bus" kya hai, aur "snooping" kaisa dikhta hai. Hum inhe ek picture se banate hain, ek aisi order mein jahan koi cheez use hone se pehle exist karti ho.


1. Core, memory, aur speed gap — caches kyun exist karte hain

Picture: memory numbered mailboxes ki ek lambi shelf hai. Address X ek mailbox hai; abhi usme value 5 hai.

WHY hume kuch aur chahiye: ek core main memory ke answer karne se bahut zyada fast chalta hai. Agar core har load pe RAM ka wait karta, toh woh apni zyada zindagi idle bitaata. Toh hum ek chota, fast copy-store bilkul core ke paas rakhte hain.

Figure — MESI - MOESI coherence protocols

Picture: har core ki desk pe ek choti sticky-note pad. Mailbox shelf tak jaane ki jagah, core apni pad pe ek copy likhta hai aur wahi padhta hai.


2. Cache line — woh unit jis pe sab kuch hota hai

Picture: tum library book ka ek letter photocopy nahi karte, tum puri page photocopy karte ho. Page hi line hai.

WHY yeh poore topic ke liye matter karta hai: coherence rules state ko per line track karte hain, per byte nahi. Yahi False Sharing ka beej hai — do cores alag variables ko touch kar rahe hain jo ek hi line pe baithe hain, toh bhi woh iske liye ladte hain, kyunki line wo sabse choti cheez hai jis ke baare mein protocol soch sakta hai.


3. Address, value, aur "ek hi X do jagah"

Neeche ki picture hi poori wajah hai coherence exist karne ki: RAM mein address X 5 kehta hai, Core 0 ki pad 5 kehti hai, Core 1 ki pad 5 kehti hai. Teen copies, sab agree kar rahe hain — abhi ke liye.

Figure — MESI - MOESI coherence protocols

WHY yeh dangerous hai: jis second ek core apni pad pe naya value scribble karta hai bina kisi ko bataye, copies disagree kar deti hain. Jo bhi purani pad padhta hai woh stale (out-of-date) value padhta hai.


4. Clean vs Dirty — kya yeh copy edit hui hai?

Picture: ek clean pad aur ek shelf mailbox dono 5 dikhate hain (agree). Ek dirty pad 9 dikhata hai jabki mailbox abhi bhi 5 dikhata hai (disagree — pad aage hai).

WHY topic ko yeh word chahiye: "dirty" do yes/no questions mein se ek hai jo MESI answer karta hai. Ek dirty line precious hai — usme ek hi up-to-date value hai, isliye ise throw away karne se pehle write back karna zaroori hai. Yeh Write-back vs Write-through caches se connect hota hai: MESI/MOESI write-back caches assume karte hain, jahan writes local rehti hain (line ko dirty banate hue) instead of har baar seedha memory mein jaane ke.


5. Exclusive vs Shared — kitni copies exist karti hain?

Picture: exclusive = poore classroom mein sirf ek pad ke paas yeh page hai. Shared = kai pads ne usi page ki photocopy ki hai.

WHY topic ko yeh word chahiye: yeh doosra yes/no question hai. Dono questions combine karo aur tumhe poora MESI table mil jaata hai:

Sirf ek copy Doosron ke paas bhi ho sakti hai
Dirty (exclusive + dirty) (woh gap jo MOESI bharta hai)
Clean (exclusive + clean) (shared + clean)

Har MESI state is 2×2 grid ka sirf ek cell hai. Tum pehle se questions samajhte ho; parent note unhe sirf letters deta hai (M/E/S). Yeh bhi dekho Cache Coherence vs Memory Consistency — coherence ek single address ke sabhi caches mein consistent rehne ke baare mein hai; consistency alag addresses ke paas ordering ka alag question hai.


6. Bus — shared wire jise sab sun sakte hain

Picture: ek classroom ka single loudspeaker. Koi bhi kuch announce kar sakta hai; sab kuch sunta hai. Kyunki ek waqt mein sirf ek bol sakta hai, hume bus arbitration chahiye yeh decide karne ke liye ki kiski baari hai.

Figure — MESI - MOESI coherence protocols

Picture: har student ek kaan loudspeaker pe rakhta hai. Jab unhe sunai deta hai "sabhi page 7 nikaalo," jo bhi page 7 rakhta hai woh act karta hai.

WHY topic ko yeh chahiye: snooping woh tarika hai jisse protocol apne rules enforce karta hai bina kisi central boss ke. Alternative — ek directory jo track kare ki kaun kya rakhta hai — kai cores pe better scale karta hai lekin yeh ek alag mechanism hai; MESI classically ek snooping bus pe explain kiya jaata hai.


7. Bus messages — protocol ki vocabulary

Ab jo "bus" aur "snooping" exist karte hain, do core messages sense banate hain:

Picture: BusRd kisi classmate se poochna hai "kya main teri page photocopy kar sakta hoon?". BusRdX announce karna hai "main yeh page edit karne wala hoon — sab apni nikaalo taaki koi galat version na padhe."


8. Invalidate aur Write-back — do corrective actions

Picture: apni photocopy ko bin mein daalna kyunki tumne suna koi master edit kar raha hai.

Picture: ek page phenkne se pehle jo tumne edit ki, pehle library jaate ho aur master book update karte ho — warna tumhare edits hamesha ke liye kho jayenge.

WHY yeh dono exist karte hain: har dangerous scenario inme se ek se fix hota hai. Ek reader stale value lene wala hai → dirty holder pehle write-back karta hai (ya apni value forward karta hai). Ek writer doosri, conflicting copy banana wala hai → woh pehle baaki sab ko invalidate karta hai. Yeh do moves hi action mein SWMR guarantee hain.


9. SWMR — woh promise jo yeh sab rakhta hai

Picture: ek whiteboard jisme "MARKER" token hai. Jo token rakhta hai woh likh sakta hai, aur jab tak woh rakhte hain baaki sab ko peechhe hat jaana chahiye. Marker chhoddo, aur kai log padhne ke liye crowd kar sakte hain — lekin jis second koi likhna chahta hai, woh token pakad leta hai aur baaki sab hat jaate hain.

Yeh ek sentence hi poori MESI/MOESI state machine exist karne ki wajah hai guarantee karne ke liye. Parent note ka har transition is sawaal se derive hota hai: "kya yeh SWMR ko true rakhta hai?"


Prerequisite map

core plus fast cache

cache line 64 bytes

same address in two caches

clean vs dirty

exclusive vs shared

two yes-no questions grid

shared bus

snooping listen to all

BusRd and BusRdX messages

invalidate and write-back

SWMR invariant

MESI MOESI state machine

Ise upar se neeche padho: hardware facts (cache, line) problem create karte hain (shared copies), do questions state grid ban jaate hain, bus snooping aur messages enable karta hai, aur messages corrective actions enable karte hain — milke yeh SWMR enforce karte hain, jo bilkul wahi hai jo MESI/MOESI encode karte hain.


Equipment checklist

  • Cache kya hai aur kyun har core ke paas private cache hoti hai? ::: Ek choti fast memory jo core ke paas recent data ki copies rakhti hai, taaki core slow trips to main memory se bache.
  • Cache line kya hai aur yeh coherence ki unit kyun hai? ::: Ek fixed-size chunk (≈64 bytes) jo poora copy hota hai; protocol state per line track hoti hai, per byte nahi.
  • "Dirty" ka matlab kya hai? ::: Cache main memory se newer value rakhta hai kyunki write locally hua hai aur abhi write back nahi hua.
  • Exclusive aur shared copy mein kya fark hai? ::: Exclusive = yahi cache ek maatra holder hai; shared = doosre caches bhi line rakh sakte hain.
  • Bus kya hai, aur snooping ka matlab kya hai? ::: Ek shared wire jahan har cache har message sun sakta hai; snooping matlab har cache sun raha hai aur un messages pe react kar raha hai jinke baare mein woh lines rakhta hai.
  • BusRd aur BusRdX mein kya fark hai? ::: BusRd sirf padhne ke liye copy fetch karta hai; BusRdX fetch karta hai AUR baaki sabki copy invalidate karta hai taaki requester aage likh sake.
  • Do corrective actions kya hain aur inhe kab use kiya jaata hai? ::: Invalidate (koi likhne se pehle apni copy chhoddo) aur write-back (ise khoone se pehle dirty line ko memory mein flush karo).
  • SWMR invariant memory se batao. ::: Kisi bhi location ke liye, kisi bhi instant mein, ya toh bilkul ek core likhta hai (koi doosri valid copy nahi) YA koi bhi number read karte hain bina kisi writer ke.