Bus série, effet de mode ?

Magazine
Marque
Open Silicium
Numéro
7
Mois de parution
juin 2013
Domaines


Résumé

Tous les bits de données, mettez-vous en file indienne ! Depuis une grosse dizaine d'années maintenant, tous les « vieux » bus parallèles sont remplacés par des systèmes série avec de jolis noms : USB, SATA, HDMI, PCIe. S'agit-il d'un effet de mode ou d'un véritable progrès ?


Body

1. Contraintes mécaniques

Les bus d'interfaces cités en introduction mettent en œuvre des connecteurs permettant le raccordement de périphériques. Cela peut sembler une évidence, et pourtant ces pièces faites de métal et de plastique représentent un premier défi dans la communication. Dans l'idéal, ils doivent être petits, robustes, ne pas altérer le signal et, bien entendu, ne pas coûter trop cher. Nous sommes en droit d'imaginer que le premier critère a sonné le glas du port centronics, qui serait aujourd'hui fort disgracieux sur un laptop de 2cm d'épaisseur.

Pour les ports devant être accessibles hors d'un ordinateur, la robustesse doit être de mise ! Un connecteur compact avec de très nombreux fils est : soit fragile, soit difficile à brancher/débrancher, soit (hélas) les deux. D'ailleurs, en regardant les notices techniques de connecteurs, il y a matière à se faire peur avec des garanties données par les fabricants de quelques dizaines de cycles de connexion-déconnexion, voire parfois à peine une dizaine ! Le passage à une liaison série, avec peu de fils, réduit un peu les contraintes sur les connectiques, ce qui donne par exemple l'USB ou plus récemment le HDMI.

Mais alors, pourquoi sur les bus internes aux machines, tels que le PCI ou (feu) le PATA, la sérialisation s'est également imposée ? Probablement parce que le problème n'est pas seulement mécanico-marketing.

2. Contraintes électriques

Dans le monde idéal qui sert toujours d'introduction à l'apprentissage des principes de l'électricité et de l'électronique, les composants sont parfaits, les signaux toujours carrés ou sinusoïdaux, et l'environnement jamais hostile... Dans ce monde, les bus seraient peut-être encore parallèles. Hélas, le monde réel n'est jamais totalement numérique et de nombreux effets viennent perturber des plans pourtant si parfaits.

2.1. La diaphonie

Une définition possible pour le condensateur est de dire qu'il s'agit de deux armatures conductrices séparées par un isolant. Lorsque deux fils (conducteurs) parcourent une certaine distance côte à côte, par exemple dans un câble multi-brins, nous sommes en présence de condensateurs parasites, leurs gaines plastiques faisant alors office de diélectrique, voir Figure 1. Pour être précis, il s'agit de la capacité linéïque de la ligne. Tant que les niveaux électriques sont stables, aucun problème, le condensateur ne s'opposant qu'aux variations de potentiel. Par contre, lors de transitions, ces capacités parasites vont se charger ou se décharger, adieu les fronts droits des signaux carrés. La figure 2 montre un cas réel dans un câble nappe.

 

nappe_1

 

Figure 1 : Capacités parasites dans un bus

Tout conducteur traversé par un signal va rayonner autour de lui, il a un effet inductif. Si un autre conducteur est dans son environnement immédiat, il va «capter » ce rayonnement, ce qui va créer une différence de potentiel. Cette différence de potentiel (ddp) peut devenir importante, au point de créer des états considérés comme une transition sur le conducteur, avec toutes les désagréables conséquences que cela engendre.

Le fait que des conducteurs, en théorie indépendants, se perturbent, est appelé diaphonie.

 

fig2_signal_cable

 

Figure 2 : Atténuation des fronts : en jaune (en haut) le signal émis, en bleu (au dessous) le signal vu au bout du câble nappe

