x86 bezeichnet den Befehlssatz einer von der Firma Intel entwickelten Mikroprozessor-Architektur.
Die x86-Architektur ist nach den Prozessoren der 8086/8088 Reihe benannt, mit der sie 1978 eingeführt wurde. Die ersten Nachfolgeprozessoren wurden später mit 80186, 80286 etc. benannt. Da sich Ziffernkombinationen nicht markenrechtlich schützen lassen, gingen Intel und die meisten Mitbewerber nach Einführung des Intel 80486 dazu über, Wortmarken wie Pentium oder Celeron zu verwenden, aber das alte Nummernschema blieb als Name der ganzen Familie erhalten. Intel selbst nennt die Architektur heute IA-32 als Abkürzung für Intel Architecture, 32-bit.
Außer Intel haben auch andere Hersteller über die Jahre x86-kompatible CPUs produziert, darunter Cyrix (heute VIA Technologies), NEC, UMC, Harris, TI, IBM, IDT und Transmeta. Der nach Intel größte Hersteller x86-kompatibler Prozessoren war und ist aber die Firma AMD, die neben Intel heute zu einer treibenden Kraft bei der Weiterentwicklung des x86-Standards geworden ist.
Intel entwickelte den 8086 1978 in der Zeit der zu Ende gehenden 8-Bit-Ära. Mit dem 80386 führte Intel dann bereits 1985 die erste x86-CPU mit einer 32-Bit-Architektur ein. Heute ist diese Architektur unter dem Namen iA-32 (vom engl. Intel Architecture with 32 Bit), seltener auch unter der Bezeichnung i386-Architektur bekannt; sie ist sozusagen die Erweiterung der Befehlssätze von 8086 und 80286 auf 32 Bit, schließt deren Befehlssätze aber vollständig mit ein. Die 32-Bit-Ära war der bisher längste und lukrativste Abschnitt der x86-Geschichte, wobei sich iA-32 – maßgeblich unter Intels Federführung – permanent weiterentwickelte. Erst 2003 brach für x86 die 64-Bit-Ära an, diesmal aber auf Initiative von AMD. Der 64-bittige x86-Standard heißt AMD64 und wurde unter dem Namen EM64T auch von Intel übernommen.
Die von Intel in der Itanium-Produktlinie verwendete IA-64-Architektur hat übrigens mit IA-32 nichts zu tun. Sie ist eine Neuentwicklung, die außer einer x86-Emulation keine Spuren der x86-Technik enthält.
Heutige x86-Prozessoren sind hybride CISC/RISC-Prozessoren, denn sie übersetzen den x86-Befehlssatz zunächst in RISC-Mikro-Instruktionen konstanter Länge, auf die moderne mikro-architektonische Optimierungen angewendet werden können. Die Übergabe erfolgt zunächst an sogenannte Reservierungsstationen, das heißt an kleine Puffer, die den verschiedenen Rechenwerken vorgeschaltet sind. Der erste hybride x86-Prozessor war der Pentium Pro.
Auf jedes Register konnte mittels zwei separaten Bytes zugegriffen werden (das hohe Byte in BX unter dem Namen BH, das niederwertige Byte als BL). Von den zwei Zeigerregistern zeigt SP (StackPointer) auf das oberste Element des Stacks, und BP (BasePointer) kann auf einen anderen Platz im Stack oder Speicher zeigen. Die beiden Index-Register SI (SourceIndex) und DI (DestinationIndex) können für Blockoperationen oder zusammen mit SP oder BP als Index in einem Array benutzt werden. Zusätzlich gibt es die vier Segmentregister CS (CodeSegment), DS (DataSegment), SS (StackSegment) und ES (ExtraSegment) mit denen die Basisadresse für ein 64 kByte großes Speichersegment festgelegt wird. Außerdem gibt es das Flag-Register, das Flags wie carry, overflow, zero usw. enthalten kann, und den Instruction Pointer (IP), der auf die gegenwärtige Instruktion zeigt.
Im Real Mode ist der Speicherzugriff "segmentiert". Dies geschieht, indem die Segmentadresse um 4 Bit nach links geschoben wird und ein Offset addiert wird, so dass eine 20-Bit-Adresse entsteht. Der gesamte Adressraum im Real Mode ist also 220 Bit (1 Megabyte), was 1978 sehr viel war. Es gibt zwei Adressierungs-Modi: near und far (englisch für nah und fern). Im Far Mode werden sowohl das Segment als auch der Offset angegeben. Im Near Mode wird nur der Offset angegeben, und das Segment wird einem Register entnommen. Für Daten ist dies DS, für Code CS und für den Stack SS. Wenn DS zum Beispiel A000h und SI 5677h ist, zeigt DS:SI auf die absolute Adresse DS × 16 + SI = A5677h.
In diesem Schema können unterschiedliche Segment/Offset-Paare auf dieselbe absolute Adresse zeigen. Wenn DS A111h und SI 4567h ist, zeigt DS:SI ebenfalls auf die obige Adresse A5677h. Das Schema sollte eine Abwärts-Kompatibilität mit der Intel 8085 bewahren und hat einer ganzen Generation von Programmierern Kopfschmerzen bereitet.
Zusätzlich hatte die i8086 64K von 8-Bit-I/O-Adressraum (alternativ auch 32K mit 16 Bit), und einen hardwareunterstützten Stack von ebenfalls 64K. Nur Wörter (2 Byte) können auf dem Stack abgelegt werden. Der Stack wächst zu niedrigeren Adressen hin, und SS:SP zeigt auf das zuletzt auf den Stack gelegte Wort (die niedrigste Adresse). Es gibt 256 Interrupts, die sowohl von Hardware als auch Software ausgelöst werden können. Die Interrupts können kaskadieren und benutzen den Stack, um die Rücksprungadresse zu speichern.
Die Intel 80386 brachte den wahrscheinlich größten Sprung für die x86-Architektur. Mit Ausnahme des Chips Intel 80386SX, der nur 24-Bit-Adressierung unterstützte und einen 16-Bit-Datenbus hatte, waren alle 386er vollständig 32-Bit - Register, Instruktionen, E/A-Raum und Speicher. Bis zu 4 Gigabyte Speicher konnten angesprochen werden. Dazu wurde der Protected Mode zum 32-Bit-Enhanced Mode erweitert. Wie auf der 80286 wurden auch im Enhanced Mode die Segmentregister als Index in einer Segmenttabelle verwendet, die die Aufteilung des Speichers beschrieb. Allerdings konnten in jedem Segment 32-Bit-Offsets verwendet werden. Zusätzlich unterstützte der Enhanced Mode Paging, einen Mechanismus, durch den virtueller Speicher verwendet werden konnte. Es wurden keine neuen Mehrzweck-Register hinzugefügt. Allerdings wurden bis auf die Segmentregister alle Register auf 32 Bit verbreitert. Das erweiterte Register AX hieß fortan EAX, aus SI wurde ESI usw.
Die grundlegende Architektur des 386er-Prozessors (auch IA-32 genannt) wurde zur Basis aller weiteren Entwicklungen in der x86-Architektur. Bis heute funktionieren alle x86-kompatiblen CPUs nach dem Prinzip der i80386.
Der bis dato separate Mathe-Coprozessor 80387 wurde ab der nächsten CPU Intel 80486 direkt in den Prozessor integriert (Ausnahme: 486SX besitzt keinen Coprozessor). Mit dem Mathe-Co konnten Gleitkommaberechnungen durchgeführt werden, wie sie zum Beispiel in wissenschaftlichen und Grafikdesign-Anwendungen benötigt werden.
AMD beherrscht seit den Athlon 64 Prozessoren mit den Kernen Venice und San-Diego ebenfalls den Befehlssatz SSE3.
Intel wollte ursprünglich den Sprung auf 64 Bit nur mit einer zu x86 inkompatiblen Architektur vollführen, die man IA-64 nannte und heute hauptsächlich im Server-Markt platziert ist.
Hauptkonkurrent AMD wählte dagegen den Ansatz, die vorhandene x86-Architektur auf 64 Bit zu erweitern, und nannte das Produkt AMD64. Durch den Erfolg der AMD64-Prozessoren sah sich Intel genötigt, den AMD64-Befehlssatz auch in eigene Produkte zu integrieren. Bei Intel firmiert die Technologie unter dem Namen EM64T.
X86 | X86 | X86 | X86 | X86 architecture | X86 | X86 | X86 | X86 | X86 | Architettura x86 | 80x86 | X86 | X86-instructieset | X86-arkitektur | X86 | X86 | X86 | X86 | X86 | X86 | X86
This article is licensed under the GNU Free Documentation License.
It uses material from the
"X86-Prozessor".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world