Intel 80386

Intel 80386
<<   Intel 80386   >>
KL Intel i386DX.jpg
Intel i386DX, 16 MHz
Produktion: 1985 bis 2007
Produzenten:
Prozessortakt: 12 MHz bis 40 MHz
L1-Cachegröße: 0 KiB
Fertigung: 1500 nm bis 1000 nm
Befehlssatz: x86
Sockel:
  • 132-pin PGA
  • 132-pin PQFP
  • SX variante: 88-pin PGA
  • SX variante: 100-pin PQFP
Diese Variante des weitverbreiteten AMD Am386DX-40 wurde direkt auf die Hauptplatine gelötet

Der 80386 (frühe Bezeichnung iAPX 386) ist eine x86-CPU, die von Intel unter dem Markennamen i386 als Nachfolger des 80286 entwickelt und von 1985 bis September 2007 produziert wurde. Der 386er – wie der 80386 häufig auch genannt wird (gesprochen Dreisechsundachtziger)– wurde später von AMD kopiert und als Am386 verkauft, während Chips & Technologies eine kompatible eigene Version entwickelte. IBM lizenzierte den i386SX und entwickelte daraus den verbesserten IBM 386SLC.

Inhaltsverzeichnis

Geschichtliche Bedeutung

Mit dem 80386 vollzog Intel den Wechsel zur 32-Bit-Architektur (IA-32, oft auch i386 genannt), deren Funktionen auch in allen Nachfolgemodellen bis zum Core i7 (Stand 2011) immer noch vorhanden sind und die gleichzeitig anderen Herstellern als Vorlage für eigene Prozessoren diente. Die Register dieser Prozessorfamilie sowie der Adressraum der Architektur sind 32 Bit breit. Auch heute noch wird der 80386 für Steuerungsaufgaben (z. B. Telefonvermittlungsanlagen) und in der Raumfahrt eingesetzt; er fand sich auch in den Steuercomputern des Space Shuttles.

Architektur

Architektur des i80386DX

Varianten

Es gab insgesamt vier Varianten dieser CPU, welche sich im Datenbus und im Einsatzzweck unterschieden. Die Produktion des i386EX als Embedded-Version des i386SX wurde erst im Jahr 2007 eingestellt.

Intel386SX

Eine Variante des 80386 ist der 80386SX. Er besitzt nur einen 16 Bit breiten externen Datenbus und einen 24 Bit breiten Adressbus, behält intern aber die 32-Bit-Mikroarchitektur des 80386 bei. Der 24 Bit breite Adressbus beschränkt den adressierbaren physischen Speicher des 386SX zwar auf 16 MiB; angesichts eines zu Beginn der 1990er Jahre im Heimbereich üblichen Speicherausbaus von zumeist maximal 4 MiB war das aber keine gravierende Einschränkung, zumal viele 386SX-Mainboards einen Speicherausbau von 16 MiB auch nicht erlaubten. Aus Sicht des Programmierers besteht praktisch kein Unterschied zwischen dem 386SX und dem „echten“ 80386, der zur Unterscheidung von seinem kleinen Bruder nach dessen Einführung in 80386DX umbenannt wurde. Aufgrund der verringerten Datenbusbreite und niedrigerer verfügbarer Taktfrequenzen erreicht der 386SX gegenüber dem 386DX nur eine deutlich geringere Ausführungsgeschwindigkeit.

Intel386SL

Der Intel386SL ist eine Version des i386SX für tragbare Computer. Mit ihm wurde der System Management Mode (SMM) eingeführt, der zu Stromsparzwecken die CPU in Tiefschlaf versetzen kann.

RapidCad

