Cache SLC : utilisation et caractéristiques dans les SSD NVMe

Cache SLC

L'un des termes faisant référence aux performances des SSD NVMe que vous avez le plus entendu ces derniers mois est SLC Cache. C'est pourquoi nous avons préparé cet article pour vous afin que vous puissiez comprendre son fonctionnement et les avantages qu'il apporte aux performances de nos disques SSD hautes performances.

Le stockage de données basé sur la technologie Flash NAND a entraîné un changement de paradigme dans divers secteurs de l'informatique, des cartes mémoire pour appareils portables aux SSD NVMe sur PC. C'est précisément dans ce dernier cas que l'un des goulots d'étranglement historiques de l'histoire a été éliminé en n'ayant pas les limitations de latence d'accès et de bande passante des disques durs traditionnels, cependant, il n'y a pas de technologie parfaite qui fonctionne à 100% et il y a toujours éléments qui l'alourdissent, obligeant les ingénieurs à trouver et mettre en œuvre des solutions.

Flash NAND et cellules de mémoire

Types Celda NAND Flash SLC TLC MLC QLC

La mémoire flash NAND est un type de NVRAM ou non volatile RAM, cela signifie que son fonctionnement est le même qu'une RAM conventionnelle, mais avec la différence que ses données ne sont pas perdues lorsque le système cesse d'être alimenté. Le compromis pour avoir cette capacité est d'avoir un nombre limité d'écritures en mémoire dans son cycle de vie. Bien que les avantages en termes de performances lorsqu'il s'agisse d'accéder au stockage en valent la peine, pas en vain, chaque système informatique n'est aussi rapide que ce que sa partie la plus lente, qui est généralement le stockage, le laisse.

Chaque bit de mémoire dans une mémoire RAM est stocké dans ce qu'on appelle des cellules de mémoire et dans les premières mémoires Flash NAND utilisées pour SSD stockage, un bit par cellule était utilisé, ce qui rendait le stockage très coûteux. La solution? Que chaque cellule peut contenir des données de 2 bits ( MLC ), 3 bits ( TLC ) ou jusqu'à 4 bits ( QLC ). Le problème supplémentaire ? Plus il y a de bits par cellule, plus ils se dégradent rapidement et donc moins de vie utile. Gardez cela à l'esprit car c'est la base pour comprendre le cache SLC.

Les cellules TLC et QLC ne se dégradent pas seulement en durée

SSM NVMe

Une fois arrivé à ce stade, beaucoup d'entre vous auront l'idée en tête que les mémoires Flash NAND de type MLC, TLC et QLC ont plus de capacité de stockage, bien que moins de durée, mais la bande passante de toutes est la même et donc le type de cellule ne fait pas varier les performances. Eh bien, laissez-nous vous dire que les mauvaises nouvelles ne s'arrêtent pas là, mais que la vitesse d'accès se dégrade également.

When the Processeur fait une demande d'accès à une adresse mémoire dans le SSD NVMe, elle est reçue par le contrôleur flash qui va rechercher les données en mémoire pour les transmettre via l'interface PCI Express ou SATA, selon celle que vous utilisez. l'unité, mais le contrôleur flash accède directement aux puces NVMe de l'unité pour manipuler ses données et ne le fait pas via les interfaces que nous avons mentionnées.

La façon de stocker les données dans la mémoire Flash NAND consiste à modifier la tension, une mémoire SLC n'a besoin que d'une tension, une MLC nécessite 3 , mais un TLC va à 7 et si nous allons dans un QLC la chose va à 15 . Eh bien, plus le nombre est élevé, plus il faut de temps pour effectuer une opération de lecture et d'écriture. Et quand est-ce que cela commence à être un problème ? Eh bien, à partir de la mémoire TLC et si vous regardez le nombre d'unités SSD NVMe dans les magasins, vous verrez qu'elles utilisent toutes ces cellules au moins aujourd'hui.

La solution : le cache SLC

Cache SLC NVMe
La première chose à garder à l'esprit est que le cache SLC n'est pas le même que le cache DRAM qui se trouve également dans certains SSD NVMe, car nous ne parlons pas de la mémoire volatile qui se trouve entre le contrôleur flash et l'interface PCI. Exprimez la même chose, puisque le cache SLC est également dans les unités DRAM-Less. En général, bien qu'il existe des exceptions que nous verrons plus tard, au sein de chaque puce NVMe, il existe deux types de mémoire Flash NAND :

  • Une mémoire TLC ou QLC pour le stockage des données
  • Une mémoire SLC beaucoup plus petite qui sert de cache.

La première chose que nous devons comprendre est qu'un cache n'est rien de plus qu'une mémoire beaucoup plus proche d'un processeur et donc avec une latence plus faible qui stocke temporairement des données. Si nous revoyons ce que nous vous avons dit, nous avons les prémisses suivantes :

  • Les cellules SLC ont une durée de vie beaucoup plus longue que les TLC et même plus longue que les QLC, elles mettent donc beaucoup plus de temps à se dégrader.
  • La vitesse d'accès des cellules SLC est beaucoup plus élevée.

Ainsi, la solution est que les données soient temporairement déchargées dans la mémoire SLC, qui fonctionne comme un cache tampon de sorte qu'un mécanisme de copie de données modifie ensuite les adresses mémoire dans le TLC.

Performances du cache SLC

SLC MLC TLC tension cachée
Nous arrivons à la partie la plus importante, le cache SLC a une taille fixe et cela signifie que, si nous l'utilisons pour envoyer ou recevoir de petites données, ses performances seront maintenues, mais si par exemple nous voulons faire une copie séquentielle des données sous la forme d'un très gros bloc de données, dès que le SLC est plein, les performances chutent.

C'est pourquoi, bien que nous puissions avoir deux SSD NVMe entre nos mains avec le même stockage, la même interface d'accès et même les mêmes types de cellules, c'est-à-dire pratiquement les mêmes, ils peuvent avoir des performances complètement différentes. La raison? Évidemment le cache SLC qui peut différer en taille.

Le cache SLC n'est pas seulement utilisé pour stocker des données à accès séquentiel, mais aussi aléatoire et il faut tenir compte du fait que les programmes lors de l'accès aux informations le font avec une récursivité élevée et dans un bloc d'informations délimité.

Types de cache SLC

Types Caché SLC
Il existe deux manières de gérer le cache SLC, qui dépendront de l'algorithme pour cela que le fabricant a implémenté dans le contrôleur flash. Il fait plutôt référence à la quantité d'espace qu'il peut être alloué pour le stockage temporaire.

  • Dans le cache statique, l'espace de stockage est fixe et ne peut pas varier en taille.
  • Dans le cache dynamique, la taille allouée est variable.

Comment le cache dynamique est-il possible si le nombre de cellules SLC est fixe ? Le problème est d'utiliser les cellules TLC NVMe comme s'il s'agissait de SLC, c'est-à-dire de les faire stocker un bit dans chacune au lieu de 3. Il existe donc des puces NVMe qui réaffectent une partie du stockage en cache.

L'avantage du cache dynamique est que la taille du cache SLC n'est pas épuisée, mais il y a un risque que de plus en plus de cellules TLC ne soient plus utilisées pour le stockage, affectant la capacité globale de celui-ci à stocker des données. Pour cette raison, la plupart des systèmes de cache SLC dynamiques utilisent des systèmes qui en limitent la taille maximale via le micrologiciel.