0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Armv8-A到底是什么东西呢?

安芯教育科技 来源:老秦谈芯 2023-04-19 14:32 次阅读

前面的文章中经常提到Armv8-A。那么到底Armv8-A是什么东西呢?这个问题要说简单也很简单,要说复杂也很复杂。今天我们花点时间来简单研究一下。

众所周知,ARM是一家设计并授权处理器和相应IP(比如互连总线,中断处理器,图像处理器等等)的公司,目前其处理器产品分为三类:

Cortex-A系列:这个系列主要是应用(Application)处理器,这类处理器的特点是高性能,一般支持高速缓存,乱序执行,分支预测,指令多发射等等技术。

Cortex-R系列:这个系列主要是实时(Real-time)处理器,这类处理器的特点是对于外部事件的响应时间在可控范围,这里的实时并不是说处理器的速度快,而是对外部事件的响应时间可预测。

Cortex-M系列:这个系列主要是微控制(Micro-controller)处理器,这类处理器一般设计相对简单,芯片规模小,功耗值低,一般作为低成本芯片的控制器使用。

这三个系列的代表字母加起来刚好是ARM,所以这应该是ARM公司故意为之的。其实ARM公司的处理器产品在很早的时候并不是这么命名的,比如很早之前的ARM9,ARM11。现在ARM的处理器产品又增加了Neoverse系列,与A系列的处理器区分开来,不过这都是后话,暂时不用管它,还是认为是三个系列好了。

再返回来说Armv8.x-A,前缀Arm不用解释了;v表示的是版本(version);8表示的是大版本号;x表示的是扩展版本号,也称为小版本号,比如8.4就是大版本是8,扩展版本是4,Armv8-A的基础版本是Armv8.0-A;最后的A表示的是A系列,所以一定还有R和M对不?不过本人对于R和M了解很少,就不介绍了,后面的内容都是以A为基础。

Armv8-A的执行状态有两种,AArch64和AArch32。相应的Armv8-A支持两种指令集:AArch64(A64)和AArch32,其中AArch32又分为A32和T32。A64是固定长度指令集,指令编码32-bit;A32同样是固定长度指令集,32-bit指令编码;T32是变长指令集,16-bit和32-bit指令编码。由于A32和T32主要是为了向前兼容,在Armv8-A中实际应用较少,后面内容基本都是介绍AArch64的相关内容。

AArch64中扩展了一些寄存器,包括以下:31个通用的64位寄存器 (X0-X30),处理器状态寄存器PSTATE及相关的若干寄存器,堆栈寄存器SP等等。以后会找时间专门分析一下这些寄存器。 Armv8-A中定义了四种异常等级(Exception Level),这在前面的文章中重复过很多次了。

pYYBAGQ_i12AL_jaAACkCerLT7s734.jpg
poYBAGQ_i2WATi0VAAHD4DfjaGs625.jpg

Armv8-A支持GICv3,GICv4,SMMU3。 对于其处理器具体实现的指令集,ARM有一个约定,比如某个处理器实现了Armv8.1-A,那么该处理器:

必须实现Armv8.0-A和Armv8.1-A强制要求的功能

可以实现某些Armv8.2-A中扩展的功能

不允许实现Armv8.3-A和更高版本扩展的功能

对于Armv8.0-A要求的功能,以后有机会慢慢分析。这不是一朝一夕能完成的,毕竟单其架构文档已经上万页了。今天先简单列一下Armv8.0-A以后的版本所扩展的功能,后面我们再慢慢分析Armv8.0-A的基础功能和这些扩展功能。

1. Armv8.1-A

Atomic memory access instructions (AArch64)

Limited Order regions (AArch64)

Increased Virtual Machine Identifier (VMID) size, and Virtualization Host Extensions (AArch64)

Privileged Access Never (PAN) (AArch32 and AArch64)

2. Armv8.2-A

Support for 52-bit addresses (AArch64)

