Hard du hard • Anatomie du PCB d'un SSD |
————— 14 Janvier 2015
Hard du hard • Anatomie du PCB d'un SSD |
————— 14 Janvier 2015
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 :
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é.
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 :
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 |