Multibus |
Intel |
|---|---|
| Architecture | |
Introduction
Le Multibus est une architecture de bus informatique développée par Intel au cours des années 1970 pour permettre l'interconnexion de cartes processeur, de mémoire et de contrôleurs d'entrées/sorties au sein de systèmes modulaires. Contrairement aux bus comme ISA ou PCI, principalement associés aux ordinateurs personnels, Multibus est surtout destiné aux micro-ordinateurs industriels, systèmes embarqués, équipements scientifiques, systèmes de contrôle et machines professionnelles. La première génération apparaît au milieu des années 1970 et devient suffisamment importante pour être normalisée sous la désignation IEEE 796, puis par l'IEC sous la famille IEC 60796.
L'un des principes fondamentaux de Multibus est son indépendance relative vis-à-vis du microprocesseur utilisé. Un système peut réunir sur un même fond de panier une carte processeur, plusieurs cartes mémoire et différents contrôleurs spécialisés. Intel l'utilise notamment avec ses familles de cartes iSBC (Intel Single Board Computer). Cette modularité permet aux fabricants de construire des systèmes complets en sélectionnant les cartes nécessaires plutôt qu'en concevant une carte mère entièrement intégrée.
Multibus est également conçu dès ses premières générations pour prendre en charge une architecture maître-esclave, les accès directs à la mémoire (DMA), les interruptions et même plusieurs maîtres partageant le même bus. Cette dernière caractéristique rend possible la construction de systèmes multiprocesseurs et distingue Multibus de plusieurs architectures de micro-ordinateurs contemporaines beaucoup plus simples.
Il faut toutefois distinguer deux grandes générations : Multibus I, initialement adapté aux systèmes 8 et 16 bits, et Multibus II, architecture beaucoup plus évoluée introduite dans les années 1980. Multibus II dispose notamment d'un Parallel System Bus (PSB) 32 bits, d'une architecture davantage indépendante du processeur et de fonctions spécialement conçues pour les systèmes multiprocesseurs.
Spécifications générales
| Spécification | Description |
|---|---|
| Nom | Multibus |
| Fabricant d'origine | Intel |
| Type | Bus système parallèle pour systèmes modulaires |
| Introduction | Milieu des années 1970 |
| Première génération | Multibus I |
| Deuxième génération | Multibus II |
| Multibus I | Bus de données 8 ou 16 bits |
| Adressage Multibus I | Jusqu'à 24 bits pour la mémoire |
| Mémoire adressable Multibus I | Jusqu'à 16 Mo |
| Espace d'E/S Multibus I | Jusqu'à 64 K ports avec adressage 16 bits |
| Architecture | Maître-esclave, plusieurs maîtres possibles |
| DMA | Oui |
| Interruptions | Oui |
| Multitraitement | Oui |
| Normalisation Multibus I | IEEE 796 / IEC 60796 |
| Multibus II PSB | Bus parallèle 32 bits |
| Débit maximal annoncé du PSB Multibus II | 40 Mo/s |
| Applications | Industrie, contrôle, télécommunications, instrumentation, systèmes embarqués et professionnels |
Ces caractéristiques sont directement confirmées par le Multibus Handbook d'Intel et la documentation IEC : Multibus I dispose de 24 lignes d'adresse, de 16 lignes de données bidirectionnelles et permet les transferts de données de 8 ou 16 bits.
Origine de Multibus
Dans les premiers systèmes à microprocesseurs, les constructeurs devaient souvent développer leurs propres cartes et leurs propres interfaces.
Intel cherche à proposer une solution plus modulaire.
Le principe consiste à disposer d'un fond de panier (backplane) dans lequel différentes cartes peuvent être installées :
- Carte CPU → Multibus → Mémoire
- Carte CPU → Multibus → Contrôleur disque
- Carte CPU → Multibus → Interfaces d'Entrée/Sortie
- Carte CPU → Multibus → Contrôleur de communication
Cette approche ressemble davantage à celle d'un ordinateur industriel modulaire qu'à celle des futurs PC dont une grande partie des composants se trouve directement sur une carte mère.
Multibus I
La première génération est aujourd'hui généralement appelée :
- Multibus I
afin de la distinguer de Multibus II.
Elle est conçue pour prendre en charge aussi bien des modules utilisant des transferts 8 bits que 16 bits. La documentation Intel du début des années 1980 indique explicitement que l'architecture accepte des maîtres et esclaves 8 ou 16 bits.
Multibus I sera ensuite normalisé sous :
- IEEE 796
et :
- IEC 60796
La norme internationale porte d'ailleurs le titre Microprocessor System Bus - 8-bit and 16-bit Data (MULTIBUS I).
Bus de données
Multibus I comporte :
- 16 lignes de données bidirectionnelles D0 à D15
Il peut cependant effectuer des transferts de :
- 8 bits
ou :
- 16 bits
Cette caractéristique facilite l'utilisation de cartes reposant sur différentes générations de microprocesseurs.
La norme définit notamment les transferts d'un octet et d'un mot de 16 bits.
Bus d'adresses
Les versions évoluées de la spécification Multibus I disposent de :
- 24 lignes d'adresse A0 à A23
pour les opérations mémoire.
Cela permet théoriquement d'adresser :
| 224 = 16 777 216 octets |
soit :
| 16 Mo |
de mémoire.
Pour les opérations d'entrée/sortie, l'architecture prévoit un espace séparé utilisant jusqu'à 16 bits d'adresse, ce qui permet d'adresser jusqu'à 64 K ports d'Entrée/Sortie.
Espaces mémoire et E/S
Une caractéristique importante de Multibus I est la séparation entre :
- espace mémoire
et :
- espace d'entrée/sortie
La documentation IEEE 796 décrit explicitement ces deux espaces d'adressage indépendants.
On obtient donc :
| Espace | Adressage maximal |
|---|---|
| Mémoire | 24 bits |
| Mémoire adressable | 16 Mo |
| Entrées/sorties | 16 bits |
| Ports d'Entrée/Sortie | 64 K |
Cette organisation convient particulièrement bien aux microprocesseurs Intel de cette période, qui utilisent eux aussi des mécanismes distincts pour la mémoire et les ports d'Entrée/Sortie.
Architecture maître-esclave
Multibus utilise une architecture de communication de type :
| maître ↔ esclave |
Le maître contrôle le bus et fournit notamment les informations nécessaires pour déterminer l'adresse et l'opération à effectuer.
L'esclave reconnaît son adresse et répond à la commande.
Une carte processeur peut donc jouer le rôle de maître tandis qu'une carte mémoire ou un périphérique peut jouer celui d'esclave.
Transferts asynchrones
Une caractéristique intéressante de Multibus I est que les transferts ne sont pas entièrement liés à une fréquence fixe commune à tous les périphériques.
La communication entre maître et esclave utilise un mécanisme d'acquittement permettant de faire travailler ensemble des cartes ayant des vitesses différentes.
Intel explique que les transferts eux-mêmes se déroulent de manière asynchrone par rapport à l'horloge d'arbitrage du bus. La vitesse effective dépend donc notamment des dispositifs participant au transfert.
Cela constitue un avantage important dans un système industriel où plusieurs générations de cartes peuvent cohabiter.
Acquittement des transferts
Le signal :
- XACK - Transfer Acknowledge
joue un rôle important.
Lorsqu'un périphérique répond à une transaction, il utilise ce mécanisme pour indiquer que le transfert peut être terminé.
Cette approche permet notamment à une mémoire relativement lente de demander davantage de temps qu'une mémoire rapide.
La norme IEEE/IEC documente XACK aussi bien pour les opérations de lecture que d'écriture.
Plusieurs maîtres
Multibus I ne se limite pas à un seul processeur maître.
La norme prévoit explicitement :
- plusieurs maîtres sur le même bus
avec des mécanismes d'arbitrage permettant de déterminer quel maître peut utiliser le bus.
Cela permet par exemple d'avoir :
|
CPU principal ↓ Multibus ↙ ↓ ↘ DMA - second processeur - contrôleur |
La documentation Intel donne justement comme exemple la situation dans laquelle un processeur et un contrôleur DMA demandent simultanément l'accès au bus.
Arbitrage du bus
Lorsqu'il existe plusieurs maîtres, un mécanisme d'arbitrage devient indispensable.
Multibus prévoit différentes stratégies permettant d'attribuer le bus au périphérique qui en fait la demande.
La spécification IEEE 796 prend notamment en charge des systèmes de priorité :
- série ;
- parallèle.
Plusieurs maîtres peuvent ainsi partager les ressources du système sans tenter de piloter simultanément les mêmes lignes du bus.
DMA
Multibus est particulièrement bien adapté aux opérations :
- DMA - Direct Memory Access
Un contrôleur DMA peut devenir temporairement maître du bus et transférer directement des informations entre un périphérique et la mémoire.
Par exemple :
| Disque → contrôleur DMA → Multibus → mémoire |
Le processeur n'a alors pas besoin d'effectuer lui-même chaque transfert élémentaire.
Cette possibilité était particulièrement importante pour les systèmes industriels et professionnels nécessitant des entrées/sorties relativement performantes.
Interruptions
Multibus I fournit également plusieurs lignes d'interruption.
La documentation Intel décrit :
- 8 lignes d'interruption multiniveaux
aux côtés des lignes d'adresse, de données, de contrôle et d'alimentation.
Les cartes périphériques peuvent ainsi signaler au processeur qu'un événement nécessite son attention.
Par exemple :
| contrôleur série → interruption → CPU |
ou :
| contrôleur disque → interruption → CPU |
Connecteurs
Les cartes Multibus I utilisent principalement deux groupes de connexion désignés :
- P1
et :
- P2
La documentation Intel indique que P1 transporte notamment les lignes :
- d'adresse ;
- de données ;
- de contrôle ;
- d'arbitrage ;
- d'interruption ;
- d'alimentation.
P2 est associé à des signaux auxiliaires optionnels.
Les cartes sont installées dans un châssis équipé d'un fond de panier Multibus.
Cartes iSBC
Multibus est fortement associé à la famille Intel :
- iSBC - Intel Single Board Computer
Il s'agit de cartes constituant de véritables ordinateurs monocartes.
Une carte iSBC peut comporter :
- microprocesseur ;
- mémoire ;
- ROM ou EPROM ;
- contrôleurs d'E/S ;
- interfaces série ;
- temporisateurs ;
- interface Multibus.
Plusieurs cartes spécialisées peuvent ensuite être ajoutées au système par l'intermédiaire du fond de panier.
La documentation Intel présente justement Multibus comme l'élément commun permettant la communication entre ordinateurs monocartes, mémoires, interfaces numériques et analogiques et contrôleurs de périphériques.
Types de cartes Multibus
L'écosystème Multibus comprend de nombreuses catégories de cartes :
| Type | Fonction |
|---|---|
| CPU | Exécution des programmes |
| Mémoire RAM | Mémoire de travail |
| ROM/EPROM | Programme permanent ou démarrage |
| Contrôleur disque | Gestion des unités d'entreposage |
| Contrôleur série | Communications |
| Contrôleur réseau | Connexion à un réseau |
| Entrée/Sortie numériques | Contrôle industriel |
| E/S analogiques | Acquisition de données |
| DMA | Transferts directs de mémoire |
| Contrôleur périphérique | Gestion de matériels spécialisés |
Cette diversité explique en partie le succès de Multibus dans les équipements industriels.
Applications industrielles
Contrairement à ISA, qui devient étroitement associé au PC, Multibus est particulièrement bien adapté aux systèmes spécialisés.
Il peut être rencontré dans :
- automatisation industrielle ;
- contrôle de machines ;
- instrumentation ;
- acquisition de données ;
- télécommunications ;
- équipements scientifiques ;
- systèmes militaires ou spécialisés ;
- systèmes embarqués ;
- ordinateurs industriels ;
- équipements médicaux.
La modularité permet au fabricant d'une machine de choisir uniquement les cartes nécessaires à son application.
Multibus II
Dans les années 1980, Intel développe une nouvelle génération :
Multibus II
Il ne s'agit pas simplement d'une version légèrement accélérée de Multibus I. Multibus II introduit une architecture système beaucoup plus sophistiquée et mieux adaptée aux systèmes multiprocesseurs modernes.
Une publication technique de 1985 décrit Multibus II comme une architecture ouverte destinée à la conception de systèmes généraux à microprocesseurs 8, 16 ou 32 bits et constituée de plusieurs bus complémentaires.
Parallel System Bus
L'un des éléments centraux de Multibus II est le :
PSB - Parallel System Bus
ou, dans la terminologie Intel :
- iPSB
Il s'agit d'un bus système parallèle :
- 32 bits
conçu notamment pour les communications entre processeurs et les accès aux périphériques partagés.
Intel indique pour le PSB Multibus II un débit maximal de :
- 40 Mo/s.
Indépendance du processeur
Multibus II cherche davantage que Multibus I à séparer le bus système du bus local propre au processeur.
Cette caractéristique est particulièrement importante lorsque les microprocesseurs deviennent plus rapides et utilisent des bus locaux de plus en plus différents.
Par exemple, la documentation du Intel i860 précise que le PSB Multibus II est isolé du bus local du processeur. Le i860 peut donc utiliser son propre chemin de données local de 64 bits tandis que le PSB assure les communications système en 32 bits.
Cela constitue une différence architecturale importante avec un bus local comme le VLB, beaucoup plus dépendant d'un processeur particulier.
Architecture multiprocesseur
Multibus II est particulièrement orienté vers les systèmes :
- multiprocesseurs
Plusieurs cartes processeur peuvent coopérer au sein d'une même machine.
Le bus est utilisé pour :
- communication interprocesseur ;
- accès aux périphériques communs ;
- partage de ressources ;
- échange de messages ;
- coordination du système.
Cette orientation vers le multitraitement est explicitement mise en avant dans les documents techniques consacrés à Multibus II.
Les différents bus associés
L'écosystème Multibus ne correspond pas uniquement à un connecteur unique.
Intel développe plusieurs interfaces complémentaires, notamment :
| Bus | Fonction |
|---|---|
| Multibus / IEEE 796 | Bus système principal de première génération |
| iSBX | Extension d'entrées/sorties pour modules |
| iLBX | Extension de bus local, notamment pour mémoire ou fonctions rapides |
| iPSB | Parallel System Bus de Multibus II |
| Multichannel I/O Bus | Communications d'entrée/sortie spécialisées |
Le catalogue Intel de l'époque comporte d'ailleurs des spécifications distinctes pour Multibus, iSBX et iLBX.
Multibus I contre Multibus II
| Caractéristique | Multibus I | Multibus II |
|---|---|---|
| Période | Années 1970 | Années 1980 |
| Données | 8/16 bits | PSB 32 bits |
| Architecture | Maître-esclave | Architecture multiprocesseur évoluée |
| Multiples maîtres | Oui | Oui |
| DMA | Oui | Oui |
| Multitraitement | Oui | Oui, fortement développé |
| Mémoire Multibus I | Jusqu'à 16 Mo via 24 bits | Architecture différente et plus évoluée |
| Débit caractéristique | Jusqu'à plusieurs millions de transferts/s selon configuration | PSB jusqu'à 40 Mo/s |
| Normalisation principale | IEEE 796 / IEC 60796 | Architecture normalisée séparément |
| Orientation Systèmes modulaires 8/16 bits | Systèmes modulaires et multiprocesseurs 32 bits |
Il est donc préférable, dans votre documentation, de traiter Multibus I et Multibus II comme deux générations distinctes plutôt que de présenter toutes leurs caractéristiques dans une seule fiche technique.
Comparaison avec les autres bus
| Architecture | Introduction approximative | Largeur courante | Utilisation principale |
|---|---|---|---|
| Multibus I | Milieu des années 1970 | 8/16 bits | Industrie et systèmes modulaires |
| ISA 8 bits | 1981 | 8 bits | IBM PC et compatibles |
| ISA 16 bits | 1984 | 16 bits | IBM PC/AT et compatibles |
| MCA | 1987 | 16/32 bits | IBM PS/2 |
| EISA | 1988 | 32 bits PC professionnels et serveurs | |
| VLB | 1992 | 32 bits | PC 486 |
| PCI | 1992 | 32/64 bits | PC, stations et serveurs |
| PCI Express | 2000 | Série par voies | Ordinateurs modernes |
Cette comparaison met en évidence une différence importante : Multibus est antérieur à ISA et n'est pas issu de l'architecture IBM PC.
Multibus contre ISA
Il serait donc incorrect de considérer Multibus comme une variante d'ISA.
Les deux architectures ont des origines et des objectifs différents.
Multibus :
- carte CPU + fond de panier + cartes système
alors que le PC utilisant ISA adopte davantage :
- carte mère + CPU + mémoire + emplacements ISA
Multibus correspond ainsi davantage à une architecture modulaire de système qu'à un simple bus destiné à ajouter quelques périphériques à un ordinateur personnel.
Avantages
Les principaux avantages historiques de Multibus sont :
- architecture modulaire ;
- indépendance relative vis-à-vis du processeur ;
- prise en charge de cartes CPU différentes ;
- possibilité d'utiliser plusieurs maîtres ;
- prise en charge du DMA ;
- interruptions matérielles ;
- coexistence de périphériques de différentes vitesses ;
- bonne adaptation aux systèmes industriels ;
- grand choix historique de cartes spécialisées ;
- possibilité de construire des systèmes multiprocesseurs ;
- standardisation internationale de Multibus I ;
- longue durée d'utilisation dans certaines applications industrielles.
Inconvénients
Multibus présente néanmoins plusieurs inconvénients :
- châssis relativement volumineux ;
- coût supérieur aux architectures de micro-ordinateurs grand public ;
- connectique et fonds de panier spécialisés ;
- complexité accrue des systèmes multiprocesseurs ;
- performances devenues insuffisantes avec les générations ultérieures de processeurs ;
- faible intérêt pour les PC domestiques ;
- remplacement progressif par des bus industriels plus modernes.
Son principal marché reste donc très différent de celui d'ISA, VLB ou AGP.
Importance historique
Le Multibus occupe une place importante dans l'histoire des architectures de micro-ordinateurs, car il démontre très tôt qu'un système à microprocesseur peut être construit autour d'un bus standardisé et indépendant des fonctions particulières de chaque carte. Processeurs, mémoires et contrôleurs peuvent être combinés pour créer une machine adaptée à une application donnée.
Multibus I est particulièrement remarquable pour son époque. Son architecture permet déjà les transferts de 8 et 16 bits, les interruptions, le DMA, plusieurs maîtres et des configurations multiprocesseurs. Les évolutions de la norme étendent l'adressage mémoire à 24 bits, soit 16 Mo, tout en conservant un espace d'Entrée/Sortie distinct. Ces caractéristiques sont clairement documentées dans les spécifications Intel et IEEE/IEC.
Multibus II poursuit cette philosophie avec une architecture beaucoup plus ambitieuse. Son PSB 32 bits, pouvant atteindre 40 Mo/s, est spécialement conçu pour les communications entre processeurs et les périphériques partagés, tout en étant découplé du bus local du processeur.
Pour votre tableau général des architectures, je vous conseillerais donc de créer deux entrées séparées : « Multibus I » et « Multibus II ». Cela évitera de mélanger les caractéristiques 8/16 bits d'IEEE 796 avec le PSB 32 bits de Multibus II.