En coulisse

Le fonctionnement d’un disque SSD est une affaire complexe

Kevin Hofer
7/5/2018

Les SSD ont de plus en plus tendance à remplacer les disques durs en tant que mémoire de masse principale. Leur rapidité et leur mobilité offrent des avantages indéniables. Les données sont lues et écrites électriquement, et non mécaniquement. Comment fonctionnent-ils?

Chaque année voit apparaître sa nouvelle génération de processeurs plus que prometteuse. L’utilisateur lambda ne s’en rend pas vraiment compte, mais il n’en va pas de même des disques SSD. Le passage d’un HDD à un SSD se remarque, peu importe son utilisation.

Avant, j’allumais mon ordinateur et j’allais me chercher un café le temps qu’il démarre... Je suis tombé des nues devant un notebook doté d’un disque SSD. C’était comme de passer d’un train régional à un TGV. Ou de la marche à la course. Bref, vous voyez le genre.

Mais qu’est-ce qui rend les disques SSD si rapides? Contrairement aux disques durs, ils n’ont ni tête de lecture, ni tête d’écriture, ni plateaux rotatifs. Chaque bloc est accessible à la même vitesse. Peu importe qu’ils se trouvent l’un à côté de l’autre ou sur un autre module. Les défragmenter n’a donc aucun sens. Les temps d’accès sont plus courts, et les vitesses de lecture et d’écriture, plus élevées.

J’ai eu l’idée de me pencher sur le fonctionnement des disques SSD lors de la rédaction de mon article consacré à l’histoire du disque dur. J’ai tout d’abord voulu écrire sur leur durée de vie. En faisant mes recherches, j’ai commencé à m’énerver. On lit partout que la mémoire flash NAND (la technologie de stockage employée sur les disques SSD) s’use avec le temps, mais personne ne nous explique exactement comment. Quels sont les processus physiques qui s’opèrent, bon sang?

J’ai donc décidé d’y dédier un article. Une fois que vous comprendrez comment fonctionnent ces disques, leur usure deviendra logique. Et vous pourrez aussi élucider certaines questions fréquentes jusqu’alors restées sans réponse. Pourquoi les SSD ralentissent lorsqu’ils ne disposent plus de beaucoup d’espace de stockage, par exemple.

Petit avertissement avant de nous plonger au cœur du sujet: certains passages sont très techniques. Un disque «solid state drive» se compose d’une platine avec une interface (SATA, PCIe, SATA-Express ou autre), d’une mémoire flash NAND, de mémoire cache selon le disque, ainsi que d’un contrôleur sur lequel se trouve le firmware. Il est piloté par le biais d’un protocole (AHCI ou NVMe). Commençons par la mémoire flash NAND.

Qu’est-ce que la mémoire flash NAND?

Contrairement aux disques durs, la lecture et l’écriture électroniques des données se font sur la mémoire flash NAND. Celle-ci se distingue par sa capacité de stockage élevée et sa bonne protection des données. Elle fait ce que les plateaux font sur un disque dur: elle sauvegarde les données de manière durable en créant une tension.

Les lignes de bit et les lignes de mot

Un bloc NAND se compose de lignes de bit et de lignes de mot. Les lignes de bit sont parallèles. Elles se composent de silicium et sont séparées par une technique nommée «shallow trench isolation» (STI). Les lignes de mot, composées de polysilicium, sont perpendiculaires aux lignes de bit. La grille de contrôle y est posée. La cellule mémoire se trouve à l’endroit où la ligne de bit et la ligne de mot se recoupent.

Les cellules mémoire individuelles sont ce qu’on appelle des «Floating Gate Metal Oxide Semiconductor Field Effect Transistors» (FGMOS), autrement dit des transistors à grille flottante à effet de champ et structure métal-oxyde-semiconducteur. La grille flottante se situe entre la grille de contrôle et la ligne de bit. Il s’agit d’une couche semi-conductrice électriquement isolée qui stocke la charge et flotte dans la couche d’isolation. Les électrons qui se trouvent dans la grille flottante ne se déchargent pas avant deux à dix ans, même lorsqu’ils ne sont pas sous tension.

