TRIM

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

En informática, una orden TRIM permite a un sistema operativo comunicarle 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 re-colocar 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]

Soporte en los sistemas operativos[editar]

TRIM ha sido implementado en Linux 2.6.33.[7] En FreeBSD, TRIM está disponible desde la versión 8.0. En Microsoft Windows, TRIM ha sido implementado en Windows 7[8] y Windows Server 2008 R2,[9] [10] y fue lanzado con la versión final de estos sistemas operativos en octubre de 2009. Unidades más antiguas necesitarán actualizar el firmware. En caso contrario la nueva orden será ignorada. En Mac OS X ha sido implementado en la Developer Preview de Mac OS X Lion (build 11A390), cuya versión final ha sido lanzada el 20 de julio de 2011, aunque el TRIM ha sido implementado finalmente en la actualización 10.6.8 de Snow Leopard, como preparación para la actualización del MacOs X Lion.

Donde TRIM no está soportado automáticamente por el sistema operativo, hay utilidades que pueden mandar una orden TRIM manualmente. Usualmente listan todos los bloques libres especificados por el sistema operativo y le pasan esa lista a la unidad como una serie de órdenes TRIM. Estas utilidades están disponibles desde varios fabricantes (Intel,[11] XtremeSystems[12] ) o como utilidades generales (hdparm v9.17 y posteriores[13] [14] ).

Referencias[editar]

  1. 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.
  2. Write Amplification
  3. Write Amplification: Intel's Secret Sauce
  4. Inside the X25-M Controller: Wear Leveling, Write Amplification Control
  5. «Data Set Management Commands Proposal for ATA8-ACS2 (revision 6)». INCITS T13. INCITS T13 (12-12-2007). Consultado el 08-07-2009. (draft specification T13/e07154r6)
  6. «T13 documents referring to TRIM». INCITS T13. INCITS T13. Consultado el 08-07-2009.
  7. Trim on Linux
  8. been Trim in Windows
  9. «Windows 7 Enhancements for Solid-State Drives». Microsoft downloads. Microsoft Corporation (12-11-2008). Consultado el 08-07-2009.
  10. http://windowsitpro.com/article/articleid/101966/q-what-is-the-trim-function-for-solid-state-disks-ssds-and-why-is-it-important.html
  11. «Intel SSD Optimizer White Paper». Intel Corporation. Consultado el 23-01-2010.
  12. «wiper.exe for Falcon Series». XtremeSystems. Consultado el 23-01-2010.
  13. «hdparm-9.17 released, with experimental trim/wiper scripts for SSDs». Consultado el 23-01-2010.
  14. «hdparm project page». Consultado el 23-01-2010.

Enlaces externos[editar]