Los SSD tienen más bloques más allá de lo que indicaría la capacidad indicada. Estos bloques se usan como parte del proceso de nivelación del desgaste, así como también reemplazos de fallas, ya que los bloques se desgastan por completo. Debido a esto, el controlador de la SSD debe realizar un seguimiento de los bloques que ve que se presentan actualmente al sistema y qué bloques lógicos.
En ausencia de TRIM, cuando llega una escritura para un bloque sucio (uno que ya tiene datos en lo que respecta al SSD) ocurre una de dos cosas:
- El controlador lee el bloque antiguo en la memoria local.
- El controlador modifica los bits necesarios.
- El controlador reescribe todo el bloque en el bloque anterior
Sin embargo, debido al nivel de desgaste, es más probable que esto:
- El controlador lee el bloque antiguo en la memoria local.
- El controlador modifica los bits necesarios.
- El controlador escribe el bloque completo en un bloque nuevo en la parte reservada
- El controlador actualiza su asignación lógica para el nuevo bloque lógico: par de bloque físico.
- El controlador marca el bloque antiguo como parte de la reserva.
La clave aquí es que el controlador SSD también mantiene un mapa de bits de bloques. A diferencia de un mapa de bits del sistema de archivos, hace coincidir los bloques lógicos con los bloques físicos, y eso puede cambiar cada vez que ocurre una escritura.