Examinons de plus près l’interface entre la ligne de bit et la ligne de mot, le long de la ligne de mot pour être précis. La grille de contrôle entoure la grille flottante. Les deux grilles sont séparées par une couche oxyde-nitrure-oxyde (ONO). Sous la grille flottante se trouvent l’oxyde tunnel (non conducteur), puis la ligne de bit avec la source et le drain.

Pages, blocs, planes et «dies»

Les cellules mémoires d’une ligne de mots sont rassemblées dans une page. Les pages sont les plus petites unités pouvant être lues ou écrites sur un disque SSD. Selon le processus de fabrication ou le type de mémoire flash, les pages peuvent être de 2 Ko, 4 Ko, 8 Ko ou 16 Ko.

Plusieurs pages sont rassemblées en blocs. Chaque bloc comprend entre 128 et 256 pages. Un bloc est la plus petite unité qui puisse être effacée. Techniquement, l’effacement pourrait aussi avoir lieu au niveau de la page, mais la tension nécessaire serait si intense pour les cellules mémoire que la durée de vie s’en trouverait davantage raccourcie. Je vous fournis de plus amples informations sur l’utilisation des cellules mémoire ci-dessous.

Les blocs, quant à eux, sont généralement répartis sur deux plans par module flash (aussi appelé «dies»). Les modules viennent se reposer sur la platine. Ils y sont reliés au contrôleur par quatre à dix canaux.

Petit aparté: le ralentissement des SSD

Comme je viens de le mentionner, l’effacement des données n’est possible qu’au niveau du bloc. Afin d’actualiser une page, le contenu du bloc, sur lequel se trouve la page, doit être copié. Le bloc doit ensuite être effacé, et le contenu de l’ancien bloc sauvegardé sur un nouveau bloc avec la page actualisée. Les données du SSD peuvent être lues et écrites très rapidement, mais leur effacement et leur réécriture se font bien plus lentement (beaucoup plus rapidement que sur les disques durs, tout de même). Lorsque le SSD est presque plein et qu’aucune page n’est libre, il doit d’abord chercher des blocs qui peuvent être effacés. Les SSD peuvent donc ralentir au fur et à mesure qu’ils se remplissent. Les contrôleurs actuels sont dotés de plusieurs mécanismes qui contrent ce phénomène. Nous aborderons le fonctionnement du contrôleur un peu plus tard.

Comment les données sont-elles lues et enregistrées?

Pour simplifier, les données d’une mémoire flash sont enregistrées lorsque les électrons sont posés sur la grille flottante ou lorsqu’ils en sont ôtés. Les bits sont lus à l’aide de la tension. Lorsque des électrons sont présents sur la grille flottante, le bit a une valeur de 0. Lorsqu’il n’y en a pas, le bit a une valeur de 1. Les cellules mémoire sont considérées comme vides ou effacées lorsqu’elles ont une valeur de 1 et comme écrites lorsqu’elles ont une valeur de 0.

Examinons tout ça de plus près et commençons par la lecture.

La lecture

Lors de la lecture, l’élément clef est la charge négative de la grille flottante (lorsque les électrons sont présents dans la grille flottante), qui s’oppose à la tension positive se propageant à travers la grille de contrôle. Cela veut dire qu’à une valeur de bit 0, davantage de tension est nécessaire afin de dépasser la valeur limite et de permettre au courant de passer à travers la grille de contrôle. Cette tension se nomme VT0. La tension nécessaire à une valeur de bit 1, lorsque le courant passe à travers la grille de contrôle, est nommée VT1. Afin de lire la valeur, la tension doit se situer entre VT0 et VT1 (on la nomme VR), elle doit être envoyée à travers la grille de contrôle, et le courant doit être mesuré. Si le courant passe à travers la grille de contrôle, on obtient une valeur de bit 1. Si ce n’est pas le cas, on obtient une valeur de bit 0. C’est la manière dont fonctionnent les NAND SLC. Dans les NAND MLC ou TLC, divers VR doivent être mesurés. Je vous fournis de plus amples informations sur les SLC, les MLC et les TLC dans les paragraphes correspondants.

L’effacement

