Arm-Architektur

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet vonARM9)
Zur Navigation springenZur Suche springen
Das Logo der Firma ARM
ARM-Prozessor vonConexant, der u. a. inRoutern verwendet wird

DieARM-Architektur ist eine ursprünglich 1983 vombritischen ComputerunternehmenAcorn entwickelteMikroprozessor-Architektur, die seit 1990 von der aus Acorn ausgelagerten FirmaARM Limited weiterentwickelt wird. ARM stand fürAcornRISC Machines,[1] später fürAdvanced RISC Machines.[2] Obwohl der Name außerhalb derIT-Fachwelt wenig bekannt ist, gehören Implementierungen dieses Typs weltweit zu den meistverbreiteten Mikroprozessoren.

Das Unternehmen ARM Limited stellt keine eigenenICs her, sondern vergibt unterschiedlicheLizenzen an Halbleiter-Entwicklungsunternehmen und Halbleiterhersteller. Dabei können die Kunden wählen zwischen Entwicklungslizenzen, die die Entwicklung eigener ICs auf Basis der ARM-Architektur ermöglichen, und dem Zukauf von sogenanntenIP-Cores, Funktionsblöcken wie CPU-Kerne derArm-Cortex-A-Reihe, GPU-Einheiten wieMali oder Bussystemen wieAMBA, die dann zu eigenenSystem-on-a-Chip-Bausteinen konfiguriert werden.

Die Vielzahl dieserLizenznehmer und verschiedene Vorteile der Architektur (z. B. geringer Energiebedarf bei hoher Leistungsfähigkeit) führten dazu, dass ARM-Implementierungen imEmbedded-Bereich die meistgenutzte Architektur sind. Fast alle derzeitigenSmartphones undTabletcomputer haben lizenzierte ARM-Prozessoren, darunter dasiPhone und die meistenAndroid-Geräte. Die ersten ARM-Prozessoren(ARMv1) aus dem Jahr 1985 hatten eine32-Bit-Architektur (ARM32), etwa 2013 erschienen dann Prozessoren mit64-Bit-Architektur (Armv8-Serie,ARM64). Die ersten 64-Bit-Systeme waren derX-Gene der Firma Applied Micro Circuits Corporation im Juni 2013[3] und im September 2013 derA7 imiPhone 5s.[4]

Inhaltsverzeichnis

Geschichte

[Bearbeiten |Quelltext bearbeiten]

Die ARM-Architektur wurde 1983 vom englischen ComputerherstellerAcorn als Entwicklungsprojekt gestartet. Das Team begann unter der Leitung vonSophie Wilson undSteve Furber die Entwicklung eines leistungsfähigenProzessors für einen Nachfolger der bis dahin auf dem6502 basierenden Computer.

Anstatt wie die Konkurrenz auf Prozessoren der UnternehmenIntel oderMotorola zurückzugreifen, entwickelte man einen eigenen Prozessor, den ARM (Acorn Risc Machine) mit 32 Bit und einer geplantenTaktfrequenz von 4 MHz. Die Tests mit den Prototypen verliefen derart erfolgreich, dass die späteren Serienprozessoren (ARM2, 1986), die in den neu entwickelten Rechnern (Acorn Archimedes) verbaut wurden, direkt mit 8 MHz getaktet wurden. Tests ergaben, dass diese Rechner bei praktisch gleicher Taktfrequenz etwa achtmal schneller waren als die Konkurrenten CommodoreAmiga undAtari ST mitMotorola-68000-Prozessor.

Nachdem der ARM2 1989 zum ARM3 (mit Cache und höherer Taktfrequenz) weiterentwickelt worden war, und immer mehr Unternehmen Interesse an diesen Prozessoren bekundet hatten, gründete Acorn im Jahre 1990 zusammen mitApple undVLSI Technology das Unternehmen Advanced RISC Machines Ltd. mit Sitz in Großbritannien, das später inARM Ltd. umbenannt wurde.

Eigenschaften

[Bearbeiten |Quelltext bearbeiten]

Die Architektur zeichnet sich durch einen effizientenBefehlssatz aus, erlaubt eine kompakteASIC-Implementierung und ist gut für Optimierungen im Bereich der Ausführungsgeschwindigkeit und der Stromaufnahme geeignet.

Eine bedeutende Implementierung ist der alsStrongARM bekannte Mikrocontroller.

Der HerstellerIntel ist neben anderen Marktteilnehmern Lizenznehmer des Unternehmens Advanced RISC Machines Ltd. und darf somit auf der ARM-Architektur basierende Prozessoren herstellen. Darüber hinaus darf Intel (neben z. B.Apple,Motorola/Freescale oderNXP), im Gegensatz zu den meisten anderen Lizenznehmern, Änderungen und Erweiterungen am ARM-Kern durchführen. So vertrieb Intel bis 2006 unter dem NamenXScale eine in Lizenz gefertigte ARM-CPU und weitere ebenfalls als XScale bezeichnete und perBus angebundene Peripherie-Halbleiter. Dazu gehören die PXA250-, PXA260- und PXA270-Prozessoren, die häufig inPDAs undSmartphones zum Einsatz kamen, vor allem fürWindows CE undPalm OS.

DieGNU Compiler Collection kann Code für ARM erzeugen und auch derXNU-Kernel (macOS/iOS),Linux-Kernel undWindows NT Kernel 6.2 laufen auf diesemCPU-Typ.

Einsatzgebiet

[Bearbeiten |Quelltext bearbeiten]

Mobilgeräte

[Bearbeiten |Quelltext bearbeiten]

Aufgrund ihrer geringenLeistungsaufnahme kommen ARM-Prozessoren vor allem ineingebetteten Systemen wieMobiltelefonen,PDAs undRoutern zum Einsatz. Besondere Bedeutung hat die Architektur beiSmartphones, da sie von allen verbreiteten mobilen Betriebssystemen unterstützt wird. Bei tragbarenSpielkonsolen besteht eine ähnliche Verbreitung. Ebenfalls findet man die CPUs in vielen stationären Geräten derUnterhaltungselektronik.

Arbeitsplatzrechner

[Bearbeiten |Quelltext bearbeiten]

Die Rechner derAcorn-Archimedes- undRisc-PC-Reihe vonAcorn verwendeten ebenfalls ARM-CPUs. Nachfolgemodelle dieser Desktop-Rechner waren unter anderem vom Unternehmen Castle Technology unter dem NamenIYONIX pc erhältlich.

Im Herbst 2020 stellteApple drei Systeme aus der Mac-Reihe vor, welche mit demApple M1 ein ARM-basiertes Ein-Chip-System (System on a Chip, SoC) als Prozessor verwenden.[5] Alle seitdem erschienenen Desktopcomputer des Herstellers basieren auf ARM-SoCs wieApple M2,M3 undM4.

Seit 2023 sind Laptops verschiedener Hersteller verfügbar, die auf der ARM-ProzessorserieSnapdragon X vonQualcomm basieren.[6] Die Geräte werden in der Regel mitWindows on ARM ausgeliefert.

