¿Cómo funciona TRIM Enabler?

8

Hace poco compré un SSD de una tercera parte (OCZ) y usé Trim Enabler para, bueno, habilitar TRIM. Me he dado cuenta de que algunas actualizaciones de software pueden hacer que TRIM se deshabilite y, por lo tanto, tengo curiosidad por saber cómo funciona TRIM Enabler.

  • ¿Reemplaza algunos KEXT predeterminados con uno personalizado para admitir TRIM o simplemente alterna alguna configuración PLIST?
  • De cualquier manera, ¿hay un archivo que, cuando está bloqueado, puede garantizar que TRIM permanezca habilitada (sin consecuencias negativas)?
pregunta Alexander 08.04.2013 - 23:34

3 respuestas

9

El Habilitador de ajuste de parches corrige el siguiente archivo Kext

/System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage

que comprueba si el ssd es un SSD de terceros o de marca Apple:

también puede habilitar el recorte manualmente buscando todas las apariciones de 'Apple' en el archivo y parcheando en un editor hexadecimal o mediante terminal:

##1. Backup old file
    $sudo cp /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage
/System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage.original

##2. Patch the file to enable TRIM support
    $sudo perl -pi -e 's|(\x52\x6F\x74\x61\x74\x69\x6F\x6E\x61\x6C\x00{1,20})[^\x00]{9}(\x00{1,20}\x51)|$1\x00\x00\x00\x00\x00\x00\x00\x00\x00$2|sg' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage

##3. Clear the system kernel extension cache

   $sudo kextcache -system-prelinked-kernel

   $sudo kextcache -system-caches
    
respondido por el Chrisii 16.06.2013 - 03:54
2

La única información que puedo encontrar sobre esto es de una FAQ / blogpost entry

  

A: Trim Enabler parchea un controlador OSX Trim nativo, que funciona en segundo plano incluso cuando la aplicación se cierra o se elimina. Este parche se restablece en las actualizaciones del sistema, por lo que podría ser una buena idea mantener la aplicación sin embargo.

    
respondido por el Megan Walker 09.04.2013 - 00:00
2

Los SSD de OCZ utilizan un controlador Sandforce que tiene incorporado un sistema de recolección de basura en primer plano que retrasa la necesidad de borrar bloques, reduciendo pero sin eliminar la necesidad de soporte TRIM. Recortar puede considerarse una ayuda para la recolección de basura.

Recortar recolección de basura

  

Para una breve explicación, la memoria flash está organizada en grupos de páginas donde se pueden escribir datos. Una vez que se escribe una página, no se puede volver a escribir hasta que se borre. Pero una página solo se puede borrar dentro de un grupo de típicamente 128 páginas llamadas bloque. La complejidad de escribir datos realmente comienza a escalar en el caso de escrituras aleatorias que reemplazan datos escritos previamente. Las escrituras aleatorias colocan los nuevos datos en páginas previamente borradas en otro lugar, salpicando un bloque de datos válidos con "parches de datos no válidos". Para poder escribir nuevos datos en estos parches, se debe borrar todo el bloque (las 128 páginas). Pero primero, todas las páginas circundantes con datos válidos se deben leer y luego volver a escribir en páginas en blanco. El bloque recién borrado de páginas en blanco está listo para guardar nuevos datos.

     

[…]   Todos los SSD basados en NAND Flash utilizan GC. Algunos utilizan GC de primer plano y otros utilizan GC de fondo o inactivo. La diferencia entre ellos está cubierta en mi blog enlace . En términos simples, la recolección de basura en segundo plano aumentará la amplificación de escritura (WA) y desgastará el SSD antes. Foreground GC es más difícil de lograr y creo que solo el controlador SandForce puede hacerlo hoy

     

[…]   TRIM es beneficioso para todos los SSD, independientemente del tipo de recolección de basura que se utilice. Hablo sobre cómo TRIM nació y por qué es necesario en mi blog enlace …. El OS envía el comando TRIM al SSD para identificar qué páginas de datos pueden ignorarse durante la recolección de basura. El SSD no puede saber qué archivos se han eliminado hasta que el sistema operativo utiliza los mismos sectores para almacenar nuevos archivos, pero en ese momento el SSD ya ha perdido ciclos al recolectar datos que no eran válidos, pero que el SS sabía.

¿Sabía que los HDD no tienen un comando Eliminar? Es por eso que los SSD necesitan TRIM

  

Mantener su SSD TRIM   Hace algunos años, la industria del almacenamiento se reunió y desarrolló una solución entre el sistema operativo y el SSD creando un nuevo comando SATA llamado TRIM. No es un comando que obliga a la SSD a borrar inmediatamente los datos como creen algunas personas. En realidad, el comando TRIM se puede considerar como un mensaje del sistema operativo sobre qué direcciones utilizadas anteriormente en el SSD ya no contienen datos válidos. El SSD toma esas direcciones y actualiza su propio mapa interno de su memoria flash para marcar esas ubicaciones como no válidas. Con esta información, el SSD ya no mueve esos datos no válidos durante el proceso del GC, lo que elimina el tiempo perdido al reescribir los datos no válidos en nuevas páginas flash. También reduce la cantidad de ciclos de escritura en la memoria flash, lo que aumenta la resistencia de los SSD. Otro beneficio del comando TRIM es que hay más espacio disponible para el OP dinámico.

    
respondido por el thepen 21.12.2014 - 22:19

Lea otras preguntas en las etiquetas