NAND ECC (BCH / LDPC)(ナンドイーシーシー)
NAND フラッシュメモリのエラー訂正符号 (Error Correcting Code)。BCH (Bose-Chaudhuri-Hocquenghem、1959-) と LDPC (Low-Density Parity-Check、1962/2000 年代復活) の二大方式で、NAND 物理エラー (Read Disturb・Retention 劣化) を訂正、SSD の信頼性を 10⁻¹⁵ レベルに引き上げる必須技術。
概要
NAND ECC (Error Correcting Code、誤り訂正符号) は、NAND フラッシュメモリの物理エラー (Read Disturb・Retention 劣化・P/E Cycle 末期エラー) を訂正する重要技術で、BCH (Bose-Chaudhuri-Hocquenghem、1959-1960 年発明) と LDPC (Low-Density Parity-Check、1962 年発明・2000 年代復活) の二大方式があり、SSD の信頼性を 10⁻¹⁵ (1000 兆ビット読込で 1 ビットエラー) レベルに引き上げる必須技術です。BCH は 1960 年代発明の古典的ブロック符号で、シンドローム計算ベースで実装容易・低レイテンシのため、SLC・MLC 時代の SSD で標準採用されました。LDPC は Robert Gallager が 1962 年に発明したが当時の計算リソース不足で実用化されず、2000 年代に Wi-Fi (802.11n)・10G Ethernet (10GBASE-T)・宇宙通信 (DVB-S2) で再評価され、より強力なエラー訂正能力 (BCH の 2-3 倍の訂正能力) を持つことから、TLC/QLC ・PCIe 5.0 SSD で標準採用されています。
主な特徴・仕組み
- BCH 符号: 1959 年発明、シンドローム計算ベース、ブロック単位訂正
- BCH 訂正能力: 1KB ブロックあたり 40-120bit エラー訂正
- BCH 実装: 専用ハードウェア、低レイテンシ、SLC/MLC SSD 標準
- LDPC 符号: 1962 年発明、確率復号 (Belief Propagation)
- LDPC 訂正能力: 4-8KB ブロックあたり 400-800bit エラー訂正
- LDPC 実装: 計算リソース必要、Soft-Decision (確率) 復号
- Soft-Decision: 1/0 だけでなく確率分布を考慮、訂正能力向上
- Hard-Decision: 1/0 の bit 列のみで復号、BCH 標準
- 採用 SSD: BCH = SLC/MLC、LDPC = TLC/QLC/PCIe 5.0
- 訂正不能時: UREC (Uncorrectable Error)、データ損失
スペック比較表
| 方式 | 発明 | 1KB あたり訂正 | レイテンシ | 採用 |
|---|---|---|---|---|
| BCH | 1959 | 40-120 bit | 低 | SLC/MLC SSD |
| LDPC (Hard) | 1962 | 200-400 bit | 中 | TLC SSD 標準 |
| LDPC (Soft) | 2000s | 400-800 bit | 高 | QLC/PCIe 5.0 SSD |
| Reed-Solomon | 1960 | 30-60 bit | 中 | CD/DVD |
| Turbo Code | 1993 | 200-400 bit | 高 | 通信 (3G/4G) |
具体例・対応技術
- Phison E26 (PCIe 5.0): LDPC Soft-Decision、エラー訂正最高峰
- Samsung Presto (9100 PRO): LDPC、Samsung 独自実装
- Silicon Motion SM2508: LDPC、低消費電力実装
- Innogrit IG5666: LDPC、コスパ重視 SSD コントローラ
- 古い SSD (Samsung 850 EVO 等): BCH 採用、TLC ですが Hard-Decision
自作PCでの選び方・注意点
NAND ECC は SSD コントローラ内部処理で、エンドユーザーが直接意識する場面は少ないですが、SSD 信頼性の根本を支える技術として、QLC SSD 選択時に LDPC 採用コントローラを優先することが重要。Phison E26・Samsung Presto・Silicon Motion SM2508・WD/SanDisk の最新コントローラはすべて LDPC Soft-Decision 採用で、QLC でも実用的信頼性を提供。古い SSD (Samsung 850 EVO・Crucial MX300 等) や中華系廉価 SSD では BCH のみのモデルもあり、QLC SSD で BCH のみは長期信頼性で不安なため、信頼できるメーカー (Samsung・Crucial・WD・Seagate) のラインナップから選択するのが安全。CrystalDiskInfo・smartmontools で「ECC Error Rate」「Hardware ECC Recovered」を定期確認、急激な上昇は SSD の寿命警告サインで予防的 SSD 交換が推奨されます。
関連用語との違い
- Reed-Solomon: CD/DVD/Blu-ray のエラー訂正、NAND 用途は少ない
- Hamming 符号: メモリ ECC (DDR5)、NAND よりシンプル
- CRC: エラー検出のみ、訂正能力なし
よくある質問(FAQ)
Q1: BCH と LDPC どちらが優れる? A: 訂正能力なら LDPC、レイテンシ・実装容易性なら BCH。現代の TLC/QLC では LDPC が必須、SLC/MLC では BCH でも十分。
Q2: Soft-Decision LDPC の利点は? A: bit の確率分布 (例: 70% 0、30% 1) を考慮することで、Hard-Decision より 2 倍の訂正能力を実現。QLC SSD の信頼性確保に必須。
Q3: ECC でも訂正できないエラーは? A: UREC (Uncorrectable Error) として SSD 認識、ホスト OS に I/O エラー通知。データ損失、バックアップから復元必須。
まとめ
- NAND ECC = NAND 物理エラー訂正、SSD 信頼性の根本
- BCH (1959) = 古典的ブロック符号、SLC/MLC で標準
- LDPC (1962/2000s) = 確率復号、TLC/QLC/PCIe 5.0 で標準
- Phison E26・Samsung Presto などで LDPC Soft-Decision 採用