Section courante

A propos

Section administrative du site

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 :

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 :

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 :

et :

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 :

Il peut cependant effectuer des transferts de :

ou :

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 :

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 :

et :

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 :

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 :

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é :

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 :

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 :

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 :

et :

La documentation Intel indique que P1 transporte notamment les lignes :

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 :

Il s'agit de cartes constituant de véritables ordinateurs monocartes.

Une carte iSBC peut comporter :

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 :

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 :

Il s'agit d'un bus système parallèle :

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 :

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 :

Plusieurs cartes processeur peuvent coopérer au sein d'une même machine.

Le bus est utilisé pour :

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 :

alors que le PC utilisant ISA adopte davantage :

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 :

Inconvénients

Multibus présente néanmoins plusieurs inconvénients :

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.



Dernière mise à jour: Vendredi, le 31 janvier 2020