The ability for PEs to share Translation Lookaside Buffer (TLB) entries (AArch32 and AArch64)

FP16 data processing instructions (AArch32 and AArch64)

Statistical profiling (AArch64)

Reliability Availability Serviceability (RAS) support becomes mandatory (AArch32 and AArch64)

3. Armv8.3-A

Pointer authentication (AArch64)

Nested virtualization (AArch64)

Advanced Single Instruction Multiple Data (SIMD) complex number support (AArch32 and AArch64)

Improved JavaScript data type conversion support (AArch32 and AArch64)

A change to the memory consistency model (AArch64)

ID mechanism support for larger system-visible caches (AArch32 and AArch64)

4. Armv8.4-A

Secure virtualization (AArch64)

Nested virtualization enhancements (AArch64)

Small translation table support (AArch64)

Relaxed alignment restrictions (AArch32 and AArch64)

Memory Partitioning and Monitoring (MPAM) (AArch32 and AArch64)

Additional crypto support (AArch32 and AArch64)

Generic counter scaling (AArch32 and AArch64)

Instructions to accelerate SHA

5. Armv8.5-A and Armv9.0-A

Memory Tagging (AArch64)

Branch Target Identification (AArch64)

Random Number Generator instructions (AArch64)

Cache Clean to Point of Deep Persistence (AArch64)

6. Armv8.6-A and Armv9.1-A

General Matrix Multiply (GEMM) instructions (AArch64)

Fine grained traps for virtualization (AArch64)

High precision Generic Timer

Data Gathering Hint (AArch64)

7. Armv8.7-A and Armv9.2-A

Enhanced support for PCIe hot plug (AArch64)

Atomic 64-byte load and stores to accelerators (AArch64)

Wait For Instruction (WFI) and Wait For Event (WFE) with timeout (AArch64)

Branch-Record recording (Armv9.2 only)

8.Armv8.8-A and Armv9.3-A

Non-maskable interrupts (AArch64)

Instructions to optimize memcpy() and memset() style operations (AArch64)

Enhancements to PAC (AArch64)

Hinted conditional branches

Armv9-A是ARM公司最新的架构,但是目前还没有完全公开。

最后提一句,现在基于ARM处理器的多核服务器芯片设计正火,国内外玩家越来越多。ARM公司推出了Server Base System Architecture(SBSA)规范,提出了服务器的硬件要求。下表总结了与Armv8.x-A相关的SBSA要求。

pYYBAGQ_i5SAeFJeAAF3P-C_-9k985.jpg
pYYBAGQ_i5uAWXmvAACTFNCVYsg742.jpg

SBSA文档是公开的,感兴趣的朋友可以去官网下载。目前我看到的SBSA文档版本是7.0,在2021年1月发布。 其实SBSA中就是规定了一些规则(rule),对于不同等级有不同的要求。下图是SBSA的不同等级对处理器,SMMU和GIC的要求,可以与上一张图结合看。

pYYBAGQ_i7GAHdpeAABshK-6yPY325.jpg





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5028

    浏览量

    117723
  • 图像处理器
    +关注

    关注

    1

    文章

    95

    浏览量

    15320
  • 中断处理
    +关注

    关注

    0

    文章

    92

    浏览量

    10890
  • ARMv8
    +关注

    关注

    1

    文章

    35

    浏览量

    14056

原文标题:ARM系列 -- Armv8-A

