Intel 80286
Mikroprozessor von Intel
From Wikipedia, the free encyclopedia
Der Intel 80286, auch iAPX 286 oder Intel 286, ist ein x86-Mikroprozessor mit 16-Bit-Architektur des Unternehmens Intel, der am 1. Februar 1982 als Nachfolger des 8086 auf den Markt kam. Der 286er – wie der 80286 häufig auch genannt wird (gesprochen Zweisechsundachtziger) – wurde zunächst in Büro-Mikrocomputeranlagen eingebaut, die unter Unix liefen. 1984 brachte dann das Unternehmen IBM den PC/AT auf 80286-Basis als Nachfolger des PC XT heraus. Fast ausschließlich durch die PC/AT-Computer und deren kompatible Nachbauten fand der 80286 Verbreitung.
Geschichte
Der Intel 80286 erschien 1982 auf dem Markt, kurz nach dem Erscheinen des ersten IBM Personal Computer und vier Jahre nach dem 8086. Er stellt eine komplette Überarbeitung des 8086 dar, die Anzahl der verbauten Transistoren stieg um den Faktor 4,62. Er weist bei gleicher Taktfrequenz etwa die 3- bis 4-fache Leistung gegenüber einem 8086 auf. Die ersten Versionen waren noch vergleichsweise langsam mit 4 MHz, 6 MHz und 8 MHz getaktet, spätere Versionen erlaubten Taktfrequenzen bis 12,5 MHz. AMD und Harris stellten später auch CPUs mit 16 MHz, 20 MHz und 25 MHz her. Technologisch setzt er letztmals auf einen NMOS-Prozess mit 1,5 µm Strukturbreite. Spätere Prozessoren wie auch Nachbauten des 80286 durch Intersil und Fujitsu wechselten zum stromsparenderen CMOS-Prozess.
Architektur

