Bus ISA

Industry Standard Architecture (ISA) désigne le système de connexion interne de 16 bits utilisé dans les IBM PC/AT et des ordinateurs similaires qui ont utilisé les processeurs Intel 80286 et leurs successeurs pendant les années 1980. Ce bus, un peu comme un réseau de routes à l'intérieur de l'ordinateur, permet aux différentes parties de l'ordinateur, comme le processeur, la mémoire et les périphériques, de communiquer entre elles. Il a été spécialement conçu pour être compatible avec le bus de 8 bits des premiers IBM PC équipés de processeurs 8088, comme l'IBM PC/XT, ainsi que les ordinateurs compatibles avec les IBM PC..

Industry Standard Architecture

TypeConnecteur parallèle
Historique de production
AuteurIBM
Date de création1981
Spécifications
Connexion à chaudNon
ExterneNon
Signal audioNon
Signal vidéoNon
— Nombre de bits8 ou 16
Description de l'image ISA 8-bits.png.
Brochage
NuméroAbréviationDescription

Appelé à l'origine bus PC (8 bits) ou bus AT (16 bits), il a également été appelé I/O Channel par IBM. Le terme ISA a été repris par les fabricants de clones d'IBM PC à la fin des années 1980 ou au début des années 1990, en réaction aux tentatives d'IBM de remplacer le bus AT par sa nouvelle et incompatible architecture Micro Channel.

Le bus ISA 16 bits a également été utilisé avec des processeurs 32 bits pendant plusieurs années. Une tentative d'extension à 32 bits, appelée Extended Industry Standard Architecture (EISA), n'a cependant pas été couronnée de succès. Des bus ultérieurs tels que le bus local VESA et le PCI ont été utilisés à la place, souvent en même temps que les emplacements ISA sur la même carte mère. Des dérivés de la structure du bus AT ont été et sont encore utilisés dans ATA/IDE, la norme PCMCIA, CompactFlash, le bus PC/104 et en interne dans les puces Super I/O.

Bien que l'ISA ait disparu des ordinateurs de bureau grand public il y a de nombreuses années, elle est encore utilisée dans les PC industriels, où l'on utilise certaines cartes d'extension spécialisées qui n'ont jamais fait la transition vers PCI et PCI Express.

Histoire

Cinq emplacements ISA 16 bits et un emplacement ISA 8 bits sur une carte mère.

Le bus PC original a été développé par une équipe dirigée par Mark Dean chez IBM dans le cadre du projet IBM PC en 1981[1]. Il s'agissait d'un bus 8 bits basé sur le bus E/S du système IBM System/23 Datamaster - il utilisait le même connecteur physique, ainsi qu'un protocole de signal et un brochage similaires[2].

Une version 16 bits, le bus IBM AT, a été introduite avec la sortie de l'IBM PC/AT en 1984[3],[4]. Le bus AT était une extension essentiellement rétro compatible du bus PC - le connecteur du bus AT était un sur ensemble du connecteur. En 1988, la norme EISA 32 bits a été proposée par le groupe « Gang of Nine » de fabricants de PC compatibles, dont Compaq[5],[6],[7]. Compaq a créé le terme « Industry Standard Architecture » (ISA) pour remplacer « compatible PC » et a renommé rétroactivement le bus AT en "ISA" pour éviter d'enfreindre la marque déposée d'IBM sur ses systèmes PC et PC/AT[8],[7].

Il s'agit d'une carte d'interface réseau Novell Ethernet 10Mbps de 1988. Elle possède des connecteurs 10Base-5 (AUI) et 10Base-2 (BNC), mais seuls l'un ou l'autre peuvent être utilisés. Elle peut être insérée dans n'importe quel bus compatible ISA.

