Comprendre les SSD
SartMatt dévoile tout sur le fonctionnement des SSD, et partage des conseils pour optimiser les performances
Garbage collector
Le garbage collector est une fonction présente sur certains contrôleurs (Samsung PB22-J, Indilinx Barefoot, Intel, et probablement d'autres). Il s'agit d'un algorithme permettant d'optimiser les performances en écriture en profitant des périodes de faible activité du système, sur un principe similaire à celui du garbage collector qu'on retrouve dans certains langages de programmation.
Pendant les périodes d'inactivité, le SSD réorganise les données de façon à optimiser les écritures futures. Comme nous l'avons vu plus haut, les SSD sont plus performants en écriture séquentielle qu'en écriture aléatoire. Pour optimiser les performances, il faut donc faire en sorte qu'un maximum d'opérations se fasse de manière séquentielle. Ceci peut être fait en profitant de l'état effaçable des pages : lorsque l'activité est faible, le contrôleur va déplacer les données sur le SSD, pour remplacer les pages effaçables des blocs contenant des pages programmées par des pages programmées issues d'autres blocs, augmentant ainsi le nombre de blocs ne contenant que des pages vierges. Ce procédé est en fait relativement proche de ce que fait un logiciel de défragmentation, mais ce fait au niveau physique, niveau auquel aucun logiciel ne peut intervenir sur un SSD, la structure physique n'étant pas exposée au logiciel (contrairement au disque dur, dont la structure physique est identique à la structure logique).
Le garbage collector permet de limiter les pertes de performances dans le temps, même sans utiliser le TRIM, tandis que l'association du TRIM et du garbage collector permet d'obtenir des gains importants, le TRIM permettant au garbage collector d'avoir à sa disposition bien plus de pages effaçables.