Para otros usos de este término, véase
Trim.
En informática, una orden TRIM permite a un sistema operativo comunicar a una unidad de estado sólido (SSD) qué bloques de datos ya no están en uso, como los datos dejados al borrar ficheros. Una operación del SO como un borrado generalmente sólo marca los bloques implicados como no usados. TRIM permite que el SO pase esa información al controlador de la SSD, que de otra manera no sabría qué bloques puede eliminar.
El propósito de la instrucción es mantener la velocidad de la SSD durante toda su vida útil, evitando la ralentización que los primeros modelos sufrían al llegar a escribir en todas las celdas al menos una vez.[1]
Aunque ya existían herramientas para reiniciar algunos modelos de SSD a su estado original, no se podían considerar herramientas de optimización ya que necesitaban borrar todos los datos de la unidad.
La causa inicial del problema es que las unidades SSD no saben qué bloques están realmente en uso y cuáles están libres. Las SSD no entienden la estructura del sistema de ficheros usada por el sistema operativo del ordenador y no puede acceder a su lista de clusters sin usar. Esto causa problemas en dos lugares:
- Las SSD pueden escribir bloques de 4KiB, pero debido a limitaciones del hardware, deben borrar bloques mayores (p.e., de 128KiB-512KiB). Debido a que la unidad no puede saber cuál de los bloques de 4KiB está aún en uso si antes ha sido escrito, cada escritura requiere un ciclo mayor de lectura-borrado-modificación-escritura, asumiendo que ningún bloque libre adicional está disponible en la SSD (p.e., después de que todos los bloques han sido marcados como grabados al menos parcialmente). El término para este fenómeno es amplificación de escritura.[2][3][4]
- El wear levelling permite a una unidad recolocar sus datos para que las escrituras no estén confinadas a una esquina del chip flash. Las células flash toleran sólo un número limitado de escrituras antes de fallar, así que algunas SSD mueven los datos para repartir la carga de escrituras de manera más equitativa entre todos los bloques en la unidad. Debido a que la unidad no sabe qué bloques están realmente en uso por el sistema de ficheros, cada bloque de datos escrito por la unidad requiere una escritura adicional debido al bloque desplazado.
Las especificaciones de la orden TRIM[5] están siendo normalizadas como parte de la norma de la interfaz ATA, dirigida por el Comité Técnico T13 del International Committee for Information Technology Standards.[6]
- ↑ AnandTech (18 de marzo de 2009). «The SSD Anthology: Understanding SSDs and New Drives from OCZ» (en inglés). AnandTech, Inc. Consultado el 8 de julio de 2009.
- ↑ Write Amplification (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última).
- ↑ «Write Amplification: Intel's Secret Sfuce». Archivado desde el original el 15 de noviembre de 2010. Consultado el 21 de febrero de 2010.
- ↑ Inside the X25-M Controller: Wear Leveling, Write Amplification Control
- ↑ «Data Set Management Commands Proposal for ATA8-ACS2 (revision 6)». INCITS T13. INCITS T13. 12 de diciembre de 2007. Archivado desde el original el 13 de junio de 2010. Consultado el 8 de julio de 2009. (draft specification T13/e07154r6)
- ↑ «T13 documents referring to TRIM». INCITS T13. INCITS T13. Archivado desde el original el 26 de mayo de 2010. Consultado el 8 de julio de 2009.