IBM a conçu la version 8 bits comme une interface tamponnée avec les bus de la carte mère du processeur Intel 8088 (16/8 bits) dans les PC et PC/XT d'IBM, avec des interruptions prioritaires et des canaux DMA[9]. La version 16 bits était une mise à niveau pour les bus de carte mère de l'unité centrale Intel 80286 (et des fonctions d'interruption et de DMA étendues) utilisées dans l'IBM AT[10], avec une meilleure prise en charge de la maîtrise du bus. Le bus ISA était donc synchrone avec l'horloge du CPU, jusqu'à ce que des méthodes sophistiquées de mise en mémoire tampon soient mises en œuvre par les chipsets pour interfacer l'ISA avec des CPU beaucoup plus rapides.

L'ISA a été conçu pour connecter des cartes périphériques à la carte mère et permet la maîtrise du bus. Seuls les 16 premiers Mo de la mémoire principale sont adressables. Le bus 8 bits d'origine fonctionnait à partir de l'horloge de 4,77 MHz de l'unité centrale 8088 dans les PC et PC/XT d'IBM[11]. Le bus 16 bits d'origine fonctionnait à partir de l'horloge du CPU 80286 dans les ordinateurs IBM PC/AT, qui était de 6 MHz dans les premiers modèles et de 8 MHz dans les modèles ultérieurs[12]. L'IBM RT PC utilisait également le bus 16 bits. L'ISA a également été utilisé dans certaines machines non compatibles IBM, telles que les stations de travail Apollo (68020) et Amiga 3000 (68030) basées sur la technologie 68k de Motorola[13],[14], l'éphémère AT&T Hobbit et la BeBox basée sur le PowerPC[15].

Il s'agit d'une carte d'interface réseau commutable Token Ring 4/16Mbps de 1987 de Madge Networks. Elle peut être insérée dans n'importe quel bus compatible ISA.

Des sociétés comme Dell ont amélioré les performances du bus AT[16], mais en 1987, IBM a remplacé le bus AT par son architecture propriétaire Micro Channel Architecture (MCA). La MCA a surmonté bon nombre des limitations alors apparentes de l'ISA[17], mais a également constitué un effort de la part d'IBM pour reprendre le contrôle de l'architecture et du marché des PC. La MCA était beaucoup plus avancée que l'ISA et présentait de nombreuses caractéristiques qui apparaîtraient plus tard dans le PCI[18]. Cependant, le MCA était également une norme fermée, alors qu'IBM avait publié des spécifications complètes et des schémas de circuits pour l'ISA. Les fabricants d'ordinateurs ont réagi au MCA en développant l'EISA (Extended Industry Standard Architecture) et, plus tard, le VLB (VESA Local Bus). Le VLB a utilisé certaines pièces électroniques initialement prévues pour le MCA, car les fabricants de composants étaient déjà équipés pour les fabriquer[19]. L'EISA et le VLB étaient des extensions rétro compatibles du bus AT (ISA)[19].

Les utilisateurs de machines basées sur la norme ISA devaient posséder des informations spécifiques sur le matériel qu'ils ajoutaient au système[19]. Bien qu'un petit nombre de périphériques soient essentiellement "prêts à l'emploi", cela était rare[20]. Les utilisateurs devaient souvent configurer des paramètres lors de l'ajout d'un nouveau périphérique, tels que la ligne IRQ, l'adresse E/S ou le canal DMA[20]. Le MCA avait éliminé cette complication et le PCI a en fait incorporé de nombreuses idées explorées pour la première fois avec le MCA, bien qu'il soit plus directement issu de l'EISA.

Ces problèmes de configuration ont finalement conduit à la création de l'ISA PnP, un système plug-n-play qui utilisait une combinaison de modifications du matériel, du BIOS du système et du système d'exploitation pour gérer automatiquement les allocations de ressources. En réalité, l'ISA PnP pouvait poser des problèmes et n'a bénéficié d'un bon soutien que lorsque l'architecture a vécu ses derniers jours[20].

Les emplacements PCI ont été les premiers ports d'extension à évincer directement l'ISA de la carte mère en raison de leur incompatibilité physique. Au début, les cartes mères étaient principalement équipées de connecteurs ISA, avec seulement quelques emplacements PCI. Au milieu des années 1990, les deux types d'emplacements étaient à peu près équilibrés, et les emplacements ISA sont rapidement devenus minoritaires dans les systèmes grand public. La spécification PC-99 de Microsoft recommandait la suppression totale des emplacements ISA[21],[22], bien que l'architecture du système exigeait toujours la présence d'ISA d'une manière ou d'une autre en interne pour gérer le lecteur de disquettes, les ports série, etc. Les emplacements ISA sont restés en place pendant quelques années encore et, vers la fin du siècle, il était courant de voir des systèmes dotés d'un port graphique accéléré (AGP) près de l'unité centrale, d'un ensemble d'emplacements PCI et d'un ou deux emplacements ISA à l'extrémité du système[23]. Fin 2008, même les lecteurs de disquettes et les ports série disparaissaient, et l'extinction de l'ISA vestigial (à l'époque le bus LPC) des chipsets se profilait à l'horizon.

