Single Level Cell - Multi Level Cell
Entreprise ou consumer
Types SSD
Root » Serveurs » Electro-ménager » Ordinateurs » Disques durs » SSD » Différences SLC - MLC

Nous expliquons ici les différences entre les SSD de type SLC, MLC et TLC. Mais d'abord, il faut vous expliquer comment fonctionne une cellule de mémoire.

-

-

SLC - MLC

Les données des ordinateurs sont binaires: un 0 ou un 1. Les données enregistrées sur disque dur le sont par le champ magnétique qui est enregistré dans un sens ou dans l'autre. Un CD ROM stocke les données sous forme de puits microscopiques. Il est donc évident d'utiliser également le stockage binaire pour les mémoires SSD qui utilisent la technologie flash.

Une cellule de mémoire est tout simplement un transistor à effet de champ (source, gate et drain). On met le transistor en conduction en appliquant une tension entre la source et le gate (ou électrode de commande). Le courant passe alors entre la source et le drain. Une cellule de mémoire a une couche isolée du reste du transistor (grille flottante). On charge cette couche par injection d'électrons via le gate.

La grille flottante n'est pas chargée au repos, c'est comme s'il n'y avait pas de tension sur l'électrode de commande d'un transistor à effet de champ. Pour charger la grille, on applique une tension élevée sur l'électrode de commande. Il y a fuite d'électrons (par l'effet de tunnel) et la grille flottante se charge en électricité statique. Le transistor est en conduction quand la grille est chargée: on a programmé un 1 dans cette cellule. On peut maintenant enlever la tension sur l'électrode de commande, la cellule garde sa charge. Nous avons enregistré un bit dans une cellule de mémoire: il s'agit d'un SLC of Single Level Cel.

L'effacement d'un seul élément n'est pas possible, il faut effacer tout le circuit intégré (via le substrat). La puce se compose d'une multitude de petits circuits, mais le système reste le même: on peut enregistrer un bit, mais il faut effacer tout le circuit.

La programmation et l'effacement usent les cellules. La couche isolante perd ses capacités et la cellule ne garde plus sa charge.

Il y a toujours des cellules défectueuses, déjà à la sortie de l'usine. Chaque circuit (on dit un bloc) a une capacité de 4kB (par exemple) et dispose en plus d'un nombre de bits de correction d'erreur. Il est non seulement possible de détecter une condition d'erreur, mais en plus il est possible de la corriger (tant que le nombre de bits en faute est limité).

Les blocs qui ont trop de bits défectueux sont mis hors fonction: c'est pour cela qu'une partie de la capacité du disque n'est pas disponible. Un SSD de 64GB a une capacité effective de 60GB. Le nombre de blocs hors fonction augmente avec le temps.

MLC: Multi Level Cel

Un transistor peut fonctionner en mode linéaire et non plus seulement en mode binaire. Il est possible de stocker une charge variable dans chaque cellule. En pratique on ne va pas stocker tout un octet (8 bits = 256 niveaux) dans une cellule, mais 2 bits = 4 niveaux, il s'agit de la technologie MLC ou Multi Level Cel. Les cartes de mémoire SDHC utilisent déjà une technologie à 3 bits.

On ne charge pas la grille flottante pour stocker un 00, tandis qu'on la charge normalement pour un 11. Il n'y a ici pas de différences avec une cellule SLC. Les cellules élémentaires sont d'ailleurs construites de la même façon, qu'il s'agisse d'un module SLC ou MLC.

On injecte une charge moindre pour les niveaux intermédiaires, et on controle que la charge est suffisante. Si la charge est insuffisante, on ajoute une petite charge, et ce jusqu'à ce que le niveau en lecture soit correct. La programmation d'une cellule MLC est donc nettement plus lente que celle d'une cellule SLC.

La charge en étapes n'est pas bonne pour la cellule. De plus, il faut que les niveaux soient mieux définis (il peut y avoir une légère perte de la charge pour un élément SLC sans qu'il n'y ait d'erreur à la lecture). Cela a comme conséquence qu'une cellule élémentaire peut effectuer 100.000 opérations d'écriture en mode SLC et seulement 10.000 opérations en mode MLC. La durée de vie d'un disque SLC est estimée à 25 ans (pour 5 à 7 ans pour un disque MLC).

