SSDは、NAND半導体アレイにデータを保存するため、HDDと大きく異なります。1個のSSDには通常複数 (4個から16個) NANDフラッシュチップが入っており、各チップはブロック (約100万個のNANDセル) に、ブロックはさらにページ (数千個のNANDセル) に、ページはさらに個々のセルに分割されます。テクノロジーにより異なりますが、各セルは1~3ビットのデータを保存できます。

NANDセルアレイの構造と技術に起因する諸条件がSSD内部のデータ管理を難しくしています。

  • ページレベルでの書き込みとブロックレベルでの消去のみが可能。
  • 各書き込み前にセルの消去が必須。
  • 書き込みと消去のサイクルがセルを劣化させ、最終的にはデータをセルに安定して保存できなくなる。
  • 高い転送レートを確保するため、データは複数の場所にまたがったセグメントに書き込まれる。

これらすべての要因により、データのコピー、移動、複製が必要になり、NANDセルでデータを分散させる方法を更に複雑にしています。データが断片化していき、大量の古いデータができていきます。

SSDは、データを管理し、物理的な位置を追跡する組み込みのコントローラー (フラッシュコントローラーチップ) を備えています。オペレーティングシステムが読み取りまたは書き込みコマンドを送信すると、フラッシュコントローラーを通して、コマンドが変換されます。オペレーティングシステムは、実質的にはフラッシュコントローラーのコマンドを理解しません。そのため、オペレーティングシステムはデータの物理的な場所を追跡できません。 オペレーティングシステムのSSDへのサニタイズ (何らかのパターンでデータを上書きする) コマンドは、必ずしもすべてのデータを削除するとは限らないことが明らかになっています。これは、フラッシュコントローラーがコマンドを変換し、データを保持している場所すべてにコマンドを適用するわけではないからです。

関連リンク:

  • No labels