- Notes techniques - Télécharger le plug-in Macromedia Flash -

Le Bus Processeur

Fonction et Paramètres d'un Bus Informatique
Dernière mise à jour
26 Avril 2005
Back Side Bus. Brochage. Bus d'adresse. Bus de donnée. Bus de données interne. Bus système. DIB (architecture). EV6 (bus). Front Side Bus. GTL (bus). Hypertransport (bus). Mémoire adressable. NetBurst. Northbridge. Port entrées/sorties (port E/S).

Alors voilà...

Imaginez un génie total. Quelque chose comme le fruit de l'accouplement en éprouvette d'une Marie Curie [1867-1934] et d'un Albert Einstein [1879-1955], avec Bernard-Henri et Arielle comme parrain marraine. Autant dire une bête d'amphi, un concentré neuronal, un machine à phosphorer mais qu'une malheureuse mutation aurait rendu autiste.

Cette navrante métaphore vise simplement à montrer combien l'intelligence, si lumineuse soit-elle, n'est rien sans faculté de communiquer.
- Appel du pied à un éventuel sponsor de téléphonie mobile: nous sommes tout à fait prêts à glisser ici une subliminale insinuation du style "acheter mon portable, vous deviendrez un génie !" -

Bref, tout comme un cerveau normalement constitué se trouve relié au reste du corps par la moëlle épinière, le processeur est uni au reste de l'ordinateur par des connecteurs métalliques qui constituent le bus processeur.

Ainsi coincé entre la puce et le monde extérieur, vous devinerez sans peine que le bus processeur est une zone d'hyperactivité électronique à laquelle il serait bien sot de ne pas s'intéresser, surtout que les ingénieurs y consacrent depuis quelque temps déjà toute leur bouillonnante attention.

 

Le bus impérial

Un bus impossible à rater !

Le bus processeur... Allez, ça y est ! On va encore nous parler d'un truc dément, électronicopulsé ou tout comme, commundesmortellement imbitable et si miniaturisé que quasi abstrait...
Et bien... pas du tout. 

Processeur-carte mèreQuiconque a déjà vu un processeur complètement nu a sûrement remarqué, selon le modèle présenté, une matrice de jolies broches dorées sur une de ses faces ou une rangée de lamelles conductrices sur un de ses côtés.

Ces quelques dizaines de petits organes phaliques, soigneusement disposés pour harmonieusement s'enficher dans un support femelle situé à la surface de la carte mère, constituent le brochage du processeur.
 


 

Et bien hormis quelques unes de ces broches uniquement destinées à l'alimentation électrique de la puce, le bus processeur, c'est un peu ça ! Très concrètement et très visiblement.

 

Un bus, plusieurs lignes...

Une question vous turlupins peut-être: pourquoi tant de broches afin d'assurer une simple connexion physique entre le processeur et le reste de l'ordinateur ?
Et bien le fait est que les communications entre le processeur et la carte mère sont des processus assez complexes mettant en jeu de multiples signaux fonctionnellement différents. Or, chacun de ces signaux dispose de sa propre broche, dont le rôle est défini une fois pour toute à la conception de la puce.

En termes électroniques, ces broches constituent les lignes du bus processeur, lignes par lesquelles transitent ces signaux sous forme de simples courants électriques bivalents, manifestations très physiques des célèbres bits de l'univers binaire dans lequel évolue notre processeur.

 

Autre facteur participant à l'abondance des broches hérissant nos processeurs: la multiplicité de ses interlocuteurs.
En effet, le bus processeur a beau se matérialiser par une "simple" connexion physique entre le processeur et la carte mère, ou plus précisément un jeu de composants particulier de la carte mère appelé northbridge, les signaux qui le traversent relient en réalité, directement ou indirectement, le processeur à tous les locataires de l'ordinateur, à savoir:

  • La mémoire vive,
  • La mémoire cache,
  • Les différents périphériques.

