TRIM
暗号化が使用されている場合、TRIMコマンドを使用すると、使用されているブロックと使用されていないブロックに関する情報が明らかになってしまう。
オリジナルのTRIMコマンドは、 T13小委員会によって非キューコマンドとして定義されていたため、たとえば各ファイルシステムの削除コマンドの後に送信された場合など、不注意に使用すると、大量の実行ペナルティが発生する可能性がある。非キューコマンドの性質上、デバイスドライバは、未解決のコマンドがすべて完了するのを待機し、TRIMコマンドを発行してから、通常のコマンドを再開する必要がある。SSDのファームウェアによっては、TRIMが完了するまでにかなりの時間がかかってしまい、ガベージコレクションサイクルがトリガーされる場合もある。このペナルティは、システムの使用率が最小になるようなバッチジョブをスケジュールすることにより、ファイルの削除ごとにトリミングするのではなく、定期的にバッチTRIMを実行することで最小限に抑えられる。このTRIMの欠点は、Queued TRIMコマンドの導入により、シリアルATAリビジョン3.1で改善した。
Queued TRIMへのサポートを誤ってシステムに通知しているか、実装に重大なバグがあるドライブファームウェアにより、いくつかのデバイス、特にMicronとCrucialのM500およびSamsungの840および850シリーズなどで深刻なデータ破損を引き起こすとされている。
NVM Expressコマンドセットでは、ホストの意図を一連のブロック範囲のストレージデバイスに示めすための汎用のコマンドが存在する。その操作の1つであるdeallocateコマンドはTRIMを実行することと同義である。また、deallocateコマンド実行へのヒントを提供し、ディスクがゼロをトリミングして返すことを可能にするWrite Zeroesコマンドも存在する。