IoT-Geräte

[Bearbeiten |Quelltext bearbeiten]

Auch auf demRaspberry Pi ist einEin-Chip-System vonBroadcom mit einem ARM-Mikroprozessor verbaut.

Server

[Bearbeiten |Quelltext bearbeiten]

Mit der Fertigstellung der 64-Bit-Mikroarchitektur Armv8 im Jahre 2012 waren die Voraussetzungen für einen Einsatz von ARM-Prozessoren in Serversystemen gegeben. ARM stand hier vor der Aufgabenstellung, ein komplettes Marktsegment zu definieren, da Serversysteme auch spezialisierte Betriebssysteme und Anwendungen benötigen. Unter Mitarbeit vonRed Hat und anderen Betriebssystemherstellern entstand 2016 dieServer Base System Architecture (SBSA),[7] eine Spezifikation, die alle Hardware-Schnittstellen beinhaltet, die auf einem Serversystem für das Betriebssystem benötigt werden. Daraufhin entstanden ARM-Linux-Server-Distributionen von Red Hat, SuSE und Ubuntu sowie eine Windows-ARM-Server-Variante von Microsoft, welche wiederum eine Basis von wichtigen Infrastrukturanwendungen zur Verfügung stellen. Die Arm-Architektur ist auch für dieses Marktsegment wegen ihrer geringen Leistungsaufnahme (Preis / Watt und Preis / Performance Index) interessant, weswegen ARM Serverprozessoren auch für Höchstleistungsrechner undSupercomputer bewirbt.

Mehrere Partner (Architektur-Lizenznehmer) entwickelten daraufhin ARM-Server-Prozessoren:

Im Herbst 2018 gab ARM eine eigene Roadmap über Technologien für Server-Prozessoren, genanntNeoverse, heraus.[8][9] Dies dokumentiert, dass weitere ARM-Entwicklungen und Support für die Entwicklungspartner zu erwarten sind.

Befehlssatz und Programmiermodell

[Bearbeiten |Quelltext bearbeiten]

Die ARM-CPU ist eineRISC-Architektur und kennt als solche drei Kategorien von Befehlen:

  • Befehle zum Zugriff auf den Speicher (Load/Store),
  • arithmetische oder logische Befehle für Werte in Registern,
  • Befehle zum Ändern des Programmflusses (Sprünge, Unterprogrammaufrufe).

Die ARM verwendet einenDrei-Adress-Code-Befehlssatz, alle arithmetisch-logischen Befehle akzeptieren also ein Zielregister und zwei Operandenregister.

Beispiel
ADDr0,r1,r2;r0 := r1 + r2

Die ARM ist sowohlLittle-Endian- als auchBig-Endian-kompatibel, kann also mit beiden Byte-Reihenfolgen umgehen, was angesichts des Einsatzzwecks als Standard-CPU in Kommunikationsgeräten ein deutlicher Vorteil ist. Der Standardmodus der ARM ist Little-Endian.

Daten und Code (BE32)
  • ARMv4
  • ARMv5
  • ARMv6
Nur Daten (BE8)
  • ARMv6
  • ARMv7
  • ARMv8

Registersatz

[Bearbeiten |Quelltext bearbeiten]

Wie viele RISC-CPUs bietet ARM eine große Anzahl von Registern: Dem Programmierer stehen 13 Universal-Register zur Verfügungr0...r12. Drei zusätzliche Registerr13...r15 sind wie Universal-Register adressierbar, haben aber spezifische Bedeutungen. Diese sind einStackpointerr13, ein „Link-Register“r14, das die Rücksprungadresse bei Prozeduraufrufen (mitBL „branch with link“) enthält, die später zurück in denProgrammzähler geschrieben wird, sowie der Programmzähler (Program-Counter, PC) selbstr15. Zusätzlich zu diesen direkt veränderbaren Registern gibt es das Status-Register (CPSR, Current-Program-Status-Register), das die Statusbits und andere Informationen, wie z. B. den momentanen Ausführungsmodus, enthält.

Ausführungsmodi

[Bearbeiten |Quelltext bearbeiten]

Die ARM kennt mehrere Ausführungsmodi, die über bestimmte Ereignisse betreten werden und teilweise dem ausgeführten Code zusätzliche Privilegien einräumen. Im Einzelnen sind das:

  • User-Mode: normaler User-Code
  • Supervisor-Mode (SVC): privilegierte Betriebssystem-Tasks, Eintritt z. B. durch Aufruf eines Software-Interrupts (SWI)
  • Hypervisor-Mode (HYP): privilegierte Tasks zur Erfüllung von Hypervisor-Funktionen[10]
  • Interrupt-Mode (IRQ): Eintritt durch Auftreten eines äußeren Interrupt-Requests während der Befehlsverarbeitung
  • Fast-Interrupt-Mode (FIQ): Eintritt durch Auftreten eines äußeren Fast-Interrupt-Requests. Fast-Interrupts werden meist nur für besonders zeitkritische Ereignisse benutzt (sieheEchtzeitsysteme).
  • Memory-Abort (ABT): tritt auf, wenn eine Datenanforderung nicht erfüllt werden kann.
  • Undefined-Instruction-Exception (UND): Eintritt durch Auftreten einer unbekannten Instruktion. Wird z. B. zur Emulation einesGleitkomma-Coprozessors verwendet.

r13,r14 und das Statusregister werden für die Interrupt- und Exception-Modi gespiegelt (sogenannte Schattenregister), so dass Ausnahmebehandlungsroutinen sich nicht um die Sicherung des User-Stackpointers oder Link-Registers zu kümmern brauchen. Für die Fast Interrupts werden zusätzlichr8...r12 gespiegelt und stehen so dem Programmierer einer Interrupt-Service-Routine direkt zur Verfügung, ohne dass er den Inhalt dieser Register vorher sichern müsste.

Befehlsbreite und Adressierungsarten

[Bearbeiten |Quelltext bearbeiten]

Der Load/Store-Befehl des ARM unterstützt die üblichen Adressierungsmodi. Bei der unmittelbaren Adressierung und der absoluten Adressierung gibt es jedoch einige Einschränkungen, die im Folgenden näher erklärt werden sollen:

