Les puces NAND Flash sont importantes dans la détermination des performances d’un disque SSD mais à elles seules elles ne font pas tout. Deux autres paramètres influencent en effet les débits : la présence ou non de cache externe et surtout le microcontrôleur. Ils revêtent une importance cruciale à cause du principe même de fonctionnement de la mémoire NAND Flash. En effet, on ne lit pas et on n’écrit pas sur une puce de ce type comme on le souhaite. Une puce est en effet composée de blocs divisés eux-mêmes en un certain nombre de pages dont la taille (512, 2048, 4096 bytes, etc.) détermine la taille du bloc. Au sein d’un bloc de NAND Flash, les cellules sont organisées en série les unes à la suite des autres. Si la lecture des cellules au sein d’une mémoire NAND Flash ne peut s’effectuer qu’en série de par la disposition des cellules, c’est valable aussi pour l’écrasement qui est le préalable à toute nouvelle écriture et qui se fait par bloc. Tous les bits du bloc passent alors du statut 0 (données stockées) au statut 1 (données effacées). Ceci signifie que pour changer le statut « 0 » d’un bit de données, il faut effacer l’entièreté du bloc pour le refaire passer au statut « 1 ».

Plus concrètement, la lecture nécessite de charger la page complète et pas seulement les bits de données réellement nécessaires tandis que lors de l’écriture, c’est l’intégralité du bloc qui doit être effacé et réécrit. Ceci implique que lire 1, 2, 4 Ko ou plus prend sensiblement le même temps mais aussi qu’il faut autant de temps pour écrire 8, 64 ou 128 Ko. A ce niveau le contrôleur peut intervenir pour accélérer ces opérations en ayant recours à un cache interne (on-die) et/ou externe (une puce SRAM ou DRAM) qui vont l’aider à organiser et stocker les données par bloc de 128 Ko (par exemple) avant de les écrire effectivement dans les cellules de la puce Flash. Pour rappel, le rôle du cache est de permettre le stockage temporaire d'informations, de données dans le but d'y faire appel ultérieurement sans devoir aller les rechercher dans leur endroit d'origine. Sans cache, les débits sont plus faibles tandis qu’on use davantage les cellules par des opérations d’écriture inutiles. Pour les considérations sur la durée de vie et la fiabilité des puces NAND Flash, nous vous invitons à consulter notre article consacré au SSD Intel X25-M dans lequel nous explicitons en détail cette problématique.

Autre exemple d'un PCB de SSD avec l'OCZ 64 Go à base de SLC avec les 8 puces de NAND-Flash à droite, le contrôleur en haut à gauche incluant un processeur ARM et sous lui une puce de mémoire RAM faisant office de cache
Le contrôleur peut donc s’aider du cache mais en lui-même peut accélérer les écritures et les opérations de lecture en ayant recours au multi-channel, la gestion des données en multi-canal donc. A l’heure actuelle la majorité des meilleurs contrôleurs utilisent 8 canaux tandis que le SSD Intel en utilise pour sa part 10. Pour rester avec le contrôleur Intel, nous avons vu que dans certains cas de figure, le SSD X25-M perdait les pédales et avait du mal à retrouver son niveau de performances initial. Ce fut le cas lors d’écritures massives aléatoires de petits fichiers, ce qui a eu le don d’affoler le contrôleur qui est pourvu d’algorithmes de prédiction qui lors d’un usage normal remplissent plus ou moins bien leur office mais qui lors d’une écriture massive non prévue ont du mal à gérer cet afflux d’opérations. Intel estime que cette façon de réagir est une « feature » mais en ce qui nous concerne c’est plutôt un « bug ».
Le contrôleur a donc ce rôle crucial de gérer les entrées/sorties afin d'optimiser les opérations d'écriture et de lecture. C'est lui qui par exemple va se préoccuper du wear-leveling, de la gestion des erreurs, etc.

Le SSD Intel doté 10 canal en bas et un SSD "classique" en haut
|
|
SLC ou MLC : aura-t-on encore le choix ? | Le cas JMicron JMF602 |
|
Imprimer
Envoyer
Réaction
71 Approbations





Flux RSS