Lors de l’effacement, les électrons sont ôtés de la grille flottante, et la valeur de bit revient à une valeur normale de 1. Il n’y a aucun contact électrique entre les électrons et la grille flottante. Comment peuvent-ils donc en être ôtés? Ils doivent passer à travers la couche oxyde, qui sépare la grille flottante de la ligne de bit. C’est à ce moment qu’entre en jeu l’effet tunnel. Une tension négative élevée est exercée sur la source et la grille de contrôle. Les électrons sont attirés vers la grille flottante et transférés sur la source par l’effet tunnel.

L’écriture et la programmation

Lors de l’écriture, les électrons sont transférés à la grille flottante, et une valeur de bit 0 est obtenue. Lorsqu’une tension positive élevée est exercée sur la grille de contrôle et qu’une autre est exercée simultanément sur le drain, les électrons peuvent passer à travers la couche oxyde et atteindre la grille flottante. Ce processus se nomme l’injection d’électrons chauds.

Les mémoires SLC, MLC et TLC

Une cellule mémoire n’a généralement que deux états: chargée ou non chargée, c’est-à-dire écrite (programmée) ou supprimée. Cette information mesure un bit. Le stockage de plusieurs états peut augmenter la densité de mémoire. Cela peut se faire à divers niveaux de tension. Pour la cellule mono-niveau (SLC), un seul bit est stocké par cellule. Les cellules multi-niveaux (MLC) enregistrent deux bits par cellule mémoire et les cellules triple niveau trois bits par cellule. Le choix de la cellule a une influence sur la vitesse de lecture et d’écriture, ainsi que la durabilité du disque.

La mémoire SLC

Étant donné qu’un seul bit est stocké par cellule mémoire, le taux d’échec est très faible. Seuls deux niveaux de tensions sont nécessaires à la lecture et à l’écriture, ce qui augmente la vitesse et diminue la consommation d’électricité. On considère que les mémoires flash SLC ont une durée de vie de 100 000 cycles d’écriture par bloc.

La mémoire MLC

La densité de mémoire élevée se traduit par un nombre plus restreint de cellules mémoire et davantage de capacité. Les mémoires flash MLC coûtent moins cher à fabriquer, mais la lecture et l’écriture prennent plus de temps, et leur durée de vie est plus faible. Les cellules mémoire doivent pouvoir supporter quatre niveaux de tension, et le contrôleur doit pouvoir les lire. Par conséquent, les cellules mémoire s’usent plus rapidement et les processus de lecture et d’écriture prennent plus de temps, car ils sont plus complexes. En revanche, cette complexité diminue le nombre d’erreurs. Les contrôleurs doivent être plus performants. On considère que les mémoires flash MLC ont une durée de vie de 3000 cycles d’écriture par bloc.

La mémoire TLC

La mémoire flash TLC se distingue plus nettement des mémoires SLC et MLC. Sa fabrication coûte encore moins cher que la MLC. Les cellules mémoire doivent supporter huit niveaux de tension. La lecture prend environ quatre fois plus de temps, et l’écriture six fois plus que sur une mémoire SLC. On parle d’une durée de vie de 1000 cycles d’écriture par bloc.

Autre petit aparté: la durée de vie d’un disque SSD

Comme je l’ai déjà mentionné, l’écriture de données n’est possible que sur une cellule mémoire vide ou effacée. L’écrasement de données à proprement parler est impossible. Les données doivent d’abord être effacées puis réécrites pour être modifiées. On mesure donc la durée de vie d’un disque SSD en cycles d’écriture.

Durant l’écriture, la grille flottante est soumise à une tension élevée. C’est une étape nécessaire afin d’assurer le passage du courant à travers la couche oxyde. La couche d’isolation est endommagée à chaque accès d’écriture; elle finit par ne plus fonctionner correctement. Les données ne peuvent plus être stockées de manière fiable, et la cellule mémoire devient inutilisable. C’est aussi la raison pour laquelle les mémoires flash MLC et TLC durent moins longtemps que les mémoires SLC. L’écriture nécessite une tension plus élevée, ce qui endommage davantage la couche oxyde. De plus, les différences de niveau de tension sont moindres lors de la lecture. Lorsque la couche oxyde n’isole plus correctement, la lecture n’est plus garantie.