文章出处:【微信号:Ithingedu,微信公众号:安芯教育科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ARMv8-A AArch32主要特性

    Cortex-A32产品介绍ARMv8-A AArch32主要特性ARMv7-M与AArch32的不同之处软件从ARMv7-M移植到ARMv7-A
    发表于 02-19 06:20

    手机参数中的4+64G到底是什么东西

    了解手机中的4+64G到底是什么东西!!
    发表于 09-14 09:07

    为何ARMv8-a架构要引入EL3

    ARMv8-a架构是由哪些部分组成的?为何ARMv8-a架构要引入EL3
    发表于 03-02 09:12

    请问Armv8-A到底是什么东西

    前面的文章中经常提到Armv8-A。那么到底Armv8-A什么东西?这个问题要说简单也很简单,要说复杂也很复杂。今天我们花点时间来简单研
    发表于 08-22 15:39

    Armv8-AArmv9-A的内存属性和属性介绍

    1. 本指南介绍Armv8-AArmv9-A的内存属性和属性。它首先解释内存的属性来自何处,如何分配到内存区域,然后介绍现有的不同属性,并解释内存顺序的基本特性。这一信息对开发低级别代码(如启动
    发表于 08-02 09:03

    Armv8-A上调试器的使用指南

    程序 •查看内存和寄存器内容 本指南将不关注调试器提供的功能,也不关注不同的调试方法。 相反,我们将研究针对 Armv8-A架构。此外,我们将解释这些功能是如何实现的,您需要做什么 考虑一下你何时使用它
    发表于 08-02 09:11

    Armv8-A内存定序模型详解

    1. 本指南介绍由 Armv8-A 架构定义的内存定序模型,并介绍所提供的不同内存障碍;本指南还确定一些需要明确定序的常见情况,以及如何使用内存障碍以确保实现正确操作;本指南适用于低级别代码的开发者
    发表于 08-02 11:03

    ARMV8-A电源管理详解

    ARMV8-A 电源管理
    发表于 08-02 08:32

    ARM Cortex-A系列ARMv8-A程序员指南

    ARMv8-A是针对应用配置文件的最新一代ARM架构。 在本书中,名称ARMv8用于描述整个体系结构,它现在包括32位执行状态和64位执行状态。 ARMv8引入了使用64位宽寄存器执行的能力,但提供
    发表于 08-22 07:22

    ARMv8-A处理器的裸机引导代码

    熟悉ARM软件开发。 它旨在帮助您编写ARMv8-A处理器的引导代码。 您可以参考本应用笔记中的引导代码示例,并为基于ARMv8-A处理器的裸机系统编写自己的引导代码。
    发表于 08-23 06:20

    ARMv8-A TrustZone软件对实施SVE的系统的影响

    本文档介绍ARMv8-A[ARMv8]的可伸缩向量扩展[SVE]对在应用程序处理器上以安全状态执行的软件的影响。 本文档考虑了部署现有ARMv8-A TrustZone软件对实施SVE的系统的影响,并为实施SVE的系统更新该软件
    发表于 08-23 06:17

    元宇宙到底是什么东西

     2021年元宇宙大火,也成为了人们的投资的一个风口,也有人把2021年看做是元宇宙的元年。那么元宇宙到底是什么?
    的头像 发表于 11-02 15:54 5087次阅读

    芯片到底是什么东西

    全球芯片短缺愈演愈烈,多家车企濒临停产,芯片已经成为我们不可或缺的物件,在日常生活中有着非常广泛的应用,越来越多的高科技产品都在使用芯片,那么芯片到底是什么东西?
    的头像 发表于 01-04 11:56 1.9w次阅读

    集成电路到底是什么东西

    在我们的生活中,许多设备里都会出现集成电路,或许有的小伙伴很困惑集成电路到底是什么东西,那么下面我们一起来了解一下吧。 集成电路是一种微型电子器件或部件,缩写为IC,就是把一定数量的常用电子元件通过
    的头像 发表于 02-01 10:40 8760次阅读

    脉宽调制到底是什么东西

    昨天在结尾处提到了PAM、PWM和SPWM,说它们经常会在一些说明书或参考书中见到,尤其是在变频器的说明书当中,那么,它们到底是什么东西哪?今天就说道说道这个事。
    的头像 发表于 08-30 15:59 1037次阅读
    脉宽调制<b class='flag-5'>到底是</b>个<b class='flag-5'>什么东西</b>?