最近は大容量のSSDも増えてきたので、プログラム用とデータ用にパーティションを分割して使いたい。でも書き込み頻度がばらばらだと、SSDの一部領域だけ急速に劣化するのではと不安。SSDでパーティションを分けても大丈夫?

 SSDの場合、複数のパーティションに分割して運用し、うち一部のパーティションのみに読み書きが集中しても、内部のフラッシュメモリーの一部だけが劣化することはない。OSとフラッシュメモリーの間にあり、フラッシュメモリーへの読み書きを制御するフラッシュコントローラーが、書き込みを平準化するよう自動的に処理しているためだ。

 SSD内部におけるデータの格納方法を示したのが下の図だ。フラッシュコントローラーは、「論理アドレス」と「物理アドレス」という2種類のアドレスを管理している。

 フラッシュコントローラーがOSに対し提示するのは論理アドレスだ。図の例では、0番地から99番地までをCドライブ領域として、100番地以降をDドライブ領域として分割している。OSの方からSSDを参照すると、HDDを複数のパーティションに分割した場合と特に変わりなく見える。

SSDは領域分割しても平準化機能が働く
一般的なSSDのフラッシュコントローラーは、書き込み平準化機能を備える。OSからSSDを参照すると、HDDと同様に領域分割されているように見えるが、これは論理アドレス。実際は、コントローラーが書き込み先の物理アドレスをそのつど変更し書き込みを分散させるため、C/Dドライブのデータが混在している。

 一方でフラッシュコントローラーは、実際にデータを書き込むフラッシュメモリーに対し、物理アドレスを割り振っている。OSから読み書きの命令が届くと、物理アドレスと論理アドレスの対照表を基にデータを取り出し/格納する。この対照表は固定ではなく、頻繁に変更している。対照表における物理アドレスと論理アドレスの割り振りは、OS側のパーティションと関係なく、SSD全体を対象としている。その中で、書き換え頻度の高低を考慮して対照表を更新する。こうした仕組みにより、フラッシュメモリーごとの書き換え頻度の偏りを軽減している。

 現在のSSDで多く使われている、2ビット/セルのMLC(Multi Level Cell、多値品)の場合、書き換え可能回数は約5000~1万回という製品が多い。自作PCの起動ドライブとして使えるような大容量のSSDが出てきたのはつい最近のため、今のところSSDの寿命について断定はできない。