Bus informatique

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Une proposition de fusion est en cours entre Bus d'adresse , Bus de contrôle , Bus de données et Bus informatique.

Les avis sur cette proposition sont rassemblés dans une section de Wikipédia:Pages à fusionner. Les modifications majeures apportées, entre temps, aux articles doivent être commentées sur la même page.

Cet article ne cite pas suffisamment ses sources (juillet 2014).

Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références » (modifier l'article, comment ajouter mes sources ?).

Cet article ou cette section est en cours de recyclage. (4 décembre 2015)

Un ou plusieurs contributeurs travaillent à la réorganisation et à la clarification du contenu. Discutez des points à améliorer en page de discussion.

Page d'aide sur l'homonymie Pour les articles homonymes, voir Bus.
Cartes de bus VME

Un bus informatique est un dispositif de communication partagé entre plusieurs composants d'un système numérique. Le terme dérive du latin omnibus (à tous) ; c'est le sens, d'un usage plus ancien, du terme bus en électrotechnique et en électronique. Le bus informatique est la réunion des parties matérielle et immatérielle qui permettent la transmission de données entre les composants participants.

On distingue généralement un bus d'une part d'une liaison point à point, qui ne concerne que deux composants qui en ont l'usage exclusif, et d'autre part d'un réseau informatique, qui implique de nombreux participants indépendants entre eux, et comprend plusieurs canaux, permettant des communications simultanées.

Exemple : mémoire d'un ordinateur  :

Dans un ordinateur, le bus système relie le microprocesseur à la mémoire vive.

composants 
un ou plusieurs registres d'entrée du processeur, plusieurs millions d'emplacements de mémoire ;
matériel 
des conducteurs électriques, pistes de cuivre sur la carte mère ;
logiciel 
organisation des pistes de cuivre en sous ensembles : bus de données, bus d'adresses, bus de contrôle, et dans chaque sous-ensemble l'affectation de chaque piste à un bit défini.

Généralités[modifier | modifier le code]

Définition fonctionnelle[modifier | modifier le code]

Un bus est un système de transfert de données entre plusieurs unités fonctionnelles de traitement de données[a] par l'intermédiaire d'une voie de transmission commune, dans lequel les composants ne prennent aucune part à la transmission des données entre les autres participants[2].

Cette définition implique que les données doivent s'accompagner d'une identification du composant auquel elles sont destinées, qu'on appelle par métaphore l’adresse de destination, et d'une commande indiquant si ce composant doit recevoir les données ou les transmettre. On peut ainsi décomposer le bus en trois sous-ensembles :

  • les données,
  • l’adresse,
  • le contrôle.

Le débit binaire maximal, exprimé en bits par seconde, décrit la performance du bus informatique.

Lorsque deux composants seulement sont impliqués, le problème de l'adresse ne se pose pas. On parle plutôt de liaison point à point[3]. Un système de transfert de donnée prévu pour plusieurs composants peut effectuer le transfert, mais le traitement inutile de l'information d'adresse pèse sur sa performance.

Lorsque le dispositif de communication comprend plus d'une voie de transmission, permettant plusieurs communications simultanées, la notion de réseau informatique est plus appropriée[4].

Les trois approches, liaison de point à point, bus informatique, réseau informatique, partagent la même fonction de communication, avec une complexité croissante. Elles correspondent à des optimisations particulières à chacun de leurs domaines.


Caractérisation[modifier | modifier le code]

Les bus informatiques peuvent se construire avec plusieurs variantes.

Capacité à contrôler le bus 
La désignation des composants concernés et du sens des transferts est souvent le privilège d'un des composants. Dans le cas où plusieurs composants peuvent contrôler le bus, celui-ci doit inclure un arbitrage entre les requêtes[5].
Mode de transmission 
Un bus parallèle transmet chaque élément sur un canal particulier, un bus série transmet les informations les unes après les autres sur le même canal[b].
Topologie 
La topologie des liaisons peut aussi varier. Dans une configuration linéaire, le bus ressemble à une ligne électrique où sont accrochées, de loin en loin, des lampes ; dans une configuration arborescente, d'un tronc commun sortent des branches et des rameaux en direction des composants. Dans une configuration en anneau deux voies existent d'un composant à un autre. Des réseaux plus complexes peuvent exister.

Un bus informatique est constitué à la fois du matériel sur lequel repose la communication y compris les circuits d'interface et le protocole qui régit les échanges. Les caractéristiques du matériel conditionnent en partie le type de communication et le protocole impose le type de matériel.

Un bus logiciel est un logiciel d'interface qui permet à un poste d'accéder à des données d'autres composants aussi simplement que s'ils lui étaient reliés par un bus. Ce logiciel décharge les programmes de la sélection des voies et des protocoles de communication. Du point de vue du programme appelant, il n'y a qu'un bus. Du point de vue de l'analyse des systèmes, l'ensemble des voies de communication plus les bus logiciels qui assurent l'interface forme le bus informatique.

Matériel[modifier | modifier le code]

Un bus peut utiliser différents supports pour la communication : fils ou nappes pour relier des périphériques à la carte mère d'un ordinateur (par exemple les bus ATA ou USB), circuits imprimés sur un même PCB ou entre cartes électroniques enfichables (par exemple dans le cas d'un bus PCI Express), routage logique dans un FPGA (par exemple un bus AXI), fibre optique[6]etc.

