Les BUS (ISA, AGP, PCI, MCA, ... )
![Les BUS (ISA, AGP, PCI, MCA, ... )](/images/remos_downloads/previews/defprev.jpg)
Support de cours complet sur les BUS PC : ISA, AGP, PCI, MCA, ...
...
2 Le Bus ISA (Industry Standard Architecture)
L'architecture ISA ( Industry Standard Architecture ) a été inventée en 1981 par IBM lors de la sortie du PC. Cette première version permettait des échanges de données de 8 bits à une fréquence de 4.77Mhz. Lors de l’apparition du PC AT basé sur le 286, un connecteur ISA 16 bits fut créé. Ce dernier se différencie du 8 bits par :
- l'adjonction d'un second connecteur court de couleur noire qui porte le nombre de lignes de données à 16.
- la fréquence de travail qui est portée à 8.33 Mhz,.
Le calcul du débit théorique de ce type de slots est le suivant :
8Mhz x 16 bits = 128 megabits/seconde
128 megabits/seconde / 2 cycles = 64 megabits/secondes
64 megabits/secondes / 8 = 8Mo/ secondes
Ce débit est bien entendu théorique, il varie en fonction de la carte d’extension utilisée. Actuellement le slot ISA est toujours présent sur les cartes mères. Cela est principalement dû à deux raisons, d'une part son faible prix de production, d'autre part sa compatibilité. En effet, ce slot n'ayant plus été modifié depuis longtemps, il permet l'utilisation d'anciennes cartes. Par contre, son principal défaut est d'être resté à 8 Mhz , ce qui provoque un véritable goulot d'étranglement pour le transfert de données.
Le bus ISA n'est pas PnP , ce qui oblige l'utilisateur à configurer manuellement ce type de cartes. Des systèmes d'exploitation Plug'n Play, tels que Windows 9x, peuvent malgré tout détecter seul une carte ISA, mais ils seront incapables d'en changer la configuration hardware. En fait, ils chargent en mémoire un pilote et scannent toutes les adresses, si une réponse est retournée, il en déduit qu'une carte correspondant au pilote utilisé s'y trouve.
Figure 1 : Slot ISA 16 bits
Ce bus est actuellement en fin de vie, et devrait disparaître des PC neufs très bientôt. Actuellement (98) il est encore utilisé pour les cartes sons , pour certaines cartes réseaux, ainsi que des cartes propriétaires pour scanner ou des cartes modems ...
3 Le bus VLB (Vesa Local Bus)
Le bus VLB a été présenté en 1992, il est basé sur une norme VESA (Video Electronic Standard Association), ce bus est une évolution du bus ISA.
Il permet des débits nettement améliorés en utilisant la même fréquence que la carte-mère (soit 25, 33 voire 40 Mhz au maximum) . De plus la largeur du bus de données est de 32 bits. Ces fonctionnalités lui permettent ainsi d'obtenir des débits théoriques de l'ordre de 120 à 140 Mo/s, en fonction de la fréquence de la carte mère. Techniquement parlant, le VLB est une extension du bus local du processeur, il travaille donc à la même fréquence que de la carte-mère. Ce procédé, qui à l'avantage d'être extrêmement économique, présente certaines limitations. Le bus local processeur n'étant pas dimensionné à cet effet, il est impossible de mettre plus de 3 cartes VLB dans un PC.
Une carte de type VLB ne supporte généralement pas les fréquences supérieures à 40 Mhz. En fait, le VLB a été une solution provisoire, qui a permit d'obtenir des gains de performance importants pour un surcoût minimum. On l'utilisait principalement pour la carte graphique et la carte contrôleur. Ce type de slot est facilement reconnaissable, il s'agit en effet d'un slot ISA 16bits auquel on a ajouté un troisième connecteur de couleur brune, doté de 112 contacts. Ce type de connecteur est totalement compatible avec les cartes ISA 8 et 16 bits.
Figure 2 : Slot VLB
4 Le bus EISA (Extended Industry Standard Architecture).
Le bus EISA a été annoncé par un consortium de fabricants (sauf IBM) en 1988 comme réponse au bus MCA d'IBM. En effet, l'utilisation du bus MCA aurait obligé les fabricants à payer des royalties à IBM, ce qui n'est pas le cas avec le bus EISA. Cette architecture est présentée comme une suite au bus ISA. Elle est aussi basée sur une fréquence de 8.33 Mhz, mais utilise un bus 32 bits. De cette façon, un débit théorique de 33 Mo/seconde a pu être atteint. L'apparence d'un slot EISA est la même qu'un slot ISA 16 bits, si ce n'est qu'il est plus haut. Il reste intégralement compatible ISA (8 et 16 bits) grâce à l'usage de détrompeur. Si une carte EISA est insérée, elle s'enfoncera plus profondément, étant ainsi connectée avec plus de contacts.
En fait, deux autres technologies ont été implémentées sur ce type de slot. D'une part le Bus Mastering et d'autre part un paramétrage automatique des cartes. Le Bus Mastering permet de gérer le flux de données de façon intelligente. Virtuellement, une carte EISA est une carte qui possède son propre processeur, elle peut ainsi faire toutes les opérations désirées sans l'aide du processeur du PC. Le Bus Master est relié à un composant appelé ISP (Integrated System Peripheral), qui agit comme unité "d'arbitration". Ce dernier autorise une carte Bus Master à prendre un contrôle exclusif du système, en fait elle-même. Ce procédé permet une nette augmentation des performances. L'ISP arbitre les différentes demandes de chaque carte, selon un ordre de priorité à 4 niveaux. Cela évite qu'une carte pénalise toutes les autres. Cet ordre comprend les niveaux suivants: System Memory Refresh, DMA Transfert, CPU, Bus Master. Lorsqu'une carte veut prendre le contrôle du système, elle en avertit l'ISP. Dès que cela est possible, celui-ci prend contrôle du système et donne ce qui a été demandé au périphérique concerné..
Figure 4 : Slot EISA
Dans une architecture EISA, les cartes sont automatiquement paramétrées par le système. Ces réglages concernent en particulier l'adresse et les IRQ. Pour ce faire, chaque carte est livrée avec un fichier de configuration (*.CFG) qui doit être donné au BIOS. Ce fichier contient une sorte de driver qui permet ainsi au BIOS de savoir comment gérer la carte.
Cette architecture est désormais relativement peu répandue, son principal défaut étant son prix élevé. Son coût la réservait pour des machines haut de gamme, tels que les serveurs de réseau.
5 Le Bus MCA (Micro Channel Architecture)
L'architecture MCA est l'évolution du bus ISA proposée par IBM en 1987. Ce bus a une largeur de 32 bits et utilise la fréquence du processeur. A l'instar du EISA, il utilise aussi un système de Bus Mastering. Ce dernier est basé sur un chip nommé CACP (Central Arbitration Control Point) qui se charge de gérer les ordres de priorité entre les différents composants. Il évite ainsi qu'une carte monopolise le bus, et diminue les performances globales du système
Les connecteurs utilisés utilisent un format propriétaire d'IBM. Cette société a en effet déposé un copyright sur le MCA, ce qui en a fortement limité la diffusion. En effet, à part IBM avec sa gamme PS/2, il n'existe qu'un nombre restreint de constructeurs qui ont accepté de payer des royalties à IBM. Ces connecteurs sont totalement incompatibles avec les autres formats du marché, qu'il s'agisse du ISA, du EISA, du VLB ou encore du PCI.
Les cartes MCA sont aussi "autoconfigurées". A cet effet, un fichier POS (Programmable Option Select) est livré avec chaque carte. Celui-ci doit être transmis au BIOS qui l'utilisera pour régler l'IRQ et l'adresse de la carte concernée. Sur un IBM PS/2, l'accès au Bios nécessite de booter sur une "disquette" de démarrage, qui est propre à chaque modèle de la gamme. Sans cette disquette, il vous sera impossible d'y apporter une quelconque modification.
Le débit théorique de ce bus varie entre 20 et 160 Mo/seconde, selon le connecteur et la carte utilisée.
Les cartes à ce format sont facilement reconnaissables à leur poignée de couleur bleue et à leur face arrière assez particulière. Leu faible diffusion, liée à la complexité de cette architecture en explique le coût élevé.
Les différents connecteurs MCA sont au nombre de quatre:
MCA 16bits Il constitue la base de tous les slots MCA. En effet, un connecteur de 16bits, plus petit qu'un ISA, sera toujours présent dans une architecture MCA. Ce dernier est divisé en deux parties. La première contient un connecteur 8bits, destinés à la gestion des traitements. Le second, de 16bits, est utilisé pour le transfert des données proprement dites.
MCA 32bits
Commercialisé avec les premiers processeurs 32bits (Intel 386DX), ce connecteur fut le standard sur les machines PS/2. Comme son nom l'indique, il utilise une largeur de bus de 32bits.
MCA Video Extension
Il s'agit ici d'une extension spéciale permettant d'accélérer les traitements graphiques. Il se présente sous la forme d'un connecteur 16 bits, auquel a été ajouté un second connecteur spécifique. Une carte graphique placée dans ce connecteur fera appel aux circuits graphique intégrés sur la carte-mère. Les fonctions de base VGA seront alors assurées par la carte-mère. La carte graphique sera surtout utilisée pour les affichages en haute résolution. Il va sans dire qu'il n'existe qu'un connecteur de ce type par PC.
MCA Memory Matched
Présents que dans certains PS/2, ce connecteur est conçu pour abriter des cartes d'extension mémoire. Il permet ainsi de dépasser les limites fixées par le nombre de connecteurs présents sur la carte-mère.
6 Le bus PCI (Peripheral Component Interconnect)
Le bus PCI a été développé par Intel en 1992 pour faire face au bus VLB, qui à l'époque des 486 a eu un grand succès. En effet le VLB (Vesa Local Bus) était un bus très rapide notamment pour les cartes graphiques, beaucoup plus que l'ISA. Malheureusement ce bus connectait directement les cartes d'extension au bus système, ce qui fait que le nombre de slot était limité à 3. Les dernières séries de cartes mères à base de 486 ont été équipées de bus PCI qui cohabitait parfois avec le bus VLB mais le bus PCI s'est définitivement imposé lors de l'introduction des premières cartes Pentium à base de chipset Triton.
La différence majeur entre VESA et PCI c'est que le premier est étroitement lié au type du microprocesseur tandis que le second est indépendant de celui-ci. L'architecture PCI repose sur un circuit disposant d'un "buffer FIFO" ( First In First Out ), un pont (bridge) chargé de faire le lien entre le bus processeur et les connecteurs d'extensions local bus.
Toutes les cartes PCI "démarrent" en mode "basse consommation" et le reste tant qu'elles ne sont pas "activées".
Le bus PCI permet "l'auto-configuration" (Plug & Play) des cartes d'extensions, ce qui en pratique se traduit par la fin des difficultés habituellement liées à l'installation d'une carte d'extension (conflits E/S, IRQ, DMA, adresses ROM).
La norme PCI a un bus de données et d'adresses en 32 Bits, les échanges se font à une fréquence de 33 MHz, d'où un débit d'environ 133 Mo/s. La norme PCI 2 a apporté la possibilité d'avoir un bus PCI cadencé à 66MHz et un bus de données de 64 bits, mais ceci n'a jamais été mis en oeuvre dans la pratique, sauf sur certaines stations haut de gamme. Le bus PCI peut gérer jusqu'à 6 Slots, et peut être chaîné afin de démultiplier le nombre de connecteur.
Sur les cartes mères à base de Pentium, la fréquence du bus PCI est obtenue en divisant par deux la fréquence du bus système ce qui donne bien 33 MHZ. Pour autant la plupart des cartes mères proposent des fréquences de travail de 75 et 83 Mhz qui peuvent être utilisée pour "l’overclocking", on arrive a pousser le bus PCI à 37.5 MHz voire 41.5 MHz (entre 40 et 50 MHz, attention ! ! ! toutes les cartes PCI ne peuvent pas fonctionner à ces fréquences).
...
Le mode de transfert de données peut être du type synchrone ou asynchrone, en fonction de la carte-mère et du chipset utilisé. Dans le premier cas, le plus courant, le bus PCI travaille à la moitié de la fréquence de la carte mère, pour les bus à 66, 75 et 83 Mhz ou au tiers de la fréquence de la carte-mère, pour les cartes à bus de 100 Mhz et plus. Il est donc cadencé à 25, 30 33 Mhz voir plus dans le cas d’un overcloking . S'il est asynchrone, sa fréquence peut être différenciée de celle du bus système. Le réglage se fera alors via des jumpers ou par le Setup (c'est le cas sur certaines cartes mères à bus système de 100 Mhz et plus).
Les slots PCI peuvent avoir différentes formes, en fonction de la largeur de bande et de la tension utilisée. Une carte-mère courante proposera généralement 3 ou 4 slots. Attention, tous les slots n'utilisaient pas forcément le Bus Mastering sur certaines anciennes cartes-mères.
...
6.1 Comment sont "gérés" les interruptions ?
Voir figure page suivante. Les interruptions utilisées par le bus PCI INT (#A à #D) sont propres au bus PCI, donc non équivalentes aux IRQ. C’est le South bridge qui "mappe" les INT PCI aux IRQ du microprocesseur. En réalité ce sont les fonctionnalités PnP du BIOS qui le réalise soit de façon automatique (mode Auto) donc transparente pour l’utilisateur ou bien c’est l’utilisateur qui affecte à chaque slot PCI une IRQ spécifique , voir le document sur le BIOS pour plus d’informations.
L’IRQ attribuée a une carte PCI dépend du slot dans lequel elle a été insérée; ce qui n’est pas le cas du bus ISA où tous les slots reçoivent les différentes interruptions. Chaque fabricant de carte ISA peut choisir l’IRQ qu’il veut pour l’attribuer à sa carte d’extension.
Note :
Contrairement au bus ISA, le bus PCI permet le partage d’interruptions, c’est à dire que 2 périphériques PCI peuvent utiliser la même IRQ. Ceci dit, il faut s’assurer que le système d’exploitation accepte ce type de fonctionnement, c’est le cas de Windows 95/98 et que les pilotes des deux périphériques acceptent eux aussi ce mode de fonctionnement, c’est le cas de la plupart des circuits d’E/S présent sur les cartes mères actuelles avec un BIOS mis à jour.
...
7 Le Bus AGP (Accelerated Graphic Port)
Le bus PCI a été conçu par Intel en 1994. Il dispose d'une bande passante maximale de 132 Mo/s, il est "partageable" : plusieurs cartes de ce format peuvent se partager la bande passante disponible. Tout ceci fait que le bus PCI génère un goulet d'étranglement car le CPU et le processeur graphique sont très puissants et ne peuvent exploiter au mieux leur potentiel de performance.
Pour résoudre ce problème, Intel a conçu un nouveau bus nommé AGP (Advanced Graphics Port). Disponible depuis Septembre 1997, l’AGP est uniquement destiné aux cartes graphiques et un seul connecteur de type AGP est présent sur les cartes mères gérant ce nouveau bus.
Le bus AGP peut fonctionner avec plusieurs modes de transmission : Frame, Pipe et SBA.
- Le premier est le plus simple mais le moins performant il n'est prévu que pour les cartes de type "x1".
- Le second fonctionne généralement en mode x2, mais commandes et données sont envoyées sur les mêmes fils : on augmente la bande passante, sans plus.
- Le mode SBA (Sideband Adressing Port) utilise des lignes spéciales pour transférer les commandes, ce qui permet d'échanger simultanément des données et des commandes ce qui améliore nettement les performances les données transitant sans interruption sur le bus.
La gestion de ce bus est assurée par le chipset de la carte mère. Le processeur n'est alors plus requis pour les différentes transactions. Cela permet de gagner en rapidité, tant au niveau du débit que de la charge du CPU. Le contrôleur graphique peut utiliser le bus AGP, qui lui offre un accès direct à la mémoire, afin d’exécuter des opérations complexes que réclame l'application de textures en 3D. Ce procédé est nommé DIME (Direct Memory Execute).
A la différence de l'architecture UMA (Unified Memory Architecture) qui monopolise la mémoire, l'AGP peut à tout moment rendre au système la portion qu'il utilise. A cet effet, il utilise un procédé appelé Dynamic Memory Allocation. Le système reste alors "propriétaire" de la mémoire vive, et ne prête que ce pour lequel il n'a bas de besoin immédiat. Ainsi, pas besoin de doubler sa mémoire pour éviter un quelconque ralentissement.
Comment faire fonctionner l'AGP sur son PC ...
Votre PC dispose d'un bus AGP et d'une carte AGP mais vous n'arrivez pas a le faire fonctionner, vérifiez les quelques points qui suivent avant de jeter votre carte AGP :
- Primo, vous devez être sous Windows 95 OSR2 .
- Ensuite, il vous faut installer un patch, USBSUPP.EXE (942Ko), qui inclue la gestion de l'USB ainsi que vmm32.vxd qui est nécessaire pour utiliser le DIME, ceci si vous ne disposez pas de Windows 95 OSR 2.1 ou 2.5
- De plus, vous devez utiliser DirectX 5 ou ultérieur (ce drivers peut être obtenu sur le cite Internet de Microsoft …/directx).
- Enfin, installez les drivers de votre carte graphique, en suivant les conseils du constructeurs.
Le bus PCMCIA.
A la fin des années 80, un consortium de fabricants, nommé PCMCIA (Personnal Computer Memory Card International Association), a publié les bases d'une norme du même nom. Leur but était de définir une mémoire flash (qui ne perd pas son contenu lorsqu'elle n'est plus alimentée électriquement) sous forme de carte de crédit. Le principal support visé était bien entendu le monde des ordinateurs portables.
Une carte PCMCIA se présente sous la forme d'une carte de crédit métallique, de 85.6 par 54mm. Le premier centimètre contient les connecteurs et l'électronique qui y est associé. Le reste de la carte contient le substrat, en d'autres termes l'électronique correspondant à la fonction de la carte (contrôleur SCSI, carte réseau, mémoire, ...). Le connecteur proprement dit est composé de deux rangées de 32 perforations. La partie mâle, plus fragile, est placée sur le socket. Son apparence externe est toujours la même, alors que les brochages peuvent varier d'une version de norme à l'autre. Ces perforations peuvent être très facilement obstruées, il est donc prudent de toujours remettre la carte dans son étui.
…
Théoriquement, une carte PCMCIA est "Plug and Play, c'est-à-dire que le système la reconnaît automatiquement au démarrage. Toujours théoriquement, une telle carte permet le "Hot Swap" (ou "Hot Plug"), c'est-à-dire que l'on peut changer une carte à chaud sans redémarrer l'ordinateur. En réalité, la sortie de beaucoup de cartes PCMCIA ayant précédé l'énoncé des spécifications précises pose des problèmes d'incompatibilité entre systèmes. De plus, pour le moment, chaque carte dispose de son propre driver (Card & Socket Driver). Enfin, aucun constructeur ne garantit le fonctionnement combiné de plusieurs cartes.
Normes successives : PCMCIA 1.0 (1990), 2.1 (1992) et 3.0 (1995). Cette dernière norme, rebaptisée PC-Card, présente les spécifications suivantes : interface Card Bus 32 bits (concurrente de PCI), 33 MHz, 32 Mo/s.
Les slot AMR et CNR
Le CNR (Communication and Networking Riser) est le remplaçant de l´AMR (Audio / Modem Riser), que l´on trouvait déjà sur de nombreuses cartes mères. Tout comme l´AMR, le CNR est en fait un port pouvant accueillir des cartes d´extensions peu coûteuses car dépourvues de la plupart des composants traditionnels. Comment est ce possible ? Tout simplement parce que ce n´est plus un chip sur la carte fille qui fait le gros du travail, mais le chipset associé au processeur.
Les différences entre CNR et AMR sont doubles. Primo, le CNR permet d´utiliser plus de cartes filles. En effet, alors que l´AMR se contentait de cartes Audio et de cartes Modems, il est possible d´avoir des cartes Réseaux, des cartes Home PNA et des cartes USB au format CNR. Deuxièmement, alors que le Slot ARM se situait généralement entre le 1er Slot PCI et le Slot AGP, le Slot CNR est placé après le dernier Slot PCI.