Au delà de cette configuration somme toute assez banale, certains ordinateurs plus sophistiqués peuvent également fonctionner en mode dit multiprocesseur. Comme son nom l'évoque assez bien, ce mode caractérise les ordinateurs abritant plusieurs processeurs gérant de concert les mêmes ressources de la machine. Dans ce cas très particulier, plus encore que pour le mode monoprocesseur classique, le bus processeur endosse une responsabilité critique dans les performances globales du système.

Bon ! Maintenant que le décor a bien été planté, il est temps désormais de monter dans ce bus impérial.

Le(s) bus processeur

Très morphologiquement parlant, le bus processeur est donc constitué par l'ensemble des lignes alimentant le processeur en données. Véritable "moëlle épinière" de l'ordinateur entier, le bus processeur est également appelé bus système, ou encore bus frontal, francisation un peu benette du Front Side Bus (FSB), comme l'appellent vos amis anglais.

Quoi qu'il en soit, le bus processeur, si central soit-il, n'en reste pas moins un bus informatique comme tous les autres. A ce titre, l'ensemble de ses lignes forme de fait trois "sous-bus" fonctionnellement différents: bus de donnée, bus d'adresse et bus de commande, chaque ligne se trouvant classée dans telle ou telle catégorie selon la fonction des signaux qu'elle véhicule.
Pour résumer en termes clairs, nous avons donc:

Bus processeur = lignes de donnée + lignes d'adresse + lignes de commande

 

Le bus de donnée

On précise parfois "bus de donnée EXTERNE" pour bien différencier ce bus de l'ensemble des lignes situées à l'intérieur du processeur et qui constituent son bus de donnée INTERNE.

La principale fonction du bus processeur étant l'échange d'informations, le rôle du (sous-)bus de donnée coule de source puisque ce sont par ses lignes que transitent toutes les données échangées entre le processeur et ses interlocuteurs habituels.

De par le fait que les lignes de donnée se chargent du traffic le plus "évident" du bus processeur, à savoir les données elles-mêmes, il n'est pas rare que l'on confonde, volontairement ou non, le bus processeur dans son intégralité avec ce sous-bus de donnée.

 

Débit du bus de donnée

L'efficacité du bus de donnée se résume presque entièrement dans un seul de ses paramètres, son débit (ou bande passante), qui mesure comme vous vous en doutez la quantité de données pouvant y transiter par unité de temps.

Très techniquement parlant, ce bus de donnée est un bus de type parallèle généralement basé sur un protocole synchrone. Or, tout comme n'importe quel bus informatique de ce genre, le débit d'un tel bus dépend très directement de trois de ses paramètres physiques: sa largeur, sa fréquence de fonctionnement, et son taux de transfert.

En trente années de progrès technologiques, ces paramètres ont très sensiblement évolué dans un même but: accroître le débit de ce bus fondamental, comme le montre ce tableau 100% synthétique:
 

Année
Processeur
Largeur Fréquence TT Débit
1979 8 bits 4,77 à 8 MHz x1 4,77 à 8 Mo/s
1978 16 bits 4,77 à 10 MHz x1 9,54 à 20 Mo/s
1981 6 à 20 MHz x1 12 à 40 Mo/s
1988 16 à 33 MHz x1 32 à 66 Mo/s
1985 32 bits 16 à 40 MHz x1 64 à 160 Mo/s
1989 25 à 50 MHz x1 100 à 200 Mo/s
1993 64 bits 60 à 66 MHz x1 480 à 528 Mo/s
1995 50 à 66 MHz x1 400 à 528 Mo/s
1995 60 à 66 MHz x1 480 à 528 Mo/s
1996 50 à 75 MHz x1 400 à 600 Mo/s
1997 66 à 100 MHz x1 528 à 800 Mo/s
1997 66 MHz x1 528 Mo/s
1998 66 Mhz x1 528 Mo/s
1999 100 à 133 MHz x1 800 à 1.064 Mo/s
2000 66 Mhz à 100 MHz x1 528 à 800 Mo/s
1999 100 MHz x2 1,6 Go/s
2000 100 à 133 MHz x2 1,6 à 2,1 Go/s
2002 100 MHz x4 3,2 Go/s
2000 100 à 200 MHz x4 3,2 à 6,4 Go/s
2001 133 à 200 MHz x2 2,1 à 3,2 Go/s
2001
Intel Itanium
133 MHz x2 2,1 Go/s
2004
Intel Itanium²
128 bits 100 à 133 MHz x4 6,4 à 8,5 Go/s
2004
AMD Athlon XP-64
var. jusqu'à 1,4 GHz x2 jusqu'à 25,6 Go/s
2004
AMD Opteron
jusqu'à 1,4 GHz x2 jusqu'à 25,6 Go/s

 

