Cette page au format pdf

Le bus

Bus et transports en commun

Un bus est une voie de communication, formée d'un ou plusieurs conducteurs, sur laquelle sont disposées plusieurs connexions. Tout comme les passagers des transports en commun qui vont d'un arrêt à l'autre, les données circulent sur le bus elles aussi d'une connexion à l'autre. L'analogie s'arrête là car à un moment donné il n'y a jamais qu'un seul équipement qui transmet des données.
Ce concept de "bus" trouve son application aussi bien dans l'unité centrale (bus système, bus d'extension) que pour les connexions vers les périphériques ( bus SCSI, USB Universal Serial Bus, Firewire) ou au niveau des topologies de réseaux.

Le rôle du bus de la carte mère

Nous savons que le processeur est relié aux autres éléments de la carte mère et aux cartes d'extension au moyen de lignes que les informations empruntent pour passer d'un composant à l'autre. Ces lignes forment ce qu'on appelle le bus

Nous avons, lors de l'étude du schéma bloc d'un ordinateur, distingué le bus de donnée du bus d'adressage et du bus de contrôle. Cette distinction nous a permis de discerner les catégories d'informations qui circulent entre les différents composants du PC.

Schéma bloc

Le schéma ci-dessus peut se représenter plus simplement si on omet de distinguer la nature des signaux échangés (données, adresses et signaux de contrôle) . On parle du bus (au singulier) pour désigner à la fois le bus des données, des adresses et de contrôle.

Cette représentation convient pour représenter les échanges entre les microprocesseurs les plus anciens avec la mémoire et les unités d'entrées / sorties.
Tous les composants du système étaient cadencés à la même fréquence, celle du CPU. Ainsi le bus des premiers PC-XT fonctionnait à une fréquence de 4,77 MHz.

 

 

Bus XT

La bande passante

La bande passante, aussi appelée taux de transfert, représente le débit maximum auquel peuvent circuler les données. Elle s'exprime en méga octets par seconde (Mo/s).

Bande passante (en Mo/s)  =   largeur du bus (en octets)   x   fréquence (en Hz)

Il y a deux manières d'accroître ce débit : élargir la voie de circulation pour permettre le déplacement de plus de bits en parallèle ou accélérer la cadence des échanges ( la fréquence)

L'architecture multi-bus

La vitesse des processeurs augmente constamment, celle des mémoires dans une moindre mesure et au regard de cette évolution, la vitesse des circuits d'entrées/sorties change relativement peu. Cette différenciation des vitesses s'est marquée progressivement et l'architecture des bus a dû s'adapter pour que les communications entre les composants restent possibles.

C'est d'abord la fréquence du processeur et des mémoires qui a progressivement augmenté. La vitesse des unités d'entrées/sorties restait par contre limitée à 8 MHz. Il a donc fallu trouver un procédé pour que les voies d'accès aux mémoires soient plus rapides que celles qui mènent aux périphériques.

Le bus système tourne à la vitesse du processeur. Sa fréquence convenait aux mémoires mais les signaux devaient être temporisés par un "pont" (bridge) pour en adapter la cadence aux périphériques plus lents et sur un bus plus étroit.

Architecture multi bus
Bus du 486DX2

La vitesse des processeurs augmenta encore. Le 486DX2 fonctionnait en interne à une fréquence double de celle du bus système. Le doubleur de fréquence interne au processeur permettait de mettre à niveau des ordinateurs existants en changeant simplement de processeur tout en conservant une architecture peu coûteuse pour la carte mère. La mémoire cache interne au processeur devenait alors indispensable.

