IA-32

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Die Artikel X86-Prozessor und IA-32 überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zusammenzuführen (→ Anleitung). Beteilige dich dazu an der betreffenden Redundanzdiskussion. Bitte entferne diesen Baustein erst nach vollständiger Abarbeitung der Redundanz und vergiss nicht, den betreffenden Eintrag auf der Redundanzdiskussionsseite mit {{Erledigt|1=~~~~}} zu markieren. phobie m d 06:55, 3. Aug. 2009 (CEST)

Als IA-32 („Intel Architecture 32-Bit“) bezeichnet Intel die 32-Bit-x86-Architektur. x86 ist die Bezeichnung für die Architektur und den Befehlssatz der Intel-80386-kompatiblen Mikroprozessoren. Oft wird auch die Bezeichnung i386 verwendet. Der Befehlssatz ist auch in den nachfolgenden Intel-CPUs implementiert (486, Pentium, Celeron, Xeon, Core) mit Ausnahme des Itanium-Prozessors, mit dem die neuartige IA-64-Architektur eingeführt wurde. Der 80386-Befehlssatz wurde durch viele Hersteller implementiert. Auch die Prozessoren der AMD64-Architektur implementieren diesen Befehlssatz. x86 ist heute (2007) die weltweit am weitesten verbreitete Prozessorarchitektur für Personal Computer.

Architekturmerkmale[Bearbeiten]

Die IA-32-Architektur ist eine Weiterentwicklung der 16-Bit-Architekturen von Intels 8086- und 80286-Prozessoren. Alle Register, einschließlich der Adressregister, wurden in dieser Architektur auf 32 Bits erweitert, die Anzahl der Register blieb gleich. Die 32-Bit Register wurden als Erweiterung der 16-Bit Register der 80286 Architektur realisiert um Abwärtskompatibilität zu erzielen. Die Mnemonic der erweiterten Register wurden mit einem vorangestellten E, für extended (deutsch: erweitert), gekennzeichnet (auf beispielsweise EAX (32-Bit Register) von zuvor AX (16-Bit Register)). Unter der Bezeichnungen für die 16-Bit Register der 80286 Architektur kann auf die unteren 16-Bit der 32-Bit Register weiterhin zugegriffen werden (beispielsweise mit AX Zugriff auf die unteren 16-Bit des 32-Bit EAX Register).

Der Adressbus ist 32 Bits breit und demzufolge ist die Adressierbarkeit auf 4 GB (physikalischer Adressraum) begrenzt. Ausnahmen sind der 80386SX, welcher nur einen 24-Bit-Adressbus besaß, sowie der Pentium Pro, welcher mittels PAE eine Adresserweiterung auf 36 Bits besitzt.

Betriebsarten[Bearbeiten]

Neben dem Real Mode, in dem der untere 1 MB des Arbeitsspeichers ohne Beschränkung über Offset und Segment angesprochen werden kann, kennt die IA-32-Architektur zwei weitere Betriebsarten:

  • Protected Mode, der bis zu 4 GB Speicher durchgängig (linear) adressieren kann und einen hardwareseitigen Speicherschutz garantiert (über die Virtuelle Speicherverwaltung der MMU), was Multitasking-/Multiuser-Betriebssysteme mit präemptivem Multitasking ermöglicht.
  • System Management Mode (SMM), welcher für die Leistungsreduktion und Hersteller-spezifische Eigenschaften eingesetzt wird. Der SMM läuft in einem separaten RAM ab, sodass laufende Prozesse und Betriebssysteme nicht beeinflusst werden.


Als Option des Protected Mode existiert außerdem der Virtual 8086 Mode, der im Protected Mode einen oder mehrere Real-Mode-Programme ausführen kann – dies wird zur Ausführung von MS-DOS-kompatiblen Programmen unter modernen Betriebssystemen benötigt und war wichtig für eine schonende Migration von DOS zu moderneren Betriebssystemen. Heute spielt der Virtual 8086 Mode keine sehr große Rolle mehr, da MS-DOS-kompatible Programme nur noch relativ wenig genutzt werden.

Protected Mode: Virtuelle Speicherverwaltung und Speicherschutz[Bearbeiten]

Virtuelle Speicherverwaltung[Bearbeiten]