Longtemps considéré comme un "goulot d'étranglement" dans le flux de données entre le processeur et la mémoire, les bus processeur actuels atteignent de tels débits que l'entonnoir s''est déplacé aujourd'hui vers la mémoire de l'ordinateur qui peine de plus en plus à assouvir les demandes démentielles en données des processeurs modernes.

 

Le bus de donnée à travers les âges...

Comme l'habile tableau précédent vous l'a peut-être appris, le débit du bus de donnée a donc augmenté de quelque 540.000% en l'espace de 25 ans. Vous vous doutez donc bien que le lascar a subi entretemps une ou deux petites évolutions mineures...
 

Le bus GTL: Grosso modo Trop Limité ?

Le bus GTL (Gunning Transceiver Logic) est un peu le bus de prédilection de Intel puisqu'il équipe les processeurs de la firme depuis la nuit des temps, décliné sous diverses variantes: GTL+, AGTL ou AGTL+ (Assisted GTL).

Sa version la plus aboutie a beau pulser jusqu'à 200 MHz en quad-pumping (bus QDR) sur les derniers Pentium 4 à la mode, de type Netburst, le bus GTL semble néanmoins plafonner en potentiel, surtout que son statut de bus partagé le rend bien moins performant en mode multiprocesseur, les puces associées devant alors partager entre elles son débit total.
 

Le bus EV6 en ligne

En 1999, AMD dévoile son processeur Athlon K7 qui, en plus de divers trucs sympas, inaugure un tout nouveau bus processeur flambant neuf, mis au point par la société Digital Equipment.
Son nom: bus Alpha EV6.

Les caractéristiques de la bête sont séduisantes: fréquence de fonctionnement jusqu'à 200 MHz en Double Data Rate (bus DDR), largeur de 64 bits, mais, surtout, une technologie de bus point-to-point permettant à chaque puce en mode multiprocesseur de disposer pour elle seule de son propre bus, et, donc, d'un débit maximal.
 

L'HyperBus

Avec la sortie de son processeur Athlon-64, AMD décidait de frapper un grand coup et de dépoussiérer sans vergogne le vieux concept du bus système en lui substituant un bus révolutionnaire tout à la fois:

  • hyper-rapide, puisque capable de pulser jusqu'à 1,4 GHz (!), qui plus est en DDR; 
  • hyper-modulable, puisque véhiculant les bits de donnée et de commande par paquets sur des lignes de largeur variable, de 4, 8, 16 ou 32 bits selon les besoins;
  • hyper-polyvalent, puisque capable non seulement d'interconnecter un processeur à sa carte mère mais aussi d'interconnecter plusieurs processeurs entre eux grâce à des temps de latence très faibles;
  • hyper-communicant, puisque doté de deux liens unidirectionnels permettant un traffic bidirectionnel simultané;
  • hyper-respectueux puisque tout à fait compatible avec les technologies de bus PCI, AGP ou USB;
  • hyper-économe puisque faible consommateur électrique grâce à l'exploitation de signaux LVDS (Low Voltage Differential Signaling)

