同じ更新要求に対し、DRAMは既存セルへ直接書込み、NANDは空きページへ新しい版を書きます。空きが減ると、有効データの移動とブロック消去が必要になります。
DRAMとNANDの更新処理比較
DRAM読書き
~50 ns
NANDページ読出し
~50 µs
NANDページ書込み
~500 µs
NANDブロック消去
~2 ms
棒の長さは対数目盛で処理時間を表します。
DRAM:コンデンサセル累積時間 0 µs
選択セルへ直接書けます。青い枠はリフレッシュ中の行です。
NAND:ブロックとページ累積時間 0 µs、待機 0
緑は有効データ、取消線は無効な旧データ、点線は空きページです。
1倍速では実時間1µsを画面上2msに拡大します。DRAMの漏電とリフレッシュは別の説明用速度です。
L0などは論理データ番号です。更新しても番号は同じですが、NANDの物理保存先は変わります。
NANDという名前の由来
セルの直列接続がNANDゲートのトランジスタ配置に似ているための名称です。論理ゲートに保存するという意味ではありません。読書きはページ、消去はブロック単位です。
DRAMにはリフレッシュが必要
DRAMは小さなコンデンサの電荷で値を保持します。既存セルを上書きでき、この例では約50nsを仮定します。
電荷は時間とともに漏れるため、定期的に読んで書き戻すリフレッシュが必要です。電源が切れると保持できません。
NANDは使用済みページを直接上書きできない
絶縁された構造に電荷を保持するため不揮発性ですが、書込みはDRAMより遅く、この例では約500µsです。
更新は空きページへ書き、旧ページを無効にします。
空きが不足すると有効データを別ブロックへ移し、元ブロック全体を消去します。これがガベージコレクションです。
SSDやeMMCのFTLは論理アドレスと物理位置を対応付けます。GCや、書込みの偏りを減らすウェアレベリングも管理します。