137 votes

Pourquoi la transmission de données en série est-elle plus rapide que celle en parallèle ?

Intuitivement, on pourrait penser que la transmission de données en parallèle devrait être plus rapide que la transmission de données en série ; en parallèle, vous transférez de nombreux bits en même temps, alors qu'en série, vous faites un bit à la fois.

Pourquoi les interfaces SATA sont-elles plus rapides que les PATA, les dispositifs PCI-e plus rapides que les PCI et les ports série plus rapides que les ports parallèles ?

147voto

mpy Points 24817

Vous ne pouvez pas le formuler de cette façon.

La transmission en série est plus lent que la transmission parallèle, compte tenu de la même fréquence de signal . Avec une transmission parallèle, vous pouvez transférer un mot par cycle (par exemple, 1 octet = 8 bits), mais avec une transmission en série, seulement une fraction de ce mot (par exemple, 1 bit).

La raison pour laquelle les appareils modernes utilisent la transmission en série est la suivante :

  • Vous ne pouvez pas augmenter la fréquence du signal pour une transmission parallèle sans limite, car, par conception, tous les signaux de l'émetteur doivent arriver au récepteur à en même temps . Ceci ne peut pas être garanti pour les hautes fréquences, car vous ne pouvez pas garantir que les temps de transit du signal est égale pour toutes les lignes de signaux (pensez aux différents chemins sur la carte mère). Plus la fréquence est élevée, plus les petites différences sont importantes. C'est pourquoi le récepteur doit attendre que toutes les lignes de signaux soient réglées - évidemment, l'attente diminue le taux de transfert.

  • Un autre bon point (de ce poste ) est que l'on doit considérer diaphonie avec des lignes de signaux parallèles. Plus la fréquence est élevée, plus la diaphonie est prononcée et, avec elle, plus la probabilité d'un mot corrompu et la nécessité de le retransmettre sont élevées. 1

Ainsi, même si vous transférez moins de données par cycle avec une transmission en série, vous pouvez passer à des fréquences beaucoup plus élevées, ce qui se traduit par un taux de transfert net plus important.


1 Cela explique aussi pourquoi Câbles UDMA (Parallel ATA avec une vitesse de transfert accrue) avait deux fois plus de fils que de broches. Un fil sur deux était mis à la terre pour réduire la diaphonie.

70voto

Ed Brannin Points 2723

Le problème est la synchronisation.

Lorsque vous envoyez en parallèle, vous devez mesurer toutes les lignes exactement au même moment. Au fur et à mesure que vous accélérez, la taille de la fenêtre pour ce moment devient de plus en plus petite, elle peut finalement devenir si petite que certains des fils peuvent encore être en train de se stabiliser alors que d'autres sont terminés avant que vous ne manquiez de temps.

En envoyant les données en série, vous n'avez plus à vous soucier de la stabilisation de toutes les lignes, mais d'une seule. Et il est plus rentable de faire en sorte qu'une ligne se stabilise 10 fois plus vite que d'ajouter 10 lignes à la même vitesse.

Certaines choses comme le PCI Express font le meilleur des deux mondes, ils font un ensemble parallèle de connexions série (le port 16x sur votre carte mère a 16 connexions série). En faisant cela, chaque ligne n'a pas besoin d'être parfaitement synchronisée avec les autres lignes, du moment que le contrôleur à l'autre extrémité peut réorganiser les "paquets" de données au fur et à mesure qu'ils arrivent en utilisant l'ordre correct.

El Page "How Stuff Works" pour PCI-Express explique en détail comment PCI Express en série peut être plus rapide que PCI ou PCI-X en parallèle.


Version TL;DR : Il est plus facile de faire en sorte qu'une seule connexion soit 16 fois plus rapide que 8 connexions soient 2 fois plus rapides, une fois que l'on arrive à des fréquences très élevées.

19voto

mike511 Points 637

Le parallèle n'est pas intrinsèquement plus lent, mais il présente des difficultés que la communication en série ne présente pas.

Mais beaucoup des liaisons les plus rapides sont encore parallèles : Le bus frontal de votre ordinateur est généralement hautement parallèle et fait partie des liaisons les plus rapides d'un ordinateur. Les connexions en fibre optique peuvent également être hautement parallèles en transportant plusieurs longueurs d'onde sur une seule fibre. Cette solution est coûteuse et n'est donc pas courante. La forme la plus courante de Gigabit Ethernet est en fait 4 canaux parallèles de 250Mbit Ethernet sur un seul fil.

Le défi le plus prononcé introduit par le parallélisme est la "diaphonie" : lorsque le courant du signal commence ou s'arrête, il induit momentanément un petit courant sur les fils voisins. Plus le signal est rapide, plus ce phénomène est fréquent et plus il est difficile de le filtrer. Parallel IDE a tenté de minimiser ce problème en doublant le nombre de fils dans le câble plat et en connectant un fil sur deux à la terre. Mais cette solution a ses limites. Les câbles longs, les plis et les boucles, ainsi que la proximité d'autres câbles plats, rendent cette solution peu fiable pour les signaux à très haut débit.

Mais si vous optez pour une seule ligne de signal, vous êtes libre de la commuter aussi vite que votre matériel le permet. Cela résout également de subtils problèmes de synchronisation, certains signaux voyageant plus vite que d'autres.

