Programmers Model
ARM DDI 0500D
Copyright © 2013-2014 ARM. All rights reserved.
3-5
ID021414
Non-Confidential
•
Provides two instruction sets, A32 and T32. For more information, see
Instruction set state
on page 3-10
.
•
Provides an exception model that maps the ARMv7 exception model onto
the ARMv8 exception model and Exception levels. For exceptions taken to
an Exception level that is using AArch32, this supports the ARMv7
exception model use of processor
modes
.
•
Features 32-bit VAs. The VMSA maps these to PA maps that can support
PAs of up to 40 bits.
•
Collects processor state into the
Current Program State Register
(CPSR).
The processor can move between Execution states only on a change of Exception level, and
subject to the rules given in
Rules for changing execution state
on page 3-7
. This means
different software layers, such as an application, an operating system kernel, and a hypervisor,
executing at different Exception levels, can execute in different Execution states.
3.2.2
Exception levels
The ARMv8 exception model defines exception levels EL0-EL3, where:
•
EL0 has the lowest software execution privilege, and execution at EL0 is called
unprivileged execution.
•
Increased exception levels, from 1 to 3, indicate increased software execution privilege.
•
EL2 provides support for processor virtualization.
•
EL3 provides support for a secure state, see
Security state
on page 3-6
.
The Cortex-A53 processor implements all the Exception levels, EL0-EL3, and supports both
Execution states, AArch64 and AArch32, at each Exception level.
Execution can move between Exception levels only on taking an exception, or on returning from
an exception:
•
On taking an exception, the Exception level either increases or remains the same. The
Exception level cannot decrease on taking an exception.
•
On returning from an exception, the Exception level either decreases or remains the same.
The Exception level cannot increase on returning from an exception.
The Exception level that execution changes to, or remains in, on taking an exception, is called
the
target Exception level
of the exception, and:
•
Every exception type has a target Exception level that is either:
—
Implicit in the nature of the exception.
—
Defined by configuration bits in the system registers.
•
An exception cannot target the EL0 Exception level.
Exception levels, and privilege levels, are defined within a particular Security state, and
ARMv8
security model
on page 3-8
describes the permitted combinations of Security state and
Exception level.
Exception terminology
This section defines terms used to describe the navigation between exception levels.