Bus de données

Un article de Wikipédia, l'encyclopédie libre.
(Redirigé depuis Bus de contrôle)
Aller à : navigation, rechercher
image illustrant l’informatique
Cet article est une ébauche concernant l’informatique.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

Consultez la liste des tâches à accomplir en page de discussion.

Ce modèle est-il pertinent ? Cliquez pour en voir d'autres.
Cet article ne cite pas suffisamment ses sources (décembre 2015).

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 ?).

Un bus de données est un bus informatique 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[2].

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 se décompose en trois liens logiques[3] :

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 à 1 024 bits[4], 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 forcément toujours le cas, selon les contraintes du système et son utilisation; par exemple le bus de 1 024 bits cité plus haut est celui d'une carte graphique qui traite 32 pixels de 32 bits en parallèle[4].
Le bus d'adresse 
permet de désigner à chaque instant la case mémoire et le périphérique auquel le maître 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[5].

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.

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 si 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 4 signaux :

  • WE (Write Enable) qui permet de choisir entre écriture et lecture,
  • CE (Chip Enable) qui sélectionne le composant ;
  • OE (Output Enable) qui sélectionne les sorties 3 états.
  • CS dans le cas de système à plusieurs cartes mémoire (mémoire morte ou vive) ce signal permet de sélectionner la carte avec laquelle le processeur va travailler.

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]

  1. Cours d'initiation aux microprocesseurs et aux micro-ordinateurs, sur le site plil.fr, consulté le 19 janvier 2016
  2. Les bus parallèles se rencontrent surtout sur une carte mère.
  3. Architecture matérielle : Schéma bloc d'un ordinateur, sur le site courstechinfo.be, consulté le
  4. a et b SK Hynix annonce la R9 Fury X d'AMD, sur le site hardware.fr du 16 juin 2015, consulté le 28 janvier 2016.
  5. Le bus peut etre utilisé pour ne transporter qu'une seule information (comme sur une carte mère) soit tous les types d'information (cas de l'USB par exemple), le bus de contrôle sert à spécifier le type de donnée qui circule (ou qui va circuler) sur le bus.

Articles connexes[modifier | modifier le code]