La vitesse des différents composants augmente sans cesse (même en ce qui concerne les circuits d'entrées/sorties) mais l' évolution est toujours plus nette pour les processeurs que pour les mémoires.

On utilise alors des mémoires caches externes. Le bus qui relie le CPU à la mémoire cache est appelé bus processeur ou "Back Side Bus" (BSB). Il est plus rapide que le bus système qui relie le processeur à la RAM dynamique et qui depuis est souvent nommé "Front Side Bus" (FSB).

  Pont nord - pont sud

Architecture Pont Nord / Pont Sud

Tous les processeurs fonctionnent maintenant à une fréquence qui est un multiple entier ou demi entier de celle de la carte mère. Ainsi un Pentium III 800 monté sur une carte mère dont le FSB tourne à 133 MHz fonctionne à six fois la fréquence du FSB.
En ce qui concerne les entrées/sorties, la vitesse qui était limitée à 8 MHz avec le bus  ISA  est passée à 33 MHz pour les extensions qui se raccordent au bus  PCI 

Architecture "Hub" d'Intel

Architecture Hub d'Intel

Les puces du chipset changent de noms. On parle maintenant de MCH  ( Memory Controller Hub) et d' ICH  ( I/O Controller Hub).
Ces deux hubs ne sont plus connectés par le bus PCI mais par un canal de lien ou link channel qui est deux fois plus rapide et sert exclusivement aux échanges entre les deux éléments du chipset ( contrairement au bus PCI dont la bande passante devait être partagée avec les cartes d'extension).

Le MCH est au carrefour des communications entre le CPU, les RAM et la carte graphique. Certaines déclinaisons du 82815 intègrent les fonctions vidéo AGP 2x mais acceptent l'installation d'une carte vidéo plus performante dans un connecteur AGP 4x.

Intel 82815
Intel 815 Chipset

L'ICH intègre entre autre les interfaces ATA, l'interface USB, un contrôleur audio et les connexions réseaux. Les 500 pages de la "Data sheet" d'Intel qui fait la description de ce 82801 sont disponnibles ici en format pdf.

Chipset pour Pentium 4 et mémoire Rambus

 


Le MCH 82850 accède à la mémoire via deux canaux de 16 bits à une fréquence de 800 MHz ce qui donne une bande passante de 2 x 2 octets x 800 MHz = 3,2 Go/s

La bande passante du bus système est elle de 3,2 ou 4,266 Go/s suivant que la fréquence du bus est de 400 ou 533 MHz.

Cette configuration n'a eu cependant qu'un succès mitigé à cause du prix de la RAMBUS.

Chipset pour Pentium 4 et SDRAM PC133/DDR200/DDR266


Chipset Intel 845

Intel a développé le chipset i845 pour pouvoir utiliser le processeur Pentium 4 d'Intel avec des composants mémoires moins onéreux que la RAMBUS : la SDRAM 133 ou de la DDR 200 ou 266.

La fréquence de 400 MHz du bus système permet au processeur de communiquer avec un bande passante de 3,2 Go/s

Les échanges entre l'AGP4X et le 82845 se font à 1 Go/s

Configuration des bus de l'Athlon


VIA Apollo KT333
 

L'architecture "multi-bus" se retrouve aussi avec les processeurs de AMD. Ainsi, le Pont Nord VIA KT333 est (en 2002) capable de communiquer avec le processeur et les DDR RAM PC2700 à 333 MHz

Bien que VIA appelle les composants du chipset par les expressions "North Bridge" et "South Bridge" cette architecture est similaire à l'architecture "Hub" d'Intel. En effet le canal de lien est exclusivement réservé aux communications entre les deux composants du chipset.

     

Voici les caractéristiques de quelques "North Bridges" qui chez VIA ont assuré la succession du KT333 pour les processeurs de AMD.

Processeur FSB RAM Port graphique
KT333 Athlon XP 200/266/333 MHz DDR333   PC2700 AGP 4x
KT400 266/333/400 MHz DDR400   PC3200 AGP 4x / 8x
KT600 DDR266/333/400
KT880 Dual channel DDR 400 ou 333 SDRAM
K8T800 Athlon 64
Athlon 64 FX
Opteron
HyperTransport bus link Contrôleur de mémoire intégré au processeur AMD64
K8T890 AMD Opteron
Athlon FX
Athlon 64
Sempron
(939, 940 et 754)
1 GHz/16 bits
(Upstream & Downstream)
HyperTransport bus link
1 PCI express x16
+ 1 PCI express x1
K8T900 1 PCI express x16
+ 4 PCI express x1

VIA a un temps été le seul à produire des chipset pour l'Athlon. Nous verrons dans le chapitre consacré aux chipset qu'il y a d'autres constructeurs : NVDIA principalement mais aussi Sis ou ATI

... à compléter (actualiser)


Les bus d'extensions

ISA 8 bits

En 1981, le bus des premiers PC/XT véhiculait 8 bits de données à la fréquence de 4,77 MHz. Le même bus était utilisé par tous les composants de la carte mère : le processeur, les mémoires et les cartes d'extensions. Il s'agissait du bus ISA 8 bits " Industry Standard Architechture ". Ils se présentaient sur la carte mère comme des connecteurs de 62 contacts pour 8 bits de donnée, 20 bits d'adresse, 8 lignes d'interruption, 4 canaux DMA, divers signaux de contrôle et les lignes d'alimentation ( masse, +5V,-5V, +12V, -12V)

ISA 16 bits

Une version 16 bits fit son apparition en 1984 avec le 80286 et les PC/AT. Le bus ISA 16 bits est cadencé à 8 Mhz. Un second connecteur de 36 contacts a été ajouté dans le prolongement du slot ISA 8 bits. L'ensemble pouvait donc accepter aussi bien des cartes 8 ou 16 bits. Le bus véhicule 16 bits de données, 24 lignes d'adresse, 16 lignes d'interruption et 8 canaux DMA. Ce bus ISA 16 bits a disparu des cartes mères voici à peine deux ou trois ans.

MCA

Depuis le 386 DX, la largeur du bus de donnée est passée à 32 bits. Bon nombre de tentatives ont été faites pour tenter d'imposer un nouveau standard. IBM commença par fabriquer le bus MCA " Micro Channel Architecture". Très simple d'utilisation, il suffisait d'une disquette d'installation pour que les cartes s'installent sans devoir les configurer à l'aide de cavaliers (jumper). Malheureusement, le nouveau connecteur ne pouvait plus recevoir les anciennes cartes ISA et de plus IBM réclamait des royalties aux constructeurs qui souhaitaient obtenir une licence d'utilisation... Pire, IBM exigeait même des royalties rétroactives aux fabricants qui avaient utilisé le BUS ISA. Pas étonnant dès lors que le bus MCA ait été boudé !

EISA

Compac et d'autres constructeurs se sont associés pour créer le standard EISA " Extended Industry Standard Architecture". Les connecteurs EISA ressemblaient aux connecteurs ISA 16 bits mais avaient deux rangées contacts disposées en hauteur comme dans les cartes AGP actuelles. Les contacts du fond ne servaient qu'aux cartes EISA ( 32 bits) tandis que les anciennes cartes ISA 8 ou 16 bits n'accédaient qu'aux contacts du dessus.

Jusqu'ici les bus ISA 8 bits puis 16 bits, MCA, et EISA fonctionnent tous à 8MHz. Les entrées/sorties étaient relativement lentes mais cela n'a pas posé de problème tant que les applications graphiques étaient absentes. L'arrivée des applications graphiques telles que Windows fit que les bandes passantes de ces bus devinrent tout à fait insuffisantes.

L'étape suivante a été de créer des bus capables d'utiliser le débit devenu plus important du bus système pour les communications entre les périphériques plus exigeants et la mémoire ou le processeur. Ce bus d'E/S rapide porte le nom de " bus local", il est cadencé à la même vitesse que le processeur. Aux cartes ISA traditionnelles, se sont vues ajoutées des cartes rapides qui communiquent à 33 MHz.

VLB

Le bus VLB " Vesa Local Bus " développé par l'association VESA "Video Electronics Standards Association" fondée par le constructeur NEC pour améliorer les performances des cartes vidéo. Sur la carte mère, les slots VLB se reconnaissent aux connecteurs bruns placés dans le prolongement des slots ISA 16 bits. Le bus VLB n'a jamais existé que sur des cartes mères équipées de 486. Il avait une largeur de 32 bits et communiquait à la vitesse du bus système, 33 MHz. Ce bus reprenait tout simplement les signaux issus des broches du 486. Lors du développement du Pentium, Intel abandonna le bus VLB pour le remplacer par le bus PCI.

PCI

Le bus PCI "Peripheral Component Interconnect" est actuellement le bus local le plus courant mais pourtant de moins en moins utilisé à cause de l’intégration à la carte mère des fonctions anciennement assurées par les cartes d’extension et de l’apparition du port AGP puis des connexions PCI express.

Le bus PCI fut développé par Intel et introduit en 1993. Dans sa version de base, il communique des mots de 32 bits à la fréquence de 33 MHz. Cette vitesse est indépendante de celle du bus système dont il est séparé par un pont.

Initialement les cartes PCI étaient alimentées en 5V uniquement. On est progressivement passé à une alimentation en 3,3V. Ces cartes PCI alimentées par des tensions différentes ne sont pas interchangeables et il a fallu les distinguer par des détrompeurs. La figure ci-dessous montre les différentes positions des détrompeurs en fonction de la tension d’alimentation. Certaines cartes possèdent deux détrompeurs car elles peuvent être alimentées aussi bien en 3,3V qu’en 5V.

Il existe quelques variantes du bus PCI qui ne s'emploient que dans les serveurs ou des machines haut de gamme. L'amélioration porte sur la largeur du bus (64 bits au lieu de 32) et/ou sur sa fréquence ( 66 MHz et même 133 MHz pour le PCI-X)

Connecteurs PCI
Image Wikipedia

Les connecteurs PCI sont plus écartés du bord de la carte mère que ne le sont les connecteurs ISA. Ils sont généralement de couleur blanche.

Le bus PCI introduit une innovation : le "bus mastering", les cartes d'extension après en avoir fait la demande peuvent obtenir momentanément le contrôle exclusif du bus pour accélérer leurs transferts.

De nombreuses cartes d'extensions ont été développées pour ce type de bus. Depuis 1995 elles sont " Plug and Play " ce qui signifie qu'elles s'installent et se configurent presque automatiquement par voie logicielle sans devoir positionner de cavaliers (jumpers) ou de micro-interrupteurs (dip-switches).

Pour pouvoir bénéficier de cette technologie il faut que la carte d'extension soit équipée d'un circuit de configuration PnP et que le BIOS et le système d'exploitation soient eux aussi compatible PnP. Le BIOS commence par identifier chaque composant et leur alloue leurs ressources : adresses mémoires, IRQ, canaux DMA et port d'E/S. Il informe ensuite les cartes PCI des ressources qui leurs sont attribuées. Le système d'exploitation vérifie ensuite ces valeurs pour voir si depuis la dernière fois il n'y a pas de nouveaux périphériques. Si tel est le cas, il indique qu'il a détecté du nouveau matériel et propose d'installer le "device driver " qui lui convient.

Disposition des slots sur la carte mère

AGP

Le port  AGP "Accelerated Graphic Port " est bien un "port" et non pas un "bus" puisqu'il ne peut recevoir qu'une seule connexion réservée à une seule carte graphique. Ce port est connecté directement à la mémoire système via le pont Nord ou le MCH.

Le port AGP original échangeait les données par mots de 32 bits à une fréquence de 66 MHz ce qui donne une bande passante de 66,66 109 Hz x 4 octets = 266 Mo/s.
Depuis les vitesses ont été multipliées par 2, 4 ou 8 ce qui donne 533 Mo/s pour l'AGP x 2 ;   1Go/s pour l'AGP x 4 et 2,1Go/s pour l'AGP x 8.

Le slot AGP a des dimensions semblables à celles du connecteur PCI mais possède des contacts sur deux étages. Il est de couleur brune et est plus distant du bord arrière de la carte que ne le sont les connecteurs PCI.

Le connecteur AGP possède parfois un détrompeur situé aux deux tiers de la longueur. Celui-ci permet de distinguer les cartes AGP conçues pour fonctionner sous 3,3V de celles prévues pour fonctionner en 1,5V ou même en 0,8V. Il est ainsi mécaniquement impossible d'insérer une carte AGP 3,3V dans un slot prévu pour 1,5V :

Certaines cartes AGP dites "universelles" peuvent aussi bien s'adapter aux slots 3,3V qu'aux slots 1,5V.

 

 

Le PCI Express est tout récent. Il reprend les concepts de programmation du bus PCI mais offre une bande passante bien plus élevée en utilisant des communications série moins sujettes aux interférences que les communications parallèles.

La connexion entre une carte PCIe et le switch PCIe est appelée un lien (link) et est composée de 1, 2, 4, 8, 12, 16, 24 ou 32 voies (lane). Chaque voie utilise une paire de conducteurs pour la transmission et une autre paire de conducteurs en réception. Les communications séries "Full-duplex " peuvent se faire simultanément dans les deux sens à une fréquence de 2,5 Gbps (giga bit par seconde) L'encodage des données est tel que la bande passante effective d'un canal est toutefois limité à 250 Mo/s.

Lors de la transmission d'un paquet de données, celui-ci est décomposé en octets qui sont répartis sur le nombre de voies disponibles. Un lien composé d'une voie est un lien x1. Les cartes PCI express existent avec différentes largeurs de liens, 1x, 2x, 4x, 8x, 12x, 16x et 32x.

Les plus courants seront les PCIe 1x qui se reconnaissent aux connecteurs 36 contacts et les PCIe 16x (164 contacts) grâce auxquels les cartes graphiques pourront émettre 4 Go/s et recevoir 4 Go/s simultanément. Les connecteurs 4x (64 contacts) et 8x (98 contacts) ne s'utilisent actuellement que dans les serveurs.

Ajoutons que le connecteur PCIe est "hot plug" ce qui permet de brancher ou débrancher des cartes "à chaud" c'est à dire sans éteindre la machine. Les ports PCIe sont donc aussi prévus pour servir à la connectique externe.


XHTML	1.0	validé! CSS validé!