天天看點

AArch64簡介about aarch64

about aarch64

  1. Focus on high performance
  2. Exception levels instead of different modes
  3. virtualisation support built-in
  4. 32 bit fixed length instruction
  5. more registers
  6. divide instruction
  7. compare & jump instruction
  8. support for aarch32

difference towards aarch32

  1. no thumb mode
  2. only a handful conditionally executing instruction
  3. no more coprocessor
  4. beware PC relative addressing doesn’t have an offset anymore
  5. 31 general purpose registers.1 special purpose
  6. no store/load multiple registers(only pairs)

aarch64 registers

registers   special description
SP/ZR               Stack pointor/Zero register
          LR      Link register
          FP      Frame pointer
~              stored/restored by callee
                  platforem specific register
                  inter procedure call 1
16                  inter procedure call 2
9~15               scratch registers
8                   indirect result(pointer to sturct)
0~7                    parameters & results
           

registers can be accessed as 32/64 bit

X0~30 for 64 bit

W0~30 for 32 bit

Also available

V0~31,SIMD floating point registers

Modes AArch32

User Application

FIQ Fast Interrupt

IRQ Interrupt

Supervisor Operating System

Abort Prefetch abort of instructiion/data

Undefined After undefined instruction

System Privileged user mode (for OS functions)

Monitor On TrustZone Platforms

Modes on Aarch64

EL0 Unprivileged,applications(with task protection,etc)

EL1 Operating system,kernel,etc

EL2 Hypervisor(for virtualisation)

EL3 Secure monitor(for switching to/from secure state)

svc,hvc,smc指令切換,對EL1~3有三種不同的中斷向量,用戶端可以生産virtual exceptions

CP15 is no more

Cache,address and TLB management now have dedicated instructions

Memory management

Execpt for EL0,all exception levels have their own memory translation

context(EL0 is managed by EL1)

This means up to 3 stage translation depending on the context

UEFI&ACPI

http://www.uefi.org/sites/default/files/resources/S4_BldgARMServers_UEFILinuxCon_FINAL_Aug.%2021.pdf

繼續閱讀