フラッシュメモリデバイス(今日のSSDに使用されているもの)は、いつでも任意のデータを書き込むことはできません。セル(通常は4KB)に書き込む前に、最初に消去する必要があります。残念ながら、消去操作は非常に遅いです。そのため、フラッシュデバイスは、可動部分がないにもかかわらず、磁気ドライブよりも非常に低速でした。
最新のSSDは、事前に消去されたセルのセットを維持することで消去時間を隠します。つまり、書き込みコマンドが既存のデータをすぐに上書きするのではなく、代わりにドライブのコントローラーが消去されたセルを選択して再マッピングし、新しいデータで書き込みます。それ(といくつかの書き込みと思ったキャッシュ方式)のドライブになります巨大大幅磁気ドライブを抜いて、スピードアップを。
事前消去されたセルのセットが常に存在することを保証するために、セルが不要なときはいつでも、ドライブはバックグラウンド消去のためにそれをスケジュールし、料金セルのリストに追加します。
残念ながら、既存のファイルシステムは、セクターが解放されたことをドライブに通知することを気にしませんでした。結局のところ、このドライブは、ほんの数え切れないほどの単なるリポジトリであるはずでした。ファイルを削除したり、ファイルシステムの観点からセクターをフリーとしてマークする他の操作は、一部のメタデータ構造上のマークにすぎませんでした。セクター自体は変更されていません。ファイルシステムがゼロを上書きしてクリアしたとしても、ドライブはそれがセクターが空いたことを意味するのか、ユーザーがファイルにゼロを必要としていたのかを知ることができませんでした。しばらくすると、ドライブには書き込み前に消去する空きセルがなくなります。そしてパフォーマンスは悲劇的に低下しました。
TRIM命令はすぐに作成され、現在維持されているほとんどのファイルシステムで採用されています。これは、ファイルシステムがドライブに、セクターの内容がもはや重要でないことを伝えるために使用する単純な信号です。セルにマップされたすべてのセクターが解放されるとすぐに、SSDコントローラーはセルのマップを解除し、消去のためにそれをスケジュールします。ホストがこれらのセクターを読み取った場合、SSDはフラッシュからのフェッチを気にせず、すぐにゼロで応答します。しかし、最も重要な効果は、事前に消去されたセルのリストを常に補充することです。
それでも、ほとんどのSSDは、フラッシュメモリの物理サイズよりも小さい容量を、場合によっては75%程度しか公開しません。これにより、100%のフルシステム上でも未使用のセルを保持できるため、使用済みセクターの(上書き)書き込みは依然として高速です。