KYUN matter karta hai: Ek modern server mein hundreds of GB ka DRAM hota hai. Bit-flip rates per bit chhote hain lekin ∼1012 bits hote hain, toh silent corruption kaafi dinon ke uptime mein near-certainty ban jaati hai. Ek pointer ya bank balance mein flipped bit catastrophic aur silent hota hai — aapko pata hi nahi chalta jab tak bahut der na ho jaaye. ECC silent corruption ko ya toh automatic correction ya loud crash mein convert karta hai, dono silence se kaafi behtar hain.
WHAT chahiye:k data bits diye hain, r parity bits add karo taaki koi bhi single flip locate ho sake.
Key counting argument (yahi formula deta hai):r parity bits ke saath, "syndrome" (checks ka result) ek r-bit number hai. Usse encode karna hoga:
n=k+r possible single-error positions, plus
1 "no error" case.
Toh humein chahiye:
2r≥n+1=(k+r)+1
Syndrome bit ki taraf kyun point karta hai — clever placement:
Bit positions 1,2,3,… number karo. Parity bits un positions par rakho jo powers of two hain (1,2,4,8,…); data bits baaki positions mein fill karo. Position 2i ka parity bit har us position ko check karta hai jiske binary index mein bit i set ho.
Tab syndrome (har parity recompute karo, binary number ke roop mein likho kaun fail hua) flipped bit ke binary index ke barabar hoga. Woh bit flip karo → fix ho gaya.
Socho tumne ek secret message likha aur, uske saath, kuch "clue" numbers likhe: jaise "inke letters ka sum," "unke letters ka sum." Ab agar ek raindrop kisi letter ko smudge kar de, tum clues recheck karo. Jo clues galat aate hain woh treasure map ki tarah kaam karte hain — unhe saath mein padhne par exactly woh smudged letter pata chalta hai. Toh tum sirf us ek letter ko erase karke rewrite karte ho. Extra clues thodi paper cost karti hain, lekin poora message bachaa leti hain.
Powers of two positions par (1,2,4,…) taaki har check un positions ko cover kare jiske index mein ek specific binary bit set ho, jisse syndrome error ka binary address ban sake.
Syndrome value directly kya deta hai?
Flipped bit ka binary index (1-based, poore codeword ke upar); zero matlab no error.
SECDED single aur double error mein kaise fark karta hai?