x86-64 und ARM64
Kurz: x86-64 (auch AMD64) und ARM64 (AArch64) sind die zwei wichtigsten Befehlssatz-Architekturen für 64-Bit-Prozessoren. x86-64 steckt in den meisten PCs und Servern, ARM64 in Smartphones, Apple-Macs und zunehmend in Servern und Notebooks.
Genauer: Ein Befehlssatz (ISA) legt fest, welche Maschinenbefehle ein Prozessor versteht. Programme sind dafür kompiliert und laufen daher nur auf der passenden Architektur, es sei denn, sie werden übersetzt oder emuliert.
Im Detail
| x86-64 (AMD64) | ARM64 (AArch64) | |
|---|---|---|
| Familie | CISC (komplexe, unterschiedlich lange Befehle) | RISC (einfache, feste Befehlslänge 32 Bit) |
| Hersteller | Intel, AMD | Apple, Qualcomm, Samsung, Ampere, Amazon (Graviton) |
| Lizenz | Intel/AMD kreuzlizenziert, geschlossen | ARM Holdings lizenziert den Entwurf an viele |
| Typische Einsatzgebiete | Desktop-PCs, Notebooks, Server, Spiele | Smartphones, Tablets, Apple-Silicon-Macs, Embedded, Cloud, Raspberry Pi |
| Stärke | Höchste Spitzenleistung, riesige Software-Basis | Hohe Effizienz (Leistung pro Watt), wenig Abwärme |
| Hybridkerne | Intel P/E-Kerne | big.LITTLE / Apple P/E |
| Register | 16 Allzweck-Register | 31 Allzweck-Register |
| Software-Kompatibilität | Windows, Linux, macOS (Intel), fast alle PC-Programme | Android, iOS, macOS (Apple Silicon), Linux, Windows on ARM |
Wichtige Folgen:
- Kompatibilität: Ein x86-Programm läuft nicht direkt auf ARM. Übersetzer sorgen dafür (Rosetta 2 auf dem Mac, Prism in Windows on ARM).
- Energie: ARM-Kerne haben einfachere Befehlsdekodierung und sind daher sparsamer. Das erklärt Akkulaufzeit von Smartphones und MacBooks.
- Moderne x86-Prozessoren zerlegen ihre CISC-Befehle intern in RISC-ähnliche Mikro-Operationen, der Unterschied ist weniger scharf als früher.
- Geschichte: AMD entwarf x86-64 (2003) als Erweiterung des 32-Bit-x86, daher auch „AMD64”. Intel übernahm es. ARM entstand 1985, 64-Bit-Version (ARMv8) 2011.
- 32-Bit-ARM (ARMv7) wird von neuen Geräten kaum noch benötigt.
- RISC-V: Dritter, offener Befehlssatz mit wachsender Bedeutung.
- Programmieren: Beim Kompilieren die Zielarchitektur angeben (
--target aarch64). Docker-Images gibt es fürlinux/amd64undlinux/arm64.
Siehe auch: 16-, 32- und 64-Bit, CPU, Maschinencode