フラッシュストレージの種類・選び方まとめ

9/11に「フラッシュストレージの種類・選び方〜追加編〜」を追記しています

USBメモリSSDに代表されるフラッシュストレージについて、整理しました。

フラッシュストレージとは、EEPROMに代表される不揮発性メモリの一種で、端的に言うと手軽に利用できるROMです。

種類

NOR型フラッシュメモリ

出典:https://ja.wikipedia.org/wiki/NOR型フラッシュメモリ

データの信頼性に優れ、NAND型フラッシュメモリで必要なエラー訂正(ECC)が不要である。
読み出し速度、ランダムアクセスが高速な一方、NAND型に比べ、集積度が劣る、書き込みが遅いなどの欠点が挙げられる。
NAND型に比べ、高い信頼性を特長とするNOR型は、従来のROMの代わりにファームウェアを格納するメモリとして基板に直接実装される形で利用されていることが多い。

NAND型フラッシュメモリ

出典:https://ja.wikipedia.org/wiki/NAND型フラッシュメモリ

NOR型フラッシュメモリと比べて回路規模が小さく、安価に大容量化できる。
また書き込みや消去も高速である。PC用のUSBメモリやSSDとして利用される。

メモリセル(記憶素子)

フラッシュメモリは、「セル」と呼ばれる記録素子に何bitのデータを記録できるかで種類が分けられます。

SLC(シングル・レベル・セル)

1つのセルに1bitだけ記録しているので、速度・耐久性が優れている。

MLC(マルチ・レベル・セル)

1つのセルに2bit記録。SLCと後述のTLCの中間に位置し、安くて高性能なものが多い。

TLC(トリプル・レベル・セル)

1つのセルに3bit記録。コストを下げられる反面、速度・耐久性では劣る。

耐久性

一般的には下記のように言われていますが、あくまで目安です(メーカー・ラインナップでばらつきがあります)。

メモリセル 書換可能回数(目安)
SLC 10万回
MLC 3000回〜1万回
TLC 1000〜3000回

特に物理的サイズに制限のあるmicroSDなどで大容量モデルになるとTLCを採用していることが多いので妥協が必要です。
※下記、TBWも重要です

MTBF(平均故障間隔)

一言で言うと壊れるまでの時間ですが、SSDは公表している場合で各社100-200万時間が多いようです。
100万時間だと24H365日使っても114年かかります。
ただ、実際にはこんなに持ちません。MTBFが実際の故障の確率と乖離しているのは、MTBFはサンプリングで算出しているためです。
長時間連続運用する場合には、コンシューマモデルではなくエンタープライズモデルを選択しましょう。

TBW(総書き込みバイト数)

フラッシュメモリが摩耗して使えなくなるまでの書込容量の目安です。
下記、ウェアレベリングが有効に働いている必要があります。
(CF・SD・USBメモリは一般的にウェアレベリングを実装していません / 産業用除く)

ウェアレベリング(摩耗平滑化)

記録エリアの記録回数を監視し、同じエリアに記録が集中しないように平準化することで長寿命化に貢献します。
ウェアレベリングは、搭載するフラッシュメモリの「Average Erase Count(平均消去処理回数)」と「Maximum Erase Count(最も書き換え処理を実行した記憶素子の最大消去回数)」の差が規定の閾値に達すると、実行されます。
閾値が小さいほどウェアレベリングを行う回数が増えデータ保持性能は向上しますが、製品寿命は短くなります。
逆に、閾値が大きいほどウェアの回数が減り製品寿命は長くなりますが、データ保持性能が犠牲になります。
(メモリセルのゲート内に電子を保管するのは時限式のため)。

また、ウェアレベリングには静的・動的の2種類がありますが、全領域を平準化対象にするのは静的ウェアレベリングなので、なるべくなら静的を選びましょう。

速度

記憶素子には電圧を加えることでデータを記録しますが、MLCやTLCは1セルに複数bit記憶させるため電荷量を細かくする必要があり、SLCに比べると書込時・読込時に時間がかかる傾向にあります。
MLC・TLCは、保持された情報を検証するためエラー訂正の仕組みが必要となり、特にTLCではエラー訂正の仕組みも複雑となるため速度が遅くなります。

コントローラ

一般的にSSDは容量が大きいほど、転送速度が高速になります。
SSDはコントローラが複数のメモリセルに対して並列に読み書きすることで高速性を実現しています。
容量が大きいモデルのほうが高性能なコントローラを搭載して並列に処理できる数が多い傾向にあります。
(同時読み書きができるラインが増えるので高速化されます)。

容量

1つのセルに複数bit記録できる方が有利なので、当然下記のようになります。
TLC > MLC > SLC

信頼性

SLC > MLC > TLC
フラッシュメモリはその性質上、メモリセルのゲート内に電子を保管しますが、1セルに複数bit保管するほうが(時間経過による)データ消失の危険性が高まります。
複数bit保管するほうが電圧を細かく制御するため、自然放電などで読み出しに支障をきたす危険性が増します。
(種類問わず、通電させずに長期保存する用途には向きません)。

コスト

SLC > MLC > TLC
1セルにたくさんのbitを保存できたほうがメモリセルを小型化できるため、安価に製造できます。
頻繁に書き込みが発生する用途にはSLC・MLC、読み出し中心の用途であればTLCなどの使い分けが必要になってきます。

以上、フラッシュメモリの種類まとめでした。
購入する際の目安になれば幸いです。