Flash-Speichergeräte (wie sie für heutige SSDs verwendet werden) können zu keinem Zeitpunkt beliebige Daten schreiben. vor dem Schreiben auf eine Zelle (in der Regel 4 KB) muss zuerst gelöscht werden. Leider ist der Löschvorgang sehr langsam. Aus diesem Grund waren Flash-Geräte trotz fehlender beweglicher Teile viel langsamer als magnetische Laufwerke.
Moderne SSDs verbergen die Löschzeit, indem sie einen Satz vorgelöschter Zellen beibehalten. Das bedeutet, dass ein Schreibbefehl vorhandene Daten nicht sofort überschreibt. Stattdessen wählt der Controller des Laufwerks eine gelöschte Zelle aus, ordnet sie neu zu und schreibt sie mit den neuen Daten. Das (und mehrere Schreib dachte Cache - Strategien) gibt dem Antrieb einen großen Speedup, stark magnetische Antriebe übertroffen.
Um sicherzustellen, dass immer ein Satz vorgelöschter Zellen vorhanden ist, plant das Laufwerk das Löschen im Hintergrund und fügt es der Liste der Gebührenzellen hinzu, wenn eine Zelle nicht benötigt wird.
Leider bemühten sich vorhandene Dateisysteme nicht, dem Laufwerk mitzuteilen, wann ein Sektor frei war. Schließlich sollte das Laufwerk nur ein blödes Repository von Bits sein. Das Löschen einer Datei oder eines anderen Vorgangs, der einen Sektor aus Sicht des Dateisystems als frei kennzeichnet, war nur eine Markierung in einer Metadatenstruktur. Der Sektor selbst wurde nicht berührt. Selbst wenn das Dateisystem es löschte, indem es Nullen darüber schrieb, konnte das Laufwerk nicht wissen, ob dies bedeutete, dass der Sektor frei war, oder ob der Benutzer einige Nullen für eine Datei wünschte. Nach einiger Zeit würde das Laufwerk keine freie Zelle mehr haben, die vor dem Schreiben gelöscht werden könnte. und Leistung auf tragische Weise verschlechtert.
Die TRIM-Anweisung wurde schnell erstellt und von den meisten derzeit verwalteten Dateisystemen übernommen. Es ist ein einfaches Signal, das das Dateisystem verwendet, um dem Laufwerk mitzuteilen, dass der Inhalt eines Sektors nicht mehr wichtig ist. Sobald alle auf einer Zelle zugeordneten Sektoren frei sind, hebt der SSD-Controller die Zuordnung der Zelle auf und plant die Löschung. Wenn der Host diese Sektoren liest, stört die SSD das Abrufen von Flash nicht. Sie antwortet sofort mit Nullen. Der wichtigste Effekt ist jedoch, dass die Liste der vorgelöschten Zellen immer aktualisiert wird.
Dennoch weisen die meisten SSDs eine geringere Kapazität als die physische Größe des Flash-Speichers auf, manchmal nur 75%. Das erlaubt es, einige unbenutzte Zellen sogar auf einem 100% vollen System zu behalten, so dass das (Über-) Schreiben von benutzten Sektoren immer noch schnell ist.