De plus, la correction d'erreur est plus complexe en mode MLC.

Actuellement on ne trouve pratiquement plus de disques en technologie SLC. Certains fabricants utilisent des puces MLC qu'ils utilisent en mode SLC, ce qui est plus rentable car les puces SLC sont de moins en moins demandées. Même les disques "server grade" utilisent maintenant de plus en plus des puces MLC (en mode SLC ou MLC). La perte de vitesse et la réduction de fiabilité sont insignifiantes quand on utilise une puce MLC en mode SLC.

TLC Triple Level Cell

Ce type de mémoire qui permet de stocker 3 bits par émément de mémoire a été lancé par Samsung. Samsung est un des seuls fabricants qui fabriquent tous les composants d'un SSD, du processeur à l'interface en passant par les modules de mémoire. Samsung est donc à même de lancer de nouvelles technologies avant les autres fabricants.

La mémoire TLC permet d'effectuer 1000 cycles d'écriture par élément (10.000 pour un MLC et 100.000 pour un SLC), ce qui rend la durée de vie d'un tel disque très inférieure à celle d'un disque MLC. Cela semble peu à première vue, mais grace à l'augmentation de la capacité, cela correspond environ à 10GB d'écriture par jour pendant 5 ans pour un disque de 512GB. On estime qu'un ordinateur domestique écrit 10GB/jour: la durée de vie d'un tel disque est donc d'environ 5 ans. Un disque MLC de capacité de 60GB (fabriqué en 2010) devrait maintenant également avoir atteint la fin de sa vie (même s'il permet 10.000 opérations d'écriture au lieu de 1000 opérations).

L'écriture de données sur un disque utilisant la technologie TLC est environ 10X plus lente qu'un disque SSD SLC. Lors de la phase d'écriture, le logiciel doit déterminer quel niveau utiliser pour écrire les données le plus fiablement possible (donc avec des niveaux qui sont suffisamment séparés). De plus, les niveaux varient au fur et à mesure de l'usure des puces. Il faut donc une technologie qui effectue un feed-back et adapte automatiquement les niveaux.

Le système d'exploitation sur le disque (firmware) va étaler les opérations d'écriture pour éviter d'user prématurément certaines cellules (là où se trouvent par exemple les répertoires), mais ne peut empècher un niveau de write amplification: chaque opération d'écriture de 1MB au niveau de l'interface du disque correspond en fait à l'écriture de (par exemple) 4MB au niveau des puces de mémoire. Vous pouvez assimiler cette amplification au fonctionnement d'un système de fichier: quand on écrit un fichier sur un disque dur, on écrit non seulement les données, mais également des méta-données (nom du fichier, où il se trouve, longueur du fichier, date de modification, etc). Le firmware doit par exemple tenir à jour un tableau qui compte le nombre d'écritures par bloc. A chaque fichier stocké sur le SSD, il faut stocker bon nombre de donnéers supplémentaires.

L'utilisation de mémoire TLC nécessite un algoritme plus complexe pour déceler et corriger les erreurs, ce qui rend le disque SSD TLC plus lent qu'un disque MLC et surtout SLC.

Mais encore plus important: les premiers disques TLC avaient tendance à se bloquer totalement, sans raison apparente. En fait, si le logiciel (qui est également stocké en mémoire) est devenu inaccessible, le disque ne peut pas démarrer et tout son contenu est perdu.

Sandisk qui est le fabriquant de cartes de mémoire (SD) et de clefs USB utilise également ce type de mémoire et a donc acquis une expérience suffisante pour se lancer dans les disques solid state. Pour parer à l'usure rapide des puces suite aux nombres d'écritures limitées que permet le mode de fonctionnement TLC, Sandisk utilise une puce de mémoire temporaire qui travaille en mode SLC. Toutes les données à écrire sont d'abord placées dans la mémoire SLC qui a une capacité d'environ 2% de la capacité totale du disque.