Sämtliche Befehle im ARM-Befehlssatz sind 32 Bit lang. Dies bedeutet auf der einen Seite, dass jede Instruktion mit einem Speicherzugriff geladen werden kann, wodurch sich die Architektur der Pipeline und die Instruction Fetch-Unit vereinfachen. Auf der anderen Seite können 32-Bit-Adressen oder 32-Bit-Werte nicht in einem 32 Bit breiten Befehl angegeben werden, da dann kein Platz mehr für den eigentlichen Befehlscode bleibt. Stattdessen hilft man sich folgendermaßen:

  • Es können keine beliebigen 32-Bit-Werte direkt im Befehl codiert werden. Stattdessen werden für Direktwerte 8 Mantissen-Bits und 4 Shift-Bits angegeben, wobei der tatsächliche Shift-Wert der doppelte gespeicherte Wert ist, es können also Bitverschiebungen um 0, 2, 4, 6, 8, …, 26, 28 und 30 Stellen erfolgen. Dabei werden die Bits, die aus dem Register hinausgeschoben werden, auf der anderen Seite wieder hineingeschoben. Wird diese Technik z. B. auf den Wert 255 in den Mantissen-Bits angewendet, können die hexadezimalen Werte000000FF,000003FC,00000FF0,00003FC0, …0FF00000,3FC00000,FF000000,FC000003,F000000F undC000003F direkt kodiert werden.
  • Andere Werte können durch Kombination von arithmetischen Operationen (z. B. Addition, Subtraktion) erzeugt werden.
  • Alternativ können Werte auch im Speicher gehalten und vor dem eigentlichen Befehl in ein Register geladen werden.
  • Der (relative) Sprungbefehl enthält einen 24-Bit-Offset, so dass im Bereich von ±32 MiB von der aktuellen Stelle im Programm aus gesprungen werden kann (wobei der Programmzähler der aktuellen Instruktion um 8 Byte vorauseilt). Zusätzlich kann optional der aktuelle Programmzähler ins Link-Register kopiert werden (falls L-Bit gesetzt), damit wird aus dem Sprung ein Unterprogrammaufruf (die aufgerufene Funktion kann den Programmzähler vom Link-Register einfach mitMOV PC,LR ins Programmzähler-Register zurückkopieren, um wieder ins aufrufende Programm zurückzukehren).
  • Bei den Load/Store-Befehlen kann ein 12-Bit-Offset auf eine Basisadresse addiert werden, die aus einem Register gelesen wird. Wird der Programmzähler als Basisregister verwendet, kann so ein Wert innerhalb von 4 KiB ab der aktuellen Stelle des Programms geladen werden. Damit lässt sich z. B. ein Sprung an eine beliebige 32-Bit-Adresse ausführen, indem die absolute Sprungadresse hinter dem Ladebefehl gespeichert wird und dann durch eine PC-relativen Ladebefehl mit Ziel Program-CounterLDR PC,[PC,#-4] angesprungen wird.
  • Alle Speicherstellen, die außerhalb der 4 KiB um die aktuelle Stelle im Programm liegen, können nur geladen werden, indem zuerst ihre Adresse in ein Register geladen wird und dieses in nachfolgenden Zugriffen als Basisregister verwendet wird.

Besonderheiten des Befehlssatzes

[Bearbeiten |Quelltext bearbeiten]

Der ARM-Befehlssatz enthält einige Besonderheiten, die zur Effizienz der Architektur beitragen:

  • Praktisch alle Befehle können bedingt ausgeführt werden („conditional execution“). Damit entfällt in vielen Standardsituationen die Notwendigkeit für Programmsprünge, z. B. in vielen If/Else-Abfragen (man vermeidet Programmsprünge, weil diese diePipeline des Prozessors leeren, und dadurch Wartezyklen entstehen). Zum Kodieren der Bedingung werden die ersten 4 Bits eines jeden Befehles im Maschinencode bzw. ein Suffix imMnemonic verwendet.
Beispiel
CMPr0,r1;(setzt Bedingungsbits)            ; "CMP" bedeutet:   "CoMPare"ADDGEr2,r2,r3;if r0 >= r1 then r2 := r2 + r3    ; "ADDGE" bedeutet: "ADD if Greater or Equal"ADDLTr2,r2,r4;            else r2 := r2 + r4    ; "ADDLT" bedeutet: "ADD if Less Than"
  • Der Bedingungs-Code1111 stand zu Beginn für die ConditionNV (never), diese Befehle werden also nie ausgeführt. Diese Opcodes werden in neueren CPUs für spezielle Befehle wiePLD undBLX verwendet (die dann nicht mehr bedingt ausgeführt werden können), von der Benutzung beliebiger Opcodes mit KonditionNV für NOPs wird daher abgeraten („deprecated“).
  • Wahlweise können die Statusbits als Folge des Befehls aktualisiert werden. Dies wird durch das SuffixS im Assemblercode gekennzeichnet und kann mit der bedingten Ausführung kombiniert werden.
Beispiel
CMPr0,r1;(setzt Bedingungsbits)ADDGESr2,r4,r5;if r0 >= r1 then r2 := r4 + r5BCSoverflow;verzweige bei Überlauf der Addition
  • Die ARM verfügt über einenBarrel-Shifter im B-Pfad der ALU; sämtliche Befehle, die mit dem zweiten Operanden arbeiten, erlauben die Angabe eines 4-bit breiten Shift- oder Roll-Faktors.
Beispiel
ADDr2,r3,r3,lsl#2;r2 := r3 + (r3 << 2);   := r3 + 4*r3;   := 5*r3
  • Neuere ARM-CPUs kennenSIMD-Befehle.

Thumb-Befehlssatz

[Bearbeiten |Quelltext bearbeiten]

Um die Code-Dichte zu erhöhen, also den Speicherbedarf für eine bestimmte Funktion zu verringern, hat ARM Ltd. den Thumb-Befehlssatz entwickelt, der nur aus 16 Bit breiten Befehlen besteht. Obwohl man oft mehrAssembler-Befehle benötigt, um ein Programm zu schreiben, wird die Code-Größe in der Praxis um etwa 30 bis 40 Prozent reduziert. Aus 16-Bit-Speicherbausteinen werden Befehle in nur einem Speicherzyklus geladen, aus 32-Bit-Speicherbausteinen lädt ein ARM-Prozessor stets zwei Thumb-Instruktionen auf einmal.

Die geringere Programmgröße wird allerdings oft durch eine geringere Ausführungsgeschwindigkeit erkauft. Zum einen sind viele Thumb-Befehle weniger leistungsfähig als die entsprechenden ARM-Befehle (und es werden mehr Thumb-Anweisungen benötigt), zum anderen gibt es in diesem 16-Bit-Befehlssatz keine bedingte Befehlsausführung außer den bedingten Sprüngen. Daher treten mehr Programmsprünge auf, und die Pipeline wird öfter entleert. Zumindest wenn der Speicher mit 32 Bit angesprochen wird, ist der 16-Bit-Befehlssatz schon deshalb oft langsamer als der ARM-Befehlssatz. Der HerstellerNXP gibt in den Datenblättern seiner LPC2000-Controller einen Geschwindigkeitsverlust von 30 Prozent an.

ARM- und Thumbcode können miteinander vermischt werden. Häufig ist in großen Teilen eines Programmes die Ausführungsgeschwindigkeit sekundär. Es bietet sich an, für diese Programmteile Thumb-Anweisungen zu verwenden, aber die kritischen Bereiche mit ARM-Anweisungen zu implementieren. Diese Technik nennt sichThumb Interworking. Für diverse Hochsprachen Compiler gibt es dafür entsprechendeFunction Attributes. BeimGCC C Compiler ist dies bspw.__attribute__((thumb)) und__attribute__((arm)) um den Compiler anzuweisen, eine Funktion als ARM oder Thumbcode zu compilieren.[11]

MitARMv6 wurde der Thumb-Befehlssatz auf 32-Bit-Code erweitert undThumb-2 genannt. Mit Thumb-2 kann 16-Bit- und 32-Bit-Code frei vermischt werden.[12]

Thumb ist nur auf der klassischen 32-Bit-ARM-Architektur (retronym A32 bzw. AArch32 bezeichnet) verfügbar, es wurde nicht auf ARM64 (bzw. AArch64) übernommen.[13]

Coprozessor-Befehle

[Bearbeiten |Quelltext bearbeiten]

Der ARM ist als Mikroprozessor-Kern in eingebetteten Systemen gedacht, in denen meist keineGleitkomma-Arithmetik benötigt wird. Der ARM wurde jedoch speziell im Hinblick auf Erweiterbarkeit um Coprozessoren entwickelt und besitzt ein eigenes Coprozessor-Interface und Befehle für optionale Coprozessoren.

Multi-Kern CPUs

[Bearbeiten |Quelltext bearbeiten]

Big.LITTLE-Konzept

[Bearbeiten |Quelltext bearbeiten]

Zusammen mit demCortex-A7 hat ARM das Big.LITTLE-Konzept eingeführt, das dazu dient, die mit 3,5 DMIPS/MHz hohe Rechenleistung des Cortex-A15[14] mit der niedrigen Energieaufnahme des Cortex-A7 zu verbinden. Dabei werden beide Cores in Form von Clustern mit jeweils zwei bis vier Kernen auf einemSoC zusammengefasst. Da der Cortex-A7 aus Software-Sicht wie ein Cortex-A15 aussieht, wird der Cortex-A15-Cluster bei Aufgaben, die nicht die volle Rechenleistung benötigen, abgeschaltet und die weiteren Berechnungen durch den Cortex-A7 durchgeführt. Wenn mehr Rechenleistung benötigt wird, wird der Cortex-A15-Cluster wieder eingeschaltet und der Cortex-A7-Cluster stillgelegt.[15]

Nach Erscheinen der 64-Bit-CPUsCortex-A53 und A57 wurde das Big.LITTLE-Konzept auch auf diese übertragen. Gleichzeitig wurde es dahingehend erweitert, dass Tasks jetzt nicht nur clusterweise, sondern individuell von einer beliebigen CPU auf jede beliebige andere übertragen werden können.[16]

Das Konzept leidet jedoch an einigen Schwächen, so z. B. bei sprunghaften Laständerungen, die in hohen Latenzzeiten münden, oder durch fehlende Berücksichtigung des realen Energieverbrauchs der einzelnen CPUs.[16]

DynamIQ

[Bearbeiten |Quelltext bearbeiten]

2017 führte Arm DynamIQ ein; eine DynamIQ Shared Unit (DSU) verwaltet mehrere CPU-Cores in einem Cluster mit gemeinsamem L3-Cache und gemeinsamer Anbindung nach außen.[17][18] Arm erweiterte dabei das Big.LITTLE-Konzept in mehreren Punkten:

  • in DynamIQ können bis zu 6 Cluster unterschiedlicher oder gleicher CPU-Kerne zusammenarbeiten, es können beliebige „Mischungen“ angebunden werden
  • in einem Cluster können bis zu 8 CPU-Kerne enthalten sein, denen je Cluster ein gemeinsamer L3-Cache zur Verfügung steht
  • die Kerne sind mit geringerer Latenz an denCoreLink genannten Cache Coherent Interconnect (CCI) angekoppelt, alle Cluster können auf den Level-3-Cache zugreifen, Tasks können damit gleichzeitig auf mehrere Cluster verteilt werden.
  • Bis zu 24 Kerne können angeschlossen werden
  • Das Memoryinterface kann über 1 oder 2 je 128- oder 256-bit breite AMBA ACE oder AMBA CHI Ports angebunden werden
  • Bis zu 6 Hauptspeicherkanäle können angebunden werden
  • Die Clusterund einzelne Kerne können mit unterschiedlichen Frequenzen und Spannung betrieben werden, was zu einer höheren Energieeffizienz führt
  • neben Cortex-A-CPU-Kernen können auch andere „Beschleuniger“ angebunden werden

2021 stellte Arm zusammen mit den ersten ARMv9-CPU-Cores Cortex-A510, -A710 und -X2 eine neue DynamIQ Shared Unit vor,DSU-110 genannt:[19][20]

  • Organisation in zwei bi-direktionale Ringe mit je vier Knoten
  • Der L3 ist in bis zu 8 Slices aufgeteilt, auf die parallel zugegriffen werden kann; Arm verspricht eine bis zu fünffache Bandbreite
  • Es können nun bis zu 16 MB gemeinsame L3 verwaltet werden
  • Unterstützung von Memory Tagged Extensions (MTE)
  • Der ebenfalls neue CoreLink CI-700 kann nun über 1, 2 oder 4 je 256-bit breite AMBA CHI Ports angebunden werden

Die DynamIQ-CCI-Einheiten werden für SoCs ausschließlich zusammen mit den Arm-eigenen 64-Bit-Kernen A55 und A510, A75 bis A710 und X1/X2 angeboten.

Server Interconnect

[Bearbeiten |Quelltext bearbeiten]

2014 stellte Arm eine Familie von Systemlösungen für Server-CPUs vor, dieCCN-500 Interconnect Serie, die je nach Modell zwischen 4 und 12 Cluster mit je 4 CPU-Kernen in einem koherenten Netzwerk vereinen konnte; es waren 2 bis 4 Speicherkanäle möglich, der gemeinsame L3-Cache umfasste bis zu 8 bzw. bis zu 32 MB.[21]

2016 stellte Arm den Nachfolger, denCMN-600 Interconnect vor, der bis zu 32 Cluster mit je 4 CPU-Kernen in einem koherenten Mesh-Netzwerk mit 64 (8 × 8) Knoten vereinen kann. Es sind bis zu 8 Speicherkanäle und 4 CCIX-Ports (seit Revision 2) möglich und der gemeinsame L3-Cache kann bis zu 128 MB umfassen.[22]

2021 wurde von Arm der InterconnectCMN-700 vorgestellt. In einem kohärenten Mesh-Netzwerk mit 144 (12 × 12) Knoten können nun 256 CPU-Cores, 40 Speichercontroller (DRAM, HBM) und 32 CCIX-Ports eingebunden werden und der gemeinsame L3-Cache kann bis zu 512 MB umfassen.[23]

Versionen

[Bearbeiten |Quelltext bearbeiten]
ARM 1 CPU in einem Acorn ARM Evaluation System
Die eines ARM610 Mikroprozessors.

Die Architektur von ARM-Prozessoren erfuhr seit 1985 zahlreiche Veränderungen, zum Beispiel bei der Zahl der Register, der Größe des Adressraumes und dem Umfang des Befehlssatzes. Sie wird daher in Versionen unterteilt, abgekürzt mit ARMv[Versionsnummer]. Beginnend mit ARMv2 wurden die Architekturversionen in mehr als nur einem Prozessor implementiert.

Seit dem ARMv6 werden die sogenanntenCortex-Architekturen speziell für besondere Anwendungen entwickelt:

  • Cortex A steht fürApplication (betriebssystembasierte Anwendungen),
  • Cortex M steht fürMicrocontroller (Cores für Mikrocontroller), und
  • Cortex R steht fürRealtime (Echtzeitanwendungen).

Seit 2018 bietet ARM dieNeoverse-Familie für Serverlösungen an. 2020 wurde die Cortex-A-Familie um Cortex X erweitert. Diese Cores wurden auf Leistung optimiert.

Übersicht

[Bearbeiten |Quelltext bearbeiten]
Gene-
ration
Architektur / Familie(n)Release-
Jahr
üblicher CPU-
Takt (MHz)
Befehlsdurchsatz
(DMIPS/MHz)
Architektur
ARMv1ARM11985000432-bit[24]
ARMv2ARM2, ARM31986, 19890008...250,532-bit
ARMv3ARM6, ARM71991, 19930012...400,8932-bit
ARMv4ARM7TDMI, ARM8,
StrongARM
ARM9TDMI
1995,
1997
0016,8...75
0203...206
0180
0,932-bit
ARMv5ARM7EJ, ARM9E, ARM10E
20020104...369
0133...1250
1,2532-bit
ARMv6ARM11 (1176, 11 MPCore, 1136, 1156)
Arm Cortex-M (M0, M0+, M1)
2002
?
0427.[25]..1000+[26]
bis 200[27]
0,60.[25].1,54[28]
0,84[0]...0,94[29]
32-bit
Armv7Arm Cortex-A (A8, A9, A5, A15, A7, A12, A17)
Arm Cortex-M (M3,M4, M7)
Arm Cortex-R (R4, R5, R7, R8)
2004
2005
2011
bis 2500.[30]
?
?
1,58.[31] 3,5[32]
1,25[00]...2,14[29]
?
32-bit
Armv8Arm Cortex-A (A32, A53, A57, A72, A35, A73, A55, A75, A76, A77, A78, X1)[33]
Arm Cortex-M (M23, M33)
Arm Cortex-R (R52)
Arm Neoverse (E1, N1, V1)
2012–2020
?
2016
2018–2021
1200...3000.[34]
?
?
...3300
2,3.[35] 4,1[36]
?
?
?
64-bit / 32-bit
ARMv9Arm Cortex-A (A510, A710, X2)
Arm Neoverse (N2)
2021
2021
64-bit / 32-bit

ARMv1 (1985)

[Bearbeiten |Quelltext bearbeiten]

Die ersten Versionen eines ARM-Prozessors (ARMv1) wurden 1985 als Zweitprozessor imARM Development System für denBBC Master eingesetzt.

ARMv2 (1986)

[Bearbeiten |Quelltext bearbeiten]

Die ARMv2-Architektur umfasst zwei Familien: ARM2 und ARM3.

Der ARM2 ist ein von dem englischen UnternehmenAcorn Computers Ltd. entwickelter32-Bit-RISC-Prozessor. Dieser wurde 1986 veröffentlicht und ab 1987 imAcorn Archimedes eingesetzt. Beim Standardtakt von 8 MHz wurden für damalige Verhältnisse unglaubliche 4 MIPS erreicht. 1991 erschien der ARM250, der ebenfalls auf dem ARM2 basierte, aber nun mit 12 MHz getaktet war und 7 MIPS erreichte. Außerdem wurden eineMMU-Einheit sowie ein Grafik- und IO-Prozessor integriert. Eingesetzt wurde diese CPU nur in den Archimedes-Modellen A3010, A3020 und A4000.

Der ARM3 ist ebenfalls ein 32-Bit-RISC-Prozessor, der von Acorn Computers Ltd. entwickelt wurde. Er wurde 1989 veröffentlicht und in den Archimedes-Modellen A540, A5000 und A4 eingesetzt. Bei diesem Prozessor hat Acorn erstmals einenCache mit 4 KiB integriert. Mit einer Taktfrequenz von 25 MHz erreicht der ARM3 12 MIPS.

ARMv3 (1991)

[Bearbeiten |Quelltext bearbeiten]

Der ARM6 ist ein von der mittlerweile gegründetenARM Limited 1991 veröffentlichter32-BitRISC-Prozessor, der als CPU beispielsweise imApple Newton oder AcornsRisc PC eingesetzt wurde. Der CPU-Takt betrug 12–33 MHz.

ARMv4 (1993)

[Bearbeiten |Quelltext bearbeiten]
32-bit ARM 60 RISC in einer3DO-Spielkonsole FZ-10 (1993)

Der ARM7TDMI war das Low-End-Modell der ARM-Familie und wurde vor allem als Komponente inSoCs für Mobiltelefone und andere portable Kommunikations- oder Multimediageräte verwendet, darunter derGame Boy Advance,Nintendo DS (als Subprozessor) undNintendo 3DS (ebenso als Subprozessor). Die Kürzel im Modellnamen stehen fürThumb Instruction Set (Programmspeichersparender 16-Bit-Modus des 32-Bit-Kernes),Debug Port, 64-Bit-ResultMultiplier und EmbeddedICE Modul.

Der ARM7TDMI hat eine dreistufigePipeline und einen gemeinsamen Bus für Instruktionen und Daten.

Der gemeinsam mitDEC entwickelteARM StrongARM war die erste Abspaltung der Arm-Architektur, die 1995 alsSA-110 imNewton 2000 durch einen Stromsparmodus für lange Akkulaufzeiten sorgte. Der Nachfolger SA-1100 (1997) war mit einer LCD-Schnittstelle, einer MCP-Audio/Touchscreen-Schnittstelle, PCMCIA-Unterstützung, IrDA, USB und DMA-Controller eines der erstenSystem-on-a-Chip.

ARMv5TE (1997)

[Bearbeiten |Quelltext bearbeiten]

Die Architekturversion 5TE wurde von ARM in den Prozessormodellen ARM7EJ, ARM9E und ARM10E implementiert. ARM9 ist eine Weiterentwicklung der StrongARM- und ARM8-Prozessoren. Der wesentliche Unterschied des ARM9 gegenüber dem ARM7 ist je ein getrennter Bus für Instruktionen und Daten (Harvard-Architektur). Meist werden diese an separateCaches für Daten und Instruktionen angeschlossen. Außerdem hat der ARM9 eine fünfstufige Pipeline und kann so höhere Taktraten erreichen und weist bessere CPI-Werte (Cycles per Instruction) auf. Wird der ARM9 ohne Caches an einem externen Speicher mit nur einem Datenbus betrieben, schrumpft der Geschwindigkeitsvorteil gegenüber der ARM7-Architektur wegen häufiger Pipeline-Stalls mit einer höheren Latenz durch die längere Pipeline. Ohne Cache kann in einem solchen ungünstigen Szenario ein ARM7 aufgrund seiner kürzeren Pipeline trotz eines deutlich niedrigeren Taktes schneller sein. Allerdings sollte dieser Fall in realen Systemen nicht auftreten, da ein ARM9 teurer ist und nur wegen seiner besseren Performance ausgewählt wird. Kommt es eher auf die Kosten an, so spart man sinnvollerweise nicht am Cache, sondern verwendet einen ARM7.

Intel stellte ab dem Jahr 2002 auf Basis der ARMv5TE die Prozessoren derXScale-Reihe (802xx, PXA25x, XA263, PXA26x, PXA27x, PXA3xx) vor, die mit einer Taktfrequenz bis zu 1250 MHz in viele mobile Geräte (Palm Tungsten, SonyClié) Eingang fanden. 2006 wurde die XScale-Entwicklung an dieMarvell Technology Group verkauft. Im Juni 2008 stellte Marvell den auf Basis der ARMv5TE entwickeltenSheeva-Mikroprozessor vor. Dieser ist als Hauptprozessor für die Integration in die hauseigenenEin-Chip-Systeme vorgesehen.[37] Ein von Marvell entwickeltes SoC mitSheeva-CPU bildet die Basis für den ersten zur Marktreife gebrachten „Plug Computer“. Der sogenannteSheevaPlug wurde im Jahr 2009 vorgestellt.

ARMv6 (2002)

[Bearbeiten |Quelltext bearbeiten]

Mit ARMv6, angekündigt im Oktober 2001, kamen SIMD-Befehle hinzu, Multiprozessorunterstützung und eine neue Cache-Architektur. Implementierungen dieser Architekturversion sind die ARM11-Familie, die sich auch durch eine verbesserte Pipeline von den Familien ARM9 und ARM10 absetzte, und die kleineren Prozessorkerne für MikrocontrollerArm Cortex-M0, Arm Cortex-M0+ und Arm Cortex-M1.

Mit ARMv6 wurde auch der Thumb-Befehlssatz auf 32-Bit erweitert. Diese nunThumb-2 genannte Erweiterung erlaubt die freie Verwendung von 16-Bit- und 32-Bit-Instruktionen im Code und ist auf 32-Bit-ARM (retronym AArch32) seit ARMv6T2 verfügbar, allerdings ist beim ARMv6-M nur ein eingeschränkter 32-Bit-Befehlssatz in Thumb-2 implementiert.[12]

ARM11-Kerne – der erste, ARM1136, wurde Lizenznehmern im Oktober 2002 angeboten – wurden in Smartphones verbaut, unter anderem von Apple und Nokia.

Armv7 (2004)

[Bearbeiten |Quelltext bearbeiten]
ARMv7-A: Nvidia T30L

Es wird eineSIMD-Einheit eingeführt, die mit 32 Registern von 128 Bit Breite arbeitet, genanntNEON, primär für Multimediaverarbeitung gedacht, die aber wie konkurrierende SIMD-Einheiten (AltiVec/VSX in der POWER-Architektur oderSSE/AVX in der Intel-Architektur) vielfältige Arithmetik und Vektorbefehle ausführen kann.

Ab der Armv7-Architektur werden die sie implementierenden Prozessorkerne drei Anwendungsfeldern zugeteilt:

  • Arm Cortex-M: Der BuchstabeM steht für die BezeichnungenglischMicrocontroller (dt.Mikrocontrolleranwendungen). Typische Anwendung in nicht zeitkritischen steuer- und regeltechnischen Aufgaben. Cortex-M Mikrocontroller sind von vielen Herstellern verfügbar und zeichnen sich durch ein umfangreiches Angebot an Ein- und Ausgabeschnittstellen aus.

Spätere ARMv7-Kerne, etwaCortex-A15 undCortex-A7, bieten zusätzlich zur klassischen 32-Bit-MMU mit 2Seitentabellen eine neue „Extended VMSAv7 MMU“ mitLarge Physical Address Extensions (LPAE). Damit arbeitet die MMU mit drei Seitentabellen, um mit normalerweise 40 Bits bis zu 1 TB Speicher adressieren zu können.[38][39]

Armv8-A (2011)

[Bearbeiten |Quelltext bearbeiten]
HiSilicon Hi6250

Die achte Version der Arm-Architektur wurde im Oktober 2011 vorgestellt. Mit Armv8-A wurde erstmals von ARM eine64-Bit-Architektur für die Datenverarbeitung und Speicheradressierung realisiert. Die Kompatibilität zur vorhandenen 32-Bit-Software sollte dabei aufrechterhalten werden. Armv8 ist abwärtskompatibel bis hin zu ARMv5. Es existieren zwei unabhängige Ausführungsmodi:AArch32 für die Verarbeitung von 32-Bit-Software undAArch64 für die Verarbeitung von 64-Bit-Software. Im AArch64-Modus kommt ein neuer Befehlssatz – A64 genannt – zum Einsatz, während der AArch32-Modus den herkömmlichen ARM-Befehlssatz unterstützt.[40][41] Mit ARMv8-A machte ARM VFPv3/v4 und SIMD (NEON) obligatorisch und ergänzte Kryptographie-Instruktionen für AES und SHA-1/SHA-256.

Im Oktober 2012 stellte ARM mit dem Cortex-A53 und Cortex-A57 die ersten Prozessoren vor, die Armv8 implementieren.[42] Die erste Fremdimplementierung vom Armv8 erfolgte für die CPU-Kerne desX-Gene-SoC der Firma Applied Micro Circuits Corporation (AMCC).X-Gene wurde im Juni 2013 vorgestellt und wird vom Hersteller als „Server-on-a-Chip“-Lösung vermarktet.[3] Das erste Mobilgerät mit einem auf Armv8-basierenden SoC ist das im September 2013 vorgestellteiPhone 5s. Das verbaute SoC integriert zwei von Apple entworfene CPU-Kerne namensCyclone.[4] Qualcomm entwickelte auf der Grundlage von Armv8 die CPU-ArchitekturKryo. Ein SoC mit solchen CPU-Kernen wurden erstmals 2015 vorgestellt. Qualcomm verspricht fürKryo eine höhere Leistung und Energieeffizienz gegenüber dem Arm Cortex-A57.[43]

ARM entwickelte mehrere Erweiterungen für Armv8-A: Armv8.1-A (Dezember 2014),[44] Armv8.2-A (Januar 2016),[45] Armv8.3-A (Oktober 2016),[46] Armv8.4-A (November 2017),[47] Armv8.5-A (September 2018),[48] Armv8.6-A (August 2019)[49] und Armv8.7-A (Dezember 2020).[50]

Armv9-A (2021)

[Bearbeiten |Quelltext bearbeiten]

Die neunte Version der Arm-Architektur wurde im März 2021 vorgestellt. Mit Armv9-A setzt Arm auf der Basis von Armv8.5-A auf, die Erweiterungen für Memory Tagging (MTE) und Transactional Memory (TME) werden Pflicht, ebenso Scalable Vector in der Version 2 (SVE2) bei Erhalt der Kompatibilität zu NEON. Neu ist auch das Sicherheitskonzept Realms. Die Kompatibilität zur vorhandenen AArch32-Software wurde auf Applikationsebene beschränkt (EL0) und ist nur noch optional. So wie Armv9-A eine volle Implementierung von Armv8.5-A voraussetzt, wird Armv9.1-A nach einer vollen Implementierung von Armv8.6-A und Armv9.2-A nach einer von Armv8.7-A verlangen.[51][52]

Erweiterungen für ARM-Kerne

[Bearbeiten |Quelltext bearbeiten]

ARM Ltd. verkauft neben den ARM-CPU-Kernen auch Erweiterungen als synthetisierbare Makrozellen für denSoC-Entwurf, unter anderemMemory Management Units,Floating-Point-Coprozessoren sowieSignalprozessor-Erweiterungen (Piccolo).

Lizenznehmer

[Bearbeiten |Quelltext bearbeiten]

Folgende Unternehmen haben die Arm-Architektur vonARM Ltd. lizenziert:

Siehe auch

[Bearbeiten |Quelltext bearbeiten]

Literatur

[Bearbeiten |Quelltext bearbeiten]
  • Steve Furber:ARM System-on-Chip Architecture. Addison-Wesley, New York 2000,ISBN 0-201-67519-6. 

Weblinks

[Bearbeiten |Quelltext bearbeiten]
Commons: ARM microprocessors – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise

[Bearbeiten |Quelltext bearbeiten]
  1. Dan Grabham published: From a small Acorn to 37 billion chips: ARM's ascent to tech superpower. 19. Juli 2013, abgerufen am 23. Januar 2025 (englisch). 
  2. BBC Acorn User Januar 1991,Apple embraces Acorn with 'open' ARM (Textarchiv – Internet Archive).
  3. abCharlie Demerjian: AMCC X-Gene 64-bit silicon spotted in the wild. SemiAccurate, abgerufen am 14. Juni 2013. 
  4. abAnand Lal Shimpi: Apple Announces A7, World's First 64-bit Smartphone SoC. Abgerufen am 23. Januar 2025. 
  5. heise online: Apple M1 in ARM-Macs: weitere technische Details und erste Benchmarks analysiert. Abgerufen am 17. November 2020. 
  6. Andrew Cunningham: Qualcomm will try to have its Apple Silicon moment in PCs with “Snapdragon X”. 11. Oktober 2023, abgerufen am 8. März 2025 (amerikanisches Englisch). 
  7. infocenter.arm.com
  8. anandtech.com
  9. nextplatform.com
  10. ARM Information Center. Abgerufen am 1. März 2018. 
  11. ARM Function Attributes (Using the GNU Compiler Collection (GCC)). Abgerufen am 23. Januar 2025. 
  12. abThumb-2 technology. In: Arm Developer. Arm Limited, abgerufen am 5. November 2022 (englisch). 
  13. Raymond Chen: The AArch64 processor (aka arm64), part 1: Introduction. (Blog) In: The Old New Thing (DevBlog). Microsoft, 26. Juli 2022, abgerufen am 5. November 2022 (englisch): „The 64-bit version of the ARM architecture is formally known as AArch64. It is the 64-bit version of classic 32-bit ARM, which has been retroactively renamed AArch32. Even though the architecture formally goes by the name AArch64, many people (including Windows) call it arm64. Even more confusing, the instruction set is called A64. (The 32-bit ARM instruction sets have also been retroactively renamed: Classic ARM is now called A32, and Thumb-2 is now called T32.) … No more Thumb mode – AArch64 is an extension of the classic ARM instruction set, not an extension of Thumb-2.“ 
  14. Frank Riemenschneider: Cortex-A15 zielt auf Kommunikations- und Server-Markt. In: elektroniknet.de. 10. März 2011, archiviert vom Original (nicht mehr online verfügbar) am 9. Mai 2015; abgerufen am 8. August 2013. 
  15. Frank Riemenschneider: ARM paart Cortex-A7 und Cortex-A15. In: elektroniknet.de. 13. Juni 2012, archiviert vom Original (nicht mehr online verfügbar) am 23. September 2015; abgerufen am 8. August 2013. 
  16. abFrank Riemenschneider: Qualcomms Snapdragon-810 trotz ARM besser als ARM. In: elektroniknet.de. Archiviert vom Original (nicht mehr online verfügbar) am 23. September 2015; abgerufen am 3. März 2015. 
  17. Matt Humrick: Exploring DynamIQ and ARM’s New CPUs: Cortex-A75, Cortex-A55. Abgerufen am 21. Dezember 2022. 
  18. Documentation – Arm Developer. Abgerufen am 21. Dezember 2022. 
  19. Andrei Frumusanu: Arm Announces Mobile Armv9 CPU Microarchitectures: Cortex-X2, Cortex-A710 & Cortex-A510. Abgerufen am 21. Dezember 2022. 
  20. Documentation – Arm Developer. Abgerufen am 21. Dezember 2022. 
  21. ARM intros two new CCN ‘uncore’ products for data center SoCs. Abgerufen am 21. Dezember 2022. 
  22. Johan De Gelas: New ARM IP Launched: CMN-600 Interconnect for 128 Cores and DMC-620, an 8Ch DDR4 IMC. Abgerufen am 21. Dezember 2022. 
  23. Andrei Frumusanu: Arm Announces Neoverse V1, N2 Platforms & CPUs, CMN-700 Mesh: More Performance, More Cores, More Flexibility. Abgerufen am 21. Dezember 2022. 
  24. 26-bitAdressraum
  25. abArm Ltd: Microprocessor Cores and Processor Technology. Abgerufen am 23. Januar 2025 (englisch). 
  26. Processors. Abgerufen am 23. Januar 2025. 
  27. Arm Ltd: Microprocessor Cores and Processor Technology. Abgerufen am 23. Januar 2025 (englisch). 
  28. ARM:ARM 1156 Processor
  29. abStephen Barrett: Cortex-M7 Launches: Embedded, IoT and Wearables. Abgerufen am 23. Januar 2025. 
  30. Preetam: MediaTek To Announce 2.5 GHz Octa-Core MT6595 Chipset, Scores 43,000 in AnTuTu. In: NEXTPOWERUP. 14. Juli 2014, archiviert vom Original (nicht mehr online verfügbar) am 8. September 2015; abgerufen am 28. August 2015 (englisch). 
  31. Atmel:SMART SAMA5 ARM Cortex-A5 MPUs
  32. Videos | TI.com. Abgerufen am 23. Januar 2025 (amerikanisches Englisch). 
  33. ARM Launches Cortex-A50 Series, the World’s Most Energy-Efficient 64-bit Processors. In: ARM Ltd. Newsroom. 30. Oktober 2012, abgerufen am 29. Oktober 2013. 
  34. Sylvie Barak: ARM Announces ARMv8A-Based Cortex-A72, 16nm FF+ Process, Mali-T880 GPU. In: tom's Hardware. 3. Februar 2015, abgerufen am 28. August 2015. 
  35. Nermin Hajdarbegovic: ARM: Shift to 64-bit SoCs accelerating. Abgerufen am 23. Januar 2025 (britisches Englisch). 
  36. Frank Riemenschneider: ARM enthüllt neue 64-bit-Cores. Abgerufen am 23. Januar 2025 (deutsch). 
  37. Marvell Newsroom | Press Releases - Marvell. Abgerufen am 23. Januar 2025 (englisch). 
  38. Linus Walleij (linusw): ARM32 Page Tables. (Blog) In: people.kernel.org. 24. Oktober 2020, abgerufen am 15. August 2023 (englisch). 
  39. Principles of ARM Memory Maps, White Paper, Revision C; ARM DEN 0001C. (PDF; 278KB) ARM Limited, 19. Oktober 2012, abgerufen am 15. August 2023 (englisch). 
  40. News Archive. Abgerufen am 23. Januar 2025 (amerikanisches Englisch). 
  41. Andreas Stiller: ARM-Revolution im Rechenzentrum: Wie es ARM-Prozessoren in Server schafften. In: heise.de. 22. Dezember 2021, abgerufen am 7. September 2023. 
  42. Frank Riemenschneider:ARM enthüllt neue 64-bit-Cores. In:Elektroniknet.de, 30. Oktober 2012. (Memento vom 4. März 2016 imInternet Archive)
  43. Snapdragon 820 and Kryo CPU: heterogeneous computing and the role of custom compute | Qualcomm. Abgerufen am 23. Januar 2025 (englisch). 
  44. The ARMv8-A architecture and its ongoing development - Architectures and Processors blog - Arm Community blogs - Arm Community. 2. Dezember 2014, abgerufen am 23. Januar 2025 (englisch). 
  45. Armv8-A Architecture Evolution - Architectures and Processors blog - Arm Community blogs - Arm Community. 5. Januar 2016, abgerufen am 23. Januar 2025 (englisch). 
  46. Armv8-A: 2016 additions - Architectures and Processors blog - Arm Community blogs - Arm Community. 26. Oktober 2016, abgerufen am 23. Januar 2025 (englisch). 
  47. Introducing 2017’s extensions to the Arm Architecture - Architectures and Processors blog - Arm Community blogs - Arm Community. 2. November 2017, abgerufen am 23. Januar 2025 (englisch). 
  48. Arm Architecture Armv8.5-A Announcement - Architectures and Processors blog - Arm Community blogs - Arm Community. 17. September 2018, abgerufen am 23. Januar 2025 (englisch). 
  49. BFloat16 extensions for Armv8-A. In: community.arm.com. Abgerufen am 30. August 2019 (englisch). 
  50. Release notes for the A64 Instruction Set Architecture for Armv8.7-A 2020-12. In: developer.arm.com. Abgerufen am 5. April 2021 (englisch). 
  51. A-Profile Architectures. 31. März 2021, abgerufen am 5. April 2021. 
  52. Arm Architecture Reference Manual Supplement Armv9. 25. Mai 2021, abgerufen am 25. Mai 2021. 
  53. AMD to License ARM for Future Opteron Server Chips. Abgerufen am 23. Januar 2025 (englisch). 
  54. Abner Li: Arm reportedly changing licensing model to prohibit custom GPUs and TPUs, could impact Google Tensor. In: 9to5Google. 29. Oktober 2022, abgerufen am 8. März 2023 (amerikanisches Englisch). 
  55. Frank Riemenschneider: XMC1000: Peripheriewunder mit Cortex-M0. In: elektroniknet.de. 8. Januar 2013, abgerufen am 8. August 2013. 
  56. heise online: Microsoft kauft ARM-Lizenz. 23. Juli 2010, abgerufen am 23. Januar 2025. 
  57. NVIDIA to Acquire Arm for $40 Billion, Creating World’s Premier Computing Company for the Age of AI. Abgerufen am 23. Januar 2025 (amerikanisches Englisch). 
  58. Golem.de: IT-News für Profis. Abgerufen am 23. Januar 2025. 
  59. Arm Security Center. Abgerufen am 23. Januar 2025. 
ARM1-Familie

ARMv1 (ARM1)

ARM2-Familie

ARMv2 (ARM2) |ARMv2a (ARM250)

ARM3-Familie

ARMv2a (ARM2a)

ARM6-Familie

ARMv3 (ARM60, ARM600, ARM610)

ARM7-Familie

ARMv3 (ARM700, ARM710, ARM710a, ARM7100, ARM7500, ARM7500FE)

ARM7TDMI-Familie

ARMv4T (ARM7TDMI, ARM7TDMI-S, ARM710T, ARM720T, ARM740T) |ARMv5TEJ (ARM7EJ-S)

StrongARM-Familie

ARMv4 (SA-110, SA-1110)

ARM8-Familie

ARMv4 (ARM810)

ARM9TDMI-Familie

ARMv4T (ARM9TDMI, ARM920T, ARM922T, ARM940T)

ARM9E-Familie

ARMv5TE (ARM946E-S, ARM966E-S, ARM968E-S, ARM996HS) |ARMv5TEJ (ARM926EJ-S)

ARM10E-Familie

ARMv5TE (ARM1020E, ARM1022E) |ARMv5TEJ (ARM1026EJ-S)

ARM11-Familie

ARMv6 (ARM1136J-S, ARM1136JF-S) |ARMv6T2 (ARM1156T2-S, ARM1156T2F-S) |ARMv6KZ (ARM1176JZ-S, ARM1176JZF-S) |ARMv6K (ARM11 MPCore)

Cortex-A-Familie

ARMv7-A (Cortex-A5, Cortex-A7, Cortex-A8, Cortex-A9, Cortex-A12, Cortex-A15, Cortex-A17) |ARMv8-A (Cortex-A35, Cortex-A53, Cortex-A57, Cortex-A72, Cortex-A73)

Cortex-M-Familie

ARMv6-M (Cortex-M0, Cortex-M0+, Cortex-M1) |ARMv7-M (Cortex-M3,Cortex-M4) |ARMv8-M (Cortex-M23, Cortex-M33, Cortex-M35P) |ARMv8.1-M (Cortex-M55)

Cortex-R-Familie

ARMv7-R (Cortex-R4, Cortex-R4F)

Abgerufen von „https://de.wikipedia.org/w/index.php?title=Arm-Architektur&oldid=254008147#ARMv5TE_(1997)
Kategorien: