Optimizando el Rendimiento de tu SSD: TRIM, Over-Provisioning y Garbage Collection

Clasificado en Inglés

Escrito el en español con un tamaño de 3,56 KB

TRIM beneficia a todos los SSD, independientemente del tipo de garbage collection que se utilice. El comando TRIM es enviado por el sistema operativo al SSD para identificar qué páginas de datos pueden ser ignoradas durante el garbage collection. El SSD no puede saber qué archivos han sido eliminados hasta que el sistema operativo utiliza los mismos sectores para almacenar nuevos archivos, pero para entonces el SSD ya ha desperdiciado ciclos al realizar el garbage collection de datos que no eran válidos.

  • TRIM beneficiará a todos los SSD de alguna manera. Algunos se beneficiarán más que otros, dependiendo de su situación. El garbage collection sin TRIM siempre estará moviendo todos los datos no válidos durante el proceso de GC, actuando como si el SSD estuviera operando a plena capacidad. Solo el comando TRIM puede identificar los datos no válidos y mejorar el rendimiento.

Over-Provisioning (OP)

  • No toda la capacidad de un SSD se reserva para información.
  • Al menos la diferencia entre GiB y GB se reserva: OP inherente.
  • El fabricante puede reservar más: OP preestablecido de fábrica.

¿Cómo funciona el Over-Provisioning?

  • El SSD está totalmente ocupado: 100GB.
  • Se desea actualizar un fichero de 10GB.
  • Sin OP, hay que borrar los bloques antes de escribir los nuevos 10 GB.
  • Con OP, se escriben directamente en OP. El GC los borrará más tarde.

Funcionamiento Interno de un SSD

  • Supongamos que tenemos un SSD con un único bloque de 6 páginas.
  • Las 6 páginas están escritas y queremos volver a escribir en las 3 últimas.
  • EN ESTE CASO CONCRETO TENDREMOS QUE hacer el proceso Read-Erase-Modify-Write.
  • Supongamos que tenemos un SSD con un único bloque de 12 páginas (LBA de 0 a 11).
  • Se escriben las 4 páginas 0, 1, 2, y 3 con (a,b,c,d).
  • Se escriben las 4 páginas 4, 5, 6 y 7 con (e,f,g,h).
  • Se escriben las 4 páginas 0, 1, 2 y 3 con (a’,b’,c’,d’).
  • Consideraremos páginas lógicas o LBA y páginas físicas o {bank, block, page}.
  • Inicialmente la página lógica i está en la página física {0,0,i}.

Retraso en la Operación de Borrado

  • Se va a retrasar la operación de borrado.
  • Mapeando las páginas lógicas 0, 1, 2 y 3 en las físicas 8, 9, 10 y 11. Además, mapeando las páginas lógicas 8, 9, 10 y 11 en las físicas 0, 1, 2 y 3.
  • Escribimos a’, b’, c’ y d’. Definimos las páginas 8, 9, 10 y 11 como inválidas (tienen los datos a,b,c y d que ya no se utilizan).

Estados de las Direcciones Físicas

Cada dirección física puede estar ERASED, VALID o INVALID.

E V I

El Flash Translation Layer (FTL)

  • El S.O. pide leer o escribir en sectores/páginas lógicas o LBA.
  • El Flash Translation Layer, o FTL, del controlador del SSD traduce estas peticiones del S.O. en secuencias de lecturas de página, borrados de bloques y programación de páginas físicas.
  • Es por ello que el S.O. ve igual un HDD y un SDD.

Garbage Collection

  • En algún momento será necesario borrar las páginas inválidas.
  • Garbage Collection se anticipa, las borra antes de que sea estrictamente necesario.
  • Garbage Collection busca páginas inválidas y las borra, cuando el SSD no está siendo utilizado.

Entradas relacionadas: