ARM-Architektur

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Logo
ARM-Prozessorchip von Conexant, der beispielsweise in Routern verwendet wird

Die ARM-Architektur ist ein 1983 vom britischen Computerunternehmen Acorn entwickeltes 32-Bit-Chip-Design, das seit 1990 von der aus Acorn ausgelagerten Firma ARM Limited weiterentwickelt wird. ARM steht für Advanced RISC Machines.

Das Unternehmen ARM Limited stellt keine eigenen Elektronikchips her, sondern vergibt unterschiedliche Lizenzen an Halbleiterhersteller. Die Vielzahl dieser Lizenznehmer und verschiedene Vorteile der Architektur (z. B. geringer Energiebedarf) führten dazu, dass ARM-Chips im Embedded-Bereich die meistgenutzte Architektur sind. Fast alle derzeitigen Smartphones und Tablet-Computer haben einen oder mehrere lizenzierte ARM-Prozessoren, darunter das Apple iPhone und die Geräte der Galaxy-Serie von Samsung.

Geschichte[Bearbeiten]

Das ARM-Design wurde 1983 vom englischen Computerhersteller Acorn als Entwicklungsprojekt gestartet. Das Team begann unter der Leitung von Sophie Wilson und Steve Furber die Entwicklung eines leistungsfähigen Prozessors für einen Nachfolger der bis dahin auf dem 6502 basierenden Computer.

Anstatt wie die Konkurrenz auf Prozessoren der Unternehmen Intel oder Motorola zurückzugreifen, entwickelte man einen eigenen Prozessor, den ARM (Acorn Risc Machine), mit 32 Bit und einer geplanten Taktfrequenz 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 Commodore Amiga und Atari ST mit Motorola 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 mit Apple und VLSI Technology das Unternehmen Advanced RISC Machines Ltd. mit Sitz in Großbritannien, welches später in ARM Ltd. umbenannt wurde.

Eigenschaften[Bearbeiten]

Die Architektur zeichnet sich durch einen effizienten Befehlssatz aus, erlaubt eine kompakte Umsetzung in einem ASIC-Design und ist gut für Optimierungen im Bereich der Ausführungsgeschwindigkeit und der Stromaufnahme geeignet.

Eine bedeutende Implementierung ist der als StrongARM bekannte Mikrocontroller.

Der Hersteller Intel 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 oder NXP), im Gegensatz zu den meisten anderen Lizenznehmern, Änderungen und Erweiterungen am ARM-Kern durchführen. So vertrieb Intel bis 2006 unter dem Namen XScale eine in Lizenz gefertigte ARM-CPU und weitere ebenfalls als XScale bezeichnete und per Bus angebundene Peripherie-Halbleiter. Dazu gehören die PXA250-, PXA260- und PXA270-Prozessoren, die häufig in PDAs und Smartphones zum Einsatz kommen, vor allem für Windows CE und Palm OS, die aktuelle Generation heißt Monahans.

Die GNU Compiler Collection kann Code für ARM erzeugen und auch der XNU-Kernel (Mac OS X/iOS), Linux-Kernel und Windows NT Kernel 6.2 laufen auf diesem CPU-Typ.

Einsatzgebiet[Bearbeiten]

Aufgrund ihrer geringen Leistungsaufnahme kommen ARM-Prozessoren vor allem in eingebetteten Systemen, wie Mobiltelefonen, PDAs und Routern zum Einsatz. Besondere Bedeutung hat die Architektur bei Smartphones, da sie von allen mobilen Betriebssystemen (Stand 2012) unterstützt wird. Bei tragbaren Spielekonsolen besteht eine ähnliche Verbreitung. Ebenfalls findet man die CPUs in vielen stationären Geräten der Unterhaltungselektronik.

Die Rechner der Acorn-Archimedes- und Risc-PC-Reihe von Acorn verwendeten ebenfalls ARM-CPUs. Nachfolgemodelle dieser Desktop-Rechner waren unter anderem vom Unternehmen Castle Technology unter dem Namen IYONIX pc erhältlich.

Befehlssatz und Programmiermodell[Bearbeiten]

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

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

Die ARM verfügt über einen 3-Register-Befehlssatz, alle arithmetisch-logischen Befehle akzeptieren also ein Zielregister und zwei Operandenregister.

Beispiel:

  ADD    r0, r1, r2   ; r0 := r1 + r2

Die ARM ist sowohl Little-Endian- als auch Big-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]

Die ARM verfügt, wie viele RISC-CPUs, über eine große Anzahl von Registern (halb so viele wie beim PowerPC). Dem Programmierer stehen 15 „general-purpose“-Register zur Verfügung (r0–r14), wobei im Register r13 standardmäßig der Stackpointer gehalten wird und das Register r14 als „Link-Register“ benutzt wird, in dem die Rücksprungadresse bei Prozeduraufrufen (mit BL „branch with link“) gespeichert wird, um später zurück in den Programmzähler geschrieben zu werden (Rückkehr zum aufrufenden Programmcode). Das Register r15 fungiert als Programmzähler (Program-Counter, PC). 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ührungs-Modi[Bearbeiten]

Die ARM verfügt über 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)
  • 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 (siehe Echtzeitsysteme).
  • 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 eines Gleitkomma-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ätzlich R8–R14 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]

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 das Design 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 Datenbits 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 hinaus geschoben werden, auf der anderen Seite wieder hinein geschoben. Wird diese Technik z. B. auf den Wert 255 in den Datenbits angewendet, können die hexadezimalen Werte 000000ff, 000003fc, 00000ff0, 00003fc0, … 0ff00000, 3fc00000, ff000000, fc000003, f000000f und c000003f direkt erzeugt 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 MB 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 mit MOV 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 KByte ab der aktuellen Stelle des Programms geladen werden. Damit lässt sich z. B. ein Sprung an eine beliebige 32-Bit-Adresse umsetzen, indem die absolute Sprungadresse hinter dem Ladebefehl gespeichert wird und dann durch eine PC-relativen Ladebefehl mit Ziel Program-Counter (LDR PC,[PC,#-4]) angesprungen wird.
  • Alle Speicherstellen, die außerhalb der 4 KB 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]

Der ARM-Befehlssatz verfügt über einige Besonderheiten, die zur Effizienz der Architektur beitragen:

  • Praktisch alle Befehle können bedingt ausgeführt werden ('conditional execution'). Damit entfällt die Notwendigkeit für Programmsprünge in vielen Standardsituationen, z. B. If-else-Abfragen (man vermeidet Programmsprünge, weil diese die Pipeline des Prozessors leeren, und dadurch Wartezyklen entstehen). Zum Kodieren der Bedingung werden die ersten 4 Bit eines jeden Befehles bzw. ein Suffix im Assemblercode verwendet.

Beispiel:

  CMP    r0, r1           ; (setzt Bedingungsbits)
  ADDGE  r2, r2, r3       ; if (r0 >= r1) then r2 := r2 + r3;
  ADDLT  r2, r2, r4       ; else r2 := r2 + r4;

Der Code 1101 stand zu Beginn für die Condition NV (never), diese Befehle werden also nie ausgeführt. Diese Opcodes werden in neueren CPUs für spezielle Befehle wie PLD und BLX verwendet (die dann nicht mehr bedingt ausgeführt werden können), von der Benutzung der Kondition NV wird abgeraten ('deprecated').

  • Wahlweise können die Statusbits als Folge des Befehls aktualisiert werden. Dies wird durch das Suffix S im Assemblercode gekennzeichnet und kann mit der bedingten Ausführung kombiniert werden.

Beispiel:

  CMP    r0, r1           ; (setzt Bedingungsbits)
  ADDGES r2, r4, r5       ; if (r0 >= r1) then r2 := r4 + r5;
  BCS    overflow         ; verzweige bei Überlauf der Addition
  • Die ARM verfügt über einen Barrel-Shifter im B-Pfad der ALU; sämtliche Befehle, die mit dem zweiten Operanden arbeiten, erlauben also auch die Angabe eines 4-bit-weiten Shift- oder Roll-Faktors.

Beispiel:

  ADD  r2, r3, r3, lsl #2 ; r2 := r3 + (r3 << 2)
                          ; → r2 := r3 + r3 * 4
                          ; → r2 := r3 * 5 
  • Neuere ARM-CPUs kennen SIMD-Befehle.

Thumb-Befehlssatz[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 mehr Assembler-Befehle benötigt, um ein Programm zu schreiben, wird die Code-Größe in der Praxis um etwa 30–40 % reduziert. Als weiterer Vorteil können problemlos 16-Bit-Speicherbausteine an der ARM-CPU betrieben werden, ohne dass das Laden von Befehlen zwei Speicherzyklen in Anspruch nimmt. 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. Durch die dadurch vermehrt auftretenden Programmsprünge kommt es häufiger zu einer Entleerung der Pipeline. Zumindest wenn der Speicher mit 32 Bit angesprochen wird, ist der 16-Bit-Befehlssatz schon deshalb oft langsamer als der ARM-Befehlssatz. Der Hersteller NXP gibt in den Datenblättern seiner LPC2000-Controller einen Geschwindigkeitsverlust von 30 % an.

Es besteht die Möglichkeit, ARM- und Thumbcode miteinander zu vermischen. Häufig ist in großen Teilen eines Programmes die Ausführungsgeschwindigkeit sekundär. Hier bietet es sich an, diese Programmteile unter Verwendung der Thumb-Anweisungen zu schreiben, wogegen die kritischen Bereiche mit ARM-Anweisungen implementiert werden. Diese Technik nennt sich Thumb Interworking.

Coprozessor-Befehle[Bearbeiten]

Die ARM ist als Mikroprozessor-Kern in eingebetteten Systemen gedacht, in denen meist keine Gleitkomma-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.

Big.LITTLE-Konzept[Bearbeiten]

Zusammen mit dem Cortex-A7 hat ARM das Big.LITTLE-Konzept eingeführt, das dazu dient, die mit 3,5 DMIPS/MHz hohe Rechenleistung des Cortex-A15[1] mit der niedrigen Energieaufnahme des Cortex-A7 zu verbinden. Dabei werden beide Cores in Form von Clustern mit jeweils zwei bis vier Kernen auf einem SoC 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, komplett 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.[2]

Modelle[Bearbeiten]

ARM 1 CPU in einem Acorn ARM Evaluation System

Übersicht[Bearbeiten]

Architektur Familie(n) Erscheinungsjahr Takt
ARMv1 ARM1 1985 4 MHz
ARMv2 ARM2, ARM3 1986, 1989 8–25 MHz
ARMv3 ARM6, ARM7 1991, 1993 12–40 MHz
ARMv4 ARM7TDMI, ARM8,
StrongARM
ARM9TDMI
1995,
1997
16,8–75 MHz,
203–206 MHz
180 MHz
ARMv5 ARM7EJ, ARM9E, ARM10E,
XScale
2002 104–369 MHz
133–1250 MHz
ARMv6 ARM11,
ARM Cortex-M0, ARM Cortex-M0+, ARM Cortex-M1
2002
?
400–772 MHz
bis 200 MHz[3]
ARMv7 ARM Cortex-M3, ARM Cortex-M4
ARM Cortex-A (A8, A9, A5, A15, A7 und A12),
ARM Cortex-R
2004
2005
?
?
bis 2 GHz
?
ARMv8 ARM Cortex-A53, ARM Cortex-A57*[4] 2013 3 GHz
*Erster verfügbarer Chip: X-Gene von AMCC[5]. Unterstützt 64-bit-Daten und -Adressierung[6][7]

ARMv1 (1985)[Bearbeiten]

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

ARMv2 (1986)[Bearbeiten]

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

Der ARM2 ist ein von dem englischen Unternehmen Acorn Computers Ltd. entwickelter 32-Bit-RISC-Prozessor. Dieser wurde 1986 veröffentlicht und ab 1987 im Acorn 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 eine MMU-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 einen Cache mit 4 KByte integriert. Mit einer Taktfrequenz von 25 MHz erreicht der ARM3 12 MIPS.

ARMv3 (1991)[Bearbeiten]

Der ARM6 ist ein von der mittlerweile gegründeten ARM Limited 1991 veröffentlichter 32-Bit RISC-Prozessor, der als CPU beispielsweise im Apple Newton oder Acorns Risc PC eingesetzt wurde. Der CPU-Takt betrug 12–33 MHz.

ARMv4 (1993)[Bearbeiten]

Die 32-bit ARM 60 RISC in der 3DO-Spielkonsole FZ-10 (1993)

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

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

Der gemeinsam mit DEC entwickelte ARM StrongARM war die erste Abspaltung der ARM-Architektur, die 1995 als SA-110 im Newton 2000 durch einen Stromsparmodus für hohe 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 ersten System-on-a-Chip.

ARMv5 (1997)[Bearbeiten]

Der ARM9 ist eine Weiterentwicklung der StrongARM- und ARM8-Architektur. 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 separate Caches 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 Penalty 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.

Die ebenfalls auf dem ARMv5 basierenden XScale-Prozessoren von Intel (802xx, PXA25x, XA263, PXA26x, PXA27x, PXA3xx) sind mit einer Taktfrequenz bis zu 1,250 GHz verfügbar und finden sich in vielen mobilen Geräten (Palm Tungsten, Sony Clié).

ARMv6 (2002)[Bearbeiten]

Die ARMv6-Architektur umfasst die Familien ARM11, ARM Cortex-M0, ARM Cortex-M0+ und ARM Cortex-M1.

ARMv7 (2004)[Bearbeiten]

Die ARMv7-Architektur ist – als ARM Cortex-M3, ARM Cortex-M4, ARM Cortex-A und ARM Cortex-R – in sehr vielen Mobilgeräten nahezu allgegenwärtig, etwa in Prozessoren/SoCs von Apple (A4, A5), nVidia (Tegra), Samsung (Exynos) und Texas Instruments (OMAP). Außerdem wurde sie auch in herstellereigene Designs von Apple (A6), Qualcomm (Snapdragon), und Marvell (MMP, Armada XP) umgesetzt. Mit TrustZone wurde eine optionale Erweiterung geschaffen, die eine sichere Ausführungsumgebung für Applikationen zur Verfügung stellt.

ARMv8 (2013)[Bearbeiten]

Die ARM Cortex-A50-Serie mit den Familien Cortex-A53 und Cortex-A57[4] implementiert erstmals eine 64-Bit-Architektur für Daten und Adressierung; erste Chips wurden von ARM für 2014 angekündigt. Die A53- und A57-Chips sollen bei gleicher Leistungsaufnahme und Taktfrequenz im Vergleich zu ARMv7 die dreifache Performance liefern.[4] Die ARMv8-Architektur ist abwärtskompatibel bis hin zu ARMv5. Es gibt zwei unabhängige Modi AArch32 und AArch64 für 32- bzw. 64-bit-Software.[8] Die erste Implementierung eines ARMv8-Prozessors war der X-Gene der Firma Applied Micro Circuits Corporation (AMCC) im Juni 2013.[5] Apple kündigte am 10. September 2013 an, dass das iPhone 5s einen auf ARMv8 basierenden 64-bit-SOC – den Apple A7 – nutzen wird[9].

Erweiterungen für ARM-Kerne[Bearbeiten]

ARM Ltd. verkauft neben den ARM-CPU-Kernen auch Erweiterungen als synthetisierbare Makrozellen für den SoC-Entwurf, unter anderem Memory Management Units, Floating-Point-Coprozessoren sowie Signalprozessor-Erweiterungen (Piccolo).

Lizenznehmer[Bearbeiten]

Folgende Unternehmen haben die ARM-Architektur von ARM Ltd. lizenziert:

Siehe auch[Bearbeiten]

  • QEMU, Virtuelle Maschine, unterstützt auch viele ARM-Prozessoren (armXXXX, cortex-XX, ti925t, pxa2XX, pxa270-XX, any)

Literatur[Bearbeiten]

  •  Steve Furber: ARM System-on-Chip Architecture. Addison Wesley, New York 2000, ISBN 978-0201675191.

Weblinks[Bearbeiten]

 Commons: ARM microprocessors – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise[Bearbeiten]

  1. Frank Riemenschneider: Cortex-A15 zielt auf Kommunikations- und Server-Markt. In: elektroniknet.de. 10. März 2011. Abgerufen am 8. August 2013.
  2. Frank Riemenschneider: ARM paart Cortex-A7 und Cortex-A15. In: elektroniknet.de. 13. Juni 2012. Abgerufen am 8. August 2013.
  3. Cortex-M1 Processor bei ARM.com, abgerufen am 23. Juli 2012.
  4. a b c ARM Launches Cortex-A50 Series, the World’s Most Energy-Efficient 64-bit Processors. 30. Oktober 2012. Abgerufen am 29. Oktober 2013.
  5. a b Charlie Demerjian: AMCC X-Gene 64-bit silicon spotted in the wild. SemiAccurate. Abgerufen am 14. Juni 2013.
  6. ARM Discloses Technical Details Of The Next Version Of The ARM Architecture. 2011. Abgerufen am 31. Oktober 2011.
  7. Michael J. Miller, PC Magazine. "Moving On Up: ARM's Next-Gen Cores Ascend to 64-Bit." November 1, 2011. Retrieved November 7, 2011.
  8. Frank Riemenschneider: ARMv8-Architektur: Von 32 auf 64 bit. In: elektroniknet.de. 27. Februar 2012. Abgerufen am 8. August 2013.
  9. Anand Lal Shimpi: Apple Announces A7, World's First 64-bit Smartphone SoC. Meldung bei Anandtech.com vom 10. September 2013.
  10. AMD to License ARM for Future Opteron Server Chips
  11. Frank Riemenschneider: XMC1000: Peripheriewunder mit Cortex-M0. In: elektroniknet.de. 8. Januar 2013. Abgerufen am 8. August 2013.
  12. Microsoft kauft ARM-Lizenz
  13. Nvidia kauft ARM-Lizenz
  14. Die "Hummingbird" genannte Implementierung des Cortex-A8-Designs kommt bspw. in Galaxy-Smartphones zum Einsatz: Smartphone-Prozessor "Hummingbird" von Samsung mit 1 GHz Golem.de am 27. Juli 2009.