Bus de données

Un article de Wikipédia, l'encyclopédie libre.
(Redirigé depuis Bus d'adresse)
Aller à : navigation, rechercher

Un bus de données est un ensemble de conducteurs électriques destiné au transfert des données au sein d'un système numérique (notamment les ordinateurs)[1]. Le terme est aussi utilisé par extension dans le domaine logiciel.[réf. nécessaire]

Bus de données matériel[modifier | modifier le code]

Le bus de données interconnecte différents blocs logiques afin de leur permettre d'échanger des données. Typiquement, dans un ordinateur, il interconnecte le processeur, la mémoire centrale et les contrôleurs de périphériques.

Structure d'un système à microprocesseur

Structure[modifier | modifier le code]

Le bus de données peut se composer d'un ou plusieurs canaux en parallèle[a].

Chaque canal est bidirectionnel, contrairement au bus d'adresse. Cependant cette transmission bidirectionnelle peut soit se faire sur un canal bidirectionnel (cas de l'USB 1 ou 2) soit en utilisant deux canaux unidirectionnels (cas du SATA) grâce à une, ou deux, paire torsadée moins sensible aux interférences.

Vue logique[modifier | modifier le code]

Un bus de données se décompose en trois bus fonctionels[b],[2] :

Le bus de données 
permet, comme son nom l'indique, la circulation des données, y compris les instructions d'un programme entre un processeur et la mémoire. Différentes architectures de systèmes numériques peuvent être basées sur des bus de taille très différente, de 1 à 4 096 bits[3], celle-ci représentant la taille des mots transférés en un cycle, et donc le nombre de connecteurs parallèles composant le bus de données.
Si le système comporte un processeur, on fait souvent correspondre la taille des mots du bus avec celle du processeur pour des raisons de simplicité. Mais ce n'est pas toujours le cas, car cela dépend, entre autres, des contraintes du système et de son utilisation. Par exemple le bus de 4 096 bits, cité plus haut, est celui d'une carte graphique qui traite simultanément 128 pixels de 32 bits[3] et qui peut être vu comme la mise en parallèle de « 128 bus de données » de 32 bits de large.
Le bus d'adresse 
permet de désigner à chaque instant la case mémoire et/ou le périphérique auquel le contrôleur veut faire appel.
Le bus de contrôle 
permet d'effectuer des requêtes sur le bus et de contrôler le type de l'opération[c].

Différences entre l'implémentation et la vue logique[modifier | modifier le code]

Alors que sur une carte mère de PC presque tous les bus internes liés au microprocesseur sont physiquement parallèles, certains bus comme le l'I2C, le SATA ou l'USB utilisent le même médium pour réaliser successivement les opérations de contrôle, d'adressage et de transfert des données. Dans ces cas là, les trois bus logiques sont donc confondus en un seul bus physique.

Bus d'adresse[modifier | modifier le code]

l'unité de décodage active les lignes « chip select » des unités raccordées sur les bus d'adresses et données.

Dans le cas d'une carte mère d'un ordinateur à plusieurs cartes mémoires il faut d'abord sectionner la carte dans laquelle on va travailler grâce à la commande Chip select.

La plupart des composants (ROM, RAM, etc.) nécessite de sélectionner l'adresse physique du bloc mémoire sur laquelle l'opération doit s’effectuer; le bus d'adresse permet cette opération.

Dans la cas de bus de périphériques, l'adresse permet de définir quel périphérique est destinataire de la transaction. Chaque périphérique dispose en général d'une plage d'adresse contiguë. L'adresse permet donc à la fois de sélectionner le périphérique et la case mémoire destinataire au sein de ce périphérique.

Lorsque le bus d'adresse est plus large au niveau du contrôleur qu'au niveau des composants, des circuits de sélection transforment les signaux correspondant aux bits de plus fort poids en signal envoyé à l'entrée CS (de l’anglais Chip Select) de chacun des circuits à adresser.

Bus de contrôle[modifier | modifier le code]

Le bus de contrôle permet, comme son nom l'indique, de contrôler les opérations réalisées sur le bus. Dans le cas d'un bus multi-maître, c'est sur ce bus que les différents maîtres effectuent les requêtes d'accès au bus, qui sont départagées par un arbitre pour éviter les conflits d'accès. Parmi ses fonctions centrales, le bus de contrôle permet également d'indiquer si l'opération est une lecture ou une écriture.

Enfin, dans les bus les plus avancés, différents signaux additionnels peuvent être présents pour permettre des opérations complexes. Par exemple, sur un bus de 32 bits (4 octets), il est parfois possible d'indiquer que l'on ne souhaite accéder qu'à certains octets du mot (typiquement un seul octet ou un demi mot, c'est-à-dire 2 octets). Parmi les autres opérations courantes, on notera la « transmission rapide » (burst en anglais), qui permet d'effectuer en « rafale » plusieurs accès à des cases mémoires successives.

Constitution[modifier | modifier le code]

Le bus de contrôle peut être :

  • un simple fil pour indiquer la direction de la transaction sur le bus de données, par exemple, s'il veut faire une écriture ou une lecture dans une case mémoire, ou une entrée/sortie de ou vers un périphérique ;
  • une ou plusieurs lignes qui permettent aux circuits périphériques d'effectuer des demandes au processeur ; ces lignes sont appelées lignes d'interruptions matérielles (IRQ).
  • Dans le cas d'un transfert mémoire et s'il y a plusieurs cartes mémoire, il faut un bus qui va permettre de sélectionner la carte choisie.
  • Pour un périphérique externe le bus contient le numéro de périphérique sélectionné et son type.

Mémoire[modifier | modifier le code]

Pour une mémoire le bus de contrôle comporte en général quatre signaux :

  • WE (Write Enable) qui permet de choisir entre écriture et lecture ;
  • CE (Chip Enable) un bus, permettant de sélectionner le composant actif par le niveau logique d'un ou plusieurs fils ;
  • OE (Output Enable) qui sélectionne l'état basse impédance sorties à trois états, pour qu'elles déterminent le niveau d'un bus ;


Entrée sortie[modifier | modifier le code]

Selon le type d'entrée/sortie le bus contient son type (USB, SATA, série/parallèle, etc.), son numéro et la commande à exécuter.

Bus de données au sens logiciel[modifier | modifier le code]

On parle aussi de bus de données pour les intergiciels qui mettent à disposition des applications un support logiciel de transmission des données. Par exemple, la technologie CORBA met à disposition un tel bus de données au moyen de son ORB[réf. nécessaire].

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

Notes[modifier | modifier le code]

  1. Les bus parallèles se rencontrent surtout sur une carte mère.
  2. Un mème bus peut être utilisé pour ne transporter qu'une seule information (comme sur une carte mère) soit tous les types d'information (comme dans l'USB, par exemple).
  3. Le « bus de contrôle » sert à spécifier le type de donnée qui circule (ou qui va circuler) sur le bus.

Références[modifier | modifier le code]

  1. Cours d'initiation aux microprocesseurs et aux micro-ordinateurs, sur le site plil.fr, consulté le 19 janvier 2016
  2. Architecture matérielle : Schéma bloc d'un ordinateur, sur le site courstechinfo.be, consulté le
  3. a et b Voir : La HBM2 Hynix dispo ce troisième trimestre., sur le site hardware.fr du 16 juin 2015, consulté le 22 août 2016.

Articles connexes[modifier | modifier le code]