Intel 80286 - Intel 80286

Intel 80286
KL Intel i286.jpg
Un processeur Intel A80286-8 avec un dissipateur de chaleur en céramique grise
informations générales
Lancé 1982
Abandonné 1991
Fabricant(s) commun(s)
Performance
Max. Fréquence d'horloge du processeur 5 MHz à 25 MHz
Vitesses du FSB 5 MHz à 25 MHz
Largeur des données 16 bits
Largeur de l'adresse 24 bits
Architecture et classement
Min. taille de la caractéristique 1,5 µm
Jeu d'instructions x86-16 (avec MMU )
Spécifications physiques
Transistors
Co-processeur Intel 80287
Paquets)
Prise(s)
Histoire
Prédécesseur 8086 , 8088 (alors que 80186 était contemporain)
Successeur Intel 80386

L' Intel 80286 (également commercialisé sous le nom d' iAPX 286 et souvent appelé Intel 286 ) est un microprocesseur 16 bits qui a été introduit le 1er février 1982. Il s'agissait du premier processeur basé sur 8086 avec des bus d' adresse et de données séparés et non multiplexés et également le premier avec une gestion de la mémoire et de larges capacités de protection. Le 80286 utilisait environ 134 000 transistors dans sa version originale nMOS ( HMOS ) et, tout comme le 80186 contemporain , il pouvait exécuter correctement la plupart des logiciels écrits pour les processeurs Intel 8086 et 8088 antérieurs .

Le 80286 a été utilisé pour l' IBM PC/AT , introduit en 1984, puis largement utilisé dans la plupart des ordinateurs compatibles PC/AT jusqu'au début des années 1990.

Histoire et performances

AMD 80286 (version 16 MHz)

Les premières puces 80286 d'Intel étaient spécifiées pour une fréquence d'horloge maximale de 5, 6 ou 8  MHz et les versions ultérieures pour 12,5 MHz. AMD et Harris ont produit plus tard des pièces de 16 MHz, 20 MHz et 25 MHz, respectivement. Intersil et Fujitsu ont également conçu des versions CMOS entièrement statiques de l' implémentation originale de nMOS à charge d'épuisement d'Intel , principalement destinées aux appareils alimentés par batterie.

En moyenne, le 80286 aurait une vitesse d'environ 0,21 instruction par horloge sur les programmes "typiques", bien qu'il puisse être nettement plus rapide sur du code optimisé et dans des boucles serrées, car de nombreuses instructions pourraient s'exécuter en 2 cycles d'horloge chacune. Les modèles 6 MHz, 10 MHz et 12 MHz auraient été mesurés pour fonctionner respectivement à 0,9 MIPS, 1,5 MIPS et 2,66 MIPS.

Le dernier niveau E- step du 80286 était exempt de plusieurs errata importants qui causaient des problèmes aux programmeurs et aux rédacteurs de systèmes d'exploitation dans les processeurs B-step et C-step antérieurs (communs dans les clones AT et AT). Cette partie de marche E-2 a peut-être été disponible plus tard en 1986.

Architecture

Microarchitecture 80286 simplifiée
Tir de matrice Intel 80286

Intel ne s'attendait pas à ce que les ordinateurs personnels utilisent le 286. Le processeur a été conçu pour les systèmes multi-utilisateurs avec des applications multitâches , y compris les communications (telles que les PBX automatisés ) et le contrôle des processus en temps réel . Il avait 134 000 transistors et se composait de quatre unités indépendantes : l'unité d'adresse, l'unité de bus, l'unité d'instruction et l'unité d'exécution, organisées en un pipeline faiblement couplé (tamponné) , tout comme dans le 8086. Il a été produit dans un boîtier à 68 broches. , y compris les boîtiers PLCC ( support de puce à plomb en plastique ), LCC ( support de puce sans plomb ) et PGA ( pin grid array ).

