Architektur
Mit dem Begriff „Architektur“ werden die wesentlichen Merkmale eines Prozessors beschrieben:
- die Prozessorbreite, die angibt, wie viele Bits an Daten ein Prozessor gleichzeitig pro Taktzyklus verarbeiten kann. Ein 64-Bit-Prozessor kann beispielsweise 64 Bits parallel verarbeiten. In der Fachliteratur wird sie häufig der Befehlssatzarchitektur zugeordnet.
- die Befehlssatzarchitektur, die das Programmiermodell einer CPU definiert. Dazu gehört z.B. der Befehlssatz, der sozusagen den Wortschatz eines Prozessors darstellt.
- die Mikroarchitektur, die den internen, funktionalen Aufbau eines Prozessors festlegt.
Prozessorbreite
- in erster Linie die Breite bzw. Speicherkapazität der Datenregister
- die Anzahl an Bits bzw. die größte Binärzahl, die die arithmetisch-logische Einheit (ALU) pro Taktzyklus verarbeiten kann. Eine 16-Bit-ALU kann beispielsweise pro Taktzyklus zwei Zahlen entweder ohne Vorzeichenbit im Bereich von 0 bis 2^16 – 1 (entspricht der Dezimalzahl 65.535) oder mit Vorzeichenbit im Bereich von -2^15 bis 2^15 – 1 (entspricht -32768 bis 32.767) addieren.
- die Breite des Speicherbusses, d.h. die Anzahl der Datenleitungen zwischen CPU und Arbeitsspeicher
- bei älteren Prozessoren ohne serielle Punkt-zu-Punkt-Verbindung die Breite des Datenbusses
Es gab in der Vergangenheit auch CPUs, deren Datenbus oder ALU aus Kostengründen nur halb so breit waren. So hatten etwa die 32-Bit-Prozessoren Motorola 68000 und Intel 80386SX nur einen 16 Bit breiten Datenbus. Der 68000er hatte außerdem nur eine 16-Bit-ALU, die aber mit 32-Bit-Zahlen rechnen konnte.
Befehlssatzarchitektur
Die Befehlssatzarchitektur (engl. Instruction Set Architecture, kurz ISA), beschreibt Aufbau und Funktionsweise einer CPU aus Sicht des Programmierers. Sie bestimmt nicht nur den Befehls- und Registersatz, sondern auch wie die Adressierung des Speichers und die Behandlung von Programmunterbrechungen erfolgt. Die beiden bedeutendsten Architekturkonzepte sind CISC (Complex Instruction Set Computer) und RISC (Reduced Instruction Set Computer). Moderne CPUs basieren auf RISC-Architekturen.
CISC
Prozessoren mit CISC-Architektur waren bis Ende der 80er Jahre noch weit verbreitet. Das Ziel war eine Optimierung der Geschwindigkeit, indem man den Prozessor mit langen, mächtigen Befehlen ausstattet, damit dieser möglichst viele Daten pro Takt verarbeiten kann. CISC-Prozessoren arbeiteten in der Regel sequentiell; d. h. die Befehle wurden nacheinander einzeln abgearbeitet. Ein weiteres Merkmal von CISC-Prozessoren war das Vorhandensein eines festverdrahteten oder in einem ROM-Baustein untergebrachten Steuerprogramms.
RISC
Bei der RISC-Architektur wird eine hohe Geschwindigkeit der CPU durch Ausführung möglichst vieler einfacher, kompakter Befehle pro Takt erreicht. Durch die Einteilung der Befehlsverarbeitung in Phasen (Pipelining) können praktisch mehrere Befehle parallel verarbeitet werden. Dazu müssen allerdings folgende Voraussetzungen erfüllt werden: Jede einzelne Phase muss in der gleichen Zeit durchlaufen und darf jeweils nur einer Verarbeitungseinheit zugeordnet werden.
CISC | Intel x86 (ab Intel 8086) | RISC | |
---|---|---|---|
Befehlssatz
| viele mächtige Befehle
| viele einfache und mächtige Befehle
| viele einfache und mächtige Befehle
|
Befehlsbreite | variabel | variabel | fest (32 Bit) |
Anzahl Register | gering | hoch | hoch |
Adressierungsmodi | viele | viele | wenige (i.d.R. direkt und registerdirekt |
Art des Speicherzugriffs | Register-Speicher | Register-Speicher | Register-Register |
Byte-Reihenfolge | Little-Endian / Big-Endian | Little-Endian | Big-Endian / Bi-Endian |
Befehle pro Takt | <1 | variabel | >1 (Superskalarität) |
Abgeleitete Befehlssatzarchitekturen | |||
|
|
|
Befehlssatz
Der Befehlssatz stellt den „Wortschatz“ eines Mikroprozessors dar. Er versteht nur Befehle, die auch in seinem Befehlssatz enthalten sind (z.B. ADD für Addiere oder SUB für Subtrahiere). Moderne CPUs besitzen einen orthogonalen Befehlssatz d.h. jeder Befehl kann mit jedem Register und mit jeder Adressierungsart verwendet werden.
Befehlsbreite
Gibt die Länge eines Befehls (Opcode) in Bit an. Im Zusammenhang mit der maximalen Befehlsbreite einer CPU spricht man häufig auch von n-Bit-Architektur oder -Prozessor. Ein 32-Bit-Prozessor kann z.B. einen 32 Bit langen Befehl innerhalb eines Taktes verarbeiten.
Registersatz
Der Registersatz bestimmt Art und Anzahl der Register.

Registersatz der x86-Architektur (Intel 80386SX)
a) Allzweck-Register, b) Segment-Register, c) Statusregister, d) Befehlszähler, e) Register für den geschützten Modus („Protected-Mode“) f) Debug-Register g) Test-Register
Adressierung
Die Adressierung bestimmt, wie aus einer Programmadresse die tatsächliche Adresse im Speicher ermittelt wird. Je mehr verschiedene Algorithmen bzw. Modi zur Verfügung stehen, desto effizienter kann eine Adressierung erfolgen.

