arm-cortex-a-series-programmer’s-guide-for-armv8-a

上传人:小** 文档编号:57315756 上传时间:2018-10-20 格式:DOCX 页数:6 大小:544.98KB
返回 下载 相关 举报
arm-cortex-a-series-programmer’s-guide-for-armv8-a_第1页
第1页 / 共6页
arm-cortex-a-series-programmer’s-guide-for-armv8-a_第2页
第2页 / 共6页
arm-cortex-a-series-programmer’s-guide-for-armv8-a_第3页
第3页 / 共6页
arm-cortex-a-series-programmer’s-guide-for-armv8-a_第4页
第4页 / 共6页
arm-cortex-a-series-programmer’s-guide-for-armv8-a_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《arm-cortex-a-series-programmer’s-guide-for-armv8-a》由会员分享,可在线阅读,更多相关《arm-cortex-a-series-programmer’s-guide-for-armv8-a(6页珍藏版)》请在金锄头文库上搜索。

1、ARM Cortex-A SeriesVersion: 1.0Programmers Guide for ARMv8-A1. 简介简介32-bit 到 64-bit 的变化:(1)A64 指令集提供了一些显著的性能优势,包括一个更大的寄存器池。在函数调 用必须传递大于四个寄存器时,额外的寄存器以及 ARM Architecture Procedure Call Standard (AAPCS)便可提升性能。在 ARMv7 中,这将使用堆栈,而 AArch64 可以在寄存器中传递 8 个参数。 (2)长度更宽的整数寄存器使得操作 64-bit 数据的代码运行更有效。一个 32-bit 处 理器在

2、执行 64-bit 数据的算术运算时,可能需要运算多次;一个 64-bit 处理器 也许一次操作即可。(3)64-bit 操作使得应用程序可以使用更大的虚拟地址空间。虽然 Large Physical Address Extension (LPAE)将物理地址空间从 32-bit 扩展至 40-bit,但它并没有扩 展虚拟地址。这意味着即使有 LPAE,一个单一的应用程序将被限定在 32- bit(4GB)的地址空间,因为其中一些地址空间为操作系统所保留。然而,更 大的虚拟地址空间会使得内存映射文件更大。 (4)软件运行在 32-bit 的架构时,可能会需要 map 一些进、出内存的数据。拥有

3、 更大地址空间,并使用 64-bit 指针可以避免这个问题的发生。然而使用 64-bit 指针会增加一些开销(4bytes 增加至 8 bytes) ,增加内存空间的使用也会导致 命中 Cache 数量的下降,这反过来会降低性能。3. ARMv8 的基本法则的基本法则在 ARMv8 中,执行发生在 4 个 Exception level 中的一个。在 AArch64 下, Exception level 决定着 level of privilege,与 ARMv7 中定义的 privilege levels 的方式相似, Exception level 决定着 privilege level,

4、所以 ELn 对应 PLn。 Exception levels 提供了一个软件执行特权的逻辑分层,其与计算机科学领域的分 层保护域的概念相似。图 3-1 Exception levelEL0:一般用户应用 EL1:操作系统,通常被定于为 privileged EL2:Hypervisor EL3:Low-level firmware,包含 Secure Monitor图 3-2 ARMv8 Normal World 和 Secure world 的 Exception level通常一款软件,例如一个应用、操作系统、或者虚拟机管理程序,占用单一的 Exception level。一个例外是,内

5、核的 hypervisors 例如 KVM,遍及了 EL2 和 EL1。 ARMv8-A 提供了两个安全状态,Secure 和 Non-secure,Non-secure 状态也称为 Normal World。这使得一个 OS 与一个 trusted OS 平行运行在同一个硬件,并提供对于 某些软件攻击和硬件攻击的保护。TrustZone 技术使得系统被划分为 Normal world 和 Secure world。在 ARMv7-A 架构中,Secure monitor 起着切换 Normal world 和 Secure world 的网关的作用。 ARMv8-A 还提供了对虚拟化的支持,

6、虽然只是在 Normal world。这意味着 hypervisor 或者 Virtual Machine Manager (VMM)代码可以在运行在系统上并管理多个客 户操作系统。本质上,每个客户操作系统都运行在虚拟机上,每个 OS 都不知道自己 与其它客户操作系统共享一个系统。 Normal world(对应(对应 Non-secure 状态)有如下特权组件:状态)有如下特权组件: (1)Guest OS kernels 这些 kernel 包括运行在 Non-secure EL1 的 Linux 或者 Windows。当运行了一个hypervisor,rich OS kernels 可以

7、作为一个 guest 或者 host,取决于 hypervisor 的模式。 (2)Hypervisor Hypervisor 运行在 EL2,并且总是 Non-secure,它为 rich OS kernels 提供虚拟化服 务。 Secure world 有如下特权组件:有如下特权组件: (1)Secure firmware 一个应用处理器上,在 boot 时应该首先运行 firmware,它提供若干种服务,包括 平台初始化、trusted OS 初始化、路由 Secure monitor 调用。 (2)Trusted OS Trusted OS 为 Normal world 提供安全服务

