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
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.
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.
Failure modes ve tolerance:
Hücre failure türleri:
- Stuck-at-LRS: hücre programlanmaz, hep düşük R. Hata: ~%0.5.
- Stuck-at-HRS: hücre programlanmaz, hep yüksek R. Hata: ~%0.3.
- Read fail: ölçüm gürültülü, marjı geç. Hata: ~%0.1.
- 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:
- Tüm hücreler programla → oku → karşılaştır.
- Failed hücreler tablo (cell failure map).
- 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
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.