Samsung NAND Flash ECC Algoritması: 256 Bayt Veri Hata Düzeltme Mantığı

guclusat

Tanınmış Üye
Süper Moderatör
Samsung tarafından yayınlanan bu belge, NAND Flash belleklerde verilerin hatalı yazılmasını veya okunmasını engellemek için kullanılan ECC (Hata Kontrol ve Düzeltme) algoritmasını teknik detaylarıyla anlatıyor.

1. Mantık Nedir? (256 Bayt Başına 3 Bayt)

NAND Flash belleklerde veriler saklanırken bazen dış etkenler veya yıpranma nedeniyle 1 bitlik hatalar (0'ın 1 olması gibi) oluşabilir. Samsung'un bu algoritması şunu yapar:
  • Her 256 baytlık veri bloğu için 3 baytlık (22 bit) özel bir kod üretir.
  • Veri okunurken bu kod tekrar hesaplanır. Eğer eski kodla yeni kod tutmuyorsa, hata var demektir.

2. Hata Nasıl Tespit Edilir?

Sistem, veriyi bir tablo gibi düşünür ve hem satırları hem sütunları kontrol eder:
  • Line Parity (Satır Paritesi): 16 bittir ($P8$ ile $P1024$ arası). Hangi baytın (satırın) hatalı olduğunu bulur.
  • Column Parity (Sütun Paritesi): 6 bittir ($P1$ ile $P4$ arası). Hatalı baytın içindeki hangi bitin bozuk olduğunu bulur.

3. Senaryolar: Ne Zaman Düzeltilir?

Okuma işlemi sırasında orijinal ECC kodu ile yeni üretilen kod XOR işlemine sokulur. Sonuçlara göre şu kararlar verilir:

SonuçDurumAnlamı
Hepsi SıfırHata YokVeri temiz, işlem tamam.
Tam 11 bit "1" iseDüzeltilebilir HataSadece 1 bit bozulmuştur. Algoritma bu bitin yerini tam tespit eder ve otomatik düzeltir.
Sadece 1 bit "1" iseECC HatasıVeri sağlam ama ECC kodunun kendisi bozulmuş demektir.
Rastgele VeriDüzeltilemez Hata2 bit veya daha fazla hata vardır. Veri kurtarılamaz.

4. Özetle Süreç Nasıl İşliyor?

  1. Yazarken: Veri yazılırken 22 bitlik ECC hesaplanır ve yedek alana kaydedilir.
  2. Okurken: Veri tekrar okunur, o anki verilere göre yeni bir ECC hesaplanır.
  3. Karşılaştırma: Eski ve yeni ECC karşılaştırılır. Eğer fark varsa (XOR sonucu), hata bitinin adresi (koordinatları) bulunur ve o bit tersine çevrilerek (0 ise 1, 1 ise 0) veri tamir edilir.
Teknik Not: Bu algoritma özellikle 1 bitlik hataları tamir etmek (Single Bit Error Correction) ve 2 bitlik hataları tespit etmek için tasarlanmıştır.
 

Eklentiler

Geri
Yukarı