Grundlegende Unterschiede in der Architektur zum 8086:
- kein gemultiplexter Adress/Datenbus mehr (8086: Daten- und Adressbus gemultiplext)
- Schnellere Speicherzugriffe: 2 Takte (8088 und 8086: 4 Takte)
- zusätzlicher Adder für Adressberechnung (8086: normale ALU wurde zur Adressberechnung genutzt, 4 Takte zusätzlich bei einfachen Adressberechnungen
[BP+SI], 8 Takte bei doppelten[BP+SI+nn]) - Hardware-Multiplizierer, 16 Bit-Multiplikation in 21 Takten (8086: 118–133 Takte, Z80: 214–667 Takte in SW[1])
- Hardware-Dividierer, 16 Bit-Division in 22 Takten (8086: 144–162 Takte)
- schnellerer Shifter (aber noch keinen Barrel-Shifter), 1 Takt pro Verschiebung (8086: 4 Takte)
- Zusätzliche Befehle: Verschiebe-Befehle:
ROR/ROL/RCR/RCL/SAL/SAR/SHLimmediate,MULimmediate,PUSHimmediate,PUSHA/POPA,ENTER/LEAVE,INS/OUTS,BOUND - Unterstützung eines Protected Mode, der physisch bis zu 16 MiB und logisch bis zu 512 MiB (8191 Segmente à 64 KiB) adressieren konnte.
- 4 weitere Adressleitungen
A20bisA23zur Adressierung von 16 MiB statt 1 MiB - 8 Byte bzw. 64 Bit breite Deskriptoren, wovon aber nur die ersten 6 Bytes bzw. 48 Bits (davon 24 Bit für die direkte Speicheradressierung) verwendet werden; eine Überprüfung findet dabei jedoch nicht statt (fehlende Aufwärtskompatibilität – der 80386 nutzt bereits alle 8 Bytes bzw. 64 Bits)[2][3]
- Gleitkommabefehle für den 80287 erfordern keine Synchronisation mittels
FWAITmehr. - Geschwindigkeitsgewinn des 80286 gegenüber 8088 (taktbereinigt): ca. 3,5 bis 4
- Geschwindigkeitsgewinn des 80287 gegenüber 8087 (taktbereinigt): ca. 1 bis 1,15 (interne Verarbeitungsgeschwindigkeit identisch, schnellerer Bus)
Eine Designentscheidung beim 80286 führte später dazu, dass Intel bei der Entwicklung des i486 dessen Architektur gegenüber der des 80386 so wenig wie möglich veränderte, und beim „P5 Pentium“ begann, die als englisch „reserved“ angegebenen Bytes und Bits bei Steuerregistern und Seitentabellen zu überprüfen. Der 80286-Prozessor ignorierte reservierte Bits, was jedoch im Falle von Xenix 286 (siehe Abschnitt Unix) dazu führte, dass sich die Programmierer von Microsoft bei der Portierung von Unix auf den 80286 nicht an die (zu spät veröffentlichte) Vorgabe von Intel hielten, diese überzähligen Bits nicht für eigene Zwecke zu verwenden. Da diese Bits aber später beim 80386 vom Prozessor selbst verwendet werden, stürzt Xenix 286 auf einem 386er oder neuer bereits beim Start ab. Ab dem Pentium führt es zu einer Ausnahmebehandlung (englisch exception), wenn reservierte Bits von einer Software verwendet werden. Damit ist die Aufwärtskompatibilität sichergestellt, wenn zukünftige Prozessoren bis dahin reservierte Datenbereiche verwenden, wie es beim 80386 gegenüber dem 80286 der Fall war. Software kann dann die vom Prozessor (noch) nicht verwendeten Bits ebenfalls nicht verwenden und bleibt somit auch mit späteren Prozessoren kompatibel – anders als Xenix 286, das mit 80386-Prozessoren und neuer gänzlich inkompatibel ist, weil sowohl die Software (das Betriebssystem) als auch die Hardware (der Prozessor) dieselben Bits für unterschiedliche Funktionen gleichzeitig verwenden.[3]
Features
Protected Mode
Bezüglich seines Befehlssatzes ist der 80286 abwärtskompatibel zum 8086, er führte aber einen zusätzlichen Betriebsmodus ein: den Protected Mode, „geschützter Modus“. Der zum 8086 abwärtskompatible Betriebsmodus erhielt die Bezeichnung Real Mode. Die Bezeichnung Real Mode wurde derart geläufig, dass sogar bis heute häufig über den 8086 und dessen Bruder 8088 vereinfachend gesagt wird, sie würden im Real Mode laufen, denn in diesem Betriebsmodus war der 80286 fast vollständig softwarekompatibel zum 8086 – einschließlich der Beschränkung auf 1 MiB Adressraum.
Der Protected Mode dagegen erlaubt es, über den 24 Bit breiten Adressbus bis zu 16 MiB zu adressieren. Die Beschränkung auf maximal 64 KiB große Segmente blieb jedoch auch in diesem Betriebsmodus bestehen – alle Adressregister waren nach wie vor nur 16 Bit breit. Allerdings konnte ein Segment auf eine nahezu beliebige Adresse im 24-Bit-Adressraum gelegt werden. Nur so erschloss sich für Programmcode der gesamte Adressraum. Durch die Speicherverwaltungsmöglichkeit des Protected Modes steht ein virtueller Speicher von knapp 1 GiB (16383 Segmente zu max. 64 KiB) zur Verfügung. Siehe dazu auch 16-Bit Protected Mode.
Der Protected Mode unterstützte Multitasking, Speicherschutz und weitere, im Real Mode nicht verfügbare Erweiterungen. Obwohl der Protected Mode schwieriger zu programmieren war als der Real Mode, bot er eine Vielzahl von Vorteilen und neuen Möglichkeiten. Die Entwickler von Intel glaubten, dass alte Programme, die sich an gewisse Regeln hielten, unverändert im neuen Betriebsmodus laufen würden. In der Praxis zeigte sich jedoch, dass aufgrund vieler Probleme mit der PC-Architektur und dem Betriebssystem MS-DOS fast keine Real-Mode-Programme im Protected Mode funktionierten. Bill Gates bezeichnete den 80286 auch als hirnlosen Chip, da der Prozessor in einer Windows-Umgebung nicht mehrere MS-DOS-Programme gleichzeitig abarbeiten konnte.[4] Dies wurde erst im Nachfolger 80386 ermöglicht, der dafür einen eigenen Betriebsmodus bekam, den Virtual 8086 Mode.
Der 80286-Prozessor kann zwar relativ einfach in den Protected Mode geschaltet werden, der Weg zurück ist jedoch nur über ein Zurücksetzen (Prozessor-Reset) möglich oder, wie später entdeckt wurde, mit einem undokumentierten Befehl (LOADALL 0x0F05, lade alle Prozessorregister aus dem Speicher).[5][6][7] Es wurde viel spekuliert, warum Intel keine einfachere Möglichkeit einbaute, um vom Protected Mode einfach in den Real Mode zurückzukehren – die am häufigsten angeführten Gründe sind:
- Intel betrachtete den Protected Mode als derart überlegen, dass man dachte, niemand würde in den Real Mode zurückschalten wollen.
- Ein entsprechender Befehl sei vorgesehen gewesen, er habe jedoch nicht richtig funktioniert und wurde vor Markteinführung kurzfristig stillgelegt.
- Ein Designfehler an der Mikroarchitektur des 80286 habe ein problemfreies Zurückschalten nicht ohne tiefgreifende Veränderungen an dieser ermöglicht.
- Die Implementierung des Befehls sei schlicht und einfach vergessen worden.
- Intel 80286 mit 10 MHz (PLCC-Gehäuse)[8]
- Siemens SAB 80286 (PLCC-Gehäuse)
- IBM 80286 für 8 MHz (PGA-Gehäuse)
Software
Unix
Das bereits zuvor von Microsoft und SCO auf den 8086 portierte Unix System V erschien 1985 als Xenix 286 System V Release 2.0 auch für den 80286.[9] Auch Coherent wurde auf den 80286 portiert. Eine wesentliche Verbreitung von Unix auf 80286-PCs blieb jedoch aus.
Microsoft Xenix 286 läuft vollständig im 16-Bit-Protected-Mode, womit die Speicherbegrenzung von 1 MiB wie noch zuvor bei Xenix auf dem 8086 bzw. im Real Mode wegfällt. Xenix 286 bzw. die von IBM vermarktete OEM-Version „IBM PC Xenix“[10] kann somit den vollen virtuellen 16-Bit-Adressraum von 16 MiB des Protected Mode nutzen, unterstützt jedoch nur 4 MiB physischen RAM, da auch der IBM PC/AT nicht mit mehr RAM bestückt werden konnte.[11] Bei den 64 Bit großen Deskriptoren, von denen der 80286 nur 48 Bits verarbeitet, verwendet Xenix die zwei ungenutzten Bytes (ein Datenwort) für Verwaltungsdaten. Der Prozessor ignoriert diese überzähligen Bits bei der Ausführung, nicht jedoch der ab 1985 verfügbare 80386-Prozessor, der alle 8 Bits im GDT und LDT verarbeitet. Dadurch ist Xenix 286 auf dem 80386 oder einem neueren IA-32-Prozessor nicht lauffähig: es stürzt sofort ab.[2] Intel hatte dies bereits vor Veröffentlichung des 80386 und von Xenix 286 erkannt und einen Patch entwickelt, den Microsoft jedoch nicht übernahm.[3] Da Xenix das erste verfügbare Protected-Mode-Betriebssystem für den IBM PC/AT und dessen 80286-Prozessor war, und IBM das Betriebssystem sogar kurzzeitig direkt vermarktete,[10] war es 1984 offenbar auch für IBM noch kein Problem, dass Xenix 286 exklusiv auf dem 80286 lauffähig ist.
PC-Unix konnte erst mit dem 80386 auf der x86-Architektur richtig Fuß fassen. Ende der 1980er/Anfang der 1990er Jahre wurden 32-Bit-Unix-Varianten für den IBM-kompatiblen x86-PC speziell für den 386er und neuere x86-Prozessoren angepasst – beispielsweise kommerzielle Unix-Versionen wie spätere Xenix-Versionen und AIX, aber auch das freie BSD wurde Ende der 1980er auf den 386er portiert und u. a. 1992 als 386BSD veröffentlicht. Linux wurde direkt für den 386er entwickelt, u. a. weil dieser im Gegensatz zum 286er eine Speicherverwaltungseinheit (MMU) besitzt. Als Hobby-Projekt wurde ab 1997 der Linux-Kernel als „Embeddable Linux Kernel Subset“, kurz ELKS, auf 8086- und 80286-Hardware – und damit eine 16-Bit-Architektur ohne MMU – rückportiert.
Memory Extender
1987, mit Windows 2.1, realisierte das Unternehmen Microsoft zum ersten Mal einen sogenannten Memory-Extender, der den Protected Mode des 80286 zu Hilfe nahm. Mit solchen Memory-Extendern kann aus DOS heraus Speicher oberhalb der 1-MiB-Grenze und des hohen Speichers (HMA), der sogenannte Erweiterte Speicher (englisch Extended Memory) genutzt werden.
1988 wurde dieser Zugriff in der Extended Memory Specification, kurz XMS, standardisiert. Folglich hießen die Memory-Extender daraufhin unter DOS XMS-Extender. Der bekannteste unter ihnen wurde der ab 1990 mit DOS 5.0 mitgeliefert: HIMEM.SYS.
DOS-Extender und Windows
In der zweiten Hälfte der 1980er Jahre kamen DOS-Extender zur verbesserten Nutzung des Protected Mode der 80286- und 80386-Prozessoren auf. Der erste etablierte Standard für DOS-Extender VCPI benötigt jedoch mindestens einen 386er. Ab 1990 etablierte sich mit DPMI jedoch ein Windows-kompatibler Standard für DOS-Extender, der auch auf dem 80286 und dem 16-Bit-Protected-Mode kompatibel ist; allerdings wurden in den 1990er Jahren die meisten DOS-Protected-Mode-Programme bereits als 32-Bit-Programme ausgeführt.
Bis Windows 3.0 wurde der Real Mode des IBM PC und PC XT (8086/88) unterstützt, bis Windows 3.1 der Standard Mode (d. h. der 16-Bit-Protected Mode) des PC/AT (80286). Windows für Workgroups 3.11 lief allerdings nur noch im Enhanced Mode (d. h. 32-Bit-Protected-Mode), der mindestens einen 80386-Prozessor erfordert (der Compaq Deskpro 386 wurde Ende 1986 verfügbar).[12] Ebenso setzte Windows 95 mindestens einen 32-Bit-x86-Prozessor ab i386 voraus.
Technische Daten
- Max. adressierbarer Speicher: 16 MiB
- Verarbeitungsbreite: 16 Bit
- Datenbus: 16 Bit
- Adressbus: 24 Bit
- L1-Cache: nicht vorhanden
- L2-Cache: nicht vorhanden
- Bauform: PGA, PLCC oder LCC mit 68 Pins
- Betriebsspannung (VCore): 5 V
- Erscheinungsdatum: 1982
- Fertigungstechnik: 1,5 µm
- Die-Größe: 47 mm² bei 134.000 Transistoren
- max. Taktfrequenzen:
Peripheriebausteine

- Intel 82284: Taktgeber
- Intel 82288: Bus-Controller
- Intel 82289: Bus-Arbiter
Siehe auch
- Am286, Kopie von AMD, produziert ab 1986.
- U80601, DDR-Nachbau aus dem Kombinat Mikroelektronik Erfurt, produziert ab 1989.
Literatur
- C. Vieillefond: Programmierung des 80286. SYBEX Verlag, 1987, ISBN 3-88745-668-8.
Weblinks
- Intel 80286 – Informationen und Fotos der verschiedenen Versionen bei cpu-collection.de (englisch)
- Aus Anlaß 20 Jahre PC-Programmierung: Wie kriege ich Hauptspeicher?