🔌 Modül 5 · Çip Donanımı · Bölüm 5.8 · 10 dk okuma

MUX, Decoder ve Analog ECC

Hücreyi seç, hatayı düzelt — büyük dizilerin kontrol omurgası.

Bu bölümde öğreneceklerin

  • Multiplexer (MUX) ve adres çözücü (decoder) işlevini açıkla
  • Y1'de WL/BL seçim mekanizmasını çiz
  • ECC (Error Correction Code) gerekliliğini ve Hamming kodu temellerini söyle
  • Analog ECC stratejilerini (redundancy, averaging, sigma-delta) ayır
  • Y1 hücre failure tolerance hesabı yap

Açılış: 419M Hücre Arasında Doğru Olanı Seç

SIDRA Y1’de 419M memristör. Hangisini ne zaman okuyacaksın? Adres çözücü + multiplexer ile.

Ayrıca: bazı hücreler bozuk (üretim defekti), bazı okumalar gürültülü (analog hata). Hatayı tespit et + düzelt. ECC ile.

Bu bölüm SIDRA’nın “kontrol omurgası” ve hata tolerance mekanizmalarını anlatır.

Sezgi: Adresten Hücreye, Hücreden Doğru Cevaba

MUX (Multiplexer):

N giriş, 1 çıkış. Adres bit’leri ile seçim:

  • 256:1 MUX = 8 adres bit, 256 hücreden 1’i seçili.
  • WL MUX: hangi satırı sürmeli.
  • BL MUX: hangi sütunu okuyacak.

Decoder:

Adres → tek-aktif (one-hot) sinyal. 8-bit adres → 256 çıkış, sadece 1 yüksek.

Y1’de her CU’nun başında WL decoder + BL decoder. 16 crossbar arası MUX çalışır.

ECC (Error Correction Code):

Bit-level: parity, Hamming, BCH, Reed-Solomon. Bir bit hata tespit + düzelt.

Analog-level: redundancy (3× kopya, çoğunluk oyu), averaging (5× okuma), sigma-delta (kuantizasyon hatası nullify).

Formalizm: Decoder + MUX + ECC

L1 · Başlangıç

8-bit adres → 256 hücre seçimi:

Adres a[7:0] (256 farklı kombinasyon).

Decoder: 8 girişli, 256 çıkışlı kombinasyonel devre. Çıkış o[i] = 1 ⇔ adres = i.

Devre: 8-input AND gate × 256 (basit ama büyük). Optimize: tree-based decoder, log_2 256 = 8 seviyeli AND tree.

MUX 256:1:

Decoder çıkışı ile transmission gate’ler kontrol et. Sadece seçili hücre crossbar’a bağlı.

Devre: 256 transmission gate + decoder. Alan: ~250 µm² (28 nm CMOS’da).

Y1 hiyerarşi:

  • CU içinde: 16 crossbar → 16:1 MUX (4-bit adres).
  • Crossbar içinde: 256×256 → WL decoder (8-bit) + BL decoder (8-bit).
  • Cluster: 25 CU → 25:1 routing matrix.
L2 · Tam

Hamming code (klasik bit-ECC):

n veri bit + k parity bit, n + k = 2^k - 1.

Tek-bit hata düzeltir, çift-bit tespit eder. Yaygın: (7, 4) Hamming → 4 veri + 3 parity.

SIDRA’da: byte (8 bit) için (12, 8) Hamming = 4 parity bit. Her hücre okuması ECC kontrol.

Pratik:

  • Veri: 8 bit
  • Storage: 12 bit (4 parity)
  • Read sonrası: parity hesapla, fark varsa hangi bit hata bul, flip et.

Overhead: 50% storage. Y1 419M / 12 = ~35M veri byte (350 MB net).

Analog ECC:

Bit-level ECC dijital. Analog hücre kuantizasyon hatası ile farklı. Stratejiler:

1. Redundancy: her ağırlık 3 hücreye yaz, okumada çoğunluk al.

  • Overhead: 200%.
  • Tolere: 1 hücre failure / 3.

2. Averaging: her ağırlığı 1 hücreye yaz, 5 kez oku, ortala.

  • Overhead: 5× okuma süresi (storage etkilenmez).
  • Tolere: rastgele gürültü √5 = 2.2× azalır.