Bref, les petits gars du marketing de chez AMD brainstormèrent hyperlongtemps avant de lui trouver un nom au poil: le bus hypertransport, adossé et promu par un hyperactif consortium de constructeurs baptisé, devinez comment, "HyperTransport Consortium".

En vous basant sur les quelques hyper-infos compilées ci-dessus, à combien estimeriez-vous le débit d'un bus HyperTransport au maximum de sa forme ?
A. 2,8 Go/s
B. 5,6 Go/s
C. 11,2 Go/s
D. 22,4 Go/s

Chez Intel, on se fait comme qui dirait de l'hypersouci...

 

Le bus d'adresse

Bon ! Un processeur manipule des données, d'accord, c'est même un peu pour ça qu'on le paye. Mais qu'en fait-elle, la bête, de ces si précieuses informations une fois qu'elle les a bien exploitées ? Elle les oublie bien vite ?
Et d'ailleurs, soit dit en passant, où même les avait-il trouvées ?
 

Pourquoi un bus d'adresse ?

Vous ne le saviez peut-être pas, mais vous êtes formidable ! Que l'on vous demande votre pointure, votre code de carte bleue ou le nom de ce prof de gym qui a pourri votre quatrième et hop ! instantanément ou presque, vous effervescez sans en avoir l'air, vos neurones se mettent en branle et rapatrient on ne sait trop comment du tréfonds de votre mémoire l'information demandée.
A côté du vôtre, le processeur s'apparente décidément à un cerveau de bulot...

Parce que le processeur est peut-être un cerveau fulgurant, mais un cerveau dénué de toute mémoire ! Celle-ci se trouve ailleurs, sur la carte mère, et constitue l'interlocuteur principal du processeur qui vient y chercher ses instructions et y sauvegarder ses données en cours de traitement.

Pour votre processeur, la mémoire vive de l'ordinateur ressemble à un gigantesque rayonnage de minuscules cases, chaque case pouvant sauvegarder la valeur d'un octet. Afin de pouvoir accéder individuellement à chacune de ces cellules, chacune d'entre elles porte un identifiant unique, bien évidemment binaire, qui constitue son adresse.

Ainsi, dans le cas d'un échange entre le processeur et la mémoire, deux cas de figure peuvent se présenter:

  • Soit le processeur réclame une valeur en mémoire: il place alors l'adresse de la case-mémoire demandée sur le bus d'adresse et envoie sa requête à la mémoire. Celle-ci y répond en recherchant la donnée à l'adresse demandée puis place celle-ci sur le bus de donnée à destination de la puce;
     
  • Soit le processeur désire sauvegarder une donnée en mémoire. Il place alors la valeur sur le bus de donnée et l'adresse où il désire l'entreposer sur le bus d'adresses. La mémoire reçoit la requête et s'exécute docilement.
     

Trafic sur le bus processeur

Un processeur intéragit de deux manières différentes avec la mémoire: soit il lui soumet une requête de lecture afin de rapatrier la valeur d'une donnée située à une adresse qu'il précise, soit il lui impose un ordre d'écriture afin de sauvegarder une valeur à une adresse donnée.
Vous remarquerez ici le rôle très important du bus de commande qui se charge justement d'indiquer la nature de la requête du processeur ("L"ecture ou "E"criture).
 

Attention ! Le bus d'adresse ne sert pas uniquement à identifier une adresse en mémoire; il permet également de cibler les périphériques de l'ordinateur, comme nous allons le voir...


Mais comme vous le savez maintenant, la mémoire n'est pas le seul interlocuteur du processeur puisque les périphériques de l'ordinateur sont également susceptibles d'échanger des informations avec la puce. C'est pourquoi ces périphériques, de la même manière que la mémoire vive, se voient également attribués des adresses uniques que l'on appelle ports d'entrées-sorties (ou ports E/S).

Ainsi, lorsque le processeur désire s'adresser à un périphérique particulier du système, il place sur le bus d'adresse une adresse de port E/S. Le périphérique concerné prend alors en charge la requête, l'exécute, puis, éventuellement, renvoie la donnée demandée sur le bus du même nom.

 