Samsung utilise un système similaire appelé Turbowrite: Samsung utilise une petite partie de la mémoire comme mémoire SLC (Single Level Cel) pour écrire les données entrantes. Quand les disque est au repos, les données sont copiées vers la partie TLC. Il s'agit d'un même type de mémoire, mais l'enregistrement s'effectue en mode SLC ou TLC. Par contre la grandeur de la zone attribuée au mode SLC est fixe.

Le graphique à droite nous montre les opérations d'écriture linéaires avec un disque Samsung 850 EVO. Au bout de quelques secondes, la mémoire attribuée à l'écriture SLC est utilisée en son entier, et le controlleur écrit directement en mémoire TLC plus lente. L'effet se fait sentir plus rapidement avec les petites capacité qui ont une mémoire SLC moindre. En pratique cette limite n'est jamais atteinte, même avec les disques de capacité moindre.

Ce système a plusieurs avantages, notament une vitesse d'écriture plus rapide. De plus, les données ne sont déplacées vers la mémoire TLC que quand le disque n'est pas occupé. Cela permet au logiciel d'optimaliser ses routines d'écriture pour effectuer le moins d'opérations: les données placées en mémoire TLC sont des données qui ne sont plus modifiées (par exemple les fichiers de photos), tandis que la mémoire SLC contient par exemple le répertoire (qui lui est régulièrement modifié chaque fois qu'on ajoute des photos). Cette opération est totalement invisible pour l'utilisateur final. La seule chose qu'il remarque, c'est que le disque est très rapide en écriture par rapport à la technologie utilisée. La vitesse d'écriture peut retomber à une valeur 10X inférieure quand la mémoire tampon est remplie, ce qui n'arrive en pratique jamais.

Actuellement, les controleurs qui gèrent l'attribution de la mémoire utilisent pratiquement toute la mémoire disponible pour stocker les données à écrire en mode SLC. Plus le disque est rempli, et moins il a de mémoire disponible, et donc plus rapidement il retombe en mode TLC pendant l'écriture de grands fichiers (en pratique de 500MB/sec à 50MB/sec pour les disques bon marché).

La technologie TLC permet le stockage de 3 bits par position de mémoire, ce qui donne des capacités disponibles non standardisées. Samsung utilise en permanence 1/3 de la capacité totale pour le stockage temporaire en mode SLC. Il est très peu probable que cette mémoire soit totalement saturée, le disque pouvant constamment travailler à sa vitesse maximale en écriture.

Un problème plus important est l'endurance du disque dur en écriture, valeur qui n'est que rarement fournie par le fabricant. Une endurance de 500TB en écriture est limite pour un disque dur: Cette valeur est atteinte en trois ans sur un ordinateur utilisé normalement (avec un anti-virus actif) et peut être atteinte plus rapidement si le disque est utilisé intensivement, par exemple disque temporaire pour le stockage de photos et de vidéos qui sont retouchées.

En pratique

Les modules SLC ne devraient coûter que le double d'un module MLC (puisqu'un nombre double d'éléments de mémoire est nécessaire à capacité identique). Mais le marché en a décidé autrement et les disques SLC sont extrèmement chers, alors que l'électronique de commande peut être simplifiée!

En 2016, on ne trouve plus de disques SLC pour les utilisations courantes (même pas dans les ordinateurs haut de gamme). On retrouve les modules SLC dans certains serveurs (sur aucun ordinateur domestique) qui ont besoin d'une fiabilité et d'une rapidité maximale.

Les disques durs TLC se retrouvent dans la plupart des disques SSD actuels, et le but est d'atteindre des capacités plus élevées en utilisant moins de modules. Certains disques SSD sont conçus pour le stockage de données "froides" (des fichiers qui ne doivent pratiquement jamais être modifiés). Dans ce cas, la technologie TLC peut être interessante, car un disque SSD consomme moins qu'un disque dur classique (tout en étant plus rapide en lecture).

Links to relevant pages - Liens vers d'autres pages au contenu similaire - Links naar gelijkaardige pagina's