前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >图说ARMv8架构特点

图说ARMv8架构特点

作者头像
安智客
发布2018-02-24 15:24:12
2.8K0
发布2018-02-24 15:24:12
举报
文章被收录于专栏:安智客安智客

ARMv8是ARM重点发展的一个架构。有一些年头了!我们来了解下!

本文介绍了ARMv8-a中的一些概念!

从ARMv7开始,ARM公司面向三个市场:应用、实时、控制,分别推出A、R、M系列处理器。ARM公司目前正在往服务器、企业设备方向进军。因此对于内存、虚拟化、安全需求迫切。在此背景下,ARMv8推出。

我们从5个方面描述:

1,AArch64,A64指令集,这里有一个误解是,64bit的指令集是指通用寄存器是64位宽的,而不是指32位的指令集编码变成64位的。ARMv7的LPAE技术可以解决4G的物理地址寻址限制。它主要解决虚拟地址寻址。

2,作为一家IP公司,ARM的设计必须保证向上兼容,因此定义了两套运行环境(ES:Execution state)。

3,AArch64摒弃了之前的处理器模式、优先级级别等传统概念。提出了EL(Exception level)。

4,在ARMv7 security extension的基础上,新增security model,支持安全相关的应用需求。

5,在ARMv7 virtualization extension的基础上,提供完整的virtualization框架,从硬件上支持虚拟化。

ARMv7之前,关键字处理器模式和privilege level:

处理器工作模式有:User、FIQ、IRQ、Abort、Undefined、System等,

不同的处理器模式有不同的权限privilege level。主要有主要有2个level,privilege和non-privilege。其中只有User模式属于non-privilege level,其它均是privilege level。大多数时候,软件都运行在User mode。一旦需要其它操作,则需要切换到相应的privilege模式下。这些处理器模式,除User模式外,其它模式基本上和各类异常一一对应。而不同的模式,都有一些自己独有的寄存器,例如R13(SP)、R14(LR)等等,可以使模式切换过程(也是异常处理过程)更为高效、便利。

类似于LINUX的用户需要root操作权限一样。这是等级权限的安全观,不同权限做不同的事。

ARMv7-a,扩展privilege level为PL0和PL1、PL2(用于虚拟化扩展Virtualization Extension)

增加了两个模式:Monitor和Supervisor,分别用于security扩展和virtualization扩展。

ARMv8-a,放弃处理器模式概念。形成Exception level,简称EL0-EL3。

放弃privilege level的概念。形成Exception level,可以将EL0归属于non-privilege level,EL1/2/3属于privilege level。

这些Exception level的现实意义是:

ARMv8-a Exception level有关的说明如下:

1)AArch64中,已经没有User、SVC、ABT等处理器模式的概念,为了兼容,在AArch32中,就把这些处理器模式映射到了4个Exception level。

2)Application位于特权等级最低的EL0,Guest OS(Linux kernel、window等)位于EL1,提供虚拟化支持的Hypervisor位于EL2(可以不实现),提供Security支持的Seurity Monitor位于EL3(可以不实现)。

3)只有在异常发生时(或者异常处理返回时),才能切换Exception level(这也是Exception level的命名原因,为了处理异常)。当异常发生时,有两种选择,停留在当前的EL,或者跳转到更高的EL,EL不能降级。同样,异常处理返回时,也有两种选择,停留在当前EL,或者调到更低的EL。

security model

ARMv8-a的security模型基本沿用了ARMv7 security extension的思路,主要目的保护一些安全应用的数据。它不同于privilege level等软件逻辑上的保护,而是一种物理上的区隔,即不同security状态下,可以访问的物理内存是不同的。

ARMv8-a架构有两个security state,Security和non-Security。主要的功效是物理地址的区隔,以及一些system control寄存器的访问控制:

在Security状态下,处理器可以访问所有的Secure physical address space以及Non-secure physical address space;

在Non-security状态下,只能访问Non-secure physical address space,且不能访问Secure system control resources。

virtualization

硬件虚拟化包括指令集虚拟化、异常处理虚拟化、MMU虚拟化、IO虚拟化等。

参考:

ARMv8_white_paper_v5.pdf

Fundamentals of ARMv8-A.pdf

附:TEEOS与EL之间的关系如下下图:

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档