Mémoire de puce ou mémoire d'éléphant ?

Alors que de par son rôle de "canalisation à informations", le bus de données se caractérise évidemment par son débit, le bus d'adresse, bien moins susceptible de véhiculer de grosses quantités de bits, se caractérise surtout par sa largeur.

Si vos neurones ne sont pas sur pause, vous comprendrez facilement que la largeur du bus d'adresse conditionne directement la plage d'adresses identifiables et, donc, ce qu'on appelle la mémoire adressable.

Comme le bus de donnée, le bus d'adresse tend à s'allonger avec les différentes générations de processeurs, de par les capacités toujours plus colossales de ces derniers à prendre en charge de grandes quantités de données.
Regardez le tableau:
 

Année
Processeur
Largeur du bus d'adresse Mémoire adressable
1979 20 bits 1 Mo
1978
1981 24 bits 16 Mo
1988
1985 32 bits 4 Go
1989
1993
1995
1995
1996
1997
1999
2000
2001
1997 36 bits 64 Go
1998
1999
2000
2002
2000
2004
AMD Athlon XP-64
40 bits 1 To
2004
AMD Opteron
2001
Intel Itanium
44 bits 16 To
2004
Intel Itanium²
50 bits 1 Eo

Bien ! Si vous avez bien suivi jusqu'à ce point, nous devrions maintenant parler du sous-bus de commande de notre bus processeur.
Oui mais... non. En réalité, ce bus de commande, bien que physiquement présent, ne montre que peu de particularité au sein de notre bus système et nous n'en parlerons donc pas davantage.

 

D'autres bus à (com)prendre...

Nous venons de proprement disséquer le bus processeur "fondamental", c'est-à-dire la connexion vitale entre la tête (le processeur) et le corps (la carte mère) de la machine. Alors, voilà, on passe à autre chose ?
Euh... en fait, non. Parce que le bus processeur peut également relier le processeur a un autre acteur majeur de l'architecture d'un ordinateur moderne: la mémoire cache.

 

Le bus intérieur

Avant de nous pencher sur la mémoire cache et ses secrets, intéressons-nous un instant à un bus qui n'en est pas vraiment un: le bus de donnée interne, comme on l'appelle parfois.

En dépit des apparences, le processeur n'est pas un bloc monolithique de silicum brut. Il se compose en fait de nombreuses zones fonctionnelles appelées registres, décodeur-séquenceur, UAL ou encore FPU qui s'échangent les données en cours de traitement au fur et à mesure de leur stade d'exécution via, vous l'aviez deviné, ce bus de donnée interne.

Comme ce bus est destiné à faire transiter les données reçues depuis l'extérieur, vous ne serez pas étonné(e) d'apprendre que sa largeur correspond généralement à celle du bus de données externe, c'est-à-dire du bus système.

Plus surprenant, et diablement important, la fréquence de fonctionnement de ce bus s'avère très supérieure à la fréquence du bus processeur, et ceci grâce à un dispositif particulier dénommé multiplicateur d'horloge qui permet au processeur de fonctionner en interne à une fréquence multiple de la fréquence délivrée par la carte mère.

Cette bonne surprise, en plus de nous réjouir, va également nous permettre de comprendre ce qui va suivre...

 

Le bus de derrière

Ainsi donc, le processeur turbinerait in petto à une fréquence beaucoup plus importante que le reste de l'ordinateur. Réflexion. Phosphorage. Effervescence neuronale et hop ! la conclusion brute de décoffrage: tant qu'il manipule ses données en son for intérieur, le processeur mouline à sa vitesse supersonique mais, à chaque fois qu'elle s'adresse au monde extérieur, la puce est contrainte de patienter avant de recevoir les données demandées.
La conclusion est excellente, mais ô combien frustrante quand on sait combien le processeur sollicite certains interlocuteurs de son environnement, et notamment la mémoire vive de l'ordinateur.

