今日はSSDを支える技術についてお話します。
SSDはフラッシュメモリを使った記憶装置のことで、2008年頃から一般向けの市販品が登場してからその速度と振動に強い・省電力性などの扱いやすさからモバイル機器を中心に急速に普及したものです。
現在に至るまでにそれまでの主流だったHDDをあっという間に置き換えてモバイル機器のみならず、パソコンの記憶装置の主力となりました。
SSDが登場してからHDDにはなかった特性からOSにもいくつかの変更がありました。
普段エンドユーザーとして使っている立場では意識することはありませんが、SSDを使う際に重要な知識となりますので覚えておくとよいと思います。
NAND型とNOR型
SSDに使われているFlashメモリの方式を表す言葉にNAND型があります。
こちらはよく目にするのではないでしょうか。
「NAND型と言うからには他にも方式があるけど、見たことがないよ」と言う方いると思います。
以前、私も思いました。
NOR型と言う方式のフラッシュメモリがあり、速度が速いのですが、集積度を高くし辛いため、一般的なSSDには私の知る限りではすべての製品にNAND型メモリが使われています。
3D NANDってなんだ?
詳しい方ならば、フラッシュメモリは製造プロセスの微細化が進めば進むほど、耐久性が落ちていくと言うことを知っているのではないかと思います。
その対策のために、フラッシュメモリを上方向に積層する形で実装したのが、3D NANDと呼ばれる方式です。
耐久性、省電力性、集積度ともに優れたフラッシュメモリです。
SSDとメモリセル
SSDにはHDDに無いいくつかの特性があります。
それはSSDの記憶素子であるフラッシュメモリに寿命が存在することです。
SSDの記憶素子に使われているフラッシュメモリにはSLCとMLC、TLCがあり、以下の特徴があります。
SLC=Single Level Cell:一つのセルに1bitの記憶が可能
MLC=Multi Level Cell:一つのセルに2bitの記憶が可能
TLC=Triple Level Cell:一つのセルに3bitの記憶が可能
QLC=Quad Level Cell:一つのセルに4bitの記憶が可能
PLC=Penta Level Cell:一つのセルに5bitの記憶が可能
このうちSLCは非常に高価のため、一般向けのSSDにはほとんど使われていません。
また、この記事を書いている現在、PLCを使った製品は発売されていません。
SLC | MLC | TLC | 3D NAND MLC | 3D NAND TLC | 3D NAND QLC | |
速度 | 非常に高速 | 高速 | 普通 | 高速 | 比較的高速 | 遅い |
書き換え回数 | 約10万回 | 約1万回 | 約1000回 | 約3000回 | 約1500回 | 300~ 1,000回 |
コスト | 非常に高価 | 普通 | 安価 | 比較的安価 | 安価 | 安価 |
※3D NAND MLCと3D NAND TLCの寿命はMicronのデータシートから抜粋しています。
基本的に半導体は微細化が進むと性能が上がる傾向にありますが、フラッシュメモリに限って言うと微細化すると書き換え回数が減り寿命が縮むので、高性能化するのが非常に難しいのですが、3D NANDという技術を使うことによって微細化をせずに大容量化することに成功しました。
現在の一般PC向けの市販SSDはほとんどがこの3D NAND MLCと3D NAND TLCと言ってもよいです。
こうしたハードの進化とそれを制御するソフトウェアの進化もあって、総合的にデバイスとしての耐久性も上がってきています。
3D NAND 登場以前と以後のMLC,TLCではデバイスに対する評価が変わっています。
現在の産業向け・インフラ向け、軍事向けデバイスのSSDもSLCではなく、MLCを採用しているメーカーもあります。
最新の3D NAND TLCやQLCを使ったSSDでは一部のセルを疑似的にSLCとして使うなどの工夫によっても速度を上げています。
その他エンタープライズ向けSSDに使われている技術
SMLC(Single Mode Level Cell)=MLC並みの価格でSLC並みの耐久性を実現したセル。Fusion-ioという会社が開発して製品化したが、のちにSANDisk(現WesternDigital)に買収される
Q-MLC(Quality-MLC)=通常のMLCの10倍の信頼性を実現したセル。ハギワラソリューションが製品を出している。
どちらも名称のみで詳細なデータは見つけられませんでしたが、エンタープライズ向けにはこうした方式もあるということを参考までに書いておきます。
SSDにはなぜ書き換え回数に制限があるのか?
SSDは書き換え回数に寿命がありますが、これはセルの構造に理由があります。
上の様になっています。フラッシュメモリはセルに電子を閉じ込めて0か1かを判断していますが、この閉じ込める蓋の役割をする酸化被膜には寿命があります。
この酸化被膜の寿命が書き換え回数です。
SSDの寿命を延ばす技術
SSDに使われているセルには書き換え回数に制限があるため、なるべく平均的にすべてのセルを使用するために仕組みがあります。
SSDのセルは書き込みはページ単位で行われますが、消去はブロック単位で行われます。
※上の図は模式図です。実際の数などはフラッシュメモリによって違います。
HDDでは削除したデータというのは特に害のないものだと思われていたのでわざわざ消去したりなどはしていませんでした。
OSから見て、削除しましたというマークを付けるだけで、データそのものは残っていたのです。
OSから切り離されたデータは次にデータが書き込まれた時に上書きされることはありますが、それまではそのまま残っていました。
削除されたデータはデバイスから見てどのデータを消去してよいかという判断はできませんでした。
消去すると書き換えが発生してHDD性能に影響を与えるためです。
しかし、SSDの場合、事情が違います。
なぜなら、セルに寿命があるため、同じセルにずっと書き込みを続けると寿命が極端に縮んでしまうからです。
先ほど説明した消去できる単位(ブロック)と書き込みできる単位(ページ)が違うために一部だけ使用された空き容量の大きいブロックが出来ると無駄な書き込み/消去が発生して寿命に悪影響を与えます。
Trimとガーベージコレクション
SSDでは今まで説明してきたような事情からデバイスに「このデータは削除しても構わない」という信号を送る仕組みが出来ました。
これがTrimです。
Trimが送られたデータは削除され、ガーベージコレクションという仕組みで、容量のある別のブロックに移すことによって出来るだけ空きブロックを確保し、セルの書き込み回数を減らすような仕組みになっています。
Windows8以降のOSでは自動で定期的にTrimが発行されるようになりましたので、これらのことは特に意識しなくてもOSとデバイスが自動的にやってくれています。
※ Windows7ではソフトをインストールする必要がありましたので、SSDに限って言えば最新のOSの方がより効率的に使うことが出来ます。
ユーザーが意識すべきことは、「SSDには一定の空き容量を確保しておいた方が寿命が長くなる傾向にある」ということだけです。
このような作業をユーザーが意識しなくても自動で行っています。
SSDが使っていくうちに遅くなるのは、このように削除・書き込みを繰り返すと、SSD側でのメモリセルの寿命を延ばす作業が入ることも関係しています。
それでもHDDとは比較にならないほど高速です。