Programmers Model
ARM DDI 0500D
Copyright © 2013-2014 ARM. All rights reserved.
3-6
ID021414
Non-Confidential
Terminology for taking an exception
An exception is generated when the processor first responds to an exceptional condition. The
processor state at this time is the state the exception is
taken from
. The processor state
immediately after taking the exception is the state the exception is
taken to
.
Terminology for returning from an exception
To return from an exception, the processor must execute an exception return instruction. The
processor state when an exception return instruction is committed for execution is the state the
exception
returns from
. The processor state immediately after the execution of that instruction
is the state the exception
returns to
.
Exception level terminology
An Exception level, ELn, with a larger value of n than another Exception level, is described as
being a higher Exception level than the other Exception level. For example, EL3 is a higher
Exception level than EL1.
An Exception level with a smaller value of n than another Exception level is described as being
a lower Exception level than the other Exception level. For example, EL0 is a lower Exception
level than EL1.
An Exception level is described as:
•
Using AArch64
when execution in that Exception level is in the AArch64 Execution state.
•
Using AArch32
when execution in that Exception level is in the AArch32 Execution state.
Typical exception level usage model
The architecture does not specify what software uses the different Exception levels, and such
choices are outside the scope of the architecture. However, the following is a common usage
model for the Exception levels:
EL0
Applications.
EL1
OS kernel and associated functions that are typically described as
privileged
.
EL2
Hypervisor.
EL3
Secure monitor.
3.2.3
Security state
An ARMv8 implementation that includes the EL3 Exception level provides the following
Security states, each with an associated memory address space:
Secure state
In Secure state, the processor:
•
Can access both the Secure memory address space and the Nonsecure
memory address space.
•
When executing at EL3, can access all the system control resources.
Non-secure state
In Non-secure state, the processor:
•
Can access only the Non-secure memory address space.
•
Cannot access the Secure system control resources.