Le but de cette instruction est de maintenir la vitesse du SSD tout au long de sa vie, évitant le ralentissement que les premiers modèles rencontraient une fois que toutes les cellules étaient écrites au moins une fois.
Bien que des outils fussent disponibles pour remettre à l’état initial certaines unités, ils effaçaient toutes les données sur l’unité ce qui les rendaient impraticable lors de l’utilisation pour l’optimisation.
Le fondement du problème est que les unités SSD ne savent pas quels blocs sont réellement utilisés et quels blocs sont libres. Les SSD ne comprennent pas les structures du système de fichier utilisées par les systèmes d’exploitation et ne peuvent pas accéder à leur liste de clusters inutilisés. Cela pose des problèmes à deux endroits :
- Les SSD peuvent écrire des blocs de 4KiB, mais, à cause de limites matérielles, ils doivent effacer des blocs plus larges (par exemple 128KiB ou 512KiB). Comme l’unité ne sait pas quels sont les blocs de 4KiB toujours en cours d’utilisation s’ils ont été écrits précédemment, chaque écriture demandera un cycle lecture-effacement-modification-écriture bien plus grand, en supposant qu’il n’y ait pas d’autres blocs libres sur le SSD (c'est-à-dire après que tous les blocs aient été partiellement remplis). Le terme correspondant à ce phénomène est l’amplification d’écriture (« write amplification »).
- La mise à niveau de l’usure (« Wear levelling ») permet à une unité de réarranger ses données pour que les écritures ne soient pas confinées à un seul endroit de la carte flash. Les cellules flash tolèrent seulement un nombre limité d’écritures avant de devenir inopérantes. Ainsi certains SSD déplacent les données sur toute l’unité pour exercer de façon égale tous les blocs. Comme l’unité ne connaît pas quels blocs sont réellement utilisés par le système de fichier, chaque bloc de données écrit sur l’unité exige une écriture additionnelle due au déplacement du bloc.
Comme la commande TRIM purge complètement la données affectée, la récupération de données devient impossible. La spécification de la commande TRIM est standardisée en tant que partie du standard d’interface AT Attachment (ATA), mené par le Comité Technique T13 de l’International Commitee for Information Technology Standards.