ARMv8-A 架构及其持续发展

ARMv8-A 是 ARM 架构的 ARMv8 A-profile 版本,于 2011 年 10 月首次公开预览。在过去两年中,ARM 发布了越来越多的 ARMv8-A,例如其Cortex-A53和Cortex-A57产品,以及来自被许可方和 OEM 的附加内核和最终用户设备。许多这些产品今天已经或进入批量生产。正如在 2014 年第三季度财务业绩中所报告的那样,ARM 已经签署了 57 个 ARMv8-A 处理器和架构许可,这意味着在未来 1-2​​ 年内将出现更多基于 ARMv8-A 的处理器和产品正在开发中。

架构随着对添加和改进的不断要求而发展。为了让 ARM 生态系统能够管理其发展的下一阶段,ARM 正在引入一组小规模的增强功能,这些增强功能与初始 v8.0 架构完全向后兼容,统称为ARMv8.1-A。这些是与 ARM 合作伙伴共同开发的,并将在 2015 年开始出现在公共规范、软件开发工具、模型和软件支持中,早期采用的芯片预计将在 2015 年下半年出现。更多细节将来自 ARM 及其合作伙伴作为产品介绍。重要的是要认识到将这些增强功能引入新内核需要数年时间,而其他设计选择可能会对系统性能产生更大的影响。预计某些市场和用例(例如移动)不会从这些变化中受益。这意味着 v8.0 将在中期继续成为许多新设计和大多数软件开发的首选架构,并且 v8.1 将对不同的细分市场产生逐渐影响,从非常大的系统开始。许多更改对用户来说都是透明的,Linux 等操作系统使用运行时库选择或内核补丁来进行必要的调整。

有关 ARMv8-A 体系结构的摘要,请参阅ARMv8-A 体系结构参考手册第 A1 章中有关 ARMv8 体系结构概念的部分。

ARMv8-A 架构及其持续发展_第1张图片

 

ARMv8.1 概述

ARMv8.1 引入的增强功能分为两类:

  • 指令集的变化
  • 异常模型和内存转换的变化

指令集增强

ARMv8.1 包括对 A64 指令集的以下补充:

  • 一组AArch64原子读写指令
  • 对 AArch32 和 AArch64 的高级 SIMD 指令集的添加,为一些库优化提供了机会:
    • 有符号饱和四舍五入加倍累加,返回高半
    • 有符号饱和四舍五入加倍乘减,返回高半
    • 指令以向量和标量形式添加。
  • 一组 AArch64 加载和存储指令,可以提供仅限于可配置地址区域的内存访问顺序。

除了新增内容外,v8.0 中的可选 CRC 指令成为 ARMv8.1 中的一项要求。

原子指令可用作加载独占/存储独占指令的替代方案,例如在非常大的系统中简化原子存储器更新的实现。这可以在紧密耦合的缓存中,有时称为近原子,或者在内存系统中更远的原子。这些指令提供了在一系列条件下使用内存对寄存器内容进行原子更新:

  • 比较和交换 8 位、16 位、32 位、64 位或一对 32 位或 64 位寄存器,作为内存中值的条件更新。
  • 对内存中的 -8、16、32 或 64 位值进行 ADD、BitClear、ExclusiveOR、BitSet 有符号和无符号 MAXimum 或 MINimum 值数据处理操作。无论是否将内存中的原始值复制到寄存器,都可能发生这些情况。
  • 在寄存器和内存中的值之间交换 8 位、16 位、32 位或 64 位值。
  • 指令还包括与基于获取和释放语义影响订单属性相关联的控件。

有限阶 (LO) 支持分为两部分:

  • 系统寄存器配置一个或多个内存 LORegions,最小分辨率为 64Kbytes。
  • 添加了用于 8 位、16 位、32 位和 64 位值的 LoadLOAcquire 和 StoreLORelease 指令,可用于代替全局 ARMv8 LoadAcquire 和 StoreRelease 指令。

异常模型和翻译系统增强

与异常和内存模型相关的附加内容是:

  • 新的特权访问从不 (PAN) 状态位。除非明确启用,否则该位提供防止对用户数据进行特权访问的控制;针对可能的软件攻击的附加安全机制。
  • 增加了用于虚拟化的 VMID 范围;支持更多的虚拟机。
  • 对页表访问标志的硬件更新的可选支持,以及可选的、硬件更新的、脏位机制的标准化。
  • 虚拟化主机扩展 (VHE)。这些增强功能通过减少在主机和来宾操作系统之间转换时相关的软件开销来提高 2 类虚拟机管理程序的性能。这些扩展允许主机操作系统在 EL2 上执行,而不是在 EL1 上执行,而无需进行大量修改。
  • 一种释放一些转换表位供操作系统使用的机制,其中操作系统不需要硬件支持。

最后,性能监视器单元 (PMU) 中添加了一些新事件,以更好地支持操作系统中的分析,例如Linux 中的perf实用程序。

概括

与其他处理器架构一样,ARM 架构也在随着时间而发展。ARMv8.1 是 ARM 对其最新版本的 ARMv8 A-profile 架构引入的第一组更改,这些更改被分组以帮助生态系统管理工具和软件支持以及大量基于 ARMv8-A 的处理器和正在开发的产品或今天生产。这些更改提供了比 v8.0 更大的好处,因此,将在几年内逐渐迁移到内核和相关产品中。应该注意的是,芯片合作伙伴的其他设计选择可能比 v8 与 v8.1 之间的选择产生更大的影响,因此我们预计两者将在未来多年的市场中共存。将提供公共规范以支持 2015 年中期的初始产品推出,从现在开始,通过工具和软件获得一些早期可见性。合作伙伴目前可以通过其销售和支持渠道根据保密协议获得更多详细信息。

备注:进军Neon,以后慢慢不断更新neon学习经历。

你可能感兴趣的:(neon,架构,arm开发)