L'augmentation des performances du 80286 par rapport au 8086 (ou 8088) pourrait être supérieure à 100 % par cycle d'horloge dans de nombreux programmes (c'est-à-dire une performance doublée à la même vitesse d'horloge). Il s'agissait d'une augmentation importante, tout à fait comparable aux améliorations de vitesse sept ans plus tard, lorsque le i486 (1989) ou le Pentium original (1993) ont été introduits. Cela était dû en partie aux bus d'adresses et de données non multiplexés, mais principalement au fait que les calculs d'adresses (tels que base+index ) étaient moins coûteux. Ils étaient effectués par une unité dédiée dans le 80286, tandis que l'ancien 8086 devait effectuer un calcul d'adresse efficace en utilisant son ALU général , consommant plusieurs cycles d'horloge supplémentaires dans de nombreux cas. En outre, le 80286 était plus efficace dans la prélecture des instructions, la mise en mémoire tampon, l'exécution des sauts et dans les opérations numériques microcodées complexes telles que MUL / DIV que son prédécesseur.

Le 80286 incluait, en plus de toutes les instructions du 8086, toutes les nouvelles instructions du 80186 : ENTER, LEAVE, BOUND, INS, OUTS, PUSHA, POPA, PUSH immediate, IMUL immediate et immediate shifts and rotates. Le 80286 a également ajouté de nouvelles instructions pour le mode protégé : ARPL, CLTS, LAR, LGDT, LIDT, LLDT, LMSW, LSL, LTR, SGDT, SIDT, SLDT, SMSW, STR, VERR et VERW. Certaines des instructions pour le mode protégé peuvent (ou doivent) être utilisées en mode réel pour configurer et passer en mode protégé, et quelques-unes (comme SMSW et LMSW) sont utiles pour le mode réel lui-même.

L'Intel 80286 avait un bus d'adressage 24 bits et était capable d'adresser jusqu'à 16  Mo de RAM , par rapport à l'adressabilité de 1 Mo de son prédécesseur. Cependant, le coût de la mémoire et la rareté initiale des logiciels utilisant la mémoire supérieure à 1 Mo signifiaient que 80286 ordinateurs étaient rarement livrés avec plus d'un mégaoctet de RAM. De plus, l'accès à la mémoire étendue à partir du mode réel (dans lequel DOS, le système d'exploitation PC dominant jusqu'au milieu des années 90, fonctionnait), entraînait une baisse des performances, comme indiqué ci-dessous.

Caractéristiques

Siemens 80286 (version 10 MHz)
IBM 80286 (version 8 MHz)

Mode protégé

Le 286 a été le premier de la famille des processeurs x86 à prendre en charge le mode d'adresse virtuelle protégé , communément appelé « mode protégé ». De plus, c'était le premier microprocesseur disponible dans le commerce avec des capacités MMU sur puce (les systèmes utilisant les Motorola 68010 et NS320xx contemporains pouvaient être équipés d'un contrôleur MMU en option). Cela permettrait aux compatibles IBM d'avoir pour la première fois des systèmes d'exploitation multitâches avancés et de rivaliser sur le marché des serveurs / postes de travail dominé par Unix .

Plusieurs instructions supplémentaires ont été introduites dans le mode protégé de 80286, qui sont utiles pour les systèmes d'exploitation multitâches.

Une autre caractéristique importante de 80286 est la prévention des accès non autorisés. Ceci est réalisé par :

  • Former des segments différents pour les données, le code et la pile, et empêcher leur chevauchement.
  • Attribuer des niveaux de privilège à chaque segment. Les segments avec des niveaux de privilège inférieurs ne peuvent pas accéder aux segments avec des niveaux de privilège plus élevés.

En 80286 (et dans son coprocesseur Intel 80287 ), des opérations arithmétiques peuvent être effectuées sur les différents types de nombres suivants :

De par sa conception, le 286 ne pouvait pas revenir du mode protégé au mode d' adresse réelle de base compatible 8086 (« mode réel ») sans une réinitialisation matérielle. Dans le PC/AT introduit en 1984, IBM a ajouté des circuits externes, ainsi qu'un code spécialisé dans le BIOS ROM et le microcontrôleur périphérique 8042 pour permettre au logiciel de provoquer la réinitialisation, permettant une réentrée en mode réel tout en conservant la mémoire active et en redonnant le contrôle au programme qui a lancé la réinitialisation. (Le BIOS est nécessairement impliqué car il obtient le contrôle directement chaque fois que le processeur est réinitialisé.) Bien qu'il ait fonctionné correctement, la méthode imposait une énorme pénalité de performance.

En théorie, les applications en mode réel pourraient être exécutées directement en mode protégé 16 bits si certaines règles (nouvellement proposées avec l'introduction du 80286) étaient respectées ; cependant, comme de nombreux programmes DOS n'étaient pas conformes à ces règles, le mode protégé n'a pas été largement utilisé jusqu'à l'apparition de son successeur, l' Intel 80386 32 bits , qui a été conçu pour aller et venir facilement entre les modes et pour fournir une émulation de mode réel dans le mode protégé. Quand Intel a conçu le 286, il n'a pas été conçu pour pouvoir effectuer plusieurs tâches en mode réel ; le mode réel était destiné à être un moyen simple pour un chargeur d'amorçage de préparer le système, puis de passer en mode protégé ; essentiellement, en mode protégé, le 80286 a été conçu pour être un nouveau processeur avec de nombreuses similitudes avec ses prédécesseurs, tandis que le mode réel sur le 80286 a été proposé pour les systèmes à plus petite échelle qui pourraient bénéficier d'une version plus avancée du cœur du processeur 80186, avec des avantages tels que des fréquences d'horloge plus élevées, une exécution des instructions plus rapide (mesurée en cycles d'horloge) et des bus non multiplexés, mais pas l'espace mémoire de 24 bits (16 Mo).

Pour prendre en charge le mode protégé, de nouvelles instructions ont été ajoutées : ARPL, VERR, VERW, LAR, LSL, SMSW, SGDT, SIDT, SLDT, STR, LMSW, LGDT, LIDT, LLDT, LTR, CLTS. Il existe également de nouvelles exceptions (interruptions internes) : opcode invalide, coprocesseur non disponible, double défaut, dépassement de segment de coprocesseur, défaut de pile, dépassement de segment/défaut de protection générale, et d'autres uniquement pour le mode protégé.

Prise en charge du système d'exploitation

Le mode protégé du 80286 n'a été utilisé de manière routinière dans les applications PC que de nombreuses années après sa sortie, en partie à cause du coût élevé de l'ajout de mémoire étendue à un PC, mais aussi en raison du besoin de logiciels pour prendre en charge la grande base d'utilisateurs de 8086 PC. Par exemple, en 1986, le seul programme qui l'utilisait était VDISK, un pilote de disque RAM inclus avec PC DOS 3.0 et 3.1. Un DOS pourrait utiliser la RAM supplémentaire disponible en mode protégé ( mémoire étendue ) soit via un appel BIOS (INT 15h, AH=87h), soit comme disque RAM , soit comme émulation de mémoire étendue . La difficulté résidait dans l'incompatibilité des anciens programmes DOS en mode réel avec le mode protégé. Ils ne pouvaient tout simplement pas fonctionner nativement dans ce nouveau mode sans modification significative. En mode protégé, la gestion de la mémoire et la gestion des interruptions se faisaient différemment qu'en mode réel. De plus, les programmes DOS accédaient généralement directement aux données et aux segments de code qui ne leur appartenaient pas, car le mode réel leur permettait de le faire sans restriction ; en revanche, l'intention de conception du mode protégé était d'empêcher les programmes d'accéder à des segments autres que le leur à moins qu'un accès spécial ne soit explicitement autorisé. Alors qu'il était possible de mettre en place un environnement en mode protégé qui permettait à tous les programmes d'accéder à tous les segments (en mettant tous les descripteurs de segment dans le GDT et en leur attribuant tous le même niveau de privilège), cela sapait presque tous les avantages du mode protégé, à l'exception l'espace d'adressage étendu (24 bits). Le choix auquel étaient confrontés les développeurs de systèmes d'exploitation était soit de repartir de zéro et de créer un système d'exploitation qui n'exécuterait pas la grande majorité des anciens programmes, soit de proposer une version de DOS qui était lente et moche (c'est-à-dire laide d'un système technique interne point de vue) mais exécuterait toujours la majorité des anciens programmes. Le mode protégé n'offrait pas non plus un avantage de performances suffisamment important par rapport au mode réel compatible 8086 pour justifier la prise en charge de ses capacités ; en fait, à l'exception des changements de tâches lors du multitâche, cela n'a en fait généré qu'un inconvénient en termes de performances, en ralentissant de nombreuses instructions grâce à une litanie de vérifications de privilèges supplémentaires. En mode protégé, les registres étaient toujours en 16 bits, et le programmeur était toujours obligé d'utiliser une carte mémoire composée de segments de 64 Ko, tout comme en mode réel.

En janvier 1985, Digital Research a présenté en avant-première le système d'exploitation Concurrent DOS 286 1.0 développé en coopération avec Intel . Le produit fonctionnerait strictement comme un système d'exploitation en mode natif 80286 (c'est-à-dire en mode protégé), permettant aux utilisateurs de tirer pleinement parti du mode protégé pour effectuer des opérations multi-utilisateurs et multitâches tout en exécutant l'émulation 8086. Cela a fonctionné sur l'étape de prototype B-1 de la puce, mais Digital Research a découvert des problèmes avec l'émulation sur l'étape de production C-1 en mai, ce qui ne permettrait pas à Concurrent DOS 286 d'exécuter le logiciel 8086 en mode protégé. La sortie de Concurrent DOS 286 a été retardée jusqu'à ce qu'Intel développe une nouvelle version de la puce. En août, après des tests approfondis sur des échantillons d'étape E-1 du 80286, Digital Research a reconnu qu'Intel avait corrigé tous les errata 286 documentés, mais a déclaré qu'il y avait encore des problèmes de performances de puce non documentés avec la version préliminaire de Concurrent DOS 286 fonctionnant sur le E- 1 étape. Intel a déclaré que l'approche que Digital Research souhaitait adopter pour émuler le logiciel 8086 en mode protégé différait des spécifications d'origine. Néanmoins, à l'étape E-2, ils ont apporté des modifications mineures au microcode qui permettraient à Digital Research d'exécuter le mode d'émulation beaucoup plus rapidement. Nommé IBM 4680 OS , IBM a initialement choisi DR Concurrent DOS 286 comme base de son ordinateur IBM 4680 pour les produits IBM Plant System et les terminaux de point de vente en 1986. FlexOS 286 version 1.3 de Digital Research , une dérivation de Concurrent DOS 286, a été développé en 1986, introduit en janvier 1987 et adopté plus tard par IBM pour son système d'exploitation IBM 4690 , mais les mêmes limitations l'affectaient.

Les problèmes ont conduit Bill Gates à qualifier le 80286 de "puce en état de mort cérébrale", car il était clair que le nouvel environnement Microsoft Windows ne serait pas en mesure d'exécuter plusieurs applications MS-DOS avec le 286. Il était sans doute responsable de la scission entre Microsoft et IBM, puisqu'IBM insistait sur le fait qu'OS/2 , à l'origine une coentreprise entre IBM et Microsoft, fonctionnerait sur un 286 (et en mode texte).

Les autres systèmes d'exploitation qui utilisaient le mode protégé du 286 étaient Microsoft Xenix (vers 1984), Coherent et Minix . Ceux-ci étaient moins entravés par les limitations du mode protégé 80286 car ils ne visaient pas à exécuter des applications MS-DOS ou d'autres programmes en mode réel. Dans sa puce 80386 qui lui a succédé , Intel a amélioré le mode protégé pour adresser plus de mémoire et a également ajouté le mode 8086 virtuel séparé , un mode au sein du mode protégé avec une bien meilleure compatibilité MS-DOS, afin de satisfaire les besoins divergents du marché.

Composants de support

Cette liste de composants d'interface de bus qui se connecte au microprocesseur Intel 80286.

  • 82258 Contrôleur avancé d'accès direct à la mémoire - Taux de transfert de 8 Mo par seconde, prend en charge jusqu'à 32 sous-canaux, masque et comparaison, vérification, traduction et assemblage/désassemblage qui sont traités simultanément. Il prend également en charge une plage d'adressage de 16 Mo. Celles-ci étaient disponibles au prix de 170 $ US en quantités de 100.
  • Générateur et pilote d'horloge 82C284
  • 82288 Contrôleur de bus
  • 82289 Arbitre de bus

Voir également

Les références

Liens externes