Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

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

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

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

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

関連リンク

SSDs differ in a major way from HDDs because they store data on NAND semiconductor arrays. One SSD typically has multiple (4-16) NAND flash chips. Each of these chips are divided into blocks (around million NAND cells) which are further divided into pages (thousands of NAND cells). Pages are further divided into individual cells. Depending on the technology each cell can store 1-3 bits of data.

Due to the structure and technology of the NAND cell array there are a few factors that make data management in an SSD an interesting task:

  • It is only possible to write at page level and erase at the block level.
  • Before each write the cell must be erased.
  • Write erase cycles degrade the cell and eventually the cell can no longer be used reliably to store data.
  • Data is written in segments accross several locations to ensure higher transfer rates.

All these factors make copying, moving, and duplicating of data necessary. This adds to complexity of how the data is distributed in the NAND cells. The data becomes fragmented and there will be large amounts of stale data.

SSDs have a built in controller (flash controller chip) that manages the data and keeps track of its physical location. When the operating system sends a read or write command it goes through the flash controller which then translates the command. The operating system does not actually see the flash controller commands. As a result the operating system can not keep track of the physical location of the data. It has been shown that operating system sanitize (overwrite data with some pattern) commands on SSDs do not necessarily purge all data because the flash controller may translate the command so that it does not apply to all instances of data.

Related links: