I dispositivi di memoria flash (utilizzati per gli attuali SSD) non possono scrivere dati arbitrari in qualsiasi momento; prima di scrivere su una cella (in genere 4KB) deve essere prima cancellato. Sfortunatamente, l'operazione di cancellazione è molto lenta; ecco perché i dispositivi flash erano molto più lenti delle unità magnetiche, nonostante non avessero parti mobili.
Gli SSD moderni nascondono il tempo di cancellazione mantenendo un set di celle pre-cancellate, ciò significa che un comando di scrittura non sovrascriverà immediatamente i dati esistenti, invece il controller dell'unità preleva una cella cancellata, la rimappa e scrive con i nuovi dati. Questo (e diverse strategie cache pensate per la scrittura) danno all'unità un enorme aumento di velocità, superando notevolmente le unità magnetiche.
Per garantire che ci sia sempre un set di celle pre-registrate, ogni volta che una cella non è necessaria, l'unità la pianifica per la cancellazione dello sfondo e si aggiunge all'elenco delle celle delle commissioni.
Sfortunatamente, i filesystem esistenti non si sono preoccupati di dire all'unità quando un settore era libero. Dopotutto, il disco doveva essere solo un muto archivio di bit. L'eliminazione di un file o di qualsiasi altra operazione che contrassegna un settore come libero dal punto di vista del file system era solo un segno su una struttura di metadati. Il settore stesso non è stato toccato. Anche se il filesystem lo cancellava scrivendo degli zeri su di esso, l'unità non poteva sapere se questo significava che il settore era libero o se l'utente voleva alcuni zeri su un file. Dopo un po ', l'unità non avrebbe alcuna cella libera da cancellare prima di scrivere; e le prestazioni sono peggiorate tragicamente.
L'istruzione TRIM è stata rapidamente redatta e adottata dalla maggior parte dei filesystem attualmente mantenuti. È un semplice segnale che il filesystem usa per dire all'unità che il contenuto di un settore non è più importante. Non appena tutti i settori mappati su una cella sono liberi, il controller SSD ripristina la mappatura della cella e la pianifica per la cancellazione. Se l'host legge questi settori, l'SSD non si preoccuperebbe di recuperare da Flash, rispondendo immediatamente con zeri; ma l'effetto più importante è quello di mantenere sempre aggiornato l'elenco delle celle preeseguite.
Tuttavia, la maggior parte degli SSD espone una capacità inferiore rispetto alla dimensione fisica della memoria Flash, a volte fino al 75%. Ciò gli consente di mantenere alcune celle inutilizzate anche su un sistema completo al 100%, in modo che la (sovrascrittura) dei settori utilizzati sia ancora veloce.