ARM Techcon 2011 ARM stellt 64-bit-Architektur vor

Mit ARMv8 hat ARM die größten Veränderungen an einer Mikroarchitektur in seiner Firmengeschichte vorgenommen. Chefarchitekt Richard Grisenthwaite stellte die 64-bit-Architektur heute erstmals der Öffentlichkeit vor.

Schon seit 2007 arbeitet ARM an ARMv8, jetzt liegt die fertige Spezifikation – zunächst nur für das Applikations-Profil – auf dem Tisch. Ziel war es, mit dem riesigen virtuellen Adressraum neue Märkte – gemeint sein dürften primär Server- und Netzwerkinfrastrukturen – zu eröffnen, die bislang von Intels x86-Architektur dominiert werden.

Laut Grisenthwaite sind wir allerdings noch Jahre von einem „Must Have“ entfernt. Es gibt zwei AArch64 und AArch32 genannte Zustände, wobei letzterer die Abwärtskompatibilität zu 32-bit-Applikationen sicherstellt. Diese können zusammen mit neuen 64-bit-Anwendungen unter einem 64-bit-Betriebssystem laufen, denkbar sind sogar mehrere 32-bit-Betriebssysteme, die unter einem 64-bit-Hypervisor laufen. Dafür gibt es vier sogenannte Exception-Ebenen (EL0 bis EL3), die ARM Anwendungen (EL0, geringste Priorität), Betriebssystemen (EL1), Hypervisor (EL2) und einem TrustZone-Monitor (EL4) zugedacht hat.

Letzterer kann das System von einem nicht vertrauenswürdigen in einem vertrauenswürdigen Kontext, in dem nur vertrauenswürdige Anwendungen und Betriebssysteme laufen können, umschalten (und natürlich auch zurück).

Die Größe jedes einzelnen virtuellen Adressraums hat ARM auf „nur“ 48 bit limitiert, da man keinen Bedarf für Systeme sieht, die mit 16 Exabytes (dies würde 64 bit entsprechen) ausgestattet sind. Die Umsetzung von virtuellen Adressen in physikalische Adressen geschieht übrigens wie bei AMRv7.

Logischerweise können Operanden neben 32 bit jetzt auch 64 bit umfassen, auch Adressangaben werden als 64-bit-Zahl angenommen. Als Datenmodelle werden LP64 (Linux) und LLP64 (Windows) unterstützt. Bei AArch64 gibt es weniger Instruktionen für bedingte Verzweigungen als bei AArch32, was der Mikroarchitektur von Hochleistungs-Prozessoren wie dem Cortex-A15 geschuldet ist, die mit dynamischer Sprungvorhersage arbeiten.

Eine wichtige Erweiterung von ARMv8 betrifft die SIMD-Instruktionen. Statt „nur“ 16 jeweils 128 bit breiten Registern gibt es jetzt 32 davon, die zudem auch als 64-bit-Register genutzt werden können. Gleitkommaoperationen werden neben einfacher Genauigkeit jetzt auch mit doppelter Genauigkeit ausgeführt, was sich gegenüber AArch32 geändert hat, ist, dass 64-bit-Werte jetzt in den unteren 64 bit eines 128-bit-Registers angenommen werden.

Neu sind auch Instruktionen für IEEE754-2008 wie MaxNum und MinNum sowie für eine IEEE754-konforme Rundung.

Auch für die Verschlüsselung von Daten gibt es zusätzliche Instruktionen, diese können und sollen aber natürlich keine Hardware-Beschleuniger ersetzen. Konkret gibt es zwei Instruktionen zum codieren und decodieren für AES, die in einem 128-SIMD-Register ausgeführt werden. Auch SHA-1 und SHA-256 werden unterstützt, hier werden Hash-Werte in zwei 128-bit-Registern berechnet.

Für die Adressberechnung und Integer-Zahlen gibt es X0 bis X30 genannte 64 bit große Allzweckregister, daneben für SIMD (64 oder 128 bit), Gleitkomma-Verarbeitung mit einfacher und doppelter Genauigkeit (32 oder 64 bit) und Verschlüsselung noch die sogenannten Media-Register V0 bis V31.

Am Ende seines Vortrags stellte Grisenthwaite klar, dass die ARMv7-Architektur noch viel Potential für zukünftige Produkte biete. ARMv8 sieht er als Investition in die Zukunft.