Der RapidCad war ein auf 486-Technik basierendes Upgrade für 386-Systeme. Der RapidCad bestand aus zwei Chips, dem RapidCad1 und dem RapidCad2, wobei ersterer die 80386-CPU und letzterer den 80387-Coprozessor ersetzte. Der RapidCad2 enthielt aber keineswegs die Elektronik des Coprozessors, sondern lediglich eine Logik zur Erzeugung externer Bussignale. Der eigentliche Coprozessor befand sich schon im RapidCad1 integriert.

Gegenüber einem i386-System mit i387-Coprozessor brachte der RapidCad – je nach Anwendung – eine moderate Leistungssteigerung von ungefähr 30 Prozent; an ein System mit 80486-Prozessor reichte die Leistung aber nicht heran. Neben dem hohen Preis sorgte unter anderem dieser Umstand dafür, dass der RapidCad keine weite Verbreitung erfuhr, weshalb die beiden Chips heute begehrte Sammlerobjekte sind.

Segmente

Der 80386 kann direkt bis zu 4 GiB Hauptspeicher adressieren (386SX: 16 MiB). Der logische Adressraum beträgt 246 Byte = 64 TiB, welcher aber nur theoretisch vollständig nutzbar ist. Der Prozessor verwendet dabei im Protected Mode die segmentierte Speicheradressierung mit 16 bit breiten Selektoren und – je nach Betriebsmodus – 16 oder 32 Bit breite Offsets.

Die Segmentierungseinheit unterstützt vier Privilegstufen, die für folgende Aufgaben vorgesehen sind:

  • Ring 0 – für den Betriebssystemkern und Gerätetreiber
  • Ring 1 – für Treiber, die keinen unbeschränkten Hardwarezugriff benötigen (z. B. Dateisystemtreiber), nur selten genutzt
  • Ring 2 – für Systemdienste
  • Ring 3 – für die Ausführung von normalen Anwendungen

Nur wenige PC-Betriebssysteme haben diese vier Privilegienstufen genutzt. Meist werden (auch aufgrund der Kompatibilität zu anderen Prozessorarchitekturen, die nur zwei Privilegienstufen kennen) nur Ring 0 (für Betriebssystemkern) und Ring 3 (für allen übrigen Code) verwendet.

Bezüglich Sicherheit ist der Protected Mode dem flachen Adressiermodell, das sich nunmehr durchgesetzt hat, deutlich überlegen. Dennoch erlauben nahezu alle neueren PC-Betriebssysteme für Anwendungsprogramme ausschließlich das „Flat Memory“-Modell. Dieses vereinfacht die Programmierung und ist auf andere Prozessorarchitekturen übertragbar, die keine Segmentierungseinheit besitzen. Betriebssystemintern wird die Segmentierungseinheit dagegen aus Gründen der Sicherheit und Geschwindigkeit oft verwendet.

Hardwareseitig ist auch die parallele Nutzung von Segmentierung und Paging möglich. Das Paging ist dabei jedoch der Segmentierung vorgeschaltet. Es wurden keine Funktionen dokumentiert, die es erlauben würden, die Segmentierung dem Paging vorzuschalten.

Bei Verwendung eines sogenannten „Flat Memory“-Modells, bei dem Daten-, Code- und Stacksegment in einen linearen 4-GiB-Adressraum der Anwendungsprogramme eingeblendet werden, ist der Speicher innerhalb der Anwendungsprogramme über einfache 32-Bit-Offsets adressierbar. Damit wird der Speicherschutz, den die Segmentierungseinheit bietet, weitgehend ausgehebelt. Im von AMD eingeführten x64-Mode der neueren 64-Bit-Prozessoren wurden zudem die Befehle zur Nutzung der Segmentierungseinheit so umdefiniert, dass ihre effektive Verwendung nicht mehr möglich ist.

Die Paging-Einheit ermöglicht nur einen relativ einfachen, seitenbasierten Speicherschutz. Inzwischen wird versucht, den mit dem „Flat Memory“-Modell verbundenen Sicherheitslücken durch neue Hardwareerweiterungen wie NX-Bit oder SMEP beizukommen.

