TRIM
TRIMコマンドを使用すると、オペレーティングシステムは、使用しなくなったページをSSDに通知できる。ファイル削除操作の場合、オペレーティングシステムはファイルのセクターを空き領域としてマークし、TRIMコマンドをSSDに送信する。その後新しいデータを書き込むときににSSDはブロックの内容を保持しないため、書き込み量を少なくすることとなり、書き込みスループットが高くなる。よって、寿命を延ばすことが期待できる。
ただし、SSDによってコマンドの実装方法が異なるため、得られるパフォーマンスが異なる場合がある 。
TRIMはSSDにLBA領域を無効としてマークするように指示し、その後に領域の読み取りを行ったとしても意味のあるデータを返さなくなる。非常に短い間、データが依然としてフラッシュメモリ内に存在する可能性があるが、TRIMコマンドが発行されてガベージコレクションが実行された後は、専門家でさえデータを回復できる可能性はほぼないとされている。
SCSIでは、TRIMと同一内容であるUNMAPコマンド、およびUNMAPフラグが設定されたWRITE SAMEコマンド(10および16バリアント)が存在する。
TRIMコマンドの仕様は、 国際情報技術標準委員会 (INCITS)の技術委員会T13が主導するATアタッチメント (ATA)インターフェイス標準の一部として標準化されている。TRIMは、ドラフトACS-2仕様のDATA SET MANAGEMENTコマンド(opcode 06h)で実装されている。また、ATA規格は、パラレル(IDE、PATA)・シリアル(SATA)の両方でサポートされている。
オリジナルのATA TRIMコマンドの欠点は、キューに入れられないコマンドとして定義されていたため、キューに入れられた読み取りおよび書き込み操作の通常のワークロードと簡単に混在させることができない点であった。 SATA 3.1では、これを修正するためにキューに入れられたTRIMコマンドが導入された。
ATA IDENTIFY DEVICEコマンドから返されるSATAワード69および169により定義される、複数種のTRIMコマンドが存在する。
非決定的TRIM:TRIM後の論理ブロックアドレス (LBA)への読み取りコマンドで、異なるデータを返す場合がある。
確定的TRIM(DRAT):TRIM後のLBAへの読み取りコマンドは、同じデータを返すか、確定的となる。