Par chance (ou génie de nos pairs), il existe des solutions pour en réduire les effets. Par exemple créer une paire torsadée avec chaque signal pour le blinder de sorte que même si les capacités parasites existent toujours, leurs effets sont globalement prédictibles et donc possibles à prendre en compte. Pour les bus planaires (sur PCB ou en câble nappe), cela revient à ajouter des fils à la masse entre les signaux, ce fut utilisé avec l'ultra-DMA pour les disques durs. Une variante est de transmettre deux signaux complémentaires au lieu d'un seul afin de mieux détecter les erreurs, méthode utilisée pour le SCSI (voir [SNLA033]). Si ces solutions fonctionnent bien, elles augmentent significativement le nombre de conducteurs, que ce soit dans les câbles ou sur les cartes.

2.2. Les ondes réfléchies

Que se passe-t-il lorsqu'un signal électrique arrive au bout d'un fil qui n'est connecté à rien ? Pour prendre un cas plus général, disons un signal parcourant un conducteur d'impédance X et qui arrive face à une impédance Y beaucoup plus grande (bout de fil «en l'air » ou entrée de certains transistors). Et bien dans ce cas, tout ou partie du signal est réfléchit et une part de son énergie revient en sens inverse dans le conducteur ! Le rapport entre l'énergie transmise et l'énergie qui revient est le coefficient de réflexion.

 

pci_reflected

 

Figure 3 : Utilisation des ondes réfléchies PCI

Bien entendu, ce signal en retour peut provoquer des effets apparentés à de la diaphonie (sinon, ce serait trop simple).

Pour éviter cela, il faut que le récepteur ou un système tiers absorbe l'énergie résiduelle. Souvenez vous, les «bouchons » sur les câbles réseau coaxiaux, c'était ça (!) idem pour les «terminaisons » sur les câbles SCSI...

3. Le cas du PCI

Pour celles et ceux ayant lu l'article « KNJN » dans Open Silicium 5, le PCI n'a presque plus de secret, à part peut-être au niveau électrique. Parmi les bus cités en introduction, il s'agit d'un cas un peu particulier, intéressant à double titre : d'une part, dans la version bus parallèle (PCI), il utilise au lieu de subir les ondes réfléchies présentées ci-dessus, d'autre part c'est un des (trop) rares cas d'évolution où une grande partie du standard antérieur a été conservée (lors de l'arrivée du PCI-Express).

Lorsqu'un périphérique PCI place un signal sur le bus, il ne fournit que la moitié de l'énergie nécessaire à la transition, par exemple pour passer d'un « 0 » logique (la masse) vers un « 1 » logique (5V ou 3,3V). Lorsque ce signal arrive à l'autre extrémité du bus, il est réfléchi et, au retour, augmente la tension visible sur le bus. La figure 3 montre une simulation d'un tel signal. À ce titre, le PCI a été l'un des premiers bus « green » car il consomme moins d'énergie pour les transitions.

Mais, comme tous les bus parallèles, ses contraintes de fonctionnement ont eu raison de lui, après tout de même le passage de 133MB/s (PCI 32bits et 33MHz) à 533MB/s (PCI 64bits et 66MHz), ainsi qu'un extrême sursaut avec PCI-X à 133MHz. Ainsi, le bus PCI est mort, vive le PCI-Express. Il serait extrêmement réducteur de dire que le PCI-Express n'est qu'une version sérialisée de PCI, de nombreux concepts ont été ajoutés (traitement d'erreur, gestion des files de messages). Toutefois, pour cet article, seule la comparaison physique est mise en avant.

La transmission de données avec PCI-Express se fait par des liens série point-à-point au moyen de paires différentielles (comme la plupart des autres me direz-vous, USB & Co). Chaque paire offre un lien à peu près à 500MB/s (250MB/s dans chaque sens, le lien étant full duplex). Le fait d'avoir utilisé le pluriel pour parler des paires n'est pas anodin, en effet le PCI-E permet d'agréger plusieurs canaux physiques d'où les termes de x2, x4... x32 et atteindre ainsi jusqu'à environ 16GB/s.

En guise de conclusion

S'il semble évident que le passage du parallèle au série va au-delà d'un simple effet de mode, c'est principalement vrai pour les systèmes à la recherche de bande passante toujours plus importante. L'avenir qui se dessine sera peut-être fait de la parallélisation de bus série, ce qui ne serait pas dénué d'un certain côté paradoxal. À moins que d'ici-là, de nouveaux moyens de codage du signal ne voient le jour, car après tout, l'augmentation des performances ne passe pas toujours par une course à la vitesse, comme l'a montré la course au Ghz, puis au nombre de threads dans les microprocesseurs.

Référence

[SNLA033] http://www.ti.com/general/docs/lit/getliterature.tsp?literatureNumber=snla033&fileType=pdf

 



Articles qui pourraient vous intéresser...

Mesurer l’éclairement avec Arduino

Magazine
Marque
Hackable
Numéro
37
Mois de parution
avril 2021
Domaines
Résumé

Papa de trois enfants en bas âge, j’ai souvent la tête dans les jouets. Mes enfants, comme beaucoup, s’amusent parfois à faire semblant d’acheter. Et si je leur fabriquais une sorte de « caisse/dînette » ! Ce serait tellement mieux s’ils pouvaient scanner des articles et que « ça marche », pour ensuite payer le total par carte !

Raspberry Pi Pico, Arduino killer ?

Magazine
Marque
Hackable
Numéro
37
Mois de parution
avril 2021
Domaines
Résumé

« Raspberry Pi ou Arduino ? », voici la question typique que se posent nombre de débutants avant de comprendre rapidement que comparer un ordinateur monocarte (SBC) et une carte microcontrôleur n'a aucun sens. Il s'agit de deux mondes distincts reposant sur des philosophies et des contingences totalement différentes. Mais en ce début d'année 2021, la réponse à cette mauvaise question est devenue délicate, car voici venir la carte Pico : une plateforme équipée d'un microcontrôleur RP2040 double-cœur ARM Cortex M0+... par Raspberry Pi ! En d'autres termes, la question est donc maintenant aussi « Raspberry Pi ou Raspberry Pi ? ».

Une nouvelle méthode d’imagerie tridimensionnelle pour la rétro-ingénierie des circuits intégrés

Magazine
Marque
Hackable
Numéro
37
Mois de parution
avril 2021
Domaines
Résumé

La rétro-ingénierie matérielle, et plus particulièrement la rétro-ingénierie du silicium, trouve très rapidement ses limites dans les attaques non invasives où la puce reste fonctionnelle et intègre. Pour pouvoir analyser en profondeur un circuit logique, il faut aujourd’hui forcément passer par une décapsulation et une déstratification, ce qui implique alors la destruction inévitable de la puce. Ces méthodes destructives étaient les seuls moyens d’accéder aux différentes couches d’une puce de silicium et donc de pouvoir reconstituer tout le circuit logique de celle-ci. Mais récemment, des chercheurs ont proposé une nouvelle méthode d’imagerie tridimensionnelle des circuits intégrés, d’abord pour un usage industriel, mais aussi inédit pour la rétro-ingénierie du silicium, qui permet l’analyse en profondeur, sans passer par les processus destructeurs habituels.

Installer OpenOCD spécial Pico pour votre Debian

Magazine
Marque
Hackable
Numéro
37
Mois de parution
avril 2021
Domaines
Résumé

N'importe quelle occurrence de la commande « sudo make install » me rappelle d'horribles souvenirs de mes débuts sous GNU/Linux, il y a de très nombreuses années (1995). Peupler ainsi manuellement son /usr/local de fichiers, programmes et bibliothèques est une recette parfaite pour une catastrophe et des conflits en tous genres. Mieux vaut suivre la voie dictée par la distribution et son système de gestion de paquets. Voyons cela en pratique avec l'OpenOCD modifié par la fondation Raspberry Pi et, en prime, découvrons une excellente alternative à l'utilisation d'UF2 ou Picotool.

Une brève histoire des ASIC libres

Magazine
Marque
Hackable
Numéro
36
Mois de parution
janvier 2021
Domaines
Résumé

Derrière les annonces sur l’initiative Google/Skywater, à l'heure où NVIDIA rachète ARM et donc booste mécaniquement RISC-V, c'est toute une industrie qui va lentement, et inexorablement, basculer vers... un peu plus d'ouverture. Pour faire le point et envisager tout ce qu’il reste à faire, voici une rapide rétrospective, une petite revue des pratiques et de l’histoire de l'industrie impitoyable des galettes de silicium.