Les circuits d'interface, comprenant la conversion parallèle-série et vice-versa, la mémoire tampon et les gestionnaires de communication, ainsi que les répartiteurs et nœuds de communication comme les hubs USB font partie du bus informatique.

La construction matérielle du bus peut répercuter la représentation logique en trois sous-systèmes, avec des faisceaux de conducteurs distincts pour transmettre les signaux d'adresse, de données et de contrôle, associés à un arbre d'horloge pour la synchronisation. Un bus peut aussi transmettre séquentiellement ces différents signaux à travers un seul « canal de données » d'une ou plusieurs paires de conducteurs) comme c'est cas de l'USB.

Dans un ordinateur[modifier | modifier le code]

Schéma fonctionnel de bus informatique

Les bus situés à l'intérieur d'un même ordinateur relient ses différentes parties fonctionnelles.

Le débit binaire d'un bus est le produit de la fréquence maximale à laquelle un transfert peut avoir lieu par le nombre de bits d'information qu'il peut transmettre simultanément.

Exemple  :

Un bus parallèle de 32 bits dont le signal a une fréquence de 33 1/3 mégahertz pourrait transmettre jusqu'à :

  • 32 bits × 33 1/3 × 106 bits par seconde soit 1 067 Mbits/s ;
  • octets x 33 1/3 x 106 octets par seconde soit 133 Mo/s.

Ce calcul vaut pour les bus parallèles. Les bus série doivent transmettre, en plus de la donnée, des signaux qui indiquent le début d'une séquence, et le plus souvent des informations d'adresse et de contrôle. On les caractérise uniquement par le débit binaire.

Bus internes[modifier | modifier le code]

Articles détaillés : Pont Nord, Pont Sud et HyperTransport.

Les bus internes, également connus sous le nom de bus de données, bus mémoire, système de bus ou de front-side-bus, relient les composants internes principaux d'un ordinateur, tels que le processeur et la mémoire, sur la carte mère. Le bus de données interne est également considéré comme un bus local, parce qu'il est destiné à se connecter à des périphériques locaux. Ce bus est généralement assez rapide et est indépendant du reste des opérations informatiques.

Habituellement les bus internes en lien avec l’extérieur d'un microprocesseur d'ordinateur personnel sont au nombre de deux[7] :

Le northbridge 
qui le relie aux périphériques rapides tels que la mémoire, et les cartes graphiques PCI ;
Le southbridge 
qui le relie à tous les périphériques internes plus lents et le bus PCI ;
Le bus PCI 
utilisé pour effectuer la connexion entre le southbridge et tous les périphériques externes (disques durs, imprimante, etc.).

Bus externe[modifier | modifier le code]

Le bus externe, également connu sous le nom de « bus d'expansion », est constitué des dispositifs électroniques qui relient l'ordinateur (la carte mère) à différents dispositifs externes, tels que l'imprimante, etc. Il était courant dans le passé de classer les systèmes de bus selon le système de communication qu'ils utilisent, série ou parallèle. De nombreux systèmes modernes peuvent fonctionner en utilisant un mode ou l'autre, en fonction de l'application[réf. souhaitée].

Bus parallèle[modifier | modifier le code]

Matériel[modifier | modifier le code]

D'un point de vue matériel, ce type de bus est la plupart du temps un bus électronique, c'est-à-dire un ensemble de conducteurs électriques en parallèle. À chaque cycle de temps, chaque conducteur transmet un bit.

Ces bus ont une taille en nombre de conducteurs, et une taille en bits. Les tailles en bits les plus courantes sont : 8, 16, 32 ou 64 cependant certaines cartes graphiques peuvent avoir des bus de 1 024 bits[c],[8]. Lorsqu'on parle de la taille d'un bus, cela signifie qu'il s'agit du nombre d'informations (ou bits) que le bus peut transmettre en un seul cycle, sans compter les informations de contrôle[réf. souhaitée].

Des conducteurs supplémentaires sont affectés à la transmission des signaux de contrôle du bus et de validation des signaux de données.

Fonctionnement[modifier | modifier le code]