Die neue Virtuelle Speicherverwaltung ist primär für den Multitasking-Betrieb ausgelegt (Protected Mode). Mittels Memory Management Unit (MMU) können mehrere Programme im Speicher konfliktfrei quasi-gleichzeitig ausgeführt werden. Hierzu wird jedes Programm in einem (virtuellen) Speicherraum ausgeführt in dem es alleine existiert und damit nicht mit anderen Programmen in Speicherzugriffskonflikte kommen kann, so dass Speicherschutz erzielt wird (z.B. "Programm A überschreibt irrtümlich bei Programm B eine Variable im Speicher" kann nicht mehr auftreten). Dies erreicht die MMU über eine Tabelle (TLB) in der für jede virtuelle Adresse aller Programme die echte physikalische Adresse eines Speicherblocks vermerkt ist. Bei jedem Zugriff (Speicher anfordernd, schreibend oder lesend) wird, transparent für Programme und Programmierer, auf eine eindeutige physikalische Adresse umgelenkt. Ein weiterer positiver Effekt ist, dass eine Speicherfragmentierung des physikalischen Speichers nicht mehr auftreten kann. Durch die Adressumsetzung kann die MMU fast beliebig zerstückelten physikalischen Speicher als durchgängig zugreifbaren Block virtuellen Speichers dem Programm präsentieren. Dies ist ein effektiver Mechanismus, so lange die Größe des physikalischen Speichers deutlich kleiner ist als die des virtuellen Adressraums (4 GByte). Durch die kontinuierlich fallenden RAM-Speicherpreise ist dies inzwischen nicht mehr gegeben; der virtuelle Speicherraum kann die Fragmentierung des physikalischen Speichers nicht mehr immer kaschieren, da er nun selbst zu stark fragmentiert sein kann.

Schutzfunktionen durch die Virtuelle Speicherverwaltung[Bearbeiten]

Die MMU enthält vier zentrale Systemregister GDTR (Global Descriptor Table Register), IDTR (Interrupt Descriptor Table Register), LDTR (Local Descriptor Table Register) und TR (Task Register). Damit werden die Schutzmechanismen realisiert.

Die IA-32 Architektur enthält für den Multitasking/Multiuser-Betrieb die folgenden fünf Schutzfunktionen:

  1. Typ-Check
  2. Limit-Check
  3. Zugriff auf Daten
  4. Kontroll-Transfer
  5. Instruction-Check

Diese Schutzfunktionen werden mit verschiedenen Hardware-Mechanismen realisiert.

Weitere Funktionen[Bearbeiten]

In den nachfolgenden CPU-Generationen wurden weitere Funktionen hinzugefügt:

  • Die Modelle des i486DX haben einen mathematischen Koprozessor bereits integriert, zusätzlich wurde ein Cache auf den Chip integriert (die Budget-Version i486 SX wurde mit deaktiviertem Koprozessor gefertigt). Außerdem wurde die Ausführungseinheit nach dem Fließbandprinzip aufgebaut, genannt Prozessor-Pipeline, was den Befehlsdurchsatz deutlich erhöht.
  • Mit dem Pentium wurde eine zweite Ausführungseinheit der Architektur hinzugefügt. Diese nun parallelen Ausführungseinheiten, genannt Pipelines U und V, ermöglichen superskalare Programmausführung über Out-of-order execution des Prozessors.
  • Beim Pentium MMX wurden Befehle hinzugefügt, die mehrere ganzzahlige Daten gleichzeitig bearbeiten (SIMD) – dies ist vor allem für Multimedia-Daten sinnvoll. MMX steht für Matrix Math Extensions”, besonders vom Marketing aber auch häufig Multi Media Extensions” tituliert.
  • Mit dem Pentium III wurden die SIMD-Befehle erweitert, um auch Gleitkommazahlen bearbeiten zu können (Streaming SIMD Extensions/SSE).
  • Beginnend mit den Prescott-Modellen der Xeon-/Pentium-4-Reihe erhalten die Prozessoren eine Erweiterung um einen 64-Bit-Modus (Intel 64, früher auch EM64T genannt), der weitgehend dem AMD64-Modus der Opteron- und Athlon-64-CPUs von Mitbewerber AMD entspricht.

Der erstaunliche kommerzielle Erfolg der IA-32-Architektur beruht auf der Philosophie der Aufwärtskompatibilität, neben einem guten Marketing und Zusammenarbeit mit Microsoft, welche dem Anwender erlaubte, bisherige Programmentwicklungen weiter nutzen zu können.

Siehe auch[Bearbeiten]

Weblinks[Bearbeiten]