【生意多】-免费发布分类信息
当前位置: 首页 » 新闻 » IT资讯 » 正文

ARMv8构架简介

放大字体  缩小字体 发布日期:2020-09-09 08:51:27    浏览次数:17
导读

  ARMv8体系结构的一个重要特性是向后兼容,并且可以在各种标准和更专门的用例中自由地进行优化实现。ARMv8架构支持:  是64位执行状态,这意味着地址保存在64位寄存器中,基本指令集中的指令可以使用64位寄存器进行处理。AArch64状态支持A64指令集。  是32位执行状态,这意味着地址保存在32位寄存器中,基本指令集中

  ARMv8体系结构的一个重要特性是向后兼容,并且可以在各种标准和更专门的用例中自由地进行优化实现。ARMv8架构支持:

  是64位执行状态,这意味着地址保存在64位寄存器中,基本指令集中的指令可以使用64位寄存器进行处理。AArch64状态支持A64指令集。

  是32位执行状态,这意味着地址保存在32位寄存器中,基本指令集中的指令使用32位寄存器进行处理。AArch32状态支持T32和A32指令集。

  ARMv8引入了对ARM架构的主要更改,同时与以前版本的架构保持了高度的一致性。下面的小节描述了关键的ARMv8架构概念。

  提供13个32位通用寄存器,以及一个32位PC、SP和link寄存器(LR)。LR同时用作ELR和过程链接寄存器。其中一些寄存器具有多个存储实例,用于不同的PE模式。

  定义许多包含PE状态的进程状态(PSTATE)元素。A32和T32指令集包括直接操作各种PSTATE元素的指令,以及使用应用程序状态寄存器(APSR)或当前程序状态寄存器(CPSR)访问PSTATE的指令。

  在AArch64和AArch32执行状态之间转移控制称为互处理(interprocessing)。PE只能在异常级别发生变化时在执行状态之间移动,并且必须遵守文中给出的规则。这意味着不同的软件层,例如应用程序、操作系统内核和管理程序,在不同的异常级别执行,可以在不同的执行状态中执行。

  AArch64状态只支持一个名为A64的指令集。这是一个使用32位指令编码的固定长度指令集。

  T32,这是一个可变长度的指令集,同时使用16位和32位指令编码。在以前的文档中,这些指令集被称为ARM和Thumb指令集。ARMv8扩展了这些指令集。在AArch32状态中,指令集状态决定PE执行的指令集。

  从ARM通用中断控制器体系结构GICv3的版本3开始,GIC体系结构规范定义了一个系统注册接口来实现它的一些功能。

  所有的ARMv8实现都支持这两个模型。特定用户选择的模型取决于产品设计和开发生命周期的不同阶段的调试需求。例如,外部调试可能在硬件实现调试和操作系统启动期间使用,而自托管调试可能在应用程序开发期间使用。

  在包含对SIMD&FP寄存器文件进行操作的SIMD指令的实现中,寄存器可以容纳一个或多个压缩元素,所有元素的大小和类型都相同。寄存器和数据类型的组合描述了元素的向量。向量被认为是指令中指定的数据类型元素的数组。向量中的元素数量由数据元素的大小和寄存器的大小来表示。向量索引的范围是0到(元素数量- 1)。索引为0表示向量的最小有效端。

  在AArch64状态下,SIMD&FP寄存器可以称为Vn,其中n是0到31之间的值。SIMD&FP寄存器支持加载、存储和数据处理操作的三种数据格式:

  ARMv8支持单精度(32位)和双精度(64位)浮点数据类型和IEEE 754浮点标准定义的算术。它还支持用于数据存储的半精度(16位)浮点数据类型,支持单精度和半精度数据类型、双精度和半精度数据类型之间的转换。在实现ARMv8.2-FP16时,它还支持用于数据处理操作的半精度浮点数据类型。

  支持64位虚拟寻址,翻译控制寄存器决定支持VA的范围。在EL1和EL0上执行支持两个独立的VA范围,每个范围都有自己的翻译控制。

  支持32位虚拟寻址,翻译控制寄存器决定支持VA的范围。为了在EL1和EL0上执行,系统软件可以将VA范围分成两个子范围,每个子范围都有自己的翻译控制。

  所支持的PA空间是由实现定义的,可以由系统软件发现。无论执行状态如何,虚拟内存系统体系结构(VMSA)都可以将VAs转换为PA空间中任何位置的内存块或内存页。

  ARMv8.3体系结构扩展是对ARMv8.2的扩展。它添加了架构特性。有些是强制性的,有些是选择性的。一些特性必须一起实现。

  ARMv8.4体系结构扩展是对ARMv8.3的扩展。它添加了架构特性。有些是强制性的,有些是选择性的。一些特性必须一起实现。一个实现是ARMv8.4兼容的

  实现中的密码扩展的存在受出口许可证控制的约束。密码扩展是SIMD支持的扩展,对向量寄存器文件进行操作。

  加密扩展在AArch64状态和AArch32状态中提供此功能,并且同时支持AArch64状态和AArch32状态的实现在这两种状态中提供相同的加密扩展功能。

  此外,ARMv8.2向ARMv8加密扩展添加了两个可选的扩展,它们仅在AArch64状态下提供加密功能。这两个可选的功能是:

  仅在A64指令集中,ARMv8.2-SM添加了支持的高级SIMD指令中国的密码学算法SM3和SM4。

 
关键词: armv8
(文/小编)
打赏
免责声明
• 
本文为小编原创作品,作者: 小编。欢迎转载,转载请注明原文出处:https://www.31duo.com/news/show-516489.html 。本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们。
 

(c)2016-2019 31DUO.COM All Rights Reserved浙ICP备19001410号-4

浙ICP备19001410号-4