L'interface de disque dur AT Attachment (ATA) est directement issue de l'ISA 16 bits du PC/AT[24],[25],[26]. L'ATA trouve son origine dans l'adaptateur de disque fixe et de disquette d'IBM PC[26],[27],le contrôleur de disque fixe de cette carte mettait en œuvre le jeu de registres et le jeu de commandes de base qui sont devenus la base de l'interface ATA (et qui différaient grandement de l'interface de la carte de contrôleur de disque fixe d'IBM pour le PC XT).

Architecture du bus ISA

Le bus PC/XT est un bus ISA 8-bits utilisé par les systèmes Intel 8086 et Intel 8088 dans l'IBM PC et l'IBM PC XT dans les années 1980[28],[29]. Parmi ses 62 broches se trouvaient des versions démultiplexées et électriquement tamponnées des 8 lignes de données et des 20 lignes d'adresse du processeur 8088, ainsi que des lignes d'alimentation, des horloges[29], des stroboscopes de lecture/écriture, des lignes d'interruption, etc. Les lignes d'alimentation comprennent -5 V et ±12 V afin de supporter directement les circuits pMOS et nMOS en mode d'amélioration, tels que les RAM dynamiques, entre autres. L'architecture du bus XT utilise un seul PIC Intel 8259[29], offrant huit lignes d'interruption vectorisées et priorisées. Il dispose de quatre canaux DMA fournis à l'origine par l'Intel 8237. Trois des canaux DMA sont amenés vers les slots d'extension du bus XT ; parmi ceux-ci, deux sont normalement déjà alloués à des fonctions de la machine (lecteur de disquette et contrôleur de disque dur) .

Le bus PC/AT, une version 16 bits (ou 80286) du bus PC/XT, a été introduit avec le PC/AT d'IBM[28]. Ce bus a été officiellement appelé I/O Channel par IBM[30],[4]. Il étend le bus XT en ajoutant un deuxième connecteur plus court en ligne avec le connecteur XT-bus 8-bits, qui est inchangé, conservant la compatibilité avec la plupart des cartes 8 bits[31]. Le second connecteur ajoute quatre lignes d'adresse supplémentaires pour un total de 24, et 8 lignes de données supplémentaires pour un total de 16[31]. Il ajoute également de nouvelles lignes d'interruption connectées à un second PIC 8259 (connecté à l'une des lignes du premier) et 4 canaux DMA 16 bits, ainsi que des lignes de contrôle pour sélectionner les transferts 8 ou 16 bits[31].

Brochage 16-bit
BrocheNomDirectionDescription
A1I/O CH CKI/O channel check; active low=parity error
A2D7Bit de donnée 7
A3D6Bit de donnée 6
A4D5Bit de donnée 5
A5D4Bit de donnée 4
A6D3Bit de donnée 3
A7D2Bit de donnée 2
A8D1Bit de donnée 1
A9D0Bit de donnée 0
A10I/O CH RDYI/O Channel ready, pulled low to lengthen memory cycles
A11AENAddress enable; active high when DMA controls bus
A12A19Bit d'adresse 19
A13A18Bit d'adresse 18
A14A17Bit d'adresse 17
A15A16Bit d'adresse 16
A16A15Bit d'adresse 15
A17A14Bit d'adresse 14
A18A13Bit d'adresse 13
A19A12Bit d'adresse 12
A20A11Bit d'adresse 11
A21A10Bit d'adresse 10
A22A9Bit d'adresse 9
A23A8Bit d'adresse 8
A24A7Bit d'adresse 7
A25A6Bit d'adresse 6
A26A5Bit d'adresse 5
A27A4Bit d'adresse 4
A28A3Bit d'adresse 3
A29A2Bit d'adresse 2
A30A1Bit d'adresse 1
A31A0Bit d'adresse 0
B1GNDMasse
B2RESETActive high to reset or initialize system logic
B3+5V+5 VDC
B4IRQ2Requête d'interruption 2
B5-5VDC-5 VDC
B6DRQ2Requête DMA 2
B7-12VDC-12 VDC
B8/NOWSNo WaitState
B9+12VDC+12 VDC
B10GNDMasse
B11/SMEMWSystem Memory Write
B12/SMEMRSystem Memory Read
B13/IOWI/O Write
B14/IORI/O Read
B15/DACK3DMA Acknowledge 3
B16DRQ3Requête DMA 3
B17/DACK1Quittance DMA 1
B18DRQ1Requête DMA 1
B19/REFRESHRafraîchissement
B20CLOCKHorloge système (67 ns, 8-8.33 MHz, 50% duty cycle)
B21IRQ7Requête d'interruption 7
B22IRQ6Requête d'interruption 6
B23IRQ5Requête d'interruption 5
B24IRQ4Requête d'interruption 4
B25IRQ3Requête d'interruption 3
B26/DACK2Quittance DMA 2
B27T/CTerminal count; pulses high when DMA term. count reached
B28ALEAddress Latch Enable
B29+5V+5 VDC
B30OSCHorloge haute vitesse (70 ns, 14,31818 MHz, 50% duty cycle)
B31GNDMasse
C1SBHESystem bus high enable (data available on SD8-15)
C2LA23Bit d'adresse 23
C3LA22Bit d'adresse 22
C4LA21Bit d'adresse 21
C5LA20Bit d'adresse 20
C6LA18Bit d'adresse 19
C7LA17Bit d'adresse 18
C8LA16Bit d'adresse 17
C9/MEMRMemory Read (Active on all memory read cycles)
C10/MEMWMemory Write (Active on all memory write cycles)
C11SD08Bit de donnée 8
C12SD09Bit de donnée 9
C13SD10Bit de donnée 10
C14SD11Bit de donnée 11
C15SD12Bit de donnée 12
C16SD13Bit de donnée 13
C17SD14Bit de donnée 14
C18SD15Bit de donnée 15
D1/MEMCS16Memory 16-bit chip select (1 wait, 16-bit memory cycle)
D2/IOCS16I/O 16-bit chip select (1 wait, 16-bit I/O cycle)
D3IRQ10Requête d'interruption 10
D4IRQ11Requête d'interruption 11
D5IRQ12Requête d'interruption 12
D6IRQ15Requête d'interruption 15
D7IRQ14Requête d'interruption 14
D8/DACK0Quittance DMA 0
D9DRQ0Requête DMA 0
D10/DACK5Quittance DMA 5
D11DRQ5Requête DMA 5
D12/DACK6Quittance DMA 6
D13DRQ6Requête DMA 6
D14/DACK7Quittance DMA 7
D15DRQ7Requête DMA 7
D16+5 V+5 VDC
D17/MASTERUsed with DRQ to gain control of system
D18GNDMasse

