Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ARMv8架构特性总结

ARMv8架构特性总结

作者头像
安智客
发布于 2018-07-30 06:23:23
发布于 2018-07-30 06:23:23
1.4K0
举报
文章被收录于专栏:安智客安智客

ARMv8架构,引入了Execution State、Exception Level、Security State等新特性,是目前ARM架构变动最大的一次,具体来说: 1,A64:对于Large memory的需求也可通过Large Physical Address Extensions (LPAE) 技术,虽然可以支持高达40bits的物理地址空间,但受限于32-bit的指令集,虚拟地址空间依旧只有32bits(4G),定义64-bit的指令集(A64)。向前兼容32-bit指令集(A32和T32)。 2,安全:在ARMv7 security extension的基础上,兼容TrustZone架构,新增security model。它不同于privilege level等软件逻辑上的保护,而是一种物理上的区隔,即不同security状态下,可以访问的物理内存是不同的。在Security状态下,处理器可以访问所有的Secure physical address space以及Non-secure physical address space;在Non-security状态下,只能访问Non-secure physical address space。

3,虚拟化:在ARMv7 virtualization extension的基础上,提供完整的virtualization框架,从硬件上支持虚拟化。包括指令集虚拟化、异常处理虚拟化、MMU虚拟化、IO虚拟化。

4,EL:定义AArch64和AArch32两套运行环境(称作Execution state),分别执行64-bit和32-bit指令集。使用exception level,替代了processor mode、privilege level等概念。

ARMv8 定义了4 个 Exception level,简称 EL0-EL3。同时Exception level 包含了 privilege 概念。

AArch64中,已经没有User、SVC、ABT等处理器模式的概念,由于向前兼容,在AArch32中,就把这些处理器模式映射到了4个Exception level。如上图所示。

当异常发生时,有两种选择,停留在当前的EL,或者跳转到更高的EL,EL不能降级。同样,异常处理返回时,也有两种选择,停留在当前EL,或者调到更低的EL。应用位于特权等级最低的EL0,Guest OS(Linux kernel等)位于EL1,提供虚拟化支持的Hypervisor位于EL2(可以不实现),提供Security支持的Seurity Monitor位于EL3。这里面体现了安全防御的思想,即出现异常事件必须由逐级由上一级EL处理。

