Arm, Arm ARM, Armv9, ARM9, ARM64, Aarch64, A64, A78, … unterscheiden
(nickdesaulniers.github.io)Begriffsübersicht für Einsteiger in das Arm-Ökosystem
- Die Arm-Architektur ist eine RISC-Produktfamilie mit einfachem Adressierungsmodus.
- Arm Limited ist das britische Unternehmen, das die Arm-Architektur verwaltet.
- ARM wurde von Acorn RISC Machine zu Advanced RISC Machines.
- Arm ARM (Architecture Reference Manual) ist das Programmierhandbuch für Arm.
- Armv9 ist die neueste Architektur-Familie (zum Zeitpunkt des Autors). Hinzugekommen sind u. a. SIMD-Vektoren (SVE) und Matrix-Operationen (SME/SME2).
- Armv9.4-A ist das neueste Erweiterungspaket von Armv9. Diese Erweiterungen sind im Arm ARM dokumentiert. Einige Erweiterungen sind bei ihrer Einführung optional, sollen in künftigen Versionen aber verpflichtend werden.
- Das A in Armv9.4-A steht für „Application Profile“. Es unterstützt virtuellen Speicher über eine MMU und findet sich in praktisch allen Arm-Systemen wie Smartphones, Laptops und Servern.
Es gibt auch ein „R“ für Echtzeitsysteme oder ein „M“ für Mikrocontroller ohne MMU.
Diese drei Architekturprofile sind ebenfalls „A“, „R“ und „M“. - AArch64 ist der in ARMv8 eingeführte „Execution State“. Er unterstützt 64b-Register (31 allgemeine Register, einen dedizierten 64b-Stack-Pointer, einen 64b-Programmzähler und ein Pseudo-Register mit dem Wert null).
Die in ARMv7 genutzten 32b-Funktionen wurden in diesem Zuge AArch32 genannt. - Interessanterweise erwähnt das Arm ARM den Begriff ARM64 nicht (Apple, Microsoft und Linus Torvalds bevorzugen ihn).
Letztlich ist dieser Name sinnvoll: Der arm64-Linux-Kernel kann User-Space-Code im Execution State AArch64 oder AArch32 ausführen, der Kernel selbst ist jedoch ausschließlich für AArch64. - A64 ist der in AArch64 eingeführte Befehlssatz. Tatsächlich ist es der einzige Befehlssatz, den AArch64 unterstützt. Die Register von AArch64 sind 64b breit, die Instruktionen selbst bleiben jedoch 32b (feste Breite).
A32 bezeichnet die ältere ISA, ebenfalls mit fester Breite von 32b. T32 ist der vor Armv8 verwendete Befehlssatz und bezeichnet 32b sowie 16b Thumb2. - Nicht mit A64 zu verwechseln ist die Bezeichnung von Kernen wie „A78“, womit Cortex-A78 gemeint ist.
Arm entwirft nicht nur die Arm-Architektur, sondern auch deren Implementierungen, die wir Mikroarchitekturen nennen. Wenn unabhängig von der folgenden Zahl die Begriffe Cortex oder Neoverse auftauchen, handelt es sich um von Arm entworfene Mikroarchitekturen.
Zum Beispiel implementiert Cortex-A78 Erweiterungen bis einschließlich ArmV8.3. In der Wikipedia gibt es dafür eine Vorlage. - DynamIQ (früher big.LITTLE) basiert auf der Idee, in Multicore-Systemen keine homogenen, sondern heterogene Kerne einzusetzen.
Der Vorteil dieses Designs ist, dass unterschiedliche Aufgaben zu unterschiedlichen Zeiten besser erledigt werden können. Wenn Leistung gefragt ist, nutzt man stromhungrige Out-of-order-Prozessoren; um den Stromverbrauch zu senken, verwendet man langsamere In-order-Kerne.
Es ist interessant zu sehen, dass Intel mit Alder Lake etwas Ähnliches mit Performance- und Effizienz-Kernen macht. - Wenn man sich durch die Referenzhandbücher arbeitet, sieht man, dass sich verschiedene Execution States auf interessante Weise weiterentwickelt haben: A55, X1, X3 usw.
- Legacy-Begriffe
- ARM9 darf nicht mit Armv9 verwechselt werden. Es handelt sich um eine Kernfamilie, von der einige ARMv4t und andere ARMv5 implementieren.
- StrongARM ist eine ARMv4-CPU-Serie von DEC. Intel erwarb dieses IP im Rahmen einer Beilegung von Rechtsstreitigkeiten und entwarf schließlich mit XScale eine eigene ARMv5-Mikroarchitektur.
Später verkaufte Intel die PXA-SoC-Familie, die XScale nutzte, an Marvell. Man fragt sich, wie die Welt heute aussähe, wenn Intel zusammen mit Atom auf XScale gesetzt hätte — oder stattdessen daran festgehalten hätte. - ARMv4 führte den komprimierten Befehlssatz namens Thumb ein. Die Instruktionen haben eine feste Breite von 16b.
- ARMv6t2 führte Thumb2 ein und unterstützt 32b-Instruktionen sowie UAL (Unified Assembly Language) u. a.
3 Kommentare
Arm ARMwirkt eindeutig absichtlich gewählt, haha.*lol
Arm ARM wird mir sicher in Erinnerung bleiben :)