Programmers Model
ARM DDI 0500D
Copyright © 2013-2014 ARM. All rights reserved.
3-4
ID021414
Non-Confidential
3.2
ARMv8-A architecture concepts
This section introduces both the ARMv8 architectural concepts and the associated terminology.
The following sections describe the ARMv8 architectural concepts. Each section introduces the
corresponding terms that are used to describe the architecture:
•
Execution state
.
•
Exception levels
on page 3-5
.
•
Security state
on page 3-6
.
•
Rules for changing execution state
on page 3-7
.
•
Stack pointer selection
on page 3-7
.
•
ARMv8 security model
on page 3-8
.
•
Instruction set state
on page 3-10
.
•
AArch32 execution modes
on page 3-10
.
Note
A thorough understanding of the terminology defined in this section is a prerequisite for reading
the remainder of this manual.
3.2.1
Execution state
The execution state defines the processor execution environment, including:
•
Supported register widths.
•
Supported instruction sets.
•
Significant aspects of:
—
The execution model.
—
The
Virtual Memory System Architecture
(VMSA).
—
The programmers model.
The execution states are:
AArch64
The 64-bit execution state. This execution state:
•
Features 31 64-bit general purpose registers, with a 64-bit
Program
Counter
(PC),
Stack Pointer
(SP), and
Exception Link Registers
(ELRs).
•
Provides a single instruction set, A64. For more information, see
Instruction set state
on page 3-10
.
•
Defines the ARMv8 exception model, with four exception levels,
EL0-EL3, that provide an execution privilege hierarchy.
•
Features
Virtual Addresses
(VAs) held in 64-bit registers. The Cortex-A53
VMSA implementation maps these to 40-bit
Physical Address
(PA) maps.
•
Defines a number of PSTATE elements that hold processor state. The A64
instruction set includes instructions that operate directly on various
PSTATE elements.
•
Names each system register using a suffix that indicates the lowest
exception level at which the register can be accessed.
AArch32
The 32-bit execution state. This execution state is backwards-compatible with
implementations of the ARMv7-A architecture profile that include the Security
Extensions and the Virtualization Extensions:
•
Features 13 32-bit general purpose registers, and a 32-bit PC, SP, and link
register (LR). Some of these registers have multiple banked instances for
use in different processor modes.