Os dispositivos de memória flash (usados nos SSDs de hoje) não podem gravar dados arbitrários a qualquer momento; antes de escrever em uma célula (normalmente 4KB) deve ser apagado primeiro. Infelizmente, a operação de apagamento é muito lenta; é por isso que os dispositivos flash eram muito mais lentos que as unidades magnéticas, apesar de não terem partes móveis.
Os SSDs modernos ocultam o tempo de apagamento mantendo um conjunto de células pré-apagadas, o que significa que um comando de gravação não substitui imediatamente os dados existentes, mas o controlador da unidade escolhe uma célula apagada, remapeia e grava com os novos dados. Isso (e várias estratégias de cache de pensamento de gravação) dá à unidade uma enorme velocidade, superando muito as unidades magnéticas.
Para garantir que sempre haja um conjunto de células pré-avaliadas, sempre que uma célula não for necessária, a unidade o agendará para exclusão em segundo plano e será adicionada à lista de células de taxa.
Infelizmente, os sistemas de arquivos existentes não se deram ao trabalho de informar a unidade quando um setor estava livre. Afinal, a unidade era apenas um repositório estúpido de bits. 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 que o sistema de arquivos limpasse escrevendo zeros sobre ele, a unidade não sabia 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 mantidos atualmente. É 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 estiverem livres, o controlador SSD desmarca a célula e a agenda para apagá-la. Se o host ler esses setores, o SSD não se incomodará em buscar no Flash, ele responderá imediatamente com zeros; mas o efeito mais importante é manter a lista de células pré-avaliadas sempre reabastecidas.
Ainda assim, a maioria dos SSDs expõe uma capacidade menor que o tamanho físico da memória Flash, às vezes tão baixa quanto 75%. Isso permite que você mantenha algumas células não utilizadas, mesmo em um sistema 100% completo, para que a (sob) gravação dos setores usados ainda seja rápida.