COMPTOIR
  
register

×
×
×

Hard du hard • Anatomie du PCB d'un SSD
diagramme logique dun SSD
diagramme logique dun contrôleur
diagramme logique des données

• Comment s'architecture un SSD ? Hein hein hein ?

Un SSD s'articule autour de 3 éléments fondamentaux : une série de mémoires NAND pour le stockage des données, une interface SATA pour relier le système à la carte mère de l'ordinateur, et un contrôleur central pour piloter le tout. Ajoutons à cela un quatrième élément qui est le module d'alimentation chargé, entre autre, de fournir aux composants les tensions précises nécessaires à leur fonctionnement, ainsi que la réserve d'une quantité de courant suffisante pour que le processeur ait toujours le temps de transférer les dernières données en cas de coupure de courant subite.

 

Nous verrons en détail ces 4 éléments dans la partie consacrée aux composants. On pourrait donc schématiser l'architecture d'un SSD par le diagramme suivant :

 

diagramme logique dun SSD [cliquer pour agrandir]

La logique simplifiée d'un lecteur SSD

 

Une série de mémoires NAND est répartie sur des canaux flash directement rattachés à un processeur dédié qui se charge de faire l'interface de communication entre l'ordinateur hôte et les mémoires qu'il contrôle. Il dispose d'une mémoire volatile DRAM pour l'aider à organiser son travail d'optimisation de la gestion des NAND. Aujourd'hui, l'interface de liaison la plus utilisée est le SATA, mais il existe aussi des SSD en FireWire ou en PCIexpress.

 

Le processeur en question est ce qu'on appelle dans le jargon électronique un ASIC (acronyme de Application Specific Integrated Circuit). C'est un microprocesseur complexe (semblable à un SoC), qui a été mis au point pour une tâche très spécifique. Il ne sait rien faire d'autre que ce pour quoi il a été conçu, mais par contre, il le fait bien et vite. Et entre autre, il est capable d'exécuter un grand nombre d'algorithmes compliqués qui vont lui permettre de prendre les meilleures décisions possibles en fonction des données qu'il doit relire, écrire, déplacer, supprimer ou réorganiser. Et parmi ces algorithmes, on trouve le code de correction d'erreur, la répartition de l'usure des NAND, la relocalisation des blocs de données, l'identification de mauvais blocs, le cache séquentiel en lecture et écriture, le recyclage de blocs mémoire préalablement alloués puis inutilisé, le chiffrement avancé en 128 ou 256 bits, ainsi que toutes les autres tâches essentielles mais plus spécifiques aux éléments périphériques. Ce contrôleur est vraiment la pièce maîtresse du système, et les performances globales du SSD ne dépendent essentiellement que de sa puissance de traitement. Un bon contrôleur est même en mesure de rendre robustes et fiables des mémoires NAND imparfaites.

 

Le schéma-bloc ci-dessous donne un aperçu de la façon dont il est généralement constitué.

 

diagramme logique dun contrôleur [cliquer pour agrandir]

En gros, comment pense le contrôleur de vos SSDs

 

Quelques explications sur le fonctionnement s'imposent. Tout d'abord, on remarque 2 parties distinctes : le « front-end » qui regroupe l'interface hôte SATA ainsi que le contrôleur SATA, et le « back-end » qui regroupe le traitement des commandes et des informations, ainsi que le système d'accès aux mémoires NAND, le tout connecté par un bus de données. Il est souvent préféré une configuration multi-processeurs. Dans ce schéma, FCPU indique le CPU du front-end et BCPU celui du back-end, et le travail se fait toujours en parallèle pour accélérer les vitesses d'exécution, d'où la nécessité d'exploiter des CPU multi-cœurs.

 

Dans la file, le module de gestion des commandes (Command queue), la technique du Native Command Queuing définie pour l'interface SATA est la plus adoptée dans ces contrôleurs pour des raisons de performance tout en permettant de recevoir des requêtes d'exécution non-séquentielles.

Le tampon de données (Data buffer) remplit la fonction d'adaptation de vitesse entre les accès depuis l'hôte et la mémoire NAND, et également d'écriture simultanée de multiples secteurs de données dans la mémoire NAND. La table de correspondance (LUT) détermine la relation entre l'adressage par bloc logique (LBA) et l'adresse physique dans la NAND.

 

Il faut noter qu'il n'est pas indispensable que les adresses en LBA et dans la NAND soient les mêmes, étant donné que le processeur tient à jour une carte de l'ensemble des adresses pour les parties logiques et physiques. Pour accéder à la table de gestion des adresses stockée dans la mémoire DRAM externe, l'ASIC dispose d'un mini-contrôleur interne DDR. Il dispose aussi d'un mini-contrôleur interne de NAND capable de prendre en charge le premier niveau de correction d'erreur ECC. Pour obtenir un niveau de bande passante optimal, les contrôleurs récents sont en mesure de gérer jusqu'à 8 canaux flash simultanément.

 

Concernant le cheminement des données en lecture et en écriture, un contrôleur suit généralement le mécanisme suivant :

 

  • En lecture : la commande de lecture arrive de l'hôte par le front-end directement vers la file, et toute commande de lecture qui entre dans la file est envoyée à la table de correspondance pour récupérer l'adresse physique dans la NAND à partir de l'adressage logique spécifiée. La commande est ensuite envoyée au contrôleur interne NAND sur le canal approprié correspondant à l'adresse physique, et l'information est alors lue. Elle est ensuite transférée au buffer de données et renvoyée vers l'hôte à travers le front-end.
  • En écriture : la commande d'écriture en provenance de l'hôte passe par le front-end, puis les informations relatives aux données à écrire accompagnées de l'adresse logique allouée sont transmises au buffer de données. Ensuite, la table de correspondance fournit la correspondance entre l'adresse logique et l'adresse physique de la NAND afin que les données en attente dans le buffer puissent être déposées à l'endroit indiqué par cette adresse physique. Les codes de correction d'erreur sont simultanément calculés et stockés dans la mémoire NAND avec les autres données à écrire.

 

diagramme logique des données [cliquer pour agrandir]

Récapitulatif du chemin parcouru (en gris) par ces données en lecture ou en écriture depuis l'hôte



Un poil avant ?

PNY avait aussi du SSD à présenter au CES

Un peu plus tard ...

Firefox 35 est disponible

Les 37 ragots
Les ragots sont actuellement
ouverts à tous, c'est open bar !