ARM

Aus Lowlevel

Wechseln zu: Navigation, Suche
Diese Seite ist ein Artikel, welcher mehr haben könnte..

Wenn du mehr darüber weißt oder recherchieren willst, bist du aufgerufen, dies zu tun. Wenn du dir in einer Sache nicht sicher bist, dann stell es auf die Diskussionsseite.

ARM (Acorn Risc Machine) sind 32-Bit-Prozessoren nach dem RISC-Prinzip.

Inhaltsverzeichnis

Eigenschaften

Als ARM wird primär das Design des Prozessors bzw. der Prozessor-Architektur bezeichnet. Jedoch bezeichnet man Prozessoren, die nach ARM gebaut wurden als "ARM-Prozessoren". ARM-Prozessoren zeichnen sich durch einen reduzierten und effizienten Befehlssatz und einem geringen Stromverbrauch aus.


Einsatzgebiete

ARM-Prozessoren sind zwar vor allem bei PC-Anwendern nicht in aller Munde, stecken aber in erstaunlich vielen Geräten: In fast jedem Router ist ein ARM-Prozessor zu finden, der Apple iPod läuft mit einem ARM-Prozessor und der Game Boy Advance von Nintendo ermöglicht mobiles Spielen mit eben diesen ARM-Prozessoren (im Nintendo DS stecken sogar zwei dieser Sorte, einen für DS-Programme und einen für die GBA-Kompatibilität).

Programmierung

Die „Lowlevel-Programmierung“ eines ARM-Prozessors mit Assembler unterscheidet sich signifikant von der eines x86-Prozessors. Ein ARM-Prozessor kennt drei Kategorien an Befehlen:

  • Befehle zum Zugriff auf den Speicher
  • Arithmetische oder logische Befehle auf Werte in Registern
  • Befehle zum Ändern des Programmflusses (Sprünge, Subroutinen)

Anders als die x86-Architektur verfügt der ARM über einen Drei-Register-Befehlssatz, welcher ermöglicht, einen Ziel- sowie zwei Quellregister anzugeben:

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


Register

Es stehen 15 Allzweckregister zur Verfügung (ähnlich *ax-Register der x86-Prozessoren): r0 bis r14. das Register r13 wird allerdings standardmäßig als Stackpointer genutzt und das Registger r14 als „Link-Register“, in welchem die Rücksprungadresse bei Prozeduraufrufen gespeichert wird. Das Register r15 dient als „Programmzähler“. Daneben gibt es ein Register namens CPSR (Current Program Status Register), in welchem Informationen wie der aktuelle Programm-Status gespeichert werden.

Die Register r13, r14 und das Statusregister werden „gespiegelt“, sodass man sich bei einer Exception und der dazugehörigen Behandlung nicht um die Sicherung des Stackpointers und des Instruction-Pointers kümmern muss.


Prozessor-Modi

Bei ARM-Prozessoren gibt es keinen Real-Mode und Protected-Mode. Auch das Konzept der Privileg-Ringe fällt weg, stattdessen wird selbiges als Prozessor-Modus implementiert. Hier die Modi des ARM-Prozessors:

  • Supervisor-Mode (SVC): Entspricht dem Ring 0 bei x86-Prozessoren, hier läuft das Betriebssystem
  • User Mode: Entspricht dem Ring 3 bei x86-Prozessoren. hier laufen normale User-Programme
  • Interrupt-Mode (IRQ): Wird ein Interrupt ausgelöst oder eine Exception geworfen, so wird der Prozessor in diesen Modus umgeschaltet
  • Undefined Instruction Exception (UND): Wird ein unbekannter Befehl ausgeführt, wird der Prozessor in diesen Modus geschaltet und bei Bedarf der Befehl emuliert
  • Memory Abort (ABT): Kann eine Datenanforderung nicht verarbeitet werden, wird der Prozessor in diesen Modus geschaltet
  • Fast Interrupt-Mode (FIQ): Wird durch einen sogenannten „Fast-Interrupt-Request“ ausgelöst, findet meist bei Echtzeit-Betriebssystemen Verwendung

In jedem Modus hat der gerade auführende Code andere Privilegien, sofern er nicht schon im Supervisor-Mode arbeitet.


Siehe auch


Weblinks

Persönliche Werkzeuge