8、,并对 Secure 或者 trusted applications 提供一个运行环境。3.1 执行状态执行状态 ARMv8 AArch32 保留了 ARMv7 定义的 privilege,AArch64 的 privilege level 由 Exception level 决定,因此 ELn 对应 PLn。在AArch32 状态,Trusted OS 软件运行在Secure EL3,在 AArch64 状态,其运行在 Secure EL1。图 3-3 ARMv8 AArch64 和 AArch32 的 Exception level3.2 改变改变 Exception level图 3-3

9、 ARMv7 privilege levelsException levels 的切换需遵循一下规则:(1)向更高 Exception level 切换,比如从 EL0 到 EL1,表明软件增加执行特权。(2)异常不能向低 Exception level 产生。(3)在 EL0 上没有异常处理,异常处理必须在更高的 Exception level。(4)异常包括:Interrupts such as IRQ and FIQ;Memory system aborts;Undefined instructions;System calls;Secure monitor or hypervisor

10、traps。(5)可通过执行 ERET 指令,来结束异常处理并返回之前的 Exception level。(6)异常返回可以留在相同的 Exception level,或者进入更低的 Exception level,但不能进入更高的 Exception level。(7)安全状态会随着 Exception level 的改变而改变,除了从 EL3 返回至 Non-secure 状态。3.3 改变执行状态改变执行状态有些时候,你必须改变系统的执行状态。例如,当运行 64-bit 操作系统时,需要 在 EL0 运行一个 32-bit 的应用程序时,系统必须切换至 AArch32。当应用程序执行完成

11、, 系统可以切换回至 AArch64(路径:EL0,EL1,EL2,EL1,EL0,EL1,EL0) 。在相同异常层级改变执行状态,你不得不切换至更高的 Exception level,然后返回 至原来的 Exception level。 EL3 上的代码不能向更高exception level 产生异常,所以不能改变执行状态,除非通过一个 reset。 AArch64 和 AArch32 相互切换时,需注意一下几点:(1)AArch64 和 AArch32 所具有的 Exception levels 是相似的,但是 Secure 和 Non- secure 的运行是有一些差别的。 (2)切换

12、至 AArch32 需要从高 Exception level 到低 Exception level。 (3)切换至AArch64 需要从低 Exception level 到高 Exception level。 (4)如果当产生异常或者异常返回时,Exception level 不变,那么执行状态不能改变。17. 安全安全一个系统提供某一安全层来保护例如密码、加密密钥、信用卡信息等资产不会被 复制、损坏、或不可用。安全性很难在开放系统上实现,因为你可以在那里下载各种 软件,一些恶意或不受信的代码可以篡改你的系统。 你可以通过软件系统的设计来达到一定的安全性,但你更可以通过 CPU 和系统级 的

13、内存划分来获得更高级别的保护。 软件攻击、硬件攻击可归类如下: (1)软件攻击 恶意软件攻击通常不需要物理性的访问设备,可会利用操作系统或者应用的漏 洞来进行攻击。 (2)简单的硬件攻击 这些攻击通常是被动的,大多数非破坏性的攻击需要访问设备,使用的软件通 常包括逻辑分析仪、JTAG 运行控制单元等。 (3)实验室硬件攻击 这种攻击需要复杂和昂贵的工具,比如集中离子束(FIB)技术或者电源分析 技术,通常用于攻击智能卡设备。TrustZone 技术用来防止软件和简单的硬件攻击。17.1 TrustZone 硬件架构硬件架构 TrustZone 架构使用 TrustZone 安全扩展、安全设备,

14、为设计者提供了一种方式来 帮助实现安全系统。低水平的程序员必须理解 TrustZone 架构对系统的限制,即使他 们不需要使用安全特性。 ARM 的安全模型划分了设备硬件和软件资源,使得他们可以存在于安全子系统的 Secure world,或者 Normal world。系统硬件确保Secure world 的资产不可被 Normal world 所访问。ARM 架构参考手册使用架构参考手册使用 Secure和Non-secure特指系统的安全状态。一个Non-secure状态并不意味至有安全漏洞The ARM Architecture Reference Manual uses the te

15、rms Secure and Non-secure to refer tosystem security states. A Non-secure state does not automatically mean security vulnerability,but rather normal operation and is therefore the same as the Normal world. Normally, there is amaster and slave relationship between Non-secure and Secure worlds, and so

16、 the Secure worldis only executed when the Normal world performs a Secure Monitor Call (SMC), (see SMCinstruction in ARMv8-A Architecture Reference Manual). The use of the word world is reallyused to describe not just the execution state, but also all memory and peripherals that are onlyaccessible in that state.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号