Dans le petit monde des SSD, le type de mémoire flash NAND a de l'importance : la mémoire SLC (Single Level Cell, un bit par cellule) offre de meilleures performances et une meilleure endurance que de la mémoire MLC (deux bits par cellule), TLC (trois bits par cellule) ou même QLC (quatre bits par cellule). Mais saviez-vous qu'il est parfois possible de transformer un SSD à base de QLC en un SSD à base de (pseudo) mémoire SLC ?
La technique n'est pas nouvelle et est employée par les fabricants : elle consiste à traiter de la mémoire qui contient en théorie plusieurs bits par cellule en n'écrivant qu'un seul bit. Comme il ne s'agit pas tout à fait de la mémoire SLC, ce type d'astuce porte le nom de pseudo SLC. Beaucoup de SSD modernes utilisent un cache à base de mémoire pseudo SLC pour une raison simple : les performances en écriture sont plus élevées dans ce mode. Bien évidemment, cette voie a un défaut : une perte de capacité. Dans le cas de la mémoire cache, les fabricants ont tendance à soit définir une capacité maximale pour la mémoire cache, soit passer par un cache dynamique. Dans le premier cas, il est possible d'écrire rapidement pendant une période définie, ou plus exactement sur une capacité définie (par exemple 50 Go). Une fois le cache rempli, le SSD passe dans le mode standard, plus lent.
La seconde voie, la dynamique, permet d'utiliser l'espace libre comme cache, donc avec une capacité qui est généralement du tiers (mémoire TLC) ou du quart (QLC) de l'espace disponible. Dans ce cas, il faut évidemment vider le cache une fois les tâches effectuées, et donc déplacer les données écrites en mode pseudo SLC vers de la mémoire TLC ou QLC.
Il est possible de modifier le firmware
Dans une longue vidéo, Grabiel Ferraz a choisi une voie plus radicale : il a modifié le firmware d'un Crucial BX500 (un modèle à base de mémoire QLC) pour qu'il travaille en permanence en mode pseudo SLC. Le SSD est donc plus rapide (avec quelques limites dues à l'interface SATA) et plus endurant… mais la capacité a été divisée par quatre. Dans l'exemple, il passe de 512 Go à 128 Go. Il emploie un outil de configuration du firmware qui peut se dénicher sur Internet (le fabricant du contrôleur, Silicon Motion, ne le distribue pas).
Pour le gain d'endurance, le calcul est relativement simple : on passe de 120 TBW (Tera Byte Written) a 4 000 TBW. Il s'agit d'une valeur théorique, souvent pessimiste, sur la durée de vie d'un SSD. Les constructeurs comptent le nombre d'octets écrits sur le SSD et quand la valeur limite (qui est en téraoctets) a été atteinte, la garantie du SSD se termine. Dans le même temps, l'indicateur de santé passe à 0 %. Sur le papier, un SSD qui atteint cette limite est considéré comme totalement usé et ne devrait plus être employé, les risques de corruptions et d'erreurs étant bien plus élevés. En pratique, la valeur est calculée avec des paramètres (très) pessimistes pour prendre en compte les différents usages. Un SSD qui a atteint cette limite peut donc parfaitement fonctionner pendant un temps… plus ou moins long. Il faut par ailleurs noter que son calcul est lui aussi pessimiste, il considère que la mémoire pseudo SLC peut atteindre 60 000 cycles d'écriture, contre 900 en mode QLC, alors que les mémoires SLC typiques sont données pour environ 100 000 cycles.
Au niveau des performances, la latence est plus faible en mode pseudo SLC et les performances sont améliorées en lecture aléatoire. En écriture, les résultats sont équivalents quand le cache est utilisé avec le firmware de base et le SSD sature le bus SATA. Mais si vous écrivez plus de 48 Go (la taille du cache), les débits descendent aux environs de 100 Mo/s et même vers 50 Mo/s quand le contrôleur tente de déplacer les données du cache vers la mémoire QLC. A contrario, le SSD modifié atteint environ 500 Mo/s en écriture en permanence. Enfin, la température reste du même ordre, c'est-à-dire assez basse : les SSD SATA chauffent assez peu par rapport aux modèles PCI-Express. De même, la consommation est (un peu) plus faible, mais de façon anecdotique : environ 0,15 W de différence (0,83 W en mode pseudo SLC, 0,99 W en QLC).
Maintenant, est-ce une solution intéressante ? Sur un SSD comme le Crucial BX500, pas nécessairement : il s'agit d'un modèle d'entrée de gamme et le prix (moins de 50 €) et la capacité sont probablement plus importants pour les acheteurs que les performances ou de l'endurance. Même avec des SSD haut de gamme, le gain en endurance et en performances ne contrebalance généralement pas le fait de diviser par trois ou quatre la capacité totale, surtout quand un cache pseudo SLC permet généralement d'obtenir des performances équivalentes sur un usage classique, même sur des tâches relativement longues.
Pourtant, cette solution existe et a même été employée par Apple à une époque : dans certains Fusion Drive (une technologie vue dans les iMac et Mac mini dans les années 2010). Il s'agissait d'un contexte très particulier : la technologie hybride d'Apple limitait le nombre d'écritures sur le SSD (avec un cache de 4 Go) et la société avait donc choisi de configurer certains modèles en pseudo SLC pour écrire très rapidement dans un contexte précis, ou la perte de capacité n'était pas un souci étant donné la présence d'un disque dur.