De nombreux tests et articles ont été consacrés à la durée de vie des disques SDD et à leurs cycles d’écriture et d’effacement. Je ne vais pas rentrer dans les détails, mais la plupart des tests montrent que les disques SSD durent souvent bien plus longtemps que ce qu’indique le fabricant. Ainsi, un Samsung 850 Pro de 250 Go a obtenu des résultats étonnants au test de résistance du magazine c’t (en allemand). En tout, 9,1 pétaoctets ont été écrits sur les SSD, ce qui correspond à plus de 620 années de tâches quotidiennes dans un bureau.

Les contrôleurs et le processeur

On l’a vu, la mémoire flash des disques SSD présente quelques avantages par rapport aux disques durs. Comme je l’ai décrit ci-dessous, les disques SSD requièrent toutefois des mécanismes de contrôle très complexes afin de pouvoir fonctionner. C’est là qu’interviennent les contrôleurs et les firmwares. Les contrôleurs sont souvent dotés d’une mémoire vive intégrée qui les aide lors du traitement des données. De nombreux disques sont également équipés d’un cache qui agit comme tampon. Le contrôleur régit des processus tels que la collecte des déchets ou la gestion de l’usure, dont les principaux figurent ci-dessous. Je ne peux malheureusement pas aller plus en détail sur les fonctions du contrôleur. Comme les disques SSD se démarquent principalement par les fonctions de leur contrôleur et de leur firmware, les fabricants sont assez avares en informations.

L’amplification des écritures

Les SSD écrivent des données sur des pages mais effacent des blocs. Les écritures sont donc toujours plus nombreuses que ce que requiert une actualisation. Par exemple, lorsque je modifie un fichier de 16 ko, le bloc où se trouvent ces 16 ko doit être entièrement effacé et réécrit. Selon le nombre de pages par bloc et la taille des pages, un nombre bien plus grand de données doit être écrit que les 16 ko en question. L’amplification des écritures décrit la proportion des données à écrire par rapport aux données réelles. La collecte des déchets et le TRIM visent à contrer cet effet.

La collecte des déchets (garbage collection)

La collecte des déchets est un processus d’arrière-plan qui sert à contrer les ralentissements du disque SSD lorsque la capacité de mémoire diminue. Les blocs partiels sont copiés et assemblés à des blocs neufs et complets. Les anciens blocs sont ensuite effacés et donc libérés en vue d’une réécriture. Les accès au disque SSD ne s'en trouvent pas limités.

Le TRIM

Afin que vous puissiez mieux comprendre la fonction de TRIM, laissez-moi d’abord vous expliquer comment les données sont effacées d’un disque dur. En fait, elles ne sont pas immédiatement supprimées. Le système d’exploitation informe le disque dur que le lieu physique peut être écrasé lors de la prochaine sauvegarde. C’est la raison pour laquelle des données déjà supprimées peuvent être récupérées. Le système d’exploitation n’a par contre pas besoin de communiquer au disque SSD où les données sont écrites et dans quel état se trouvent les pages ou les blocs. La commande de TRIM permet au système d’exploitation de communiquer au contrôleur du SSD qu’il ne doit plus écrire certaines données lors de l’effacement ou de la réécriture d’un bloc. Le nombre de données écrites est donc réduit, et la durée de vie augmentée.

La gestion de l’usure (wear leveling)

La fonction de gestion de l’usure évite que des blocs précis ne soient écrits et effacés plus fréquemment que d’autres. Elle augmente la durée de vie, car ces blocs ne sont pas usés prématurément. Elle peut par contre favoriser l’amplification des écritures. Afin que les cycles d’écriture soient répartis uniformément, un bloc doit parfois être effacé, même si son contenu n’a pas été actualisé. La gestion de l’usure doit être équilibrée. Les disques SSD possèdent ce qu’on appelle une zone de réserve qui y est consacrée. Il s’agit d’une zone de données que le système d’exploitation ne voit pas. Elle facilite également le remplacement des blocs endommagés.

L’avenir