Paging

Zur Verwaltung dient nun eine zusätzliche Ebene, welche 4 KiB große Speicherseiten (engl. memory pages) verwendet. Die Basisadressen aller Seiten werden in Seitentabellen (engl. page tables) verzeichnet. Diese werden in Seitenverzeichnissen (engl. page directories) zu 1024 Einträgen gespeichert. Ein Adressraum der Größe 4 GiB wird folglich in 1024×1024 Seiten zu 4 KiB aufgeteilt. So kann die lineare 32-bit Adresse in drei Bestandteile aufgeteilt werden:

  • 12 bit – Offset in der Speicherseite
  • 10 bit – Index auf Seitentabelle
  • 10 bit – Index auf Seitenverzeichnis

Auf der Seitenebene gibt es zwei Privilegstufen:

  • Supervisor-Mode – für Betriebssystem und Treiber (Ring 0, 1 und 2)
  • User-Mode – für Anwendungsprogramme (Ring 3)

In Klammern ist die Entsprechung der Segmentprivilegien angegeben.

Register

Er hat acht allgemeine 32-Bit-Register, die zwar teilweise spezielle Verwendungszwecke im Zusammenhang mit verschiedenen Befehlen haben, aber ansonsten frei zum Rechnen und allgemeinen Datenaustausch verwendet werden können:

Die „General-Purpose“-Register des 80386
Abk. Englischer Name Spezielle Verwendung
EAX Accumulator spezielle Bedeutung bei Arithmetikbefehlen
EBX Base Register keine (Das 16-Bit-Register BX konnte im 16-Bit-Modus zur Index-Adressierung benutzt werden; im 32-Bit-Modus ist dies mit allen „General-Purpose“-Registern möglich.)
ECX Count Register spezielle Bedeutung bei Schleifen
EDX Data Register spezielle Bedeutung bei Multiplikation, Division und Portadressen für die Assembler-Befehle IN und OUT
EBP Base Pointer Zeiger auf temporäre Speicherstellen im Stack (z. B. Stackframe für lokale Variablen etc.)
ESP Stack Pointer Zeiger auf die aktuelle Position im Stacksegment; nur eingeschränkt allgemein verwendbar, da dieses Register angibt, wo die Rücksprungadresse von Unterprogrammen und Interrupts gespeichert wird.
ESI Source Index Quelle für String-Operationen
EDI Destination Index Ziel für String-Operationen

Daneben gibt es auch noch weitere Register zur Steuerung des Verhaltens der CPU:

Die Spezialregister des 80386
Abk. Englischer Name Verwendung
EIP Instruction Pointer Zeigt auf den nächsten auszuführenden Befehl. Wird durch Sprunganweisungen verändert.
EFLAGS Flag Register Die einzelnen Bits besitzen unterschiedliche Bedeutungen und zeigen z. B. Überläufe bei arithmetischen Operationen u. ä. an.
CS Code Segment Segmentselektor des Codesegmentes (in dem der aktuell auszuführende Programmcode steht)
DS Data Segment Segmentselektor des Datensegmentes (in dem die globalen Daten des Programms stehen)
SS Stack Segment Segmentselektor des Stacksegmentes (in dem der Stack für die lokalen Daten und Rücksprungadressen stehen)
ES Extra Segment Segmentselektor eines weiteren Datensegmentes (wird z. B. für String-Kopierbefehle verwendet)
FS und GS Extra Segment 2 und 3 Segmentselektoren zweier weiterer Datensegmente
GDTR Global Descriptor Table Register Speichert (lineare) Adresse und Größe der GDT
LDTR Local Descriptor Table Register Segmentselektor für das Segment, das die gerade aktive LDT enthält

(Es können sich in der GDT zeitgleich mehrere LDT Einträge befinden)

IDTR Interrupt Descriptor Table Register Speichert die (lineare) Adresse und Größe der IDT
CR0 – CR3 Control Register 0 … 3 Steuern u. A. das Paging, den Koprozessor und den Protected Mode

(Untere 16 Bit des CR0 sind das vom 80286 übernommene MSW)

TR6 – TR7 Test Register 6 … 7 Zum Überprüfen des Translation Lookaside Buffer (TLB).
DR0 – DR7 Debug Register 0 … 7 Dienen zum Festlegen von vier Breakpoints auf Prozessorebene (DR0..DR3) u. a.
TR Task Register Segmentselektor des aktiven Task Status Segments (TSS)

(Es können sich zeitgleich mehrere TR in der GDT und LDT befinden)

Alle General-Purpose-Register, sowie EIP und EFLAGS, sind auf 32 Bit erweiterte (das E kommt vom englischen extended) Versionen entsprechender 16-Bit-Register der Vorgänger 8086 bis 80286.

Prozessor-Bugs

POPA/POPAD-Bug

Dieser Fehler tritt bei allen 386ern auf. Dieser Fehler tritt auf, wenn unmittelbar nach dem POPA oder POPAD Befehl ein Befehl folgt, bei dem eine Speicheraddresse aus einem Basis- und Indexregister berechnet wird. Folge des Fehlers ist, dass der Wert im EAX Register undefiniert ist. Wird als Basis- oder Indexregister bei dem Speicherzugriff EAX benutzt, dann bleibt der Prozessor hängen (nur POPA). Der Linux-Kernel führt beim Booten einen Test durch und gibt bei vorhandenem Fehler die Meldung  Checking for popad bug... Buggy.  aus, bootet anschließend aber weiter.

Überprüfung der Grenze des TSS

Der Prozessor überprüft, ob die eingetragene Größe des TSS groß genug ist. Die Ausnahme 10 wird immer dann ausgelöst, wenn das TSS kleiner als 101 Byte ist, sollte aber eigentlich schon bei kleiner als 103 Byte auslösen.

Modelldaten

i386DX

Intel i386DX, 25 MHz
  • L1-Cache: nicht vorhanden
  • L2-Cache: vom Mainboard abhängig
  • Bauform: PGA oder PQFP mit 132 Pins
  • Betriebsspannung (VCore): 5 V
  • Erscheinungsdatum: 17. Oktober 1985
  • Fertigungstechnik: Erste Typen CHMOS III mit 1,5 µm, später CHMOS IV mit 1,0 µm
  • Die-Größe: 104 mm² (ca. 10 mm x 10 mm, CHMOS III) und 39 mm² (6 mm x 6,5 mm, CHMOS IV)
  • Transistoranzahl: 275.000
  • Taktraten:
    • 12 MHz (erste Modelle des i386)
    • 16 MHz
    • 20 MHz
    • 25 MHz
    • 33 MHz
i386SX 16 MHz

i386SX

  • L1-Cache: nicht vorhanden
  • L2-Cache: nicht vorhanden
  • Bauform: PQFP mit 100 Pins, PGA mit 88 Pins
  • Betriebsspannung (VCore): 5 V
  • Erscheinungsdatum: 16. Juni 1988
  • Fertigungstechnik: CHMOS IV, 1,0 µm
  • Die-Größe: 104 mm² bei 275.000 Transistoren
  • Taktraten:
    • 16 MHz
    • 20 MHz
    • 25 MHz
    • 33 MHz

i386SL

i386SL 20 MHz

Version des i386SX für tragbare Computer. Mit ihm wurde der System Management Mode (SMM) eingeführt, der zu Stromsparzwecken die CPU in Tiefschlaf versetzen kann.

  • L1-Cache: nicht vorhanden
  • L2-Cache: 16 bis 64 KiB möglich
  • Bauform: PGA mit ? Pins, PQFP mit 132 Pins
  • Betriebsspannung (VCore): 5 V
  • Erscheinungsdatum: 15. Oktober 1990
  • Fertigungstechnik: 1,0 µm
  • Die-Größe: ? mm² bei 855.000 Transistoren
  • Taktraten:
    • 20 MHz
    • 25 MHz