3. Sigma-delta: ağırlık + hata izle, sonraki hücreye hatayı ekle.

  • Overhead: pek yok.
  • Tolere: kuantizasyon hatası uzun-vadede 0.

SIDRA Y1 yaklaşım: kritik hücreler (referans, bias) için redundancy 3×; diğer ağırlıklar için averaging 2× + Hamming on byte. Toplam overhead ~%30.

L3 · Derin

Failure modes ve tolerance:

Hücre failure türleri:

  1. Stuck-at-LRS: hücre programlanmaz, hep düşük R. Hata: ~%0.5.
  2. Stuck-at-HRS: hücre programlanmaz, hep yüksek R. Hata: ~%0.3.
  3. Read fail: ölçüm gürültülü, marjı geç. Hata: ~%0.1.
  4. Drift fail: zaman geçince değer kayar. Hata: ~%0.1/yıl.

Toplam Y1 üretim hücre failure: ~%1.

419M × 0.01 = 4.2M arızalı hücre Y1’de.

Tolerance stratejisi:

  • Crossbar başı yedek satır (256 + 4 redundant). Test boot’da kötü satır map out.
  • Crossbar başı yedek sütun (256 + 4 redundant). Aynı.
  • ECC byte-level (Hamming).

Test ve haritalama:

Boot’ta her crossbar test:

  1. Tüm hücreler programla → oku → karşılaştır.
  2. Failed hücreler tablo (cell failure map).
  3. Compiler bu tabloyu kullanır → ağırlıkları sağlam hücrelere yönlendir.

Sigmoid’le karar:

Her bit okuması belirli güvenle gelir. Sigma-delta: hata kümülatif izlenir, sonraki ölçüme eklenir. Modern analog ADC’lerin standart tekniği.

Reed-Solomon (büyük blok ECC):

Çoklu byte hatasına dayanır (örn. tüm satır bozuk). Y1’de cluster-level Reed-Solomon kullanılır. Overhead 10-20%.

Pratik Y1 toplam ECC overhead:

  • Hücre redundancy (kritik): 5%
  • Hamming byte: 50% (kritik bytes), 0% (non-kritik)
  • Reed-Solomon cluster: 15%
  • Pratik total: ~30% overhead.

419M cells - 30% = ~290M etkin ağırlık. Hala büyük (290 MB), GPT-2 sığar.

MTBF (Mean Time Between Failures):

Y1 production yield %75 → 25% chip atılır.

Operating MTBF: hücre failure rate yıl başına %0.1 → 4.2M hücre × 0.001 = 4200 hücre/yıl yeni failure. Cell-failure map periyodik update.

10 yıl sonra: 42K yeni failure. ECC tolere eder. 10 yıl ömür realistik.

Deney: Hamming Code Adım Adım

8-bit veri: 10110011 (binary).

(12, 8) Hamming: 4 parity bit eklenir.

Pozisyonlar (1-12):

  • p1, p2, d1, p3, d2, d3, d4, p4, d5, d6, d7, d8.

Veri d1-d8 = 1, 0, 1, 1, 0, 0, 1, 1.

Parity hesabı:

p1 = XOR(d1, d2, d4, d5, d7) = 1 ⊕ 0 ⊕ 1 ⊕ 0 ⊕ 1 = 1 p2 = XOR(d1, d3, d4, d6, d7) = 1 ⊕ 1 ⊕ 1 ⊕ 0 ⊕ 1 = 0 p3 = XOR(d2, d3, d4, d8) = 0 ⊕ 1 ⊕ 1 ⊕ 1 = 1 p4 = XOR(d5, d6, d7, d8) = 0 ⊕ 0 ⊕ 1 ⊕ 1 = 0

Final 12-bit: p1 p2 d1 p3 d2 d3 d4 p4 d5 d6 d7 d8 = 1 0 1 1 0 1 1 0 0 0 1 1.

Storage: 12 hücre.

Hata simülasyonu: d3 (pozisyon 6) flip oldu.

Okunan: 1 0 1 1 0 0 1 0 0 0 1 1 (d3 değişti).

Decoder hesabı:

Yeniden parity hesapla, alınanla karşılaştır.

p1’ = 1 ⊕ 0 ⊕ 1 ⊕ 0 ⊕ 1 = 1 ✓ p2’ = 1 ⊕ 0 ⊕ 1 ⊕ 0 ⊕ 1 = 1 ✗ (alınan 0) p3’ = 0 ⊕ 0 ⊕ 1 ⊕ 1 = 0 ✗ (alınan 1) p4’ = 0 ⊕ 0 ⊕ 1 ⊕ 1 = 0 ✓

