UNE NOUVELLE VERSION D'INFOBIDOUILLE EST EN LIGNE CLIQUEZ-ICI POUR LA VISITER

Comprendre les SSD

Trim

Comme un même secteur logique n'est pas toujours écrit dans la même page, il est important que le contrôleur du SSD dispose en permanence d'une information la plus fiable possible sur la validité des données qu'il contient. En effet, lorsqu'on efface un fichier, la plupart des systèmes d'exploitation se contentent actuellement de supprimer son entrée dans les descripteurs du système de fichiers, mais ne l'effacent pas physiquement, car c'est inutile sur un disque dur (une écriture future au même emplacement pouvant se faire sans effacement préalable). Sur un SSD ce mode de fonctionnement peut engendrer des écritures inutiles. Imaginons par exemple qu'un bloc de 512 Ko contienne 256 Ko appartenant à un fichier, et 256 Ko de pages effaçables. Si on efface le fichier, puis on écrit un nouveau fichier de 128 Ko et si ce bloc est le bloc choisi pour effectuer l'écriture, le contrôleur va lire les 256 Ko correspondant au fichier supprimé, puis effacer le bloc, réécrire les 256 Ko du fichier supprimé, puis les 128 Ko du nouveau fichier. On va donc écrire trois fois plus de données que nécessaire, ce qui ralenti l'écriture du nouveau fichier. De plus, on se retrouve alors avec un bloc contenant 128 Ko de pages vierges, alors qu'il pourrait en contenir 384 Ko, ce qui va ralentir certaines écritures futures.

La solution à ce problème est la commande TRIM ("rogner" en anglais), une nouvelle commande qui vient d'être introduite dans le protocole ATA. Lors de l'effacement d'un fichier, les systèmes d'exploitation supportant cette commande vont l'envoyer au SSD pour lui indiquer la liste des secteurs logiques correspondant au fichier supprimé, et le contrôleur marquera alors les pages concernées comme étant effaçables. Si on reprend l'exemple ci-dessus, au moment de l'écriture du nouveau fichier de 128 Ko, le contrôleur va voir un bloc contenant non plus 256 Ko de données et 256 Ko effaçables, mais 512 Ko effaçables, et il va donc effacer le bloc sans lecture préalable, et en n'écrivant ensuite que les 128 Ko du nouveau fichier.

La commande TRIM est pour l'instant supportée par Windows 7 et les noyaux Linux récents. Côté SSD, elle est supportée sur les principaux contrôleurs du marché (Indilinx Barefoot, Samsung PB22-J, Intel G2...), mais pas toujours avec les firmwares d'origine. Intel et Indilinx fournissent également des utilitaires permettant d'envoyer de temps en temps une commande TRIM sur les systèmes Windows XP et Vista. Une solution moins efficace, puisque le TRIM n'est pas envoyé à chaque effacement, mais c'est mieux que rien.

La commande TRIM pose également quelques problèmes dans le cas d'un montage en RAID : pour qu'elle soit utilisable, il faut que le contrôleur RAID soit capable de la gérer, ce qui est loin d'être le cas général.

Si vous utilisez un SSD et un système d'exploitation supportant le TRIM, il faudra également être particulièrement attentif à la sauvegarde de vos données : en cas d'effacement accidentel de fichiers, le fait d'avoir envoyé la commande TRIM les rend définitivement irrécupérables.