Le bus sert à transmettre un code binaire d'un nombre de bits égal à la taille du bus. Par exemple pour un bus quatre bits on peut transmettre 16 codes différents (24 = 16).

L'émetteur positionne au même instant tous les bits du bus. Au moment adéquat le composant lecteur lira tous les bits simultanément. Cet instant adéquat peut être déterminé par un des signaux de contrôle qui changera de valeur pour signaler au dispositif lecteur qu'il est temps de lire les données sur le bus.

Cas d'utilisation[modifier | modifier le code]

  • Lecture et écriture de la mémoire vive par un processeur. Le bus est constitué de trois bus électroniques distincts, un bus de données de 128 bits, un bus d'adresse (généralement de 64 bit dans un ordinateur)[réf. souhaitée], un bus de contrôle, plus l'arbre d'horloge. Le bus d'adresse permet de sélectionner les cellules mémoires qui doivent être lues ou écrites, le bus de données sert à transmettre le contenu de la mémoire elle-même, le bus de contrôle indique s'il s'agit d'une lecture ou d'une écriture. Les bus changent d'état sur une transition du bus d'horloge, le transfert se fait sur une transition inverse. Ce type de bus est extrêmement rapide : un PC de 2008 permet ici des transferts à 6,4 gigaoctets (Go) par seconde[réf. nécessaire]. Ces bus sont des bus au sens de l'électronique, avec leur limitation de longueur. Plus le transfert est rapide, plus ils doivent être courts.
  • Interconnexion de disques durs SCSI. Une nappe à 68 conducteurs relie chaque disque à l'adaptateur et transporte tour à tour les signaux de commandes et de données sur 16 bits. Ce type de bus est très rapide quand la nappe est de haute qualité, il peut atteindre 320 Mo/s.

Bus série[modifier | modifier le code]

Matériel[modifier | modifier le code]

Un bus série transmet les informations bit par bit. Il peut comporter deux lignes distinctes permettant à ces bus d'être bidirectionnels afin de permettre la transmission d'information dans les deux directions simultanément, plus des lignes auxiliaires pour d'éventuels signaux de contrôle.

Fonctionnement[modifier | modifier le code]

Le bus série transmettant les données bit par bit, l'émetteur doit sérialiser l'information pour sa transmission. Le récepteur devra effectuer l'opération inverse.

Transmission d'un mot par liaison série  :

Le composant émetteur doit transmettre un mot de 32 bits. Le protocole du bus précise dans quel ordre il doit les placer, soit en commençant par le bit le plus significatif, soit par l'autre bout. Il transforme ainsi le mot en une séquence sur 32 cycles de synchronisation du bus. Le composant récepteur reconstruit le mot de de 32 bits à partir des bits reçus.

Le câble de bus série comporte beaucoup moins de conducteurs qu'un bus parallèle, ce qui simplifie le câblage et entrave moins la circulation de l'air dans les appareils informatiques.

L'intérêt principal de ce type de bus est que pour un coût moindre (grâce au faible nombre de conducteurs de données) il permet - en faisant appel à des composants électroniques de haute qualité - de dépasser les débits atteints par des bus parallèles[réf. souhaitée].

Cas d'utilisation[modifier | modifier le code]

Bibliographie[modifier | modifier le code]

Notes et références[modifier | modifier le code]

  1. Unité fonctionnelle : « entité prise en considération définie selon sa fonction ou son effet. (…) Une unité fonctionnelle peut être mise en application par une ou plusieurs unités physiques ou modules de programme[1] ».
  2. Rien ne s'opposerait à des mélanges entre ces modes de transmission, par exemple un bus parallèle de huit bits transmettant d'abord quatre octets d'adresse, puis huit octets de données ; mais en général, les bus sont soit entièrement série, soit entièrement parallèle.
  3. Soit 32 pixels de 32 bits, par exemple, afin d'effectuer un traitement parallèle pour réaliser les calculs plus rapidement[réf. souhaitée].

  1. 351-56-02 Unité fonctionnelle, CEI 60050.
  2. CEI 60050 351-56-10 « bus ».
  3. Qu'est-ce qu'un bus informatique ?, sur le site commentcamarche.net, aout 2014 :
    (en) Definition of:bus, PC mag encyclopedia, consulté le 12 juillet 2014
  4. CEI.
  5. Bases d'architectures des systèmes électroniques,‎ (lire en ligne), p. 24 [PDF] ; CEI.
  6. 731-08-02 bus optique, CEI 60050.
  7. (en) What is north gate and south gate on a motherboard, sur le site answers.com
  8. Le JEDEC pose les bases de la HBM 2, sur le site hardware.fr du 13 janvier 2016, consulté le 28 janvier 2016.

Voir aussi[modifier | modifier le code]

Sur les autres projets Wikimedia :

Articles connexes[modifier | modifier le code]