Syndrome: 0110 = 6 → pozisyon 6 hata. Bit 6 flip et → 1 → 0 ⊕ 1 = düzeltme.

Sonuç: orijinal d3 = 1 geri kazanıldı.

Avantaj: 1 bit hata otomatik düzeltildi. Memristör drift yıllar içinde 1 hücre flip ederse, ECC bunu yakalar.

Kısa Sınav

1/6MUX ne yapar?

Laboratuvar Görevi

Y1 ECC bütçe analizi.

Y1:

  • 419M hücre.
  • Üretim failure %1 → 4.2M arızalı.
  • Drift +%0.1/yıl → 0.4M/yıl yeni.

ECC stratejileri:

  • Hamming (12,8): %50 overhead.
  • Triple redundancy: %200.
  • Sigma-delta: %0 (sıralı).

Sorular:

(a) Tüm hücrelere Hamming uygula: net etkin ağırlık byte sayısı? (b) Sadece “kritik” %20 ağırlık (referans, bias) için triple redundancy: net? (c) Hibrit (Hamming kritik + averaging non-kritik): toplam overhead %30 hedefiyle? (d) 10 yıl sonra (4M ekstra failure): doğruluk düşüşü? (e) Yıllık periyodik refresh ihtiyacı?

Çözümler

(a) 419M / 12 × 8 = 279M veri byte (50% overhead). 1-bit hata düzeltir.

(b) Kritik %20 = 84M ağırlık × 3 = 252M hücre. Non-kritik 80% = 335M ağırlık × 1 = 335M hücre. Toplam 587M > 419M. Sığmaz. Kritik %5’e düşür → 21M × 3 + 398M × 1 = 461M. Hâlâ taşar. Pratik: redundancy minimal.

(c) Hibrit: 50% hücre Hamming (50% overhead), 50% sigma-delta (0% overhead). Net overhead = 25%. Ham 419M × 0.75 = 314M etkin ağırlık.

(d) 10 yıl 4M failure / (314M total) = %1.3 ek hata oranı. ECC + redundancy kullanılarak çoğunluğu maskeleniyor → AI doğruluk düşüş %0.5’in altında.

(e) Refresh: yılda 1 kez kritik hücreleri yeniden programla (failure map’e göre). Toplam refresh süresi: ~%5 hücre × 100 µs = ~20 sn (cluster paralel ile 1 saniye altı). Yılda 1 kez.

Özet Kart

  • MUX: N giriş → 1 çıkış (adres seçimi).
  • Decoder: adres → one-hot çıkış.
  • Y1 hiyerarşisi: Cluster MUX (25:1), CU MUX (16:1), Crossbar decoder (256×256).
  • ECC: bit-level (Hamming, Reed-Solomon), analog-level (redundancy, averaging, sigma-delta).
  • Y1 üretim failure: ~%1, redundant satır/sütun + ECC ile tolere.
  • Boot test: 100 ms, failure map oluşturur.
  • Toplam ECC overhead: ~%30. Net etkin: 290M ağırlık.

Vizyon: Hata-Tolerant AI Donanımı

Y10+ hedefler:

  • Y3: akıllı ECC (compiler-aware), overhead %20.
  • Y10: model-aware redundancy (kritik layer korunur), overhead %15.
  • Y100: Self-healing crossbar — hücre kötüleşince otomatik refresh + reroute. Overhead %5.
  • Y1000: Bio-uyumlu kendi-tamir (organik sinaps).

Türkiye için: Hata-tolerant donanım tasarımı uzay/savunma uygulamalarda kritik. ASELSAN, TUSAŞ ile işbirliği SIDRA-tabanlı uydu/savaş AI ürünlerine yol açar.

Daha İleri

  • Bir sonraki bölüm: 5.9 — Hesaplama Motoru ve DMA
  • Önceki: 5.7 — TIA: Transempedans Algılama
  • ECC klasik: Lin & Costello, Error Control Coding, 2nd ed.
  • Analog ECC: Akarvardar et al., Analog circuit techniques for error-tolerant memory systems, JSSC 2021.
  • Memristor reliability: Govoreanu et al., RRAM endurance and retention, IEEE EDM 2017.