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

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

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ARM-Cortex-A-Series-Programmer’s-Guide-for-ARMv8-A

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

文档评论(0)

zsmfjh + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档