3.2 KiB
3.2 KiB
ARM
ARM Prozessoren
Architektur Revisionen
- Unterschiedliche Features
- bspw. unterschiedliche Multiplikationsbefehle, Adressierungsarten, ...
- jeweils gleiches Befehssatzdesign für jede Revision
- aktuell: v7 / v8
Profile: Konkrete Prozessor-Implementierungen
-
Application Profil ['A']:
- High Performance
- bspw. Mobile, Enterprise
- High Performance
-
Real Time Profil ['M']:
- Embedded Anwendungen
- bspw. Automotive, Industriesteuerungen
- Embedded Anwendungen
-
Microcontroller Profil ['M']:
- Mikrocontroller für große Bandbreite an Anforderungen
- Anzahl Gatter, Kosten, Realtime, Performance
- Mikrocontroller für große Bandbreite an Anforderungen
-
Aktuell in 2017:
- v7 (32Bit):
- Cortex A7, Cortex M4, Cortex M0+
- v8 (64Bit):
- Cortex A53, Cortex A57
- v7 (32Bit):
Bedeutung des Befehlssatzes (ISA)
- Befehlssatz = Instruction Set Architektur
- ISA Level
- ist das Interface zwischen Soft- und Hardware
- definiert die Sprache, die von Soft- & Hardware verstanden werden muss
ARM Instruction Sets
- ARM unterstützt derzeit 3 IS
- A64 instruction set
- eingeführt mit ARMv8-A, um 64 Bit zu unterstützen
- A32 instruction set ("ARM")
- 32 Bit Befehlsatz in pre-ARMv8-Architekturen
- T32 instruction set ("Thumb"/"Thumb2")
- komprimierter 16/32 Bit Befehlssatz (gemischt)
- in pre-ARMv8-Architekturen
- komprimierter 16/32 Bit Befehlssatz (gemischt)
- A64 instruction set
Coding Standards UAL und APCS
Unified Assembler Language (UAL)
- Coding Standard, der von Compilern für ARM (32bit) und Thumb verstanden wird
- Macht Programme möglich, die mit verschiedenen Prozessoren kompatibel sind
ARM Program Calling Standard (APCS)
- Regelt Aufruf von
- Unterprogrammen
- Verwendung von Registern
- ...
- Ermöglicht Verwendung von Objektbibliotheken, welche von anderen Compilern übersetzt wurden
Architektonisches Erbe der ARM-Prozessoren
Verwendete Merkmale
- RISC
- Grundlegendes Design-Prinzip: Einfachheit
- Load/Store Architektur (Register-Register), von Neumann
- 32Bit oder 64Bit (1 Wort)
- 1Byte = 8Bit
- Byteweise Adressierung des Speichers
- Little-Endian und Big-Endian kompatibel
- Vorteil für Einsatzzweck als Standard CPU in Kommunikationsgeräten
- Standard: Little-Endian
- 3-Adressbefehle (32Bit) oder Thumb
Verworfene Merkmale
- Registerfenster
- wird nur bei SPARC Prozessoren genutzt
- Delayed Branches
- der dem Branch folgende Befehl wird ausgeführt bevor der Sprung durchgeführt wurde
- Behandlung von Interrupts und Exceptions schwieriger
- Ausführung aller Befehle in einem Taktzyklus
- setzt Harvard voraus
- Kompensation durch verbesserte Adressierungsmodi
Ein erstes ARM-Programm (GNU)
Wie wird aus einem Programm Maschinencode?
- Codierungsvorgang immer gleich
- kann von Programm (Assembler) übernommen werden
- Kann weitere Erleichterungen ermöglichen
- Bezeichner Konstanten, Daten, Adressen
- Reservieren von Speicherbereichen für (Zwischen-)Ergebnisse
- Anlegen und Initialisieren von Daten und Datenstrukturen beim Programmstart hinzufügen
- Kann weitere Erleichterungen ermöglichen
- kann von Programm (Assembler) übernommen werden