Dispositivos de memória flash (o que é usado para os SSDs de hoje) não podem gravar dados arbitrários a qualquer momento; antes de escrever em uma célula (geralmente 4KB) tem que ser apagado primeiro. Infelizmente, a operação de apagar é muito lenta; é por isso que os dispositivos flash eram muito mais lentos que os drives magnéticos, apesar de não terem partes móveis.
Os SSDs modernos escondem o tempo de apagamento mantendo um conjunto de células pré-apagadas, o que significa que um comando de gravação não substituirá imediatamente os dados existentes; em vez disso, o controlador da unidade escolhe uma célula apagada, remapeia e escreve com o novo dados. Isso (e várias estratégias de cache write-thought) dão ao drive uma aceleração enorme , superando em muito os drives magnéticos.
Para garantir que sempre haja um conjunto de células pré-visualizadas, sempre que uma célula não for necessária, a unidade a programará para eliminação em segundo plano e será adicionada à lista de células de taxas.
Infelizmente, os sistemas de arquivos existentes não se preocuparam em informar a unidade quando um setor estava livre. A unidade deveria ser apenas um repositório estúpido de bits, afinal de contas. Excluir um arquivo ou qualquer outra operação que marque um setor como livre do ponto de vista do sistema de arquivos era apenas uma marca em alguma estrutura de metadados. O setor em si não foi tocado. Mesmo se o sistema de arquivos limpasse, escrevendo zeros sobre ele, a unidade não poderia saber se isso significava que o setor estava livre, ou se o usuário queria alguns zeros em um arquivo. Depois de um tempo, a unidade não teria nenhuma célula livre para apagar antes de escrever; e desempenho degradado tragicamente.
A instrução TRIM foi rapidamente redigida e adotada pela maioria dos sistemas de arquivos atualmente mantidos. É um sinal simples que o sistema de arquivos usa para informar à unidade que o conteúdo de um setor não é mais importante. Assim que todos os setores mapeados em uma célula são liberados, o controlador SSD desmata a célula e a agenda para ser apagada. Se o host ler esses setores, o SSD não se incomodaria em buscar a partir do Flash, ele responde imediatamente com zeros; mas o efeito mais importante é manter a lista de células pré-preenchidas sempre reabastecidas.
Ainda assim, a maioria dos SSDs expõe uma capacidade menor do que o tamanho físico da memória Flash, às vezes até 75%. Isso permite manter algumas células não utilizadas, mesmo em um sistema 100% completo, de modo que (sobre) escrever setores usados ainda é rápido.