Hard du Hard • L'endurance des SSD - partie 1 |
————— 15 Janvier 2019
Hard du Hard • L'endurance des SSD - partie 1 |
————— 15 Janvier 2019
Le stockage est la mémoire de notre PC et est souvent délaissé pour jouer au frimeur avec une grosse configuration gamer. Mais ces derniers temps, la baisse des prix de la mémoire flash permet même aux moins fortunés d'acquérir un joli SSD pour ne plus avoir un démarrage asthmatique. Mais attention à votre choix de matos si vous voulez éviter tout risque de maladie d’Alzheimer sur votre bibliothèque Steam :
Ou tout du moins une variante particulière des transistors à technologie MOS. Pour faire simple, imaginez qu'un transistor est à l'électricité ce qu'un robinet est à l'eau : il permet selon la force que l'on exerce sur une grille de commande de faire passer plus ou moins d'électrons. Dans notre cas, le transistor à grille flottante est particulier : il peut stocker la tension à laquelle cette grille s'ouvre. Lorsque l'on applique une tension Vt1 sur cette grille, il faudra en mettre une plus élevée Vt2 pour la rouvrir ; de ce fait, si vous appliquez une tension Vc située entre les deux vous obtenez deux résultats possibles :
Grâce à cette astuce, nous pouvons donc obtenir des bits pour une longue durée et sans forcément alimenter H24 nos transistors, magique non ? Pas tout à fait, car pour réinitialiser notre joli transistor, il va falloir le faire fonctionner dans l'autre sens un court instant avec une certaine puissance : ce procédé use le transistor ce qui lui donne un nombre maximum de possibilités de réécriture. C'est par ce même procédé que la durée de vie de notre SSD diminue à la longue.
Ci-dessus la procédure pour "réinitialiser" un transistor à grille flottante. Le fait de faire circuler le courant entre le drain et la grille (gate sur ce dessin) abîme petit à petit le fonctionnement de nos cellules FLASH.
Il est bon de savoir que cette structure amène un risque sur l'endurance avec l'amélioration de la finesse de gravure. En effet plus le transistor devient petit, plus les couches isolantes entre la grille flottante sont fine, réduisant l'effet capacitif et la rétention des données sur le long terme. Cela amène à un épuisement plus rapide de l'effet mémoire, une situation que personne ne cherche à voir arriver. Cependant, augmenter la finesse permet de gagner en densité et en capacité de stockage tout en permettant d’inclure des unités de gestion des cellules plus précises, ce qui atténue un peu l'impact sur la durée de vie : tension de claquage, limitation des pics de tension, protection contre les surcharges...
Mais de nos jours, nous entendons surtout parler de puces MLC, TLC et voire même de puces QLC. Ces puces contiennent des transistors qui n'ont pas 2 niveaux de tension, mais 2n niveaux augmentant de fait le nombre de possibilités. Pour ce faire, il suffit de mesurer précisément le courant qui circule dans la grille plutôt que de dire si elle est chargée ou non. En mettant en place des paliers de tension différents, nous pouvons ainsi fournir des cellules mémoires utilisant moins de transistors pour un même nombre de bit. Pour mesurer, écrire ou écraser les transistors à ces différents paliers, il suffit d'envoyer des impulsions de tension à des niveaux différents jusqu'à ce que l'on mesure une excitation en courant du transistor et on regarde entre quelles tensions de seuil celui-ci se trouve.
La figure ci-dessus montre que dans la réalité, les cellules ne s'activent pas à des niveaux précis dus aux écarts entre chaque transistor. Il faut tester plusieurs niveaux de tension afin de retrouver/écrire l'état de chaque cellule
Cependant, augmenter le nombre d'états possibles par transistors amène à deux gros problèmes : cela entraîne un risque d'erreur de lecture qui est comblé par une augmentation du nombre de tests de tension effectués (ce qui réduit la vitesse de fonctionnement à chaque fois) et le transistor ayant plus d'états possibles est amené à varier plus souvent, ce qui entraîne une fatigue supplémentaire de celui-ci - ainsi qu'une probabilité d'être écrasé souvent plus forte. C'est par cet enchaînement purement mathématique que de nombreux hardos tombent dans le piège de penser qu'une mémoire avec plus de niveaux sera moins durable ; d'autres paramètres rentrent en jeu pour vraiment qualifier de plus faible une mémoire TLC par rapport à une MLC comme la construction en 3D qui est moins agressive lors de l'opération de programmation/écrasement des données.
Pour qu'un SSD puisse fonctionner de manière proche des disques durs à l'ancienne, il faut reproduire une architecture propre dans la consultation des données. Pour ce faire, les SSD divisent leur structure par des "blocs" de transistors ordonnés sous forme de grille avec pour lignes des "pages". Ces blocs peuvent contenir 32 à 256 pages de données de 2 ko à 8 ko chacune (soit 64 ko à 1 Mo par bloc). Notion importante à comprendre : quand vous écrivez sur le SSD, les données sont écrites par pages entières uniquement (et non bit par bit) et ne peuvent être écrasées que par bloc entier uniquement. C'est là que l'endurance brute est quantifiable : les fabricants transmettent souvent la durée de vie des blocs via leur nombre de cycles programmation/écrasement moyen. Pour mieux comprendre sans trop détailler ici le fonctionnement des systèmes de blocs, nous vous conseillons ce site simple (malheureusement en anglais).
Type de memoire nand | nb de niveau de tension | nb de cylces moyen |
---|---|---|
SLC | 2 | 100 000 |
MLC | 4 |
1000 à 3000 (haute capacité, SSD modernes) 5000 à 10 000 (capacité moyenne) |
TLC | 8 | 1000 en 2D, 1000 à 3000 en 3D |
QLC | 16 | 100 à 1000 |
PLC | 32 | ~100 à 500 (à confirmer) |
Tableau résumant les performances brutes de chaque technologie. Comme vous pouvez le voir, les différences entre puces MLC et TLC sont assez faibles de nos jours, voire nulles.
Du coup, si vous êtes malins - et nous n'avons aucun doute là-dessus - vous comprendrez que la manière dont les blocs sont gérés peut influencer leur endurance. Des blocs avec des pages de petite taille pourront être mieux optimisés en termes d'espace et ont une probabilité d'être réécrits moins fréquente, en échange d'une plus grande fragmentation des données à terme diminuant les performances en lecture/écriture. À l'inverse, des pages et blocs plus grands favorisent les performances, mais amènent à une plus grande probabilité de devoir déplacer les données pour réinitialiser le bloc, augmentant l'utilisation de chaque bloc : ce phénomène est le write amplification - amplification d'écriture en langue de Molière - que nous détaillerons lors de notre deuxième partie.
Dernier point du côté hard du hard sur l'endurance des SSD - promis nous vous laisserons le cerveau tranquille après - est de "rajouter" une mémoire supplémentaire au contrôleur pour mieux gérer les changements fréquents et/ou rapides de données sur le SSD. L'idéal en matière de performance et de durabilité reste l'utilisation de mémoire DRAM (souvent de la DDR3) pouvant subir une quantité illimitée d'opérations comparée à la mémoire NAND. Elle peut encaisser les opérations comme l'adressage et les petites écritures plus rapidement et éviter d'user des cellules NAND inutilement, quelques centaine de Mo suffisant à gagner en performances et en durabilité. Pour les SSD moins chers nous avons souvent le droit à de la NAND dédiée, qui est certes moins coûteuse mais moins performante et s'usera plus rapidement sur le long terme.
Sur les SSD de bonne facture, il est fréquent de trouver de la mémoire SDRAM pour gérer les adressages et transferts de fichier (ici la puce en haut à gauche pour un Samsung 850 pro)
Si vous voyez souvent des capacités différentes entre les les SSD et le volume total de mémoire NAND présente - par exemple 500 Go contre 512 Go - c'est qu'il s'agit d'une version encore plus poussée de ce "buffer" appelé over-provisioning qui permet de dédier plusieurs gigots de votre SSD - le standard est à 7% - pour gérer les transferts d'écriture. Grâce à ce cache de grande taille, les cellules vraiment dédiées au stockage ont un risque plus faible de claquer rapidement, elles sont donc plus fiables. Le sacrifice d'espace de nos jours est tout à fait abordable, avec un tarif au gigot qui a énormément baissé ces derniers mois. Mais ces fonctionnalités débordent vers les optimisations liées aux contrôleurs de mémoire NAND, ce qui sera pour le prochain épisode !
Vous pouvez trouver la partie 2 par ici :
Un poil avant ?Vous voulez une Radeon VII, Il ne faudra à priori pas traîner ! | Un peu plus tard ...Bon Plan • What Remains of Edith Finch gratuit chez Epic Games |