David Schirrmeister 26b786300a update
2024-06-02 16:59:37 +02:00

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
  • Real Time Profil ['M']:

    • Embedded Anwendungen
      • bspw. Automotive, Industriesteuerungen
  • Microcontroller Profil ['M']:

    • Mikrocontroller für große Bandbreite an Anforderungen
      • Anzahl Gatter, Kosten, Realtime, Performance
  • Aktuell in 2017:

    • v7 (32Bit):
      • Cortex A7, Cortex M4, Cortex M0+
    • v8 (64Bit):
      • Cortex A53, Cortex A57

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
  • image_291.png

ARM Instruction Sets

image_292.png

  • 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

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)

image_293.png

Wie wird aus einem Programm Maschinencode?

image_294.png

  • 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

ARM Toolchain