|
- Notes techniques - Télécharger le plug-in Macromedia Flash - |
Fonction et Paramètres d'un Bus InformatiqueAlors voilà... Vous imaginez sûrement l'intérieur de votre ordinateur comme un condensé de technologies extrêmes, un pot-pourri de tout ce que l'intelligence humaine a pu produire comme trucs déments et ultraminiaturisés, un maëlstrom de bitoniaux électroniques et autres nanobidules à particules gamma. Bon, c'est vrai qu'un ordinateur est une machine plutôt complexe composée de deux ou trois de ces machins là... Mais n'en déplaise à votre imagination exaltée, un ordinateur, c'est avant tout un dédale de petites rues étroites et mal éclairées qu'empruntent à la vitesse de l'électron des données bêtement binaires pour se rendre d'un composant à un autre. Mais comment ? Comment ces données "voyagent"-elles ainsi
au coeur de la machine ? Quelles voies empruntent-elles pour se rendre
si rapidement d'un point à un autre ? Prenez un ticket et attachez vos ceintures. Nous allons découvrir ensemble le charme irréel des transports en commun sans odeur de sueur ni main baladeuse... Le voyage va être long, mais vous pouvez parler au chauffeur... Un bus se présente...Bus et transport en commun de bitsUn simple conducteur de bus...Répétons-le encore une fois: l'ordinateur "travaille" en
Décidément, cette animation là aura été rentabilisée... Ceci rappelé, la définition d'un bus informatique est à peu
de chose près celle du Petit Bob: Ne cherchez pas plus loin ! Un bus informatique,
ce n'est que ça: un simple chemin électrique
reliant entre eux des composants électroniques appelés à communiquer. Bus et couloirs de busBien évidemment, vous vous doutez qu'un bus est un peu plus complexe
qu'un bête
fil électrique, et vous avez parfaitement raison ! Effectivement,
un bus est en réalité constitué de PLUSIEURS bêtes
fils électriques,
que l'on appelle d'ailleurs plus élégamment des lignes
de bus. L'activité électrique sur une ligne de bus peut être facilement schématisée à l'aide d'un chronogramme, simple représentation graphique de la variation de la tension en fonction du temps. Ainsi, au gré de la valeur des bits véhiculés sur la ligne, la tension sur celle-ci oscillera entre une valeur haute (bit à "1") et une valeur basse (bit à "0"). On appellera front montant une transition 0→1
et front descendant la transition inverse 1→0.
Les lignes de fronts sont inclinées afin d'illustrer le fait que les transitions ne sont pas instantanées, mais cette inclinaison est volontairement exagérée par rapport aux délais réels. Nous avons présumé ici que la tension électrique
correspondant
à un bit "1" était supérieure à la tension
matérialisant un bit "0", et
c'est généralement le cas. Néanmoins, la "traduction" électrique
des bits est fixée par la Mais au fait... Pourquoi PLUSIEURS lignes par bus ? Bus de donnéeBien sûr ! Puisqu'un bus sert à transmettre des données, il faut bien qu'une ou deux de ses lignes servent au transport de celles-ci ! Comme nous venons de le dire, les bits constituant l'information manipulée
par l'ordinateur se déplacent
généralement
en bandes, le plus souvent par groupes
de huit individus. Tout bus doit donc s'avérer capable d'assurer
ces migrations électroniques collectives.
...Deux manières très différentes de transmettre des données ! Notons qu'un bus fonctionne
généralement sur le principe très manichéen du "tout
ou rien".
Pas question pour lui de ne transférer qu'un bit ou deux pour le seul
motif que cela suffirait au composant récepteur. A admirer cette animation toute en naïveté, on pourrait croire
le bus parallèle
naturellement plus performant que le bus série. L'intuition n'est pas
fausse, mais doit être nuancée. En effet, un bus parallèle s'avère très performant
sur des bus de petites distantes, mais dès lors que la longueur du bus augmente,
la synchronisation des différentes lignes devient difficile à maintenir
sans diminuer la
Bus d'adresseComme nous le verrons bientôt, plusieurs composants se branchent généralement
sur un même bus afin de réduire les coûts de fabrication.
On parle alors de
Bien évidemment, cette adresse est une valeur binaire et donc
facilement matérialisable
sous forme de bits. Plus le nombre de lignes dédiées à cette
adresse sera important et plus important sera le nombre d'adresses identifiables.
Bus de commandeEn sus des bits de donnée et d'adresse, d'autres bits sont également échangés sur leurs propres lignes. Ces lignes, qualifiées de lignes de commande, servent surtout de support à tous les signaux nécessaires à l'administration technique du bus. Figurent, entre autres, dans ce bus de commande les lignes de lecture/écriture,
les lignes d'
Les moins dissipés des visiteurs de ce site auront compris que le bus illustré ci-contre est un bus de type parallèle.
A. 4
B. 16 C. 1111
Mais brisons là cette belle et harmonieuse théorie ! Afin de gagner en place et en coût de fabrication, les mesquins constructeurs ont tendance à vouloir limiter le nombre de lignes de leurs bus. Leur technique favorite pour y parvenir s'appelle multiplexage et consiste à utiliser les mêmes lignes afin de transmettre des signaux de nature différente. Il existe différentes techniques
de multiplexage, mais le multiplexage
temporel est le plus fréquemment utilisé au niveau des
bus informatiques. Dans ce cas précis, un dispositif particulier appelé multiplexeur
se charge de réceptionner les différentes communications à transmettre
sur le bus puis attribue à celles-ci des "fenêtres" d'occupation des
lignes mises en commun.
Bus et débit de bitsLa fonction essentielle d'un bus, nous l'avons compris, est la transmission de données binaires entre deux points. Sa caractéristique essentielle est donc tout naturellement son débit, également appelé bande passante (bandwidth en US-ien), qui mesure la quantité d'information pouvant y transiter par unité de temps.
Le principal usager d'un bus informatique étant le bit, vous ne serez
pas étonné(e)
d'apprendre que ce débit se
mesure en bits par seconde (bit/s ou b/s) ou en octets par seconde voire,
pour les bus plus rapides, en leurs Bien évidemment, ce débit quantifie à lui seul
l'efficacité potentielle d'un
bus, mais cette valeur dépend de plusieurs paramètres
qu'il peut être intéressant
de passer en revue. Bus parallèle et bit-étalonNous avons vu qu'un bus parallèle pouvait être caractérisé par
sa largeur, valeur indiquant le nombre de lignes servant à la transmission
des données.
Celle-ci ne s'exprime bien sûr pas en centimètre, mais en
nombre de bits, chaque ligne assurant le transport d'un seul bit à la
fois. Comme nous sommes en droit de nous y attendre, plus un bus parallèle sera large, et plus son débit sera élevé. Ainsi, un mot de 16 bits nécessitera deux passages sur
un bus de 8 bits pour être transmis, mais un seul passage sur
un bus de 16 bits. De la même manière, un double mot de 32 bits
nécessitera
quatre passages sur un bus de 8 bits, deux passages sur
un bus de 16 bits et un seul passage sur un bus de 32 bits.
Mode d'emploi d'un busUn transfert de donnée sur un bus n'est pas une opération "ponctuelle" dans le sens où ce transfert n'est en réalité que la dernière étape d'une succession de communications entre le composant émetteur et le composant récepteur, l'ensemble de ces échanges constituant une transaction. Bien qu'il existe différents types de transactions possibles sur un bus, les transactions de lecture et d'écriture sont les plus fondamentales. De fait, chaque type de transaction déclenche invariablement le même enchaînement - ou plutôt séquencement - d'échanges sur le bus, l'ensemble de ces échanges provoquant inévitablement l'apparition d'un délai de latence entre la formulation d'une requête et son accomplissement effectif. L'ensemble des séquencements correspondant à chaque type de transactions
possibles constitue le protocole
du bus, en quelque sorte son "mode d'emploi" complet.
Cliquez sur les boutons de l'animation afin de visualiser les différentes étapes d'un transaction de lecture sur le bus (un composant émetteur réclame à un composant récepteur une donnée qu'il détient). Hélas, mille fois hélas pour nous, vis-à-vis du séquencement des transactions sur un bus, les stratégies diffèrent ici encore...
Bus synchronesNous venons de parler ci-dessus de "passages" afin d'évoquer le
transit des bits sur le bus, mais à quoi
cette notion correspond-elle très concrètement ? Petit extrait de notre vieux cahier de science physique de
sixième: "Une fréquence caractérise tout événement
cyclique, c'est-à-dire tout événement se répétant
à l'identique au cours du temps.
Au sein de l'ordinateur, cet événement cyclique est constitué par
la vibration du En
théorie, chaque période de la fréquence cadençant
un bus synchrone peut permettre un transfert de données, celui-ci
survenant généralement
lors du front montant du signal. A. 16 Mo/s
B. 128 Mo/s C. 128 MB/s Bien sûr, rien ne vous choquera lorsque nous dirons que le débit théorique d'un bus parallèle synchrone se calculera par cette très simple formule: Débit théorique du bus = Largeur du bus x Fréquence de fonctionnement Rappelons encore une fois que ce débit calculé est un débit théorique. Il faudrait, pour qu'il soit réel, que le bus fonctionne en permamence et à plein régime, ce qui s'avère non seulement rare mais même totalement impossible de par les inévitables "temps morts" engendrés par le séquencement.
Bus asynchronesLe bus synchrone est bel et bien un bus performant et discipliné, mais il souffre cependant de deux ou trois contraintes de taille. Ainsi:
Afin de dépasser ces fâcheuses contraintes, des bus
asynchrones ont très vite
été mis au point. Dépourvus de tout signal d'horloge,
la longueur de ces bus ne devient plus un problème tandis que débarassés
de cette contrainte temporelle fixe, les composants connectés n'ont
plus à "attendre
leur tour"
pour répondre aux sollicitations qui leur sont soumises et placent
ainsi leur réponse
sur le bus dès que celle-ci est prête. Contrepartie de ce beau tableau: n'ayant plus de référence temporelle
afin de synchroniser requêtes et réponses, les transactions
sur ce type de bus nécessitent
davantage de lignes de commande, rendant plus complexes sa conception
et sa réalisation.
Taux de transfert: de Hop ! à Hop, hop ! (voire plus)Un moyen très évident afin d'augmenter le débit d'un bus serait d'augmenter la fréquence de fonctionnement de ce dernier, mais les contraintes technologiques freinant rapidement l'enthousiasme, les ingénieurs commencèrent déjà par essayer d'améliorer l'existant. Nous venons d'apprendre il y a peu que les transferts sur un bus synchrone se déroulaient généralement lors du front montant du signal d'horloge. Il serait donc pertinent de penser qu'en exploitant à la fois le front montant ET le front descendant afin de synchroniser les échanges sur le bus, il serait possible de doubler le taux de transfert de celui-ci, c'est-à-dire la quantité de données transférées par cycle d'horloge, et ce, sans toucher à sa fréquence réelle de fonctionnement. La première sortie "grand public" de ce
bus révolutionnaire accompagna l'avènement du processeur Le fait est que ce bus existe depuis quelques années et qu'il a pris
le nom générique et charmant de bus DDR (Double
Data Rate) soit, en bon français,
"Double Transfert de Donnée". Le bus QDR fut inauguré dans la liesse, l'ivresse
et les confettis avec le processeur Plus fort encore, à peine quelques mois plus tard, un bus QDR (Quadruple Data Rate) voyait le jour dans les labos de Monsieur Intel. Techniquement parlant, ce bus QDR recourait à une
belle filouterie technologique puisqu'au lieu d'exploiter bêtement
le signal brut de l'horloge, les ingénieurs d'élite de
M. Intel se débrouillèrent
pour "dédoubler" celui-ci,
déphasant le second signal de 90° par rapport au premier. Restait
aux ingénieurs subalternes à bêtement exploiter les
fronts montant et descendant de chacun de ces signaux jumeaux et
hop ! hop ! hop ! hop !... Intel venait d'inventer
le bus "quadpumped" !
Cliquez sur les différents types de bus (simple, DDR, QDR) afin de visualiser les transferts de données qu'ils impliquent.
Ces techniques de multiplication du taux de transfert, technologiquement
très pointues, sont de fait réservées au bus le plus
rapide et le plus sollicité de
l'ordinateur: le Ce concept de taux de transfert assimilé, il nous est maintenant possible de compléter notre formule de calcul du débit d'un bus parallèle synchrone: Débit théorique du bus = Largeur du bus x Fréquence de fonctionnement x Taux de transfert A. 800 Mo/s
B. 3.200 Mo/s C. 6.400 Mo/s Tout ceci dit et assimilé, il nous est maintenant possible d'exprimer le délai réclamé par un transfert de données sur le bus: Temps de transfert = Latence + (Taille de l'envoi / Débit du bus) Cette formule, très théorique, nous permet cependant une réflexion puissante et lumineuse sur les besoins et exigences de nos bus. A savoir que:
Ainsi, selon sa localisation et la nature des composants reliés à lui, il faudra pour chaque bus trouver un compromis optimum entre latence et débit, soit, en d'autres termes, entre réactivité et capacité.
Plan du réseauUn réseau très denseComment vous persuader de l'importance des bus en informatique ? Peut-être en vous précisant qu'on en trouve à tous les niveaux de l'ordinateur, depuis la souris la plus inoffensive jusqu'à la puce la plus féroce.
Bref, des bus partout !
Organisation du réseauDes lignes dédiées ou partagées
Hormis le coût exhorbitant engendré par un tel dispositif et une gestion prévisiblement calamiteuse, un autre problème ne manquerait pas de se poser: comment en effet ajouter un élément à ce réseau, devinant que chaque élément déjà connecté ne peut disposer d'un nombre infini de connexions ? L'idée de dédier un bus tout exprès à la mise en communication de deux éléments reste possible, mais elle doit de fait être réservée à une liaison figée et exclusive, aucun autre dispositif ne pouvant s'y connecter par la suite. Ce bus hyperspécialisé prend alors le nom de bus dédié ou, à l'américaine, de bus Point-to-Point.
Le fait est qu'un ordinateur personnel est une structure "ouverte":
vous pouvez en effet lui ajouter une carte son ou un modem, une carte
tuner ou
un scanner selon
vos besoins. Dès lors, le principe du bus dédié devient
impossible à conserver, sous peine d'arriver rapidement à la pétaudière
ci-dessus décrite.
Les limites du collectivisme...Le bus partagé est certes une belle et grande idée, bien modulaire, bien économique et tout et tout, mais hélas affublé de deux très gros inconvénients:
Funeste et terrible conséquence de tout cela: si les transactions venaient à se multiplier, des goulots d'étranglement (bottlenecks) seraient susceptibles de se produire pour l'accès à notre bus. Bon ! Pour le premier point, rien à faire, il faut se
résoudre
à voir le débit de notre beau bus partagé entre tous ses
locataires. Des bus à impériale ?Bus partagé, bus partagé, d'accord ! Mais à quelle fréquence
le cadencer ? Heureusement, une solution très simple est envisageable: elle consiste
à regrouper sur un même bus "haute performance" les éléments les plus
rapides et les plus sollicités de l'ordinateur, et reléguer les composants
plus frustres ou moins exigeants sur un bus plus pépère relié au précédent
par un pont.
Un bus rapide relie ensemble le processeur et la mémoire,
très
gros travailleurs, tandis qu'un bus moins rapide se charge de relier les périphériques
de l'ordinateur, globalement moins exigeants en terme de cadence de travail.
Avec ce dispositif de bus étagés, on trouve tout en haut de la hiérarchie le plus rapide et le plus sollicité de tous, le bus processeur, qui se trouve ainsi quasiment dédié à l'interconnexion entre le processeur et la mémoire tandis que les différents périphériques de la machine se partagent le ou les bus d'extension, moins exigeants en terme de communications.
Le poinçonneur des lilas ?Bien ! Maintenant que nous avons organisé géographiquement nos bus entre composants rapides et composants lents, il est temps désormais de s'atteler à un autre problème susceptible d'entraîner de gros bouchons sur les petites autoroutes de l'information cachées à l'intérieur de nos boîtiers métalliques, à savoir l'accès au bus. Avec l'apparition de la notion de bus partagé, une tranchante épée de Damoclès plane au dessus des transactions susceptibles de s'y dérouler.
Ces deux problèmes, majeurs, rendent absolument nécessaire la conception d'un dispositif de contrôle de l'accès au bus. Ce dispositif, qui serait appelé très logiquement contrôleur de bus, serait chargé de réceptionner les demandes de transactions, établir des priorités et, en fonction de celles-ci, accorder ou retarder l'accès au bus. En un mot: gérer l'arbitrage du bus. De manière très pratique, un composant qui obtient l'accès au bus devient le temps de sa transaction le maître du bus (bus master), le composant qu'il sollicite à fin de lecture ou d'écriture étant qualifié d'esclave. Diverses méthodes d'arbitrage sont possibles, plus ou moins complexes et plus ou moins efficaces. Il est cependant possible d'en distinguer deux grands types:
Enfin bref... Pffff ! Bien ! Nous sommes donc prêts, désormais, à plonger au coeur de la machine et nous pencher en initiés sur le bus le plus rapide et le plus essentiel de l'ordinateur: ... pour le coeur de la machine, c'est simple, suivez les bus ! |
|
Arcana Percipio est un site destiné à aider le plus grand nombre. Tous droits réservés Arcana Percipio © 2004-2005. |