6.2 Prozessorarchitekturen - x86-64, Arm und RISC-V
Eine Prozessorarchitektur beschreibt die für Software sichtbare Schnittstelle eines Prozessors: Befehle, Register, Datentypen, Adressierung, Speichermodell und Privilegienstufen. Dieselbe Instruction Set Architecture (ISA) kann durch sehr unterschiedliche Mikroarchitekturen umgesetzt werden. x86-64, Arm und RISC-V sind deshalb zunächst Softwareverträge - keine direkte Aussage über Takt, Leistungsaufnahme oder inneren Aufbau eines konkreten Chips.
Drei Ebenen auseinanderhalten
Die Begriffe ISA, Mikroarchitektur und SoC werden häufig vermischt. Die ISA legt fest, welchen Maschinencode Software verwenden darf. Die Mikroarchitektur entscheidet, wie ein Kern diese Befehle intern mit Pipeline, Caches, Ausführungseinheiten und Sprungvorhersage verarbeitet. Ein SoC oder Prozessor-Package kombiniert anschließend einen oder mehrere Kerne mit Speichercontrollern, Grafik, I/O, Beschleunigern und weiteren Funktionsblöcken.
Kompatibler Maschinencode setzt nicht automatisch identische Leistung voraus. Zwei Prozessoren können dieselbe ISA unterstützen, aber unterschiedliche Befehlserweiterungen, Kernzahlen, Cachegrößen und Leistungsgrenzen besitzen. Umgekehrt kann Quellcode für verschiedene ISAs neu übersetzt werden, wenn Betriebssystem, Compiler und Bibliotheken das jeweilige Ziel unterstützen.
| Ebene | Beschreibt | Beispiel |
|---|---|---|
| ISA / Befehlssatzarchitektur | Befehle, Register, Adressierung, Ausnahme- und Speichermodell | x86-64, Armv9-A, RV64GC |
| Mikroarchitektur | Interne Umsetzung mit Pipeline, Caches und Ausführungseinheiten | Unterschiedliche Kerndesigns für dieselbe ISA |
| Prozessor / SoC / Package | Konkretes Produkt mit Kernen, I/O, Grafik und Beschleunigern | Desktop-CPU, Smartphone-SoC, Serverprozessor |
| ABI | Binäre Regeln für Aufrufkonvention, Datentypen und Betriebssystemgrenzen | Legt fest, wie übersetzte Programme und Bibliotheken zusammenarbeiten |
Was 32 Bit und 64 Bit tatsächlich bedeuten
Die Bitangabe kann sich auf mehrere Eigenschaften beziehen: Breite der allgemeinen Register, Größe virtueller Adressen, unterstützte Datentypen oder Breite einzelner Rechenwerke. Bei einer 32-Bit-Adresse ergeben sich rechnerisch 2³² unterschiedliche Byteadressen, also 4 GiB Adressraum. Das ist nicht automatisch identisch mit nutzbarem Arbeitsspeicher: Gerätebereiche, Betriebssystemaufteilung und Erweiterungen wie PAE beeinflussen die praktische Nutzung.
Eine 64-Bit-ISA bedeutet nicht, dass heutige Prozessoren alle 64 Adressbits physisch implementieren oder 16 EiB RAM ansprechen. Virtuelle und physische Adressbreiten sind begrenzt und modellabhängig. Der Wechsel zu 64 Bit brachte bei x86-64 zusätzlich mehr allgemeine Register, neue Betriebsmodi und modernisierte Aufrufkonventionen. Ein 64-Bit-Betriebssystem und passende Treiber sind nötig, damit 64-Bit-Anwendungen die Architektur vollständig nutzen.
| Größe | Rechnung | Ergebnis |
|---|---|---|
| 32-Bit-Adressraum | 2³² Byte | 4 GiB theoretischer linearer Adressraum |
| 64-Bit-Adressraum | 2⁶⁴ Byte | 16 EiB theoretisch; reale CPUs implementieren weniger Adressbits |
| Registerbreite | Breite eines allgemeinen Registers | Nicht automatisch gleich Bus-, Cache- oder Vektorbreite |
| Vektorbreite | Mehrere Datenelemente pro Befehl | Kann 128, 256, 512 Bit oder skalierbar sein, unabhängig von „64-Bit-CPU“ |
Architekturfamilien im Überblick
Die folgende Grafik ordnet die behandelten Familien ein. IA-64 ist bewusst als historischer Sonderweg dargestellt. x86-64, Arm und RISC-V werden aktiv weiterentwickelt, unterscheiden sich jedoch bei Lizenzmodell, Kompatibilitätsgeschichte und Erweiterungsstruktur. Keine der Spalten beschreibt automatisch ein vollständiges Produkt.
IA-32, x86 und x86-64
IA-32 bezeichnet Intels 32-Bit-x86-Architektur, die mit dem 80386 eingeführt wurde. x86 entwickelte sich aus den 16-Bit-Vorgängern und bewahrte umfangreiche Abwärtskompatibilität. Dieser Softwarebestand und die große Auswahl kompatibler Betriebssysteme, Anwendungen und Hardware wurden zum entscheidenden Erfolgsfaktor. Die Kompatibilität ist dennoch nicht grenzenlos: Betriebsmodus, Betriebssystem, Treiber, Befehlserweiterungen und alte Hardwareannahmen können Programme begrenzen.
AMD64 erweiterte x86 auf 64 Bit und fügte unter anderem zusätzliche allgemeine Register sowie einen 64-Bit-Modus hinzu. Intel implementierte eine kompatible Variante, die heute Intel 64 genannt wird. Der gemeinsame Oberbegriff x86-64 beziehungsweise x64 ist daher treffender als die Gleichsetzung mit einem einzelnen Hersteller. 32-Bit-Anwendungen können auf vielen x86-64-Systemen über Kompatibilitätsmechanismen laufen; Betriebssysteme können diese Unterstützung jedoch einschränken oder entfernen.
| Bezeichnung | Einordnung |
|---|---|
| x86 | Historische Prozessor- und ISA-Familie mit Wurzeln im Intel 8086. |
| IA-32 | 32-Bit-Erweiterung der x86-Architektur ab dem 80386. |
| AMD64 | Von AMD eingeführte 64-Bit-Erweiterung von x86. |
| Intel 64 | Intels zu AMD64 weitgehend kompatible x86-64-Implementierung. |
| x86-64 / x64 | Herstellerübergreifender Sammelbegriff für die heutige 64-Bit-x86-Plattform. |
IA-64 und EPIC - der historische Itanium-Weg
IA-64 war eine eigenständige 64-Bit-Architektur von Intel und HP für Itanium-Systeme und keine 64-Bit-Erweiterung von x86. Ihr EPIC-Konzept - Explicitly Parallel Instruction Computing - ließ den Compiler unabhängige Operationen in Bündeln kennzeichnen. Prädikation sollte Verzweigungen reduzieren, Spekulation Latenzen überdecken und eine große Registermenge parallele Arbeit bereitstellen.
Das Konzept war stark von Compilerqualität und planbarer Parallelität abhängig. Dynamische Laufzeiteffekte wie Cache-Misses und schwer vorhersagbare Abhängigkeiten begrenzten statische Planung. x86-Kompatibilität war langsamer und komplexer als native Ausführung. Intel stellte die letzten Itanium-9700-Produkte ein; der letzte reguläre Auslieferungstermin war laut Produktabkündigung der 29. Juli 2021. IA-64 ist deshalb heute historisch relevant, aber keine aktuelle allgemeine Plattformempfehlung.
| EPIC-Merkmal | Idee | Grenze |
|---|---|---|
| Instruktionsbündel | Compiler markiert parallel ausführbare Operationen | Laufzeitverhalten ist nicht vollständig vorhersagbar. |
| Prädikation | Bedingte Operationen vermeiden manche Sprünge | Nicht jeder Kontrollfluss lässt sich effizient prädizieren. |
| Spekulation | Arbeit wird vorgezogen, bevor alle Bedingungen feststehen | Fehlspekulation verbraucht Ressourcen und muss verworfen werden. |
| Viele Register | Mehr Zwischenwerte und parallele Operationen | Größere Zustände und Komplexität lösen nicht jedes Datenabhängigkeitsproblem. |
CISC und RISC - nützliche Herkunft, unscharfe Gegenwart
CISC steht für Complex Instruction Set Computing, RISC für Reduced Instruction Set Computing. Klassisch besitzen CISC-ISAs viele unterschiedlich lange, leistungsfähige Befehle und Adressierungsarten. RISC-ISAs setzen eher auf regelmäßige Codierung, viele Register sowie ein Load/Store-Modell, bei dem Rechenbefehle überwiegend auf Registern arbeiten. Diese Merkmale erklären die historische Entwicklung, bilden aber keine einfache Leistungsrangliste.
Moderne x86-Kerne decodieren viele sichtbare Befehle in interne Mikrooperationen und führen sie parallel sowie Out-of-Order aus. Moderne Arm- und RISC-V-Kerne können ebenfalls breit, spekulativ und komplex aufgebaut sein und besitzen zahlreiche Erweiterungen. Aussagen wie „CISC braucht immer vier bis zehn Takte“ oder „RISC führt jeden Befehl in einem Takt aus“ sind daher falsch. Leistung entsteht aus Mikroarchitektur, Software, Speicherhierarchie und Leistungsbudget - nicht aus dem Etikett allein.
| Klassisches Merkmal | CISC-Tendenz | RISC-Tendenz | Heutige Realität |
|---|---|---|---|
| Befehlslänge | Oft variabel | Oft regelmäßig | Komprimierte und variable Formate existieren in mehreren Familien. |
| Speicheroperanden | Viele Befehle können Speicher einbeziehen | Typisch Load/Store | Interne Mikrooperationen und Caches entkoppeln sichtbare ISA und Ausführung. |
| Decodierung | Tendenziell aufwendiger | Tendenziell einfacher | Frontend-Breite, µOp-Cache und Vorhersage sind ebenso wichtig. |
| Komplexität | Traditionell stärker im Prozessor | Traditionell stärker im Compiler | Beide Seiten sind heute hochkomplex. |
Arm-Architektur und Lizenzmodell
Arm entwickelt eine RISC-basierte Architektur und bietet Prozessor-IP wie Cortex, Neoverse und weitere Systembausteine zur Lizenzierung an. Partner können fertige Arm-Kerndesigns integrieren oder mit einer Architekturlizenz eigene kompatible Mikroarchitekturen entwickeln. Arm fertigt daher nicht pauschal die Endchips aller Geräte und ein Arm-Kern ist nicht automatisch ein vollständiges SoC.
Die Profile trennen Einsatzgebiete: A-Profile für komplexe Betriebssysteme und hohe Anwendungsleistung, R-Profile für Echtzeitaufgaben und M-Profile für Mikrocontroller. Armv9-A führt die A-Profile-Entwicklung fort und ergänzt unter anderem SVE2 sowie Sicherheitsfunktionen. Arm-basierte Systeme reichen heute von Mikrocontrollern und Smartphones über PCs bis zu Servern und Supercomputern; „wenig Rechenleistung und wenige Schnittstellen“ ist keine allgemeingültige Einordnung mehr.
| Profil | Schwerpunkt | Typische Systeme |
|---|---|---|
| A-Profile | Anwendungsprozessoren, virtuelle Speicherverwaltung, umfangreiche Betriebssysteme | Smartphones, PCs, Server, Netzwerkgeräte |
| R-Profile | Deterministische Echtzeit und funktionale Anforderungen | Fahrzeuge, Storage, Industrie- und Sicherheitssteuerungen |
| M-Profile | Kleine energieeffiziente Mikrocontroller | Sensoren, IoT, Motorsteuerung, Embedded-Geräte |
System-on-Chip statt bloßer CPU
Ein SoC kombiniert CPU-Kerne mit weiteren Funktionsblöcken auf einem Chip oder in einem eng gekoppelten Package. Dazu können GPU, NPU, Speichercontroller, Display- und Medien-Engines, Sicherheitsmodule, Funkmodem, PCIe, USB und andere Schnittstellen gehören. Welche Blöcke enthalten sind, hängt vom Produkt ab - weder Arm noch x86 legt eine feste SoC-Ausstattung fest.
Die Integration verkürzt Verbindungen und kann Energie, Platz und Stückkosten sparen. Sie reduziert jedoch häufig die Austauschbarkeit einzelner Komponenten und bindet Treiber, Firmware und Betriebssystem stärker an das konkrete Produkt. Auch aktuelle Desktop- und Notebookprozessoren besitzen zahlreiche SoC-Eigenschaften; die klassische Trennung aus CPU, Northbridge und vielen Zusatzchips ist deshalb zunehmend unpassend.
- Qualcomm integriert eigene und lizenzierte IP in unterschiedliche SoC-Produkte.
- Apple entwickelt eigene Arm-kompatible CPU-Mikroarchitekturen und kombiniert sie mit weiteren Systemblöcken.
- NVIDIA verwendet Arm-Kerne oder eigene Arm-kompatible Designs zusammen mit GPU- und Beschleunigertechnik.
- AMD und Intel integrieren in Client- und Serverprodukten Speicher-, PCIe-, Grafik-, Medien- und Beschleunigerfunktionen in unterschiedlichem Umfang.
- Auftragsfertiger produzieren Chips nach den Designs ihrer Kunden; Entwurf, IP-Lizenzierung und Fertigung sind getrennte Rollen.
RISC-V - offene und modulare ISA
RISC-V ist eine offene Befehlssatzfamilie. Ein Implementierer kann eine standardisierte Basis-ISA mit ratifizierten Erweiterungen kombinieren und darauf eine eigene Mikroarchitektur entwickeln. Offen ist die ISA-Spezifikation - nicht automatisch jedes konkrete Chipdesign, jede Firmware oder jedes Entwicklungswerkzeug. RISC-V International pflegt Spezifikationen und Ökosystem; ein standardkonformer Kern benötigt weiterhin Entwicklung, Verifikation, Speicher- und I/O-Systeme sowie Fertigung.
Aktuelle Basisbezeichnungen beginnen unter anderem mit RV32I, RV32E, RV64I oder RV64E. Die nachfolgenden Buchstaben und Namen beschreiben Erweiterungen. G ist ein Kürzel für eine allgemeine Kombination, während zusätzliche Z-, S-, Sh-/Sm- oder herstellerspezifische X-Erweiterungen genauer benannt werden. Softwarekompatibilität verlangt daher ein definiertes ISA-Profil beziehungsweise eine exakt bekannte Erweiterungsmenge - „RISC-V“ allein genügt nicht.
| Kennung | Bedeutung |
|---|---|
| RV32I / RV64I | Basis-Ganzzahl-ISA mit 32- beziehungsweise 64-Bit-Adressraum und Registerbreite. |
| E | Reduzierte Basis mit weniger Registern für kleine Implementierungen. |
| M | Ganzzahlmultiplikation und -division. |
| A | Atomare Speicheroperationen. |
| F / D | Gleitkomma einfacher beziehungsweise doppelter Genauigkeit. |
| C | Komprimierte 16-Bit-Codierungen häufiger Befehle zur Verringerung der Codegröße. |
| V | Standard-Vektorerweiterung mit implementierungsabhängiger Vektorlänge innerhalb definierter Regeln. |
| G | Kürzel für IMAFD plus Zicsr und Zifencei; keine einzelne Hardwareeinheit. |
| Z... / S... / X... | Weitere Standard-, Privilegien- oder nicht standardisierte herstellerspezifische Erweiterungen. |
Warum Offenheit nicht automatisch Sicherheit oder Kostenfreiheit bedeutet
Eine offene ISA reduziert Lizenzabhängigkeiten und ermöglicht Forschung, eigene Beschleuniger und anwendungsspezifische Prozessoren. Sie garantiert jedoch weder einen kostenlosen fertigen Chip noch fehlerfreie oder hintertürfreie Hardware. Entwicklung, Verifikation, EDA-Werkzeuge, IP-Blöcke, Packaging, Masken, Fertigung, Firmware, Compiler und langfristige Pflege verursachen weiterhin Aufwand und Kosten.
Sicherheit muss bei jeder Architektur durch überprüfbare Implementierung, dokumentierte Bootkette, Speicherisolation, Updatefähigkeit und Softwarepflege hergestellt werden. Proprietäre und offene Designs können jeweils sicher oder unsicher umgesetzt sein. Für kritische Systeme zählen Zertifizierung, Lieferkette, nachvollziehbarer Quellstand, Tests und Wartungszusagen stärker als ein einzelnes Lizenzetikett.
Softwarekompatibilität und Übersetzung
Binärprogramme sind normalerweise an ISA und ABI gebunden. Ein x86-64-Programm läuft nicht nativ auf Arm64 oder RV64, auch wenn der Quellcode portabel ist. Neuübersetzung erzeugt passenden Maschinencode; Emulation oder dynamische Binärübersetzung kann fremden Code ausführen, kostet aber zusätzliche Ressourcen und unterstützt nicht automatisch alle Treiber oder hardwarenahen Funktionen.
Vor einer Plattformwahl müssen Betriebssystem, Anwendungen, Bibliotheken, Container-Images, Gerätetreiber, Virtualisierung und Verwaltungswerkzeuge geprüft werden. Container teilen den Kernel des Hosts und ersetzen deshalb keine ISA-Kompatibilität. Multi-Architecture-Images können für mehrere Ziele getrennte Binärdateien enthalten.
| Verfahren | Eigenschaft | Einsatz |
|---|---|---|
| Native Ausführung | Binärcode passt zu ISA und ABI | Beste Vorhersagbarkeit und direkter Hardwarezugriff. |
| Neuübersetzung | Quellcode wird für Zielarchitektur kompiliert | Bevorzugt bei verfügbarem und portablem Quellcode. |
| Emulation | Bildet fremde Hardware oder ISA nach | Hohe Kompatibilität möglich, meist zusätzlicher Aufwand. |
| Dynamische Binärübersetzung | Übersetzt Codeblöcke während der Laufzeit | Kann häufig genutzten Fremdcode beschleunigen. |
| Virtualisierung | Gast nutzt im Regelfall dieselbe ISA wie der Host | Trennt Systeme, ersetzt keine allgemeine ISA-Emulation. |
Architektur sinnvoll auswählen
- Zuerst benötigte Betriebssysteme, Anwendungen, Treiber und Managementwerkzeuge festlegen.
- Erforderliche ISA-Erweiterungen, ABI und Mindestplattformprofile dokumentieren.
- Leistung mit anwendungsnahen Benchmarks statt mit RISC/CISC-Etiketten vergleichen.
- Energiebedarf, Kühlung, Speicherbandbreite, I/O und Beschleuniger gemeinsam betrachten.
- Langzeitverfügbarkeit, Sicherheitsupdates, Firmwarezugang und Lieferkette bewerten.
- Bei Eigenentwicklungen Lizenzbedingungen aller verwendeten IP-Blöcke und Werkzeuge prüfen - nicht nur die ISA.
Quellen zur fachlichen Prüfung
- AMD: aktuelles AMD64 Architecture Programmer’s Manual
- Intel: Itanium 9700 - Produktabkündigung und letzter Liefertermin
- Arm: CPU-Architektur, Profile und Abgrenzung zur Mikroarchitektur
- Arm: Lizenzmodelle für Prozessor- und System-IP
- RISC-V: aktuelle Basis-ISA und modulare Architektur
- RISC-V: Benennung standardisierter Erweiterungen
- RISC-V: ratifizierte Vektorerweiterung V 1.0
PDF-Download nach Anmeldung
Zum Schutz der Unterrichtsunterlagen steht der PDF-Download ausschließlich angemeldeten Nutzern zur Verfügung.
