Citation :
C'est véritablement le principal grief porté à l'encontre de la technologie SSD. Il y a deux raisons à la durée de vie limitée de la mémoire flash. La première vient de l'oxyde utilisé pour séparer les grilles. Comme nous l'avons vu, les électrons doivent traverser cet oxyde pour passer dans la grille flottante ou en sortir. De temps en temps, il peut arriver que des électrons restent captifs de cet oxyde, et soient relâchés plus tard, ce qui peut perturber les écritures et la lecture. La deuxième vient de la structure de la grille flottante elle-même : avec le temps, les tensions élevées peuvent l'endommager, ce qui à terme va la rendre inutilisable. On considère généralement qu'une cellule de mémoire SLC peut subir environ 100.000 écritures avant destruction, et que la mémoire MLC est moins endurante : environ 10.000 écritures. Un nouveau type de NAND plus endurant est annoncé par Micron pour le marché professionnel: ces puces "endurante" en 34 nm sont annoncées supporter 30 000 cycles d’écritures pour une puce de 32 Gb de NAND MLC et 300 000 cycles d’écritures pour une puce de 16 Gb SLC. Cette annonce nous montre que les cycles des NAND normales sont limitées à 5000 pour les MLC. Cela peut sembler faire face au chiffre de 10 000 connu de tous mais il faut voir que leurs puces 50 nm étaient annoncées à 1500 cycles. Ces puces supportent les spécifications ONFI 2.1 et peuvent atteindre un débit de 200 Mo/s. La production de masse est prévue pour début 2010 si tout va bien. Le problème de durée de vie reste plus théorique qu'autre chose. La mémoire flash est utilisé depuis une quinzaine d'année dans le monde de l'entreprise et aucun problème n'est à déplorer. Preuve en est de ces entreprises qui se tournent vers la NAND et des secteurs sensibles comme la Défense avec les nouveaux F/A-18 Hornet qui seront équipés de SSD. Les solutions: La majorité des dispositifs utilisant de la mémoire flash disposent d'un contrôleur interne, qui va gérer les accès à la mémoire. Il est utilisé pour les transferts de données, mais aussi pour vérifier que le dispositif fonctionne bien. La puissance nécessaire peut être importante. Indilinx ou Samsung utilisent par exemple un processeur de type ARM pour cet usage (Advanced Risc Machine est une architecture de processeurs 32 bits de type RISC, c'est à dire à jeu d'instructions réduit, conçue par IBM et très utilisée dans les ordinateurs de poche, smartphones et appareils embarqués). Ce contrôleur vérifie automatiquement les écritures en relisant la dernière donnée écrite. S'il lui est impossible de la relire, le bloc complet est déterminé comme défectueux et l'écriture est relancée sur un autre bloc. Donc sauf si la mémoire flash est entièrement utilisée ou défectueuse, les données seront écrites sur le support. La deuxième vérification s'effectue aussi durant l'écriture, avec la correction d'erreur ECC (Error Correcting Code qui est un code correcteur, technique de codage basée sur la redondance. Elle est destinée à corriger les erreurs de transmission d'une information). Toutes les puces de mémoire flash disposent de bits de contrôle, qui servent à la vérification des données écrites. En général, le contrôle ECC permet de corriger les erreurs de 1 bit et de détecter les erreurs sur 2 bits. Dans ce deuxième cas, le bloc est indiqué comme défectueux et l'écriture relancée sur un autre bloc. Une petite explication sur le fonctionnement. On dispose de 3 octets d'ECC par bloc de 512 octets (donc 24 bits). À chaque écriture, le code ECC est calculé et écrit dans la zone inutilisée des blocs de données. Pendant la relecture, le code ECC des données est calculé et comparé au code ECC de départ (celui calculé à l'écriture). Si les deux codes sont identiques, le travail continue. Le premier cas intervient s'il y a une erreur sur 1 bit, à ce moment-là c'est corrigé et l'écriture continue. Enfin, il se peut qu'il y ait une erreur de 2 bits, ou une erreur dans le code ECC lui-même. Ces deux cas spécifiques ne sont pas corrigibles, et l'écriture est relancée sur un autre bloc. Les constructeurs se sont penchés sur le 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. La première technique, la plus simple, est d'utiliser un erase pool. C'est la technique des blocs de réserve. Une partie de la mémoire est réservée, et inaccessible à l'utilisateur. Cette mémoire cachée peut être utilisée par le contrôleur pour remplacer des blocs défectueux sans altérer la capacité du support, et sans que l'utilisateur s'en rende compte. La quantité de mémoire réservée varie, entre 1 et 5 % selon le support et le type de mémoire (on a une plus grande réserve quand on utilise de la MLC). Cette technique n'empêche pas réellement l'usure du support, mais ralentit son impact réel. C'est pour cela que l'on trouve des SSD de capacité de 30, 60, 120, 250 Go au lieu des classiques 32, 64, 128 et 256 Go, la différence étant utilisée dans des blocs de réserve qui correspondent à environ 5% de la capacité totale du SSD. Il existe d'autres techniques bien plus évoluées pour limiter l'usure du support: Dynamic Wear Leveling et Static Wear Leveling - Le Dynamic Wear Leveling le Dynamic Wear Leveling est rarement utilisé car peu adaptée à un usage informatique. Schématiquement, 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. On considère que le Dynamic Wear Leveling perd de son efficacité dès que l'espace libre descend sous les 25 % et est inutile avec moins de 10 % d'espace libre. - Le Static Wear Leveling C'est une technique assez 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. 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. Avec une protection statique, la situation est toute autre 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. Le MTBF (Mean time between failures soit le temps moyen avant des échecs) des SSD est généralement annoncé entre 1.000.000 et 4.000.000 d'heures. Même si le chiffre paraît fantaisistes, cela montre que les constructeurs ont confiance en leurs produits car dans la pratique, l'utilisation courante n'usera pas prématurément le SSD. De plus, les pannes sur les supports de stockage viennent généralement d'une défaillance mécanique, et les SSD étant dépourvus de toutes pièces en mouvement, cela les protège évidemment de ce type de panne. Il sera préférable néanmoins de se référer à la durée de garantie qui devra au moins être égale à 2 ans, ou idéalement 5 ans, afin de se prémunir contre le risque de voir son SSD hors service. 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. Avec la pire estimation (en écrivant en permanence à la vitesse maximale du support), le SSD de Samsung a une durée de vie de 4 ans environ et celui de Transcend de 2,6 ans. Mais ce sont des cas théoriques, en pratique on peut estimer la durée de vie minimale au double ou au triple de ces valeurs. Notons que la capacité augmente la durée de vie, étant donné qu'on dispose de plus de blocs pour distribuer les écritures. Optimisation des SSD: - Mise à jour du firmware: Afin d'améliorer les performances de son SSD, l'une des solutions possible est la mise à jour du Firmware, Micro-programme logé sur de la mémoire morte indispensable à son fonctionnement. Le "Flash" du firmware qui consiste en une mise à jour de celui-ci peut régler des bugs mais aussi ajouter de nouvelles fonctionnalités ou encore améliorer les performances. Attention cependant, dans l'informatique tout n'est pas forcément rose et une mise à jour comporte son lot de risques. Vous pouvez avoir de nouveaux bugs après le flash ou des problèmes durant la mise à jour du firmware. De même, en informatique, une mise à jour peut parfois entraîner des pertes de performances. Veillez donc à ne flasher le SSD que si vous en avez un besoin substantiel car si tout marche déjà bien et que vous n'en avez pas besoin, abstenez-vous histoire de ne pas tenter le diable. Quoi qu'il en soit, renseignez vous au préalable sur les retours concernants le firmware en question en consultant divers forums. ATTENTION Il est à noter qu'un flashage de firmware peut entraîner une remise à zéro des données présentes sur celui-ci, comme c'est le cas chez OCZ.
|