Les disques SSD, la fin des disques durs

La gestion de l'usure

Bien évidemment, les constructeurs se sont penchés sur ce problème de la durée de vie, et ils ont implémenté plusieurs techniques pour limiter l’usure de la mémoire NAND, c’est ce qu’on appelle le Wear Leveling, ou gestion de l'usure.

Dans une clé USB ou un périphérique de stockage comme une carte mémoire le fonctionnement est simple : le contrôleur va intercepter les écritures et les distribuer aléatoirement sur des blocs situés dans l’espace libre. Comme les écritures ne seront plus concentrées sur le même bloc physique, on ne risque pas de détruire un bloc en particulier si un programme écrit en permanence sur le même fichier. Le problème de cette technique est simple : si l’espace libre est trop faible, les écritures vont se faire fréquemment sur les mêmes blocs, qui vont s’user et donc devenir inutilisables.

Le Static Wear Leveling

La technique utilisée est bien plus complexe. Le contrôleur enregistre le nombre d’écritures sur chaque bloc, et la dernière date d’utilisation de celui-ci. Il est donc capable de déterminer la fréquence d’utilisation d’un bloc et son usure. Si on doit écrire une donnée, il va d’abord chercher le bloc qui a subi le moins de cycles. S’il est libre, le contrôleur l’utilise. Par contre, si le bloc contient des données, il va vérifier la dernière fois qu’il a été écrit et déterminer si c’est une donnée statique (pas d’écriture depuis x temps) ou bien dynamique (le bloc a été écrit récemment).

Si c’est une donnée statique, il va la déplacer vers un bloc usé et mettre la nouvelle donnée à sa place. Si c’est une donnée dynamique qui se trouve sur le bloc, il va en chercher un autre. L’intérêt de la technique consiste à placer les données qui ne sont pas souvent écrites sur des blocs usés et de placer les données souvent modifiées sur des blocs qui ont subi peu d’écriture. Cette technologie permet de garder une usure constante sur le support, et de ce fait d’augmenter la durée de vie globale.

Une explication en image

Voici deux graphiques qui montrent l’usure schématique d’un SSD après un usage simulé de quelques mois (le même nombre de cycles a été effectué dans les deux cas). Ces graphiques sont théoriques, mais se rapprochent assez de ce qui se passe en pratique pour être intéressants à analyser.

Ce graphique montre un SSD sans protection après un usage simulé de quelques mois. On remarque qu’un certain nombre de blocs ont été utilisés énormément et qu’une grande partie des blocs ont été peu écrits. Des pics d’usures sont présents, et peuvent potentiellement empêcher l’usage du support. C’est une estimation, car les constructeurs ne permettent pas de mesurer l’usure d’un support de façon complète : dans le meilleur des cas, on récupère l'usure de la cellule la moins usée, celle de la cellule plus usée et l'usure moyenne.

Sur ce graphique, on remarque que l’usure moyenne est un peu plus élevée, mais qu’il n’y a pas un seul pic d’usure. Comme on écrit souvent sur un disque, les données vont tourner sur tout le support, ce qui explique qu’on a une vague à la place d’une ligne droite. Si à un instant T, une donnée statique est sur le bloc le plus usé, à l’instant T+10, ce bloc peut devenir le moins usé, et donc les données sont en rotation sur l’entièreté du support. On a une moyenne d’utilisation faible, mais pas totalement homogène.

Conclusion sur la durée de vie

Au final, selon les constructeurs, avec les blocs de réserve et la technique du Static Wear Leveling, la durée de vie des SSD est supérieure à celle des disques durs. Point intéressant, la durée de vie augmente avec la capacité, étant donné qu’on dispose de plus de blocs pour distribuer les écritures.

De plus, la majorité des pannes sur les supports de stockage vient en général d’une défaillance mécanique, et les SSD sont dépourvus de pièces en mouvement, ce qui les protège évidemment de ce type de panne.