Hard du hard • Anatomie du PCB d'un SSD |
————— 14 Janvier 2015
Hard du hard • Anatomie du PCB d'un SSD |
————— 14 Janvier 2015
Abordons maintenant un disque SSD sous son aspect électronique pour en détailler ses composants. Étant donné que nous avons réalisé l'analyse qui suit en travaillant sur un modèle de chez OCZ, les observations seront donc parfois ciblées sur ce SSD. Mais pour ce qui nous intéresse là, le modèle ou la marque n'a aucune importance en soit car le mode opératoire est le même pour tous les SSD du marché.
Nous avions 2 oscilloscopes en simultané pour monitorer l'activité de ce SSD pendant l'analyse
Par contre, en conclusion de cet article, on passera en revue le circuit imprimé de quelques modèles connus afin de commenter les choix techniques voulus par leurs constructeurs.
Lorsqu'on observe le circuit imprimé d'un SSD, on peut distinguer 4 régions distinctes, toutes aussi essentielles les unes que les autres, au sein desquelles se trouvent des modules parfois constitués de plusieurs étages. On les identifie selon : CPU, NAND, Alimentation et Connecteurs.
PCB classique d'un SSD classique à base de SF-2281
Exclusivement constitué de composants de surface pour des raisons évidentes de densité d'intégration, ce type de circuit imprimé est de classe FR-4, c'est à dire qu'il est fait d'un composite de résine epoxy renforcé de fibre de verre. Il est multi-couche, et on ne doit pas être loin du compte en disant qu'il comporte au moins 2 couches conductrices internes en plus des 2 externes qui sont visibles sur la face avant et sur la face arrière. Un rapide coup d’œil sur le connecteur d'alimentation SATA nous permet d'affirmer que l'une des couches internes est d'ailleurs celle sur laquelle est distribuée la masse, car les broches de masse de ce connecteur rejoignent immédiatement des vias qui descendent vers une couche interne.
On remarquera aussi qu'il reste pas mal d'espace vide autour du processeur central et sur la seconde moitié de la face arrière. Le constructeur aurait donc pu miser sur un facteur de forme plus petit du circuit imprimé et augmenter ainsi le niveau d'intégration des composants.
Sur ces 2 faces externes recouvertes d'un vernis coloré, les pistes qui relient le contrôleur et les mémoires ne représentent qu'une petite partie du bus de données, le reste est enfoui dans les couches internes. C'est une technique de répartition courante, étant donné la largeur de ce bus par rapport à la petite surface à exploiter. On remarque également qu'il y a des cellules JTAG qui sont là pour nous permettre de monitorer l'activité des circuits intégrés auxquelles elles sont reliées, ou même d'intervenir dans leur système de commande.
Stoi le JTAG, bouffon (cliquez pour agrandir)
Et on trouve aussi sur cette carte un certain nombre de points de test nous permettant de mesurer les différents signaux qui les traversent afin de procéder à des vérifications de tension localisées ou à effectuer du debuging.
Des chiffres et des lettres (cliquez pour ah ! grandir)
Présenté dans un boîtier BGA (soudé au circuit à partir d'une matrice de billes de soudure), et positionné de façon centrale sur le circuit pour être relativement équidistant des NAND, ce contrôleur dispose de son quartz électronique qui oscille à une fréquence de base (30.0 Mhz sur ce modèle OCZ), fréquence que le CPU va largement amplifier en interne pour atteindre des vitesses de cycle beaucoup plus importantes (de l'ordre d'au moins x10). Il faut également noter que ce quartz est aussi là pour fixer la fréquence d'horloge des mémoires NAND orchestrées par le contrôleur.
Une puce pour les contrôleur toutes (cliquez pour agrandir)
Il faut savoir qu'à l'exception des quelques informations qu'ils acceptent de donner sur leurs plaquettes marketing, les fabricants ne communiquent que très rarement sur les détails techniques de leurs ASIC. Ils ne divulguent aucun datasheet ou schéma-bloc qui nous permettraient de faire les mesures pertinentes directement sur le composant pour mieux comprendre la nature du signal traité.
Par exemple, le diagramme ci-dessous extrait de la seule plaquette marketing du contrôleur SandForce SF-2281 de ce modèle OCZ, montre grossièrement les différents blocs de traitement ainsi que leur relation d'entrée/sortie au sein du processeur.
Où est la zone rouge ? (cliquez pour agrandir)
Et mis à part le fait qu'il confirme que cette puce intègre bien un cache rapide interne (Buffer) que d'autres processeurs déportent dans une mémoire DRAM externe, nous n'apprenons hélas pas grand chose de pertinent.
Sur la face arrière du circuit imprimé, juste en dessous du contrôleur sont regroupés les condensateurs de découplage en céramique (ou parfois au tantale) dont le rôle est d'évacuer les harmoniques de haute et moyenne fréquence vers la masse afin de nettoyer tous les parasites susceptibles de perturber son bon fonctionnement.
On ne voit pas très bien (quoique, cliquez pour agrandir) mais il y'a plein de micro-conchitas qui nettoient le signal
Et pour une efficacité optimale, la distance entre eux et les broches du circuit intégré doit être la plus courte possible, d'où leur présence juste en-dessous du boîtier. Ils n'ont alors que les couches internes de la carte mère à traverser.
Le contrôleur est un microprocesseur dédié, et il est fréquent que les ingénieurs adoptent désormais une architecture multi-coeur basée ARM 32 bits, en y intégrant une circuiterie propriétaire pour les blocs-modules d’interfaçage avec les mémoires, le cache et le SATA. Et comme tout microprocesseur, il exécute un code machine. Pour le grand public, ce code est connu sous l'appellation « Firmware ». Lorsqu'on fait une mise à jour de ce firmware à partir d'un système d'exploitation quelconque (Windows, MacOSX, Linux ou autre), le nouveau code est réinjecté dans l'EEPROM interne du contrôleur à la place de l'ancien. Ensuite, il se place dans un état de réinitialisation logicielle pour recharger et exécuter le nouveau firmware, le tout ne prenant que quelques centaines de millisecondes.
Sur son circuit imprimé, ce modèle OCZ ne présente pas de mémoire volatile DRAM en guise de cache car son contrôleur SandForce en dispose déjà en interne. Mais il est assez fréquent qu'un contrôleur se fasse épauler par un composant DDR DRAM dont les temps d'accès se mesurent en nanosecondes. A partir d'algorithmes intelligents, l'usage d'un cache en mémoire dynamique permet au processeur de réorganiser des écritures de données aléatoires de taille variable en blocs séquentiels et de les transférer alors aux NAND sous cette nouvelle forme. On obtient ainsi une écriture faiblement amplifiée et parfaitement optimisée : usage de blocs importants sur de grandes pages et niveau de latence le plus faible possible.
|
Un poil avant ?PNY avait aussi du SSD à présenter au CES | Un peu plus tard ...Firefox 35 est disponible |