Deux fils sont toujours théoriquement deux fois plus rapides qu'un seul, mais chaque ligne de signal que vous ajoutez complique subtilement la physique, ce qu'il vaut peut-être mieux éviter.

13voto

Kaz Points 2554

La transmission de données en série n'est pas plus rapide qu'en parallèle. Elle est plus pratique et c'est pourquoi le développement s'est concentré sur la réalisation d'une interface série externe rapide entre les unités d'équipement. Personne ne veut s'occuper des câbles plats qui ont 50 conducteurs ou plus.

Entre les puces d'une carte de circuit imprimé, un protocole série comme I2C qui ne nécessite que deux fils est beaucoup plus facile à gérer que le routage de nombreuses traces parallèles.

Mais il existe de nombreux exemples dans votre ordinateur où le parallélisme est utilisé pour augmenter massivement la bande passante. Par exemple, les mots ne sont pas lus un bit à la fois dans la mémoire. En fait, les caches sont remplis par grands blocs. Les affichages matriciels sont un autre exemple : accès parallèle à plusieurs banques de mémoire pour obtenir les pixels plus rapidement, en parallèle. La bande passante de la mémoire dépend essentiellement du parallélisme.

Ce dispositif DAC présenté par Tektronix comme "le convertisseur numérique-analogique 10 bits à haute vitesse le plus rapide du monde" fait un usage intensif du parallélisme pour introduire les données, qui arrivent dans le convertisseur numérique-analogique sur 320 lignes, réduites à 10 par deux étapes de multiplexage pilotées par différentes divisions de l'horloge maître 12 GHZ. Si le convertisseur numérique-analogique 10 bits le plus rapide du monde pouvait être réalisé en utilisant une seule ligne d'entrée série, il le ferait probablement.

11voto

Chris Reynolds Points 31

Le parallèle était le moyen évident d'augmenter la vitesse lorsque les portes logiques étaient suffisamment lentes pour que l'on puisse utiliser des techniques électriques similaires pour les bus/câbles et la transmission sur puce. Si vous basculez déjà le fil aussi vite que votre transistor le permet, la seule façon d'augmenter la vitesse est d'utiliser plus de fils.

Avec le temps, la loi de Moore a dépassé les contraintes électromagnétiques, de sorte que les transmissions par câbles, ou même par bus embarqués, sont devenues un goulot d'étranglement par rapport aux vitesses sur puce. En revanche, la disparité des vitesses permet à des traitements sophistiqués aux extrémités d'utiliser le canal plus efficacement.

  • Une fois que le délai de propagation approche l'ordre de quelques horloges, vous commencez à vous préoccuper des effets analogiques comme les réflexions => vous avez besoin d'impédances adaptées le long du chemin (particulièrement délicat pour les connecteurs) et préférez les fils point à point aux bus multipoints. C'est pourquoi SCSI a besoin de terminaisons, et c'est pourquoi USB a besoin de hubs au lieu de simples splitters.

  • À des vitesses plus élevées, vous avez plusieurs bits en vol à tout moment le long du fil => vous devez utiliser des protocoles pipelinés (c'est pourquoi les protocoles FSB d'Intel sont devenus terriblement compliqués ; je pense que les protocoles par paquets comme PCIe étaient une réaction à cette complexité).

    Un autre effet est une pénalité de plusieurs cycles pour le changement de direction du flux de signal - c'est pourquoi Firewire, SATA et PCIe utilisant des fils dédiés par direction ont surpassé l'USB 2.0.

  • Le bruit induit, appelé diaphonie, augmente avec la fréquence. La plus grande avancée en matière de vitesse est venue de l'adoption de la signalisation différentielle, qui a considérablement réduit la diaphonie (mathématiquement, le champ d'une charge non équilibrée diminue comme R^2, mais le champ d'un dipôle diminue comme R^3).

    Je pense que c'est ce qui a provoqué l'impression que "la série est plus rapide que le parallèle" - le saut était si important que vous pouviez descendre à 1 ou 2 paires différentielles tout en étant plus rapide que les câbles LPT ou IDE. . Il y avait aussi un gain de diaphonie du fait de n'avoir qu'une seule paire de signaux dans le câble, mais c'est mineur.

  • Le délai de propagation des fils varie (à la fois parce que les longueurs des fils sont difficiles à faire correspondre entre les virages à 90º, les connecteurs, etc. et à cause des effets parasites des autres conducteurs), ce qui a posé un problème de synchronisation.

    La solution consistait à avoir des retards réglables à chaque récepteur, et à les régler au démarrage et/ou en permanence à partir des données elles-mêmes. Le codage des données pour éviter les séries de 0 ou de 1 entraîne une petite surcharge mais présente des avantages électriques (évite la dérive du courant continu, contrôle le spectre) et, surtout, permet de supprimer complètement le(s) fil(s) d'horloge (ce qui n'est pas un gros problème en plus de 40 signaux mais est un gros problème pour un câble série qui a 1 ou 2 paires au lieu de 2 ou 3).

Notez que nous sont lancer le parallélisme au niveau du goulot d'étranglement - les puces BGA d'aujourd'hui ont des centaines ou des milliers de broches, les PCB ont de plus en plus de couches. Comparez cela aux anciens microcontrôleurs à 40 broches et aux PCB à 2 couches...

La plupart des techniques susmentionnées sont devenues indispensables pour les deux transmission parallèle et série. C'est juste que plus les fils sont longs, plus il est intéressant de faire passer des tarifs plus élevés par moins de fils.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X