RapidCAD-1

Intel RapidCAD-1
  • Anzahl Transistoren: 800.000
  • Herstellungsprozess: 0,8 µm
  • Cache: on-board, kein on-die-Cache
  • Architektur: 80486-Technik mit 80386-Befehlssatz und -Pinout
  • Coprozessor: Integriert
  • Gehäuse: 132 Pin, PGA
  • Leistungsaufnahme: 3,5 Watt
  • Taktraten: 25 und 33 MHz


RapidCAD-2

Intel RapidCAD-2

Der RapidCAD-2 ist ein PLA zur Erzeugung des FERR-Signals.

  • Eingeführt: 1992
  • Anzahl Transistoren: 275.000
  • Herstellungsprozess: 0,8 µm
  • Gehäuse: 68 Pin, PGA (für 387er-Sockel)
  • Taktraten: 25 und 33 MHz


i376

Ein Intel i376

Der i376 ist ein Embedded-Prozessor auf Basis des i386SX und kann als Vorgänger des i386EX angesehen werden. Er unterstützt keinen Real Mode und kein Paging.

  • Datenbus: 16 Bit
  • Addressbus: 24 bit
  • L1-Cache: nicht vorhanden
  • L2-Cache: nicht vorhanden
  • Bauform: PQFP mit 100 Pins und PGA-88
  • Betriebsspannung (VCore): 5 V
  • Erscheinungsdatum: 16. Januar 1989
  • Einstellung der Produktion: 15. Juni 2001
  • Fertigungstechnik: CHMOS IV, 1,0 µm
  • Die-Größe: ?
  • unterstützte FPU: 80387SX
  • Besonderheiten: bootet im Protected Mode (unterstützt keinen Real-Mode)
  • Taktraten:
    • 16 MHz
    • 20 MHz

i386EX, i386EXTB und i386EXTC

i386EXTC

Embedded-Version des i386SX mit System- und Powermanagement.

Funktionen
  • zwei 82C59A Interrupt-Controller
  • Timer, Counter (drei Kanäle)
  • asynchrone SIO (zwei Kanäle)
  • synchrone SIO (ein Kanal)
  • Watchdog-Timer (Hardware/Software)
  • PIO
  • Datenbus: 16 Bit
  • Adressbus: 26 Bit
  • L1-Cache: nicht vorhanden
  • L2-Cache: nicht vorhanden
  • externe FPU: i387SX oder i387SL
  • Bauform: PQFP mit 132 Pins, SQFP mit 144 Pins und PGA mit 168 Pins
  • Betriebsspannung (VCore): 2,7 V bis 5,5 V
  • Erscheinungsdatum: 1994
  • Fertigungstechnik: 0,8 µm
  • Die-Größe: ? mm² bei ? Transistoren
  • Taktraten:
    • 16 MHz – i386EX, bei 2,7 V bis 3,3 V
    • 20 MHz – i386EX, bei 3,0 V bis 3,6 V
    • 25 MHz – i386EX, bei 4,5 V bis 5,5 V
    • 20 MHz – i386EXTB, bei 2,7 V bis 3,6 V
    • 25 MHz – i386EXTB, bei 3,0 V bis 3,6 V
    • 25 MHz – i386EXTC, bei 4,5 V bis 5,5 V
    • 33 MHz – i386EXTC, bei 4,5 V bis 5,5 V

i386CXSA und i386SXSA (auch als i386SXTA)

i386CXSA