x86-Adressierungsmodi
Art des Speicherzugriffs
Befehlssatzarchitekturen lassen sich auch nach der Art des Speicherzugriffs unterteilen in:
- Register-Register-Architekturen (Load-/Store-Architektur): Die arithmetisch-logische Einheit (ALU) kann nur Operanden miteinander verknüpfen, die sich in den Registern befinden. Auch das Ergebnis muss zunächst in einem Register abgelegt werden. Operanden, die sich im Cache/Arbeitsspeicher befinden, müssen zuerst mit einem weiteren Befehl in die Register eingelesen (Load, „Laden“) bzw. von diesen in den RAM übertragen (Store, „Speichern“) werden. Dazu ist es notwendig, die physikalischen Speicheradressen der Operanden in logische Adressen umzuwandeln und umgekehrt. Diese Funktion übernimmt bei entsprechenden CPUs die Load-/Store-Einheit (LSU). Man bezeichnet solche Befehlssatzarchitekturen deshalb auch als Load-/Store-Architektur. Die Vermeidung direkter Speicherzugrfife verringert nicht nur Zugriffszeiten, sondern auch Datenabhängigkeiten (engl. Hazards), die bei der parallen Verarbeitung mehrerer Befehle auftreten können.
- Register-Speicher-Architekturen: Die ALU kann in einem einzigen Befehl nicht nur Operanden verarbeiten, die in Registern abgelegt sind, sondern auch solche, die sich im Cache bzw Arbeitsspeicher befinden. Ergebnisse können direkt in den Arbeitsspeicher übertragen werden.
Rechenoperationen mit Zugriff auf den Arbeitsspeicher benötigen bei Register-Register-Architekturen neben dem eigentlichen Rechenbefehl, welcher von der arithmetisch-logischen Einheit (ALU) ausgeführt wird, z.B. „Addiere“, noch einen weiteren Befehl zum Holen/Ablegen der Operanden aus dem bzw. im Speicher (Load/Store). Bei Register-Register-Architekturen werden Zugriffe auf den langsamen Arbeitsspeicher auf ein Minimum reduziert, indem die benötigten Operanden so weit wie möglich in den schnelleren Registern zwischengespeichert werden. Aus diesem Grund verfügen Register-Register-Architekturen über einen größeren Registersatz als Register-Speicher-Architekturen. Entsprechende CPUs sind deshalb zwar wesentlich schneller, aber auch komplexer und teurer in der Herstellung.
Byte-Reihenfolge
Die Byte-Reihenfolge, in englischer Sprache als „Endianness“ bezeichnet, bestimmt die Reihenfolge, in der die einzelnen Bytes im Speicher abgelegt werden:
- Little-Endian: Das kleinstwertige, rechts stehende Byte (Least Significant Bytem, LSR) wird an der niedrigsten Adresse im Speicher abgelegt, das nachfolgende Byte an der zweitniedrigsten Adresse usw.
- Big-Endian: Das höchstwertige, links stehende Byte (Most Significant Byte, MSR) wird an der niedrigsten Adresse im Speicher abgelegt, das nachfolgende Byte an der zweitniedrigsten Adresse, usw.
- Bi-Endian: Die Byte-Reihenfolge ist variabel einstellbar.
IRQ-Behandlung
Als Unterbrechungsanforderung (IRQ = Interrupt ReQuest) bezeichnet man ein Signal, das von einem anderen Gerät oder durch ein Programm bei Auftreten eines bestimmten Ereignisses an den Prozessor gesendet wird, damit dieser sein aktuelles Programm unterbricht. Das kann im einfachsten Fall das Drücken einer Taste sein. Wie sich die CPU in diesem Fall verhält, wird ebenfalls durch die Architektur festgelegt.
x86-Architektur (IA32)
Befehlssatzerweiterungen
Da sich Ende der 90er Jahre rechenintensive Anwendungen aus dem Bereich der Bild- und Tonverarbeitung immer mehr durchsetzten, haben sich CPU-Hersteller und Softwareentwickler überlegt, wie man diese beschleunigen könnte, ohne eine komplett neue Archtektur für den Mikroprozessor entwerfen zu müssen. Die Entwickler untersuchten die Schlüsselfunktionen einer großen Menge angebotener Software, darunter Musiksynthese, Sprachkompression, Spracherkennung, MPEG-Video und Bildbearbeitung. Das Ergebnis waren sog. SIMD-Befehle (Single Instruction Multiple Data), die auf der Tatsache beruhten, dass bei diesen Anwendungen ein bestimmter Befehl mehrmals mit gleichartigen Daten parallel ausgeführt wird. So gibt es z.B. bei der Bildbearbeitung viele Effekte, die auf jeden einzelnen Bildpunkt denselben Befehl anwenden.
Wichtige Befehlssatzerweiterungen
MMX (MultiMedia eXtensions)
Einführung
Pentium MMX (1997)
-
„Packed bytes“; acht Byte, die zu einem 64-Bit-Quadwort zusammengefasst sind
- „Packed word“; vier 16-Bit-Wörter, die zu einer 64-Bit-Quadwort zusammengefasst sind
- „Packed doubleword“; zwei 32-Bit-Doppelwörter, die zu einem 64-Bit-Quadwort zusammengefasst sind
- „Quadword“; Zahl einer Länge von 64-Bit (Stellen)
SSE (Streaming SIMD Extensions)
Einführung
Pentium III (1999)
Ergänzte den Befehlssatz um weitere 72 SIMD-Befehle, darunter 52 Fließkomma-, 12 Media- und 8 Speicherbefehle. Darüber hinaus kamen 8 neue 128 Bit breite Register hinzu.
SSE2. SSE3, SSE4
Einführung
Pentium IV (ab 2000)
-
128-Bit packed double-precision floating point (Gleitkommazahlen doppelter Genauigkeit, d.h. 64 Bit statt 32)
-
128-Bit packed byte integers (8 Bit Ganzzahlen)
- 128-Bit packed word integers
- 128-Bit packed doubleword integers
- 128-Bit packed quadword integers
AVX (Advanced Vector eXtensions), AVX2
Einführung
Core i3, i5, i7 (ab 2011)
Verdoppelt die Breite der SSE-Register auf 256 Bit und führt neue 256 Bit lange Befehle ein. Außerdem gibt es ein neues Befehlsformat mit 3 Operanden (c = a + b). Anders als beim bisher üblichen 2-Operanden-Format (a‘ = a + b) wird der Inhalt des Quellegisters nicht vom Ergebnis überschrieben. Dadurch entfällt das aufwändige Kopieren des Operanden in ein anderes Register.
Übersicht: Befehlssatzerweiterungen
Erweiterung | Einführung mit | Schwerpunkt | Anwendungen |
---|---|---|---|
ABM (Advanced Bit Manipulation) | Bulldozer 2. Gen. | Bit-Manipulation | Bildbearbeitung |
AES-NI (Advanced Encryption Standard - New Instructions) | Sandy Bridge, Bulldozer | AES-Verschlüsselung | 7-zip, OpenSSL 1.0.1, OpenBSD 4.8+, PGP Desktop 10.1.0+, TrueCrypt, Windows 7+, WinRAR |
AVX (Advanced Vector eXtensions) | Sandy Bridge, Bulldozer | Vektor-Befehle | Blender, OpenSSL 1.0.2 |
AVX-512 (Advanced Vector eXtensions 512 Bit) | Cascade Lake | Vektor-Befehle | Verschlüsselung, Deep Learning, X264-Videokompression |
BMI (Bit Manipulation Instructions) | Haswell, Bulldozer 2. Gen. | Bit-Manipulation | Bildbearbeitung |
CLMUL (CarryLess MULtiplication) | Westmere, Bulldozer | vorzeichenlose Multiplikation | Verschlüsselung, Datenkompression (PNG, zip), Prüfsummen-Berechnung (CRC) |
FMA (Fused Multiply Add) | Haswell, Bulldozer | Multiply-Accumulate (MAC) | Dekodierung von Videos, Bildbearbeitung |
MPX (Memory Protection eXtensions) | Skylake | Speicherschutz | Linux-Kernel 3.19 |
SGX (Software Guard eXtensions) | Skylake | Speicherschutz | Schutz vor bösartigem Programmcode, DRM (Digitale Rechteverwaltung) |
SHA-NI (Secure Hash Algorithm New Instructions) | Cypress Cove | kryptografische Hash-Funktionen | Digitale Signaturen, Message Authentication Codes (MACs) |
TBM (Trailing Bit Manipulation) | Bulldozer 2. Gen. | Bit-Manipulation | Bildbearbeitung |
TSX (Transactional Synchronization eXtensions) | Haswell | Transaktionen | Datenbanken, Programme mit mehreren Threads |
XOP (eXtended OPerations) | Bulldozer | Vektor-Befehle |
RISC-Architekturen
Alpha
Alpha-Architektur |
||
---|---|---|
Entwickler | Digital Equipment Corporation | |
Einsatz | Alphachip 21x64-Serie | |
Registersatz |
|
|
Besondere Merkmale |
|
ARM
ARM-Architektur |
||
---|---|---|
Entwickler | Advanced RISC Machines | |
Einsatz (Beispiele) |
|
|
Befehlsbreite
| AArch64: 32 Bit, AArch32: 32 Bit, fest / 16+32 Bit, variabel |
|
Registersatz
| AArch64:
|
|
Besondere Merkmale |
|
|
Quelle: https://static.docs.arm.com/ddi0487/ea/DDI0487E_a_armv8_arm.pdf?_ga=2.4267632.2133538031.1572704124-783143061.1571499381 |
MIPS
MIPS-Architektur (Microprocessor without Interlocked Pipelined Stage, "Mikroprozessor ohne verschränkte Pipeline-Stufen") |
||
---|---|---|
Entwickler | MIPS Technologies | |
Einsatz | Mikroprozessoren für Server, Ein-Chip-Systeme (SoCs) für Netzwerk- und Telekommunikations-infrastruktur, fortgeschrittene Fahrassistenzsysteme, autonome Fahrsysteme | |
Befehlsbreite | 32 Bit |
|
Registersatz |
|
|
Besondere Merkmale |
|
|
Quelle: https://s3-eu-west-1.amazonaws.com/downloads-mips/documents/MD00083-2B-MIPS64INT-AFP-06.01.pdf |
PA-RISC
PA-RISC-Architektur (PA = Precision Architecture) |
||
---|---|---|
Entwickler | Hewlett-Packard | |
Einsatz | Mikroprozessoren in Workstations, Servern und Großrechnern | |
Registersatz |
|
|
Besondere Merkmale |
|
|
Quelle: https://www.openpa.net/pa-risc_architecture.html |
PowerPC
PowerPC-Architektur (Power = Performance optimization with enhanced RISC) |
||
---|---|---|
Entwickler | Apple, IBM und Motorola (heute NXP Semiconductors) | |
Einsatz (Beispiele) | Digitalreceiver, Videospielkonsolen (Nintendo GameCube/Wii), Apple Macintosh, zivile und militärische Luft- und Raumfahrt | |
Registersatz (Userebene) |
|
|
Besondere Merkmale |
|
|
Quelle: https://www.nxp.com/docs/en/white-paper/POWRPCARCPRMRM.pdf |
SPARC
SPARC-Architektur (Scalable Processor ARChitecture) |
||
---|---|---|
Entwickler | Sun Microsystems, Fujitsu | |
Einsatz (Beispiele) | Workstations und Server | |
Registersatz (Userebene) |
|
|
Besondere Merkmale |
|
|
Quelle: https://sparc.org/technical-documents/#V9 |
SuperH
SuperH-Architektur |
||
---|---|---|
Entwickler | Hitachi (heute Renesas Electronics) | |
Einsatz (Beispiele) | Videospielkonsolen (z.B. Sega Saturn/Dreamcast), HP Jornada PDAs, eingebettete Systeme (v.a. in der Automobilbranche), digitale Signalprozessoren (DSPs) | |
Registersatz (Userebene) | SHmedia-Modus:
|
|
Besondere Merkmale |
|
|
Quelle: http://www.iuma.ulpgc.es/~nunez/procmultimedia98-00/hitachi/sh5_whitepaper.pdf |
Mikroarchitektur
Die Mikroarchitektur beschreibt im Gegensatz zur Befehlssatzarchitektur nicht das Programmiermodell eines Prozessors, sondern dessen konkrete, hardwareseitige Umsetzung. Sie bestimmt Aufbau und Funktionsweise des Prozessors (Funktionseinheiten, Daten- und Befehlsflüsse, Steuersignale) aus Sicht des Hardware-Designers. Zur vereinfachten Beschreibung einer Mikroarchitektur werden Blockdiagramme verwendet.
Intel-Mikroarchitekturen (1993 – 2021)
In grau dargestellt sind jeweils alle Befehlssatzerweiterungen und die Architektur
P5 (1993)
- Pentium, Pentium MMX
MMX | x86
Nehalem (2009)
- Core i3, i5, i7
SSE4.2 | SSE4.1 SSE3 | SSE2
SSE | MMX | x86-64
Cascade Lake (2019)
- X-Serie (Cascade Lake X)
AVX-512
MPX | SGX | AVX2 | TSX | FMA | BMI
AES | CLMUL | AVX | SSE4.2 | SSE4.1
SSE3 | SSE2 | SSE | MMX | x86-64
P6 (1995)
- Pentium Pro, Pentium II, Pentium III, Celeron
SSE | MMX | x86
Sandy Bridge (2011)
- Core i3, i5, i7 (2. und 3. Generation)
AES-NI | CLMUL | AVX | SSE4.2
SSE4.1 | SSE3 | SSE2 | SSE | MMX
x86-64
Rocket Lake/Cypress Cove (2021)
- Core i5, i7, i9 (11. Generation)
SHA-NI | AVX-512
MPX | SGX | AVX2 | TSX | FMA | BMI
AES | CLMUL | AVX | SSE4.2 | SSE4.1
SSE3 | SSE2 | SSE | MMX | x86-64
NetBurst (2000)
- Pentium IV, Pentium D, Celeron
SSE3 | SSE2 | SSE | MMX | x86-64
Haswell (2013)
- Core i3, i5, i7 (4. Generation), Celeron, Pentium
AVX2 | TSX | SGX | FMA | BMI | AES
CLMUL | AVX | SSE4.2 | SSE4.1
SSE3 | SSE2 | SSE | MMX | x86-64
Alder Lake (2021)
- Core i5, i7, i9 (12. Gen.)
SHA-NI | AVX-512
MPX | SGX | AVX2 | TSX | FMA | BMI
AES | CLMUL | AVX | SSE4.2 | SSE4.1
SSE3 | SSE2 | SSE | MMX | x86-64
Core (2006)
- Core 2 Duo, Core 2 Quad, Celeron
SSE4.1 | SSE3 | SSE2 | SSE
MMX | x86-64
Skylake (2015)
- Core i3, i5, i7 (6. – 10. Gen.)
- Core i9 (9. und 10. Gen.)
- X-Serie (Skylake-X)
MPX | SGX | AVX2 | TSX | FMA | BMI
AES | CLMUL | AVX | SSE4.2 | SSE4.1
SSE3 | SSE2 | SSE | MMX | x86-64
AMD-Mikroarchitekturen (1996 – 2020)
K5 (1996)
- K5
x86
K10 (2007)
- Athlon, Athlon X2, Sempron (2. Gen.), Phenom, Phenom II
SSE4a | SSE3 | SSE2 | SSE
3DNow! | MMX | x86-64
Zen 3 (2020)
- AMD Ryzen 5, 7, 9 (4. Gen.)
AVX2 | AVX | FMA | XOP | BMI | AES
CLMUL | SSE4.2 | SSE4.1 | SSE4a
SSE3 | SSE2 | SSE | MMX | x86-64
K6 (1997)
- K6, K6-2, K6-III
3DNow! | MMX | x86
Bulldozer (2011)
- Athlon X4, AMD FX (1. und 2. Gen.), AMD A-Serie (1.,2. u. 3. Gen.)
AVX | FMA | BMI | ABM | TBM | XOP
AES | CLMUL | SSE4.2 | SSE4.1 | SSE4a
SSE3 | SSE2 | SSE | MMX | x86-64
K7 (1999)
- Athlon, Athlon XP, Duron, Sempron
SSE | 3DNow! | MMX | x86
Zen (2017)
- AMD Ryzen 3, 5, 7, TR (1. Gen.)
AVX2 | AVX | FMA | XOP | BMI | AES
CLMUL | SSE4.2 | SSE4.1 | SSE4a
SSE3 | SSE2 | SSE | MMX | x86-64
K8 (2003)
- Athlon 64, Athlon 64 X2, Athlon X2, Athlon FX, Sempron
SSE3 | SSE2 | SSE | 3DNow! |
MMX | x86-64
Zen 2 (2019)
- AMD Ryzen 3, 5, 7, TR (3. Gen.)
AVX2 | AVX | FMA | XOP | BMI | AES
CLMUL | SSE4.2 | SSE4.1 | SSE4a
SSE3 | SSE2 | SSE | MMX | x86-64
Hinweis: Der Übersicht halber werden Mikroarchitekturen, die im Wesentlichen auf ihren Vorgänger aufbauen oder nur Änderungen im Fertigungsverfahren beinhalten, nicht aufgeführt.