Dans le but de limiter au maximum les requêtes en mémoire du processeur, les architectes informaticiens, filous comme pas deux, intercalèrent alors entre la puce et la mémoire un dispositif intermédiaire qu'ils baptisèrent mémoire cache.

En réalité, les processeurs modernes n'incluent pas un seul bloc de mémoire cache mais deux, voire même trois. Celles-ci sont appelées mémoires cache interne (niveau 1) et externe (niveaux 2 et 3), de rapidité décroissante mais disposées en quantité croissante, à différents niveaux du système.

Comme son nom l'indique, la mémoire cache n'est pas autre chose que de la mémoire, mais une mémoire hyper-rapide, et donc, hyper-coûteuse, et donc utilisée en quantité bien moindre par rapport à la mémoire vive.
Le but de cette mémoire cache est enfantin à comprendre: une fois qu'un processeur en a terminé avec une donnée, il la replace normalement en mémoire. Or, les faits montrent que très souvent, cette donnée sera réutilisée par le processeur dans un délai très bref. Sachant ceci, le rôle de la mémoire cache devient évident: elle se charge de réceptionner la donnée émise par le processeur et de la garder bien au chaud au cas où celui-ci viendrait à la redemander.
Simple, non ?
On vous l'avait dit...

Bien évidemment, qui dit mémoire intermédiaire dit bus pour la relier au processeur. Celui-ci est tout naturellement appelé bus de mémoire cache, ou, par amusante analogie avec le bus frontal, Back Side Bus, c'est-à-dire "bus de derrière".

La fréquence de fonctionnement de ce bus est extrêmement variable et dépend très directement de l'endroit où est implantée la mémoire cache. Si celle-ci est incorporée à l'intérieur même du processeur, le bus fonctionne à la pleine vitesse de celui-ci, mais si celle-ci se trouve excentrée par rapport au coeur de la puce, le bus peut fonctionner à une fraction de la fréquence du bus de données interne.

Si cette mémoire cache dispose aujourd'hui de son propre bus, il n'en était pas de même sur les premiers modèles de processeurs disposant de ce "pense-bête" électronique. Sur ces derniers, alors, un seul et même bus système reliait mémoire vive et mémoire cache externe, empêchant toutes requêtes concomitantes vers ces deux destinations.
Le processeur Intel Pentium II fut la première puce grand public à dédier un bus tout exprès à la mémoire cache externe. Dès lors, l'accès simultané aux deux types de mémoire devenait possible, engendrant un gain sensible de rapidité.
Ce dispositif, pompeusement appelé architecture DIB (Double Independant Bus), se révéla si performant qu'il fut reconduit ensuite sur tous les processeurs ultérieurs.

 

Enfin bref...

Très longtemps considéré comme un boulet, ou plutôt un goulet, de par sa capacité limitée à assurer le transport des données entre le processeur et le monde extérieur, le bus processeur est aujourd'hui un véritable boulevard à bits, surtout lorsqu'il prend la forme d'un bus HyperTransport.

Quoi qu'il en soit, ce bus démontre parfaitement que les capacités générales d'un ordinateur ne se limitent pas à la seule puissance de travail de son processeur; à quoi bon une puce fulgurant à 1 zéta-hertz si les données ne peuvent lui parvenir qu'au compte-goutte ?

L'harmonieux équilibre, voilà la clef.
Retiens bien ceci, petit scarabée...

Arcana Percipio est un site destiné à aider le plus grand nombre.
Pour cela, vos commentaires, vos réflexions et vos remarques sur son contenu sont indispensables à la qualité générale de ses pages. Dans la limite de l'usage malhabile de ses dix doigts, l'auteur de ce site tâchera de répondre à toute question ou remarque formulée poliment, ou alors moins poliment mais accompagnée d'un billet de valeur non négligeable.

Tous droits réservés Arcana Percipio © 2004-2005.