Embedded CPU mit transparentem Powermanagement-Modus, integrierter MMU und TTL-kompatible Eingänge (nur SXSA-Version).

  • Datenbus: 16 Bit
  • Adressbus: 26 Bit (24 Bit bei i386SXSA)
  • L1-Cache: nicht vorhanden
  • L2-Cache: nicht vorhanden
  • externe FPU: i387SX oder i387SL
  • Bauform: PQFP mit 100 Pins
  • Betriebsspannung (VCore):
    • 4,5 V bis 5,5 V (25 und 33 MHz)
    • 4,75 V bis 5,25 V (40 MHz)
  • Erscheinungsdatum:
  • Fertigungstechnik: CHMOS V, 0,8 µm
  • Die-Größe: ? mm² bei ? Transistoren
  • Taktraten:
    • 25 MHz
    • 33 MHz
    • 40 MHz

i386CXSB

Embedded CPU mit transparentem Powermanagement-Modus und integrierter MMU.

  • Datenbus: 16 Bit
  • Adressbus: 26 Bit
  • L1-Cache: nicht vorhanden
  • L2-Cache: nicht vorhanden
  • externe FPU: i387SX oder i387SL
  • Bauform: PQFP mit 100 Pins
  • Betriebsspannung (VCore):
    • 3,0 V bei 16 MHz
    • 3,3 V bei 25 MHz
  • Erscheinungsdatum:
  • Fertigungstechnik: CHMOS V, 0,8 µm
  • Die-Größe: ? mm² bei ? Transistoren
  • Taktraten:
    • 16 MHz
    • 25 MHz

Andere Hersteller

AMD
Chips & Technologies
IBM

Siehe auch

Weblinks

 Commons: Intel i386 – Sammlung von Bildern, Videos und Audiodateien

Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Intel 80386 — <<   Intel 80386   >> Центральный процессор Микропроцессор Intel 80386 Производство …   Википедия

  • Intel 80386 — Intel 80386. L’Intel 80386 est un microprocesseur 32 bits CISC fabriqué par Intel. Il fut utilisé dans de nombreux ordinateurs personnels de 1986 à 1994. Lors de sa création le processeur était nommé « P3 » la troisième généra …   Wikipédia en Français

  • Intel 80386 — Infobox Computer Hardware Cpu name = 386 caption = Intel 80386 DX, 33 MHz, foreground manuf1 = Intel manuf2 = AMD manuf3 = IBM produced start = 1986 produced end = September 2007 slowest = 12 | slow unit = MHz fastest = 40 | fast unit = MHz size… …   Wikipedia

  • Intel 80386 — 386 Microprocesador En primer plano, un Intel 80386 DX a 33 MHz Producción 1986   Septiembre d …   Wikipedia Español

  • Intel 80386 — El Intel 80386 (i386, 386) es un microprocesador CISC con arquitectura x86. Durante su diseño se le llamó P3 , debido a que era el prototipo de la tercera generación x86. El i386 fue empleado como la unidad central de proceso de muchos… …   Enciclopedia Universal

  • Intel 80386 —    Intel s 32 bit microprocessor chip that is available in 16MHz,    20MHz, 25MHz, and 33MHz clock rate versions; used in IBM PC AT,    EISA, and Micro Channel compatible PCs …   IT glossary of terms, acronyms and abbreviations

  • 80386 — Intel 80386 Intel 80386. L’Intel 80386 est un microprocesseur 32 bits CISC fabriqué par Intel. Il fut utilisé dans de nombreux ordinateurs personnels de 1986 à 1994. L …   Wikipédia en Français

  • Intel 8086 y 8088 — Intel 8088 Microprocesador Microprocesador Intel 8088 Producción 1979   1982 Fabricante(s) …   Wikipedia Español

  • Intel 80486DX — Intel i486 DX 50MHz L Intel 80486DX est un microprocesseur CISC 32 bits fabriqué par Intel de la famille des microprocesseurs x86 C est le successeur des microprocesseurs Intel 80386. Les différences entre les 80386 et le 80486DX sont :… …   Wikipédia en Français

  • Intel Corporation — Unternehmensform Corporation ISIN …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”