Quand on parle de SSD et de mémoire flash en général, une séquence de sigles revient souvent : SLC, MLC, TLC, QLC, etc. Ils se réfèrent à la structure de la mémoire flash et à la façon dont les données sont enregistrées, et ils fournissent surtout des indices importants sur les performances d'un SSD. Dans une récente série d'articles, nous avons évoqué les choix d'Apple sur la gestion de la mémoire flash des Mac. Cette fois, nous allons nous intéresser à la mise en place du cache pseudo SLC. Ce cache, parfois appelé « pSLC », permet des gains considérables sur les débits en écriture et Apple, comme de nombreux fabricants, profite donc de ses avantages.
C'est un sujet complexe techniquement, car il implique différentes technologies. La première chose à comprendre concerne l'organisation de la mémoire flash. La version de base porte le nom de SLC (Single Level Cell) et elle stocke un seul bit par cellule. La cellule, dans ce contexte, est un ensemble de transistors qui va entreposer les données. De façon très schématique, le système doit inscrire une valeur binaire (0 ou 1) avec des tensions bien séparées pour enregistrer une information dans une cellule. Au fil des années, les fabricants ont tenté d'augmenter la capacité de la mémoire flash et une des solutions a consisté à enregistrer plusieurs bits par cellule.

Avec de la mémoire MLC (Multi Level Cell, qui est en pratique synonyme de deux bits par cellule), on stocke deux bits dans la même cellule, ce qui permet mécaniquement de doubler la capacité à prix identique. Pour écrire deux bits, nous nous retrouvons avec quatre valeurs possibles, si vous connaissez le binaire. Avec un seul bit, vous avez un 1
ou un 0
. Avec deux bits, il y en a quatre : 00
, 01
, 10
et 11
. Pour inscrire les différentes valeurs, le contrôleur doit travailler avec quatre tensions distinctes, ce qui nécessite un système plus précis.
De façon schématique, encore une fois, il faut imaginer que la cellule est une échelle graduée de 0 à 15, par exemple. En SLC, il suffit d'écrire dans la case 0 ou dans la case 15 pour définir un bit. En MLC (deux bits), il y a quatre possibilités, que l'on peut identifier par 0, 5, 10 et 15 sur la même échelle. Les écarts sont plus faibles et la précision doit être plus grande, ce qui prend plus de temps. Ce n'est pas uniquement une métaphore ici : inscrire un bit dans de la mémoire MLC nécessite plus de temps que dans de la mémoire SLC… ce qui réduit donc les performances en écriture.