文档详情

ARM-Cortex-A-Series-Programmer’s-Guide-for-ARMv8-A.docx

发布:2018-10-19约4.49千字共6页下载文档
文本预览下载声明
ARM Cortex-A Series Version: 1.0 Programmer’s Guide for ARMv8-A 简介 32-bit到64-bit的变化: A64指令集提供了一些显著的性能优势,包括一个更大的寄存器池。在函数调用必须传递大于四个寄存器时,额外的寄存器以及ARM Architecture Procedure Call Standard (AAPCS)便可提升性能。在ARMv7中,这将使用堆栈,而AArch64可以在寄存器中传递8个参数。 长度更宽的整数寄存器使得操作64-bit数据的代码运行更有效。一个32-bit处理器在执行64-bit数据的算术运算时,可能需要运算多次;一个64-bit处理器也许一次操作即可。 64-bit操作使得应用程序可以使用更大的虚拟地址空间。虽然Large Physical Address Extension (LPAE)将物理地址空间从32-bit扩展至40-bit,但它并没有扩展虚拟地址。这意味着即使有LPAE,一个单一的应用程序将被限定在32-bit(4GB)的地址空间,因为其中一些地址空间为操作系统所保留。然而,更大的虚拟地址空间会使得内存映射文件更大。 软件运行在32-bit的架构时,可能会需要map一些进、出内存的数据。拥有更大地址空间,并使用64-bit指针可以避免这个问题的发生。然而使用64-bit指针会增加一些开销(4bytes增加至8 bytes),增加内存空间的使用也会导致命中Cache数量的下降,这反过来会降低性能。 ARMv8的基本法则 在ARMv8中,执行发生在4个Exception level中的一个。在AArch64下,Exception level决定着level of privilege,与ARMv7中定义的privilege levels的方式相似,Exception level决定着privilege level,所以ELn对应PLn。 Exception levels提供了一个软件执行特权的逻辑分层,其与计算机科学领域的分层保护域的概念相似。 图3-1 Exception level EL0:一般用户应用 EL1:操作系统,通常被定于为privileged EL2:Hypervisor EL3:Low-level firmware,包含Secure Monitor 图3-2 ARMv8 Normal World和Secure world的Exception level 通常一款软件,例如一个应用、操作系统、或者虚拟机管理程序,占用单一的Exception level。一个例外是,内核的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还提供了对虚拟化的支持,虽然只是在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可以作为一个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提供安全服务,并对Secure或者trusted applications提供一个运行环境。 执行状态 ARMv8 AArch32保留了ARMv7定义的privile
显示全部
相似文档