COMPTOIR
  
register

×

diagramme logique dun SSD

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 !
par Un ragoteur Gaulois embusqué, le Mercredi 24 Février 2016 à 20h18  
par Je ne ragote pas moi ! embusqué, le Mercredi 27 Mai 2015 à 07h15  
Je tiens à dire que l'article est très fourni techniquement, bien expliqué, et je pense qu'a partir de maintenant on ne regardera pas les SSD du même œil.

Beau travail les garçons pour ce grand dossier.
par Je ne ragote pas moi ! embusqué, le Mercredi 27 Mai 2015 à 07h08  
Il y a un détail dans lequel je n'ai pas vu de remarque, c'est sur la qualité de l'oscillateur du contrôleur. Il a son influence sur les PLL et donne déjà une première indication sur la stabilité de fonctionnement des SSD et la probabilité que du jitter ( gigue en FR ) tape l'incruste dans le fonctionnement du contrôleur, génère des erreurs et rende ses performances un peu variables.

Concernant le marquage des composants et des points tests, il n'est pas obligatoire. Il suffit d'avoir la doc technique pour savoir ou ils se trouvent. Voir les pastilles en cuivre nu, elles ne le sont pas pour rien.

Concernant la redondance de l'alimentation, c'est seulement une option, pas une amélioration. C'est juste un pneu de secours. Ce qui compte c'est la mise en œuvre, la protection et la stabilité de l'alimentation aux variations de la charge. Les condensateur tantales sont gage de fiabilité et de durabilité, quand au chimiques d'Intel, ils sont de grande qualité et durables.
par Un ragoteur process de Franche-Comte, le Samedi 23 Mai 2015 à 20h57  
"Sandisk a conçu là un circuit imprimé simple face avec le soucis de ne poser aucun composant sur la face extérieure pour les protéger d'une éventuelle décharge électrostatique."

Mais non, c'est pas pour ça... Ca évite de passer le PCB deux fois sur la ligne (1 par face) donc c'ets plus rapide et donc moins cher à produire...

Et les points de test c'est pas pour que le quidam aile voir avec son oscilloscope : en fin de ligne électronique, il y a ce qu'on appelle un ICT ou test In-Situ (ou "lits à clous" ) qui se charge en un coup de contrôler les valeurs de tous les composants liés au points tests, au cas ou il y ait eu un pbm dans le process... Ca sert qu'une fois dans la vie du produit.
par MirageFL, le Dimanche 22 Février 2015 à 13h06  
Superbe initiative CDH, un grand merci !!
par MetallixX974, le Vendredi 16 Janvier 2015 à 19h46  
Génial l'article
par GrosDadou du Nord-Pas-de-Calais, le Jeudi 15 Janvier 2015 à 21h53  
Excellent article ! Très instructif, bien rédigé, agréable à lire, de belles photos macros, bref un régal.
J'ai cependant trouvé deux coquilles dans le paragraphe sur le plextor M6E: "...circuits intégrés qu'il emploi. Un minimum de stockage est de filtrage est cependant effectué..."
Mais je le redis: super article !
par cakinou, le Jeudi 15 Janvier 2015 à 21h26  
Cool, de la lecture instructive

Merci à l'équipe du CDH !
par Stéphane M., le Jeudi 15 Janvier 2015 à 12h38  
par Un fossile de Lorraine, le Jeudi 15 Janvier 2015 à 11h53
A noter que la SRAM est quelque part non-volatile, d'ailleurs...
??
Euh, en quoi une SRAM est-elle non volatile ? Elle ne retient pas son état mémoire lorsqu'elle n'est plus alimentée.
par Un fossile de Lorraine, le Jeudi 15 Janvier 2015 à 11h53  
A noter que la SRAM est quelque part non-volatile, d'ailleurs...

La ROM n'existe plus de toute façon, déjà il y a 20 ans elle avait été remplacée quasi intégralement par l'EEPROM qui était très similaire à la flash (accès non "random" mais R/W quand même), elle était juste limitée à une utilisation en tant que ROM par son environnement.
par Stéphane M., le Jeudi 15 Janvier 2015 à 10h10  
par Un ragoteur curieux embusqué, le Jeudi 15 Janvier 2015 à 09h21
Salut les gens :-)
Bon, j'y vais de mon commentaire aussi, en toute sympathie et humilité.
Article que je vais lire en entier d'ici peu, mais déjà une phrase me chagrine :
"Mais pour nous autres puristes, une mémoire non volatile concerne avant tout les mémoires à accès direct, en d'autre terme la RAM" ==> sauf erreur de ma part et du haut de mes petites connaissances, c'est le contraire : la RAM est bien une mémoire à accès direct, mais elle est de type volatile et non pas non-volatile en opposition à la ROM.
Suis-je dans le vrai ou avez-vous un autre point de vue ?
En fait, la RAM (Random Access Memory) désigne plutôt la nature de l'accès à ses tables (en l'occurrence Random), pas l'état de charge électrique de ces électrons. Il y a des RAM volatiles (Static RAM, Dynamic RAM, etc) et d'autres RAM non-volatiles (Magnetic RAM, Phase-change RAM, etc.)
par Un ragoteur curieux embusqué, le Jeudi 15 Janvier 2015 à 09h21  
Salut les gens :-)
Bon, j'y vais de mon commentaire aussi, en toute sympathie et humilité.
Article que je vais lire en entier d'ici peu, mais déjà une phrase me chagrine :
"Mais pour nous autres puristes, une mémoire non volatile concerne avant tout les mémoires à accès direct, en d'autre terme la RAM" ==> sauf erreur de ma part et du haut de mes petites connaissances, c'est le contraire : la RAM est bien une mémoire à accès direct, mais elle est de type volatile et non pas non-volatile en opposition à la ROM.
Suis-je dans le vrai ou avez-vous un autre point de vue ?