Exception levels

ARMv8-A系列定义了一系列的异常等级,从EL0到EL3,下面具体说明其含义:

ELn中,随着n的增加,软件的执行权限也相应的增加;

  • EL0被称为无特权执行;
  • EL2提供了对虚拟化的支持
  • EL3提供了安全状态切换功能(安全状态与非安装状态之间的切换)

异常级别的切换

在AARCH64状态下,异常级别的切换只能发生在触发了异常,或者异常处理返回过程中,其中:

  • 当发生异常时,异常级别要不增加,要不保持不变;
  • 当从异常处理返回时,异常级别只能减小或者保持不变。

在发生异常即将进入或者从异常处理返回到另一个异常级别(包括异常级别不变的情况)时,待进入/返回的异常级别称之为目标异常级别。每个异常级别都有一个明确的目标异常级别,这个目标异常级别要么是默认定义的,要么是通过系统寄存器的相应bit定义的(注意没有异常级别的目标异常级别是EL0)。

不同异常级别资源使用

当PE在某个异常级别执行的时候,PE能够访问下面的资源:

  • 可用于当前异常级别和当前安全状态的资源集;
  • 在当前的安全状态下,所有较低的异常级别上可用的资源。

    这意味着,如果实现了EL3,那么当执行在EL3时,PE可以访问所有异常级别上可用的所有资源(包括安全状态和非安全状态下)。

常见的异常级别模型

ELn 应用范围
EL0 应用
EL1 操作系统或者一些特权函数
EL2 Hypervisor
EL3 Secure Monitor

Security state

Armv8-A架构提供了两种安全状态,每种状态都有一个相关的物理内存地址空间,如下所示:

Secure state:在这种状态下,PE可以访问安全状态和非安全状态下的物理地址空间;

Non-secure state:只能访问非安全物理地址空间。

【ARMv8】异常级别的定义EL0、EL1、EL2、EL3的更多相关文章

  1. jquery.uploadify 异常 “__flash__removeCallback”未定义

    使用场景结合artdialog弹出框使用时发生“__flash__removeCallback”未定义,原因在于artdialog基于iframe加载的uloadify,在关闭artdialog的时候 ...

  2. ARMV8 datasheet学习笔记4:AArch64系统级体系结构之编程模型(4)- 其它

    1. 前言 2.可配置的指令使能/禁用控制和trap控制 指令使能/禁用 当指令被禁用,则这条指令就会变成未定义 指令Trap控制 控制某条或某些指令在运行时进入陷阱,进入陷阱的指令会产生trap异常 ...

  3. ARMv8 架构与指令集.学习笔记

    目 录 第1章 ARMv8简介. 3 1.1基础认识. 3 1.2 相关专业名词解释. 3 第2章 Execution State 4 2.1 提供两种Execution State 4 2.2 决定 ...

  4. Armv8-A Memory management

    本文介绍Armv8-A的内存管理.内存管理指的是在系统中,内存访问是如何实现的. 使用内存管理机制,可以让每个应用之间的内存地址分离,即sandbox application,也可以让多个在物理内存上 ...

  5. ARMV8 datasheet学习笔记4:AArch64系统级体系结构之编程模型(3)- 异常

    1.前言 本文介绍异常相关内容,包括异常类型,异常进入,异常返回,异常层次结构,异常的路由等 2.  RESET ARMV8体系结构支持两种类型的RESET Cold reset:Reset PE所有 ...

  6. ARMV8 datasheet学习笔记4:AArch64系统级体系结构之编程模型(1)-EL/ET/ST

    1.前言 ARMV8系统级编程模型主要包括异常级别.运行状态.安全状态.同步异常.异步异常.DEBUG 本文主要对系统级编程模型做一个概要介绍 2. 异常级别 2.1 Exception level概 ...

  7. Armv8之Execution State 和 Exception Level(一)

    @ 目录 1. 典型的Exception Level使用模型 2.异常相关术语 3. Execution State 3.1 两种Execution State 3.2 决定Execution Sta ...

  8. ARMV8 datasheet学习笔记4:AArch64系统级体系结构之编程模型(2)- 寄存器

    1. 前言 2. 指令运行与异常处理寄存器 ARM体系结构的寄存器分为两类: (1)系统控制和状态报告寄存器 (2)指令处理寄存器,如累加.异常处理 本部分将主要介绍如上第(2)部分的寄存器,分为AA ...

  9. linux驱动由浅入深系列:PBL-SBL1-(bootloader)LK-Android启动过程详解之一(高通MSM8953启动实例)

    转自:http://blog.csdn.net/radianceblau/article/details/73229005 http://www.aiuxian.com/article/p-14142 ...

  10. 杂项记录 arm64 的一些特性

    函数返回值:arm64 规定了整数型返回值放在 x0 寄存器里 sp(栈空间)字节对齐:该临时变量占用 4字节空间:又因为 arm64 下对于使用 sp 作为地址基址寻址的时候,必须要 16byte- ...

随机推荐

  1. WordPress基础之基本SEO设置

    基础内容,不会涉及过深,在谷歌SEO教程中会做详细的介绍,我这里只简单讲下. 1. SEO介绍 SEO,又名搜索引擎优化(Search Engine Optimization,缩写为SEO)是透过了解 ...

  2. tcp粘包与udp丢包的原因

    tcp粘包与udp丢包的原因 一,什么是tcp粘包与udp丢包 TCP是面向流的, 流要说明就像河水一样, 只要有水, 就会一直流向低处, 不会间断. TCP为了提高传输效率, 发送数据的时候, 并不 ...

  3. 【MySQL】 批量更改库,表,字段的字符集

    库一级的更改: -- 单个库字符集更改 ALTER DATABASE `ymcd_aisw` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; ALTER ...

  4. 【Java】Collection 集合框架概述

    Collection 集合框架概述 1.集合.数组都是为了存储数据而产生的 2.为什么需要集合?为了更灵活方便的存储数据,且集合能存储的容量比数组更大 3.存储的概念还停留在内存活动范围内,也只是短暂 ...

  5. 强化学习算法真的适合于你的应用吗 —— 强化学习研究方向(研究领域)现有的不足(短板、无法落地性) —— Why You (Probably) Shouldn’t Use Reinforcement Learning

    外文原文: Why You (Probably) Shouldn't Use Reinforcement Learning 地址: https://towardsdatascience.com/why ...

  6. 【转载】 实时调度论文中经常出现的术语 ties broken arbitrary的意思 —— 看伪代码时出现 ties broken arbitrary

    看伪代码时突然看到这样的一个Ps标注, ties broken arbitrary,  不明白是啥意思,后来看到下文:https://blog.csdn.net/kangkanglhb88008/ar ...

  7. mysql数据库主从同步读写分离(二)读写分离实现

    步骤: a.解压文件 b.添加如下配置文件 c.mysql-proxy.conf配置内容如下: 1 [mysql-proxy] 2 admin-username=proxy 3 admin-passw ...

  8. [POI2015] POD 题解

    前言 题目链接:洛谷. 题意简述 长度为 \(n\) 的一串项链,每颗珠子是 \(k\) 种颜色之一.第 \(i\) 颗与第 \(i-1, i+1\) 颗珠子相邻,第 \(n\) 颗与第 \(1\) ...

  9. Apache DolphinScheduler 3.2.2 版本正式发布!

    Apache DolphinScheduler 3.2.2 版本正式发布! 近日,Apache DolphinScheduler 发布了 3.2.2 版本.此版本主要基于 3.2.1 版本进行了 bu ...

  10. pom阿里加速镜像地址

    <repositories> <repository> <id>alimaven</id> <name>aliyun maven</n ...