Cortex Architektur

Die Cortex Architektur ist auch als ARM Architektur bekannt. Diese ist in den meisten Embedded Prozessoren, in letzter Zeit aber auch in Mobile, sowie Desktop (Apple Silicon) vertreten.

CPU Modell

Die CPU besteht aus einzelnen Komponenten. Diese sind in folgende:

  • Core Registers
  • 32 Bit ALU (Arithmetic Logic Unit)
  • Flags (APSR)
  • Control Unit with IR (Instruction Registers)
  • Bus Interface

16 Core Registers

  • Jedes Register ist 32 Bit breit
  • 13 General Purpose Register
    • Low Registers R0 - R7
    • High Registers R8 - R12
    • Used for temporary storage of data and addresses
  • Program Counter (R15)
    • Addresss der nächsten Instruktion
  • Stack Pointer (R13)
    • Last-In First-Out für temporäre Datenspeicherung
  • Link Register (R14)
    • Enthält die Adresse zu der zurückgesprungen wird, wenn eine Routine fertig ist.

In den meisten Fällen werden nur die unteren Low Registers (Byte verwendet). Würde die Standardeinheit jetzt 16 oder gar 32 Bit sein, dann müssen die High Registers zusätzlich noch gelesen werden.

ALU (Arithmetic Logic Unit)

  • 32 bit wide data processing unit
    • Inputs A and B
    • Results in C
  • Integer Arithmetic
    • Addition / Subtraction
    • Multiplication / Division
    • Sign extension
  • logic operations
    • AND
    • NOT
    • OR
    • XOR
  • shift /rotate
    • left
    • right

Flags (APSR)

Bits werden von der CPU anhand des Resultats der ALU gesetzt

WertBedeutung
NNegative
 ZZero
CCarry
VOverflow

Control Unit

  • Instruction Register (IR)
    • Machine code (opcode) of instruction that is currently being executed
  • Controls execution flow based on instruction on IR
  • Generates control signals for all other CPU components

Bus Interface

  • Interface zwischen interner CPU und externen Bus Systemen
  • Beinhlatet register um addressen zu speichern

Instruction Set Architecture (ISA)

Instruction Set

  • Verfügbare Anweisungen

Processing Width

  • Bitbreite (8/16/32 Bit)

Register Set

  • Wie viele Register gibt es?
  • Wie gross sind die Register?

Addressodell

  • Wie kann auf Speicher zugegriffen werden?
  • Wie kann auf IO zugegriffen werden?

### Arbeitsweise

Prozessoren interpretieren binären Code als Instruktionen.

Styleguide