Malgré certains problèmes, les mémoires flash NAND ont d’énormes avantages par rapport aux disques durs. J’ai abordé deux de ces défis: la durée de vie et les ralentissements. Les disques SDD prennent aussi pas mal de place. La capacité des mémoires flash NAND courantes pourrait être augmentée en réduisant la dimension des structures. Malheureusement, plus elles sont réduites, plus la grille flottante est sensible, et plus le disque consomme de l’électricité. En effet, de plus petites structures limitent le nombre d’électrons dans les cellules mémoires et nécessitent une couche oxyde plus fine, qui s’use plus rapidement. Cela augmente la probabilité d’erreurs et diminue le nombre de cycles d’écriture.

Les autres méthodes visant à augmenter la mémoire dans un espace restreint ont été mentionnées dans les paragraphes consacrés aux mémoires MLC et TLC. Mais il existe là aussi une limitation physique. Pour terminer mon article, j’aimerais encore me pencher sur deux approches qui ont augmenté la capacité de mémoire et la vitesse des disques SSD et qui continueront de le faire à l’avenir.

La mémoire NAND 3D ou V-NAND

Alors que dans les mémoires NAND, les cellules mémoire sont placées les unes à côté des autres, elles sont superposées dans une mémoire NAND 3D et reliées sur un plan vertical, ce qui augmente la capacité de mémoire. Le positionnement vertical augmente l’espace sur la largeur. Les électrons ont eux aussi davantage d’espace dans la grille flottante. Par conséquent, la tension nécessaire à l’effacement, à l’écriture et à la lecture est moindre. Des erreurs sont également moins susceptibles d’apparaître, car la grille flottante accueille un plus grand nombre d’électrons et atteint davantage de niveaux de tension, ce qui facilite la lecture. Cette structure en 3D est déjà la norme dans de nombreux disques SDD.

Le protocole NVMe

Les disques SSD peuvent être liés à diverses interfaces. Outre les anciens standards SATA et SAS, PCIe gagne en popularité, car la connexion SATA et le protocole AHCI limitent la vitesse des disques SSD (les taux de transfert ne vont pas au-delà de 600 Mo/s). L’interface PCIe (« Peripheral Component Interconnect Express ») et le protocole NVMe offrent de meilleurs taux de transfert que les normes SATA ou SAS, car un plus grand nombre de canaux favorisent le flux de données. Contrairement à la norme SATA, une connexion PCIe-3.0 offre par exemple un taux de transfert de 1000 Mo/s sur un canal de transmission.

Le protocole AHCI n’est plus adapté à ces taux de transfert élevés, c’est pourquoi le protocole NVMe a été créé. Il est censé réduire les délais de 50 %, car la conception d’un pilote NVMe stack est plus simple et plus efficace. Le protocole propose également 65536 files d’attente I/O avec 65536 commandes, alors qu’AHCI ne dispose que d’une file d’attente de 32 commandes. Plusieurs commandes peuvent ainsi être traitées en parallèle. Le protocole NVMe permet de transférer de gros volumes de données rapidement, de démarrer promptement des systèmes d’exploitation, de raccourcir les délais de chargement des programmes et d’améliorer les temps de réaction du système.

Le taux de transfert théorique de 4 Go/s avec PCIe 3.0 sur quatre canaux de transmission est déjà presque dépassé. Le nouveau Samsung 970 Pro atteint par exemple des valeurs maximales de 3,5 Go/s. La norme PCIe-4.0 a été lancée en 2017. Elle assure jusqu’à 2000 Mo/s par canal de transmission. La norme PCIe 5.0 est déjà en cours de développement. Les débits de données devraient encore doubler. Non seulement les mémoires de masse auront davantage d’espace de stockage à l’avenir, mais elles seront aussi beaucoup plus rapides.

Cet article plaît à 300 personne(s)


User Avatar
User Avatar

La technologie et la société me fascinent. Combiner les deux et les regarder sous différents angles est ma passion.

Ces articles pourraient aussi vous intéresser

  • En coulisse

    Snapdragon X Elite à l'essai - voici comment Microsoft Surface Pro et Laptop s'en sortent

    par Martin Jud

  • En coulisse

    Apple NeuralHash contre la vie privée : la boîte de Pandore est ouverte

    par Dominik Bärlocher

  • En coulisse

    Le générateur de listicles, ou comment je vous ai agacés automatiquement

    par Dominik Bärlocher

49 commentaires

Avatar
later