(ARM32、Thumb、ARM64位指令集之间的关系如上图)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-05-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 安智客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
图说ARMv8架构特点
ARMv8是ARM重点发展的一个架构。有一些年头了!我们来了解下! 本文介绍了ARMv8-a中的一些概念! 从ARMv7开始,ARM公司面向三个市场:应用、实时、控制,分别推出A、R、M系列处理器。A
安智客
2018/02/24
3K0
图说ARMv8架构特点
[core]-ARMV7-A、ARMV8-A、ARMV9-A 架构简介「建议收藏」
Armv9-A 架构建立在 Armv8-A 架构的基础上并向前兼容。 Armv9-A 架构构成了 Arm 基础系统架构的基础——该规范概述了一种标准,可确保硬件和固件在系统级的广泛应用中具有兼容性。
全栈程序员站长
2022/07/31
2.4K0
Cortex-A53架构(记笔记的方法)
一颗芯片最主要的就是CPU核了,处理CPU Core之外,还存在很多其他IP,包括Graphical、Multimedia、Memory Controller、USB Controller等等。
全栈程序员站长
2022/07/28
5.6K0
Cortex-A53架构(记笔记的方法)
【ARM架构】armv8 系统安全概述
一个安全或可信的操作系统保护着系统中敏感的信息,例如,可以保护用户存储的密码,信用卡等认证信息免受攻击。
嵌入式与Linux那些事
2023/03/24
8890
【ARM架构】armv8 系统安全概述
ARMv8 寄存器
本文主要介绍 Armv8/v9 指令集架构中常用部分,详细的还是要看 Arm architecture reference manual.
233333
2024/03/17
3580
ARMv8 寄存器
aarch64 和 ARMV8 的区别
aarch64 和 ARMv8 是紧密相关但涵义不同的术语,在解释他们的区别之前,让我们先简单理解它们各自的含义: ARMv8: ARMv8 是指 ARM 架构的第八个版本,这是由 ARM Holdings 设计的一种处理器架构(也称为 ARMv8-A)。这个版本首次引入了对 64 位处理器的支持,它被设计来提供增强的性能,更好的电能效率,以及对现代计算需求的支持,比如高级多媒体和安全性能等。ARMv8 架构同时支持 64 位(AArch64)和 32 位(AArch32)指令集。 AArch64: AArch64 是 ARMv8 架构中用来描述 64 位的处理器状态和对应的指令集的术语。当处理器运行在这个状态下时,它可以执行 64 位的指令集并访问 64 位的寄存器。AArch64通常被用来指代64位的ARM处理器和操作系统。 总而言之,ARMv8 指的是处理器架构的一个版本,这个版本包括了 64 位处理能力。而 aarch64 指的是 ARMv8 架构中的 64 位指令集。也就是说,aarch64 是 ARMv8 的一部分。所有运行在 aarch64 模式下的ARM处理器都基于 ARMv8 架构,但 ARMv8 架构也包括对之前架构如 ARMv7 的兼容支持(例如,在 32 位模式下运行)。
233333
2023/12/12
3.1K0
ARMv8 异常处理简介
内核稳定性问题复杂多样,最常见的莫过于“kernel panic”,意为“内核恐慌,不知所措”。这种情况下系统自然无法正常运转,只能自我结束生命,留下死亡信息。诸如:
刘盼
2020/09/10
3.4K0
ARMv8 异常处理简介
嵌入式:ARM体系结构详解
为了清楚地表达每个ARM应用实例所使用的指令集,ARM公司定义了8种主要的ARM指令集体系结构版本,以版本号V1~V8表示。
timerring
2022/12/09
1.6K0
嵌入式:ARM体系结构详解
ARMV8体系结构简介
本文的主要内容来源于ARMV8白皮书v5,对ARMV8做一个概述。包含如下的内容:
233333
2019/05/25
1.4K0
Armv8架构虚拟化介绍
本文描述了Armv8-A AArch64的虚拟化支持。包括stage 2页表转换,虚拟异常,以及陷阱。本文介绍了一些基础的硬件辅助虚拟化理论以及一些Hypervisor如何利用这些虚拟化特性的例子。文本不会讲述某一具体的Hypervisor软件是如何工作的以及如何开发一款Hypervisor软件。通过阅读本文,你可以学到两种类型的Hypervisor以及它们是如何映射到Arm的异常级别。你将能解释陷阱是如何工作的以及其是如何被用来进行各种模拟操作。你将能描述Hypervisor可以产生什么虚拟异常以及产生这些虚拟异常的机制。理解本文内容需要一定基础,本文假定你熟悉ARMv8体系结构的异常模型和内存管理。
用户9732312
2022/05/13
8490
Armv8架构虚拟化介绍
armv7与armv8的区别(v8和w12的区别)
ARMv7 与 ARMv8的处理器架构自己一直没有详细了解过,现在来学习一下,在arm community 中文社区看到一个不错的总结。
全栈程序员站长
2022/08/02
1.4K0
armv7与armv8的区别(v8和w12的区别)
ARMv8-A TrustZone概述
TrustZone 是 Arm A-profile 架构中安全架构的名称。 在 Armv6K 中首次引入 TrustZone,在 Armv7-A 和 Armv8-A 中也得到支持。 Arm TrustZone是一种针对基于 ARM Cortex 处理器系统的嵌入式安全选项的系统范围方法。 ArmTrustZone也可以说是一种嵌入式安全技术,它从硬件级别开始,通过创建两个可以同时运行在单个核心上的环境:一个安全世界和一个正常世界。
知否知否应是绿肥红瘦
2025/02/19
2050
ARMv8-A TrustZone概述
aarch64指令集_AArch64应用程序级编程模型
根据实现选择,体系结构支持多级执行特权,由从EL0到EL3的不同异常级别表示。EL0对应于最低的特权级别,通常被描述为无特权。应用层程序员模型是在EL0上执行软件的程序员模型。
全栈程序员站长
2022/11/03
8820
ARMv8-A architecture overview
从今天起,正式学习ARMv8-A架构的知识,其中会涉及到ARMv7-A的一些知识,用来和ARMv8-A做对比使用。
DragonKingZhu
2020/03/24
1.3K0
ARMv8-A architecture overview
Android 中arm64-v8a、armeabi-v7a、armeabi、x86简介~
LZ是一名96年Android小生,从14年9月培训出来到现在,差不多俩年多的时间,由于一些原因,没能好好把技术提升一下,实乃不该啊。
贺biubiu
2019/06/10
10.1K0
AArch64 是什么
为了更广泛地向企业领域推进,需要引入 64 位构架。同时也需要在 ARMv8 架构中引入新的 AArch64 执行状态。AArch64 不是一个单纯的 32 位 ARM 构架扩展,而是 ARMv8 内全新的构架,完全使用全新的 A64 指令集。这些都源自于多年对现代构架设计的深入研究。更重要的是, AArch64 作为一个分离出的执行状态,意味着一些未来的处理器可能不支持旧的 AArch32 执行状态。 虽然最初的 64 位 ARM 处理器将会完全向后兼容,但我们大胆且前瞻性地将 AArch64 作为在 ARMv8 处理器中唯一的执行状态。我们在这些系统中将不支持 32 位执行状态, 这将使许多有益的实现得到权衡,如默认情况下,使用一个较大的 64K 大小的页面,并会使得纯净的 64 位 ARM 服务器系统不受遗留代码的影响。立即进行这种划分是很重要的,因为有可能在未来几年内将出现仅支持 64 位的服务器系统。没有必要在新的 64 位架构中去实现一个完整的 32 位流水线,这将会提高未来 ARM 服务器系统的能效。这样回想起来, AArch64 作为在 Fedora ARM 项目中被支持的 ARM 构架是一个很自然的过程: armv5tel、armv7hl、aarch64。新的架构被命名为:aarch64,这同 ARM 自己选择的主线命名方式保持一致,同时也考虑到了 ARM 架构名与 ARM 商标分开的期望。
全栈程序员站长
2022/11/02
3.9K0
AArch64 学习(一) 基础指令, 内存布局, 以及基础栈操作
ARM 是 高级-RISC(精简指令集)-机器 的缩写, 是精简指令集架构的家族. 同时 Arm Ltd. 也是开发和设计、授权这项技术的公司名称.
JoeyBlue
2022/06/06
2.8K0
AArch64 学习(一) 基础指令, 内存布局, 以及基础栈操作
ARM架构的一次充电
ARM处理器使用精简指令集(RISC),ARM(Advanced RISC Machines)ARM是一家公司的简称,其次ARM指一系列处理器的统称,同时ARM也是一种精简指令集架构。
小道安全
2022/12/18
1.2K0
ARM架构的一次充电
ARMv8-A Exception Levels
在ARMv8中首次引入了Exception Level的概念,每个Exception Level代表了不同的特权级别。当然了ARMv7也存在同样的特权级别,只不过名字是用PL定义的。
DragonKingZhu
2020/03/24
1.9K0
ARMv8-A Exception Levels
【ARMv8】异常级别的定义EL0、EL1、EL2、EL3
Exception levels ARMv8-A系列定义了一系列的异常等级,从EL0到EL3,下面具体说明其含义:
233333
2024/03/15
1.4K0
相关推荐
图说ARMv8架构特点
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档