Hard du Hard • L'endurance des SSD - partie 2 |
————— 01 Juin 2019
Hard du Hard • L'endurance des SSD - partie 2 |
————— 01 Juin 2019
Les évolutions technologiques sur les SSD ont permis leur déploiement à plus grande échelle et d'obtenir des tarifs raisonnables pour le grand public, au prix d'une réduction de l'endurance brute des disques à mémoire NAND. Mais est-ce que c'est aussi simple que vu dans notre premier épisode ? Est-il possible de corriger ces problèmes par des évolutions des firmwares ? Afin de sortir du brouillard, voici notre deuxième opus du hardos à la dure :
Avant d'aller plus loin sur les paramètres clés de la durée de vie des cellules mémoires, nous allons parler des termes les plus souvent vus et liés à la gestion logicielle de nos SSD. La gestion d'un SSD n'est pas la même qu'un simple disque dur comme déjà vu, donc avant d'améliorer les paramètres physiques il convient d'arranger correctement les données pour limiter les écritures et effacements de blocs inutiles. Pour optimiser ces écritures, il existe plusieurs technologies implémentées directement dans le firmware ou gérées par votre OS.
La première est le Wear-leveling qui permet de fractionner les données en petits morceaux pour remplir l'intégralité des secteurs d'un bloc. L'intérêt est de réduire le nombre de réinitialisations des blocs en réduisant la vitesse à laquelle ils sont considérés comme pleins par le contrôleur et le système. Si elle permet d'obtenir un résultat proche du maximum de la durée de vie théorique du SSD, le revers de médaille est une fragmentation élevée des données à terme. Mais le temps de réponse faible de ces disques rend presque invisible au quotidien cet effet, encore plus sur les disques en NVMe.
Représentation imagée de la gestion des blocs avec/sans le wear-leveling. Lorsque celui-ci est actif, le remplissage des blocs est réparti sur l'ensemble du disque, diminuant le nombre d'opérations réalisées sur certains blocs.
La correction d'erreur (ECC) permet elle de continuer l'utilisation de certaines cellules vieillissantes quand elles sont à la limite d'être morte. Lorsque leur vie arrive à son terme, les cellules sont difficiles à lire - encore plus pour les MLC, TLC et QLC - et la correction d'erreur permet d'outrepasser ce problème au prix d'une légère perte de vitesse. La qualité du contrôleur à son effet aussi, un contrôleur plus avancé sera capable d'utiliser les algorithmes les plus performants et d'utiliser encore plus les cellules usées.
Le Garbage Collector est simple : il récupère les pages programmées des différents blocs et les condense sur des blocs peu ou pas remplis. Cette tâche s'effectue de fond et est entièrement gérée par le contrôleur. En condensant les données - un peu à la manière des logiciels de défragmentation - le nombre de blocs pouvant être réinitialisés et totalement vierge augmente, ce qui permet de réduire la fragmentation que produit le Wear-leveling et favorise l'écriture de données séquentielles. Il n'influence que très peu sur la durée de vie des SSD, mais permet de réduire l'impact négatif des autres algorithmes.
Le dernier est le plus connu, car le plus visible : le TRIM (rogner en anglais). Il va identifier les fichiers considérés comme à effacer et va indiquer au contrôleur que le secteur contient des données vides. Par exemple, une page avec 128 ko de données effaçables et 384 ko de données vides sera vue comme une page vide de 512 ko. Cette technique permet aussi de rendre le Garbage Collector plus efficace en indiquant les pages qui sont à garder sur les blocs et les pages à supprimer sans à avoir à lire ce qui se trouve sur le bloc. Cela permet d'optimiser au mieux les réinitialisations des blocs et réduit leur nombre.
Vue simplifiée de l'impact du TRIM sur le fonctionnement du SSD. Plutôt que d’inscrire dans de nouveaux blocs, le contrôleur va écrire les nouvelles données là ou d'autres sont à effacer physiquement.
Bien entendu, toutes ces procédures deviennent plus performantes quand elles sont couplées à des mémoires caches dédiées et de l'Over-Provisioning sur votre SSD - pensez à revoir le premier épisode. En effet, l'utilisation d'une mémoire DRAM et d'un espace du SSD toujours vierge permet de réaliser l'ensemble de ces opérations sans risquer de saturer le SSD, les données passant d'abord par les différents caches pour être correctement attribuées puis inscrites. Cela explique aussi la grande différence d'endurance entre caches SLC ou pas de cache contre le cache DRAM : celle-ci étant plus rapide et beaucoup plus endurante, elle peut accélérer les actions du contrôleur et permettre un meilleur TRIM par exemple. La gestion des petits fichiers étant la plus importante, un cache plus rapide et endurant aux micro écritures sera toujours mieux qu'une grande capacité lente et vieillissant vite.
Notez aussi que certains fabricants utilisent un cache dynamique - comme les Intel 660p ou les Crucial P1 - en faisant passer sa QLC en pseudo SLC selon la taille du disque occupée. Faire passer de la QLC en pseudo SLC la rend plus endurante et plus rapide - pas autant que de la pure SLC, mais toujours plus que de la TLC - et permet donc d'avoir de meilleures performances, de mieux gérer le TRIM et d'avoir une adaptation des débits selon si vous remplissez beaucoup le disque ou pas. De plus tant que ce n'est pas nécessaire le SSD va laisser les données dans ce mode, rendant plus endurant celui-ci en priorisant une mémoire plus fiable et efficace. Attention, ce cache ne remplace pas le besoin d'une mémoire DRAM en cache primaire pour vraiment booster l'endurance de votre machine - mais voyez-le comme un complément - certains fabricant n'hésitant pas à passer en DRAMless leurs SSD sous couvert de cette technique.
Les SSD font partie de la joyeuse famille des systèmes à semi-conducteurs modernes - c.-à-d. à base de silicium - ce qui veut dire que la magie de la physique associée les rend très sensibles à l'environnement. Au-delà des influences électromagnétiques ou des rayons X, nous allons aborder de vraies perturbations de la vie de tous les jours et non issues d'un laboratoire du CERN : la température. Car oui les transistors n'aiment pas les fluctuations de température et leur point de fusion bas les rend rapidement sensibles à l'augmentation de la chaleur. Vous l'aurez compris du coup, plus votre SSD chauffe, plus celui-ci fini par s'user vite et à perdre sa capacité rapidement.
Le paramètre n'est pas moindre, avec une relation exponentielle pas très sympathique qui rend encore plus impactant l'environnement hardware qui entoure votre stockage. Appelé Acceleration factor for Temperature (AT), cet effet prend comme base une endurance de 1 an par cellule à 40°C. Attention nous parlons de température de stockage, autrement dit lorsque la cellule n'est pas alimentée (PC éteint par exemple), la température lors des opérations de lecture/écriture ayant un impact plus faible. Si nous prenons un an à 40°C, vous montez à 8 ans à 25°C (température ambiante arbitraire) et descendez rapidement à 2 mois environ pour 55°C. L'idéal reste donc de bien refroidir l'intérieur de son PC - ou tout du moins de la zone de stockage - et de penser à l'éteindre quand il ne sert pas pour réduire l'impact sur la durée de vie (quelques degrés gagnés sont plus qu'efficaces). Vous pourrez retrouver un tableau d'équivalence et la formule sur cette page ou directement au JEDEC.
Lors de l'effacement des données, la couche d'oxyde "piège" des petites charge et devient de plus en plus conductrice, au point de ne plus réussir à stocker des données. Cet effet augmente drastiquement avec la température de stockage du SSD.
La rétention est différente, il s'agit du temps de vie d'une donnée stockée sur votre disque (toutes conditions confondues), un paramètre qui se retrouve fréquemment sur les caractéristiques fournies par les fabricants et qui s'exprime en nombre d'années. Même principe, la base étant un an, le paramètre STF associé est la conversion en nombre d'années de la durée de rétention : 16 pour 16 ans, 0,25 pour 3 mois. Simple, mais à retenir pour la fin lorsqu'il faudra se mettre à calculer tout ça. À savoir, plus l'on cherche à contenir longtemps ses données, plus l'endurance diminue sur le long terme ; un SSD qui n'utilise pas d’algorithme - comme le Garbage Collector - pour en arrière-plan faire tourner un peu les données sur le disque perdra donc en ténacité si les données restent plus longtemps sur le bloc. Il faut donc réécrire les données pour assurer que l'endurance soit optimale alors que ces mêmes écritures abîme les transistors, ironique non ?
Nous l'avons vu, les données écrites sur le SSD nécessitent de prendre un maximum de place sur les blocs afin de réduire les possibles trous d'espaces perdus et qui seront donc effacés inutilement à terme. Le fonctionnement par page et blocs des SSD les rendant plus efficaces selon les données écrites, un paramètre appelé Write Amplification Factor - WAF, mais pas comme le chien hein - a été élaboré par le JEDEC pour déterminer l'influence sur l'endurance des SSD des différents types d’utilisation des disques. Lorsque les données sont parfaitement séquentielles, ce facteur est réduit et quand à l'inverse les données sont petites et aléatoires, le facteur grimpe considérablement.
Type d'utilisation (norme JEDEC) | Type de données | Write Amplification |
---|---|---|
Entreprise (serveurs web, workstation) | Majoritairement des données aléatoires, des choses que l'ont retrouve dans les serveurs Web, application Cloud, l'IoT... | ~15 |
Utilisation standard | Le PC gaming/pro standard, un mixte de données séquentielles avec des données aléatoire bien présentent (logiciels, jeux vidéos...), la norme ici quoi | ~4 |
Client (stockage de données) | Typique des utilisations multimédias, beaucoup de fichiers séquentiels (musiques, photos, vidéos...) et quelques données aléatoires pour le système | ~2 |
100% Séquentiel | Gros volume de données séquentielles | ~1 |
Si nous vous avons parlé du TRIM et du Garbage Collector juste avant, vous comprenez maintenant que ce n'est pas pour rien. La réorganisation des données du SSD en les rendant plus séquentielles permet de réduire le WAF pour booster l'endurance. Nous avons donc d'une pierre deux coups : non seulement on améliore les performances de notre stockage, mais en plus on garantit une durée de vie plus importante. Étant donné que le Garbage Collector est influencé par la qualité du contrôleur et de sa puissance de calcul, pour de mêmes puces NAND on peut avoir des variations énormes d'endurance avec différents contrôleurs et firmware.
Et alors au final, c'est bien joli, une tonne de paramètres blablabla.. Mais il faut surtout pouvoir s'y retrouver. Car au-delà de la durée de vie brute et physique, il faut donc compter sur l’environnement et l'utilisation que l'on fait de notre disque. Car s'ils sont fortement impactant, un SSD avec un contrôleur efficace et qui compense comme il faut sera plus intéressant qu'un modèle entrée de gamme qui va vite perdre ses informations. Trêve de bavardages, sortez vos calculatrices ou tableurs préférés et gardez en tête la formule suivante (pour commencer) :
Pour mieux illustrer nos propos, nous allons comparer deux SSD de deux fabricants différents : le Kingston KC1000, un disque NVMe avec 240 Go de MLC et un disque Samsung EVO 860 avec 250 Go en TLC 3D. Le premier est donné avec une endurance en stockage max de 300 To avec un WAF de 2, tandis que le Samsung est donné pour 150 To d'endurance sans WAF donné, par défaut nous donnerons le même que le Kingston - les fabricants peuvent cependant jouer avec les chiffres, attention. Si l'emplacement de votre disque SATA est situé dans un endroit plus frais de seulement 5°C par rapport à votre SSD NVMe, l'endurance devient similaire. Et ce résultat n'est pas difficile à obtenir : SSD M.2 sans radiateur, placement proche des flux d'air chaud, température de la pièce... Pareil pour le WAF, un disque utilisé pour monsieur tout le monde et son PC multimédia se verra vivre bien plus longtemps qu'un SSD utilisé pour un développeur informatique qui va multiplier la création de petits fichiers.
Il vaut mieux avoir un dissipateur sur les puces pour diminuer l'influence des températures de fonctionnement ou extérieures sur les disques en M.2. Les SSD en boîtier SATA sont moins sensibles, le boîtier isolant l’influence des températures extérieures et la vitesse plus faible réduisant l’échauffement.
Vous comprenez pourquoi nous vous avons bourré le crâne avec toutes ces influences juste avant et aussi que les performances brutes des SSD n'ont pas grand-chose à voir avec leurs performances réelles. Au final, un SSD TLC vivant sa vie dans de bonnes conditions et avec un contrôleur qui réduit l'impact du WAF sera plus efficace qu'un SSD MLC certes plus endurant physiquement, mais qui reste dans un environnement chaud et qui aura un vieux contrôleur pas très performant. Donc avant de vérifier la tronche des chiffres sur votre disque et de vouloir prendre un modèle ultra endurant sur le papier, pensez à quelques paramètres importants avant tout :
Évitez à tout prix de vouloir investir dans du matériel onéreux si vous ne réglez pas un minimum votre installation, cela ne vous servira à rien. Encore une fois, il vaut mieux un bon SSD TLC avec un contrôleur de qualité, un bon refroidissement et un bon écosystème logiciel qu'un SSD MLC ancienne génération qui certes dispose d'une meilleure endurance physique, mais bouffée par un manque d'optimisation du contrôleur et un circuit prompt à chauffer.
Type de cellule NAND : | ||
Capacité du disque : | ||
Est-ce un SSD DRAMless ? | ||
Température ambiante hors fonctionnement : | ||
Utilisation typique : | ||
En moyenne, vous envoyez sur votre SSD... |
Chiffres estimatifs selon certaines constantes fixées par la république bananière du Comptoir (amplification d'écriture selon les cas, équation d'Arrhenius, durée de rétention de données, cycles P/E ...) et hors défaillances électroniques. Même si ces chiffres s'approchent de la réalité vraie, on garantit pas, hein les gars.
Pour finir, il y a des types de stockages à base de transistors que nous n'avons pas abordés sur ce sujet : les mémoires en 3D XPoint (Intel + Micron, prononcez tridi crosse pwointe), la 4D NAND, la MRAM, l'avenir... La logique vient que ces mémoires ne sont pas (contrairement à ce que le marketing pourrait raconter) des mémoires NAND, ce sont des technologies utilisant des topologies différentes en termes d'architecture. Nous y reviendrons dans un épisode plus détaillé sur le futur du stockage, mais pour faire simple la 3D XPoint est une mémoire où chaque cellule est adressable (comme la DRAM) rendant l'utilisation de cache inutile par exemple, et est capable d'être beaucoup plus dense pour se rapprocher en termes d'espace disque et de tarif des SSD à mémoire NAND. Attention à ne pas confondre avec les mémoires NAND 3D qui sont des mémoires flash classiques sur plusieurs couches. D'autre part, la 3D Xpoint pour stocker ses bits n'utilise pas une charge d'éléctrons dans une grille flottante mais se base sur un changement d'état physique du matériau.
Dans les remplaçants les plus sérieux des mémoires flash classiques, nous retrouvons la 3D XPoint, une technologie hybride entre DRAM et NAND produite par Intel
Avec l'approche du seuil d'efficacité de nos transistors classiques MOS et du Quantum Effect - stade pour lequel l'état d'un transistor devient ambigu - qui devient de plus en plus présent, les fabricants regardent d'autres technologies pour concevoir ou modifier la structure des composants actuels. L'un des formats les plus aboutis à présent est la MRAM, une mémoire permanente dont les timings sont proches voir plus faible que la DRAM et l'endurance plus élevée que la NAND. Certes aujourd'hui la capacité est limitée et le tarif élevé, mais il s'agit d'un des projets les plus sérieux sur le long terme. Il y a bien d'autres alternatives dans les laboratoires, mais pour l'instant il faudra se montrer patient...
Vous pouvez trouver la partie 1 par ici :