Utilisation passée et actuelle

L'ISA est encore utilisée aujourd'hui à des fins industrielles spécialisées. En 2008, IEI Technologies a lancé une carte mère moderne pour les processeurs Intel Core 2 Duo qui, en plus d'autres caractéristiques d'E/S spéciales, est équipée de deux emplacements ISA. Elle est destinée aux utilisateurs industriels et militaires qui ont investi dans des adaptateurs de bus ISA spécialisés et coûteux, qui ne sont pas disponibles en version bus PCI[32].

De même, ADEK Industrial Computers sortira début 2013 une carte mère pour les processeurs Intel Core i3/i5/i7, qui contient un emplacement ISA (non DMA)[33].

XT-IDE

Avant l'interface ATA/IDE 16 bits, il existait une interface XT-IDE (également connue sous le nom de XTA) 8 bits pour les disques durs. Elle n'était pas aussi populaire que l'ATA et le matériel XT-IDE est aujourd'hui assez difficile à trouver. Certains adaptateurs XT-IDE étaient disponibles sous forme de cartes ISA 8 bits, et des prises XTA étaient également présentes sur les cartes mères des derniers clones XT d'Amstrad, ainsi que sur une ligne éphémère d'unités Philips. Le brochage de XTA était très similaire à celui de l'ATA, mais seules huit lignes de données et deux lignes d'adresse étaient utilisées, et les registres physiques des périphériques avaient des significations complètement différentes. Quelques disques durs (comme le Seagate ST351A/X) pouvaient prendre en charge l'un ou l'autre type d'interface, sélectionné à l'aide d'un cavalier[34],[35].

Émulation par des puces intégrées

Bien que la plupart des ordinateurs modernes n'aient pas de bus ISA physiques, presque tous les PC - IA-32 et x86-64 - ont des bus ISA alloués dans l'espace d'adressage physique. Certains Southbridges et certains CPU fournissent eux-mêmes des services tels que la surveillance de la température et la lecture de la tension par l'intermédiaire des bus ISA en tant que dispositifs ISA.

Standardisation

L'IEEE a commencé à normaliser le bus ISA en 1985, sous le nom de spécification P996. Cependant, malgré la publication de livres sur la spécification P996, celle-ci n'a jamais dépassé officiellement le statut de projet[36].

Cartes ISA modernes

Il existe toujours une base d'utilisateurs d'anciens ordinateurs, c'est pourquoi certaines cartes ISA sont encore fabriquées, par exemple avec des ports USB ou des ordinateurs à carte unique basés sur des processeurs modernes, USB 3.0 et SATA[37],[38],[39].

Références