ARM架构(一)—— ARMV8V9基础概念

目录

  • 1.ARMCore的时间线
  • 2.ARM术语小结
    • 2.1 A64和arrch64
    • 2.2ARM架构现在的5个系列
    • 2.3 微架构
    • 2.4 PE
    • 2.5 Banked
    • 2.6 ARM文档术语
    • 2.7 IMPLEMENTATION DEFINFD 和 DEPRECATED
    • 2.8 EL1t和EL1h
  • 3 ARMv7的软件架构
  • 4 安全状态切换模型
    • 4.1 Secure state和Non-secure state介绍
  • 5 Interprocessing-执行状态切换模型
    • 5.1 执行状态切换的要求
    • 5.2、大系统软件中执行状态模型
  • 6.特权模型/安全模型/异常模型
  • 小结 aarch64和aarch32对比总结

1.ARMCore的时间线

在这里插入图片描述
tips:加E后缀的是车规级别的芯片,是给车辆使用的。

2.ARM术语小结

2.1 A64和arrch64

  • A64:是指令集。
  • arrch64:是64位的架构。

2.2ARM架构现在的5个系列

  • 1)A系列:应用于移动终端;2)R系列:应用于高实时性要求;3)M系列:应用于嵌入式;4)X系列:超大核;5)N系列:应用于服务器。 其中X和N系列都是A系列下的。

2.3 微架构

微架构:微架构是在架构的基础上实现的具体IP产品,比如ARM v8.0 架构的 A72,ARM v9.0的A715都是微架构。

2.4 PE

  • PE:Processing Element :ARM体系结构定义了抽象机器的行为,称为处理元素(缩写是PE),不仅仅指的ARM Core 其他GPU,NPU的处理单元也可以这么叫。一般将arm核和PE画等号。但是多核比如A65里面,一个核包含两个线程,一个线程就是一个PE,此时就不可以画等号了。

2.5 Banked

  • Banked:一个地址多份拷贝,一个SOC有4个核, ldr x0,[x1] 这个x1寄存器,哪个核去调用,这个x1就是这个核的x1寄存器。

2.6 ARM文档术语

1.TRM(Technical Reference Manual):Arm Cortex processor has a Technical Reference Manual,ARM 核的文档,具体实现定义的,比如查看某个寄存器的具体实现
2.Arm ARMs(ARM Architecture Reference Manual):架构类文档,最常用
3.CIM(Configuration or Integragtion Manual):Arm Cortex processor also has a Configuration or Integragtion Manual,一般给ASIC看的,会有板卡飞线等信息。

2.7 IMPLEMENTATION DEFINFD 和 DEPRECATED

  • IMPLEMENTATION DEFINFD:实现定义的,有两个意思1)ARM IP 产品是实现定义的,比如架构文档中某寄存器是实现定义的,这时候要具体查看它的Core文档,2)是有些实现定义的,ARM没有规定如何实现,需要芯片厂商自己决定如何实现,这个也叫实现定义的。
  • DEPRECATED:弃用的,在架构更新的时候,可能前面版本的某些实现被弃用了,一般不需要详细研究。
  • RES0/RERS1 Reservwd,should be Zero /Reserved ,should be one (后续继续补充)

2.8 EL1t和EL1h

  • EL1t和EL1h的后缀t和h分别表示什么?1)t 表示SP_EL0;h表示SP_ELn。
Exception Level(EL)Stack pointer(SP) options含义
EL0SP_EL0tEL0下的 SP_EL0
EL1SP_EL1t ,SP_EL1h在EL1中使用SP_EL0,SP_EL1
EL2SP_EL2t ,SP_EL2h在EL2中使用SP_EL0,SP_EL2
EL3SP_EL3t ,SP_EL3h在EL3中使用SP_EL0,SP_EL2

SP 栈指针一共有4个寄存器SP_EL0,SP_EL1,SP_EL2,SP_EL3。
在EL0只能使用SP_EL0寄存器;在EL1不仅能能使用SP_EL1寄存器,还能使用SP_EL0寄存器;在 EL2不仅能能使用SP_EL2寄存器,还能使用SP_EL0寄存器;在EL3不仅能能使用SP_EL3寄存器,还能使用SP_EL0寄存器;
t:就是SP_EL0 ;h:就是SP_ELn

3 ARMv7的软件架构

1、ARM有多少种模式?
7种,8种,9种都正确。在ARMv7中大部分都是9种模式;部分核是8种模式,不支持Hyp模式;部分是7种,不支持Hyp模式和Secure Monitor 模式

架构微架构UserPrivilegeSecure MonitorHypervisor
ARMv4ARM 7
ARMv5ARM 7
ARMv7Cortex-A8
ARMv7Cortex-A9
ARMv7Cortex-A5
ARMv7Cortex-A7
ARMv7Cortex-A15
ARMv8Cortex-A53
ARMv8Cortex-A53
ARMv8Cortex-A57
ARMv8Cortex-A72
ARMv8Cortex-A35
ARMv8Cortex-A73
ARMv8Cortex-A55
ARMv8Cortex-A75
ARMv8Cortex-A76

4 安全状态切换模型

4.1 Secure state和Non-secure state介绍

在不考虑RME扩展的前提下
1.ARM架构定义了两种安全状态 Secure state和Non-secure state;
2.ARM架构定义了两套物理地址空间:Secure和Non-secure;
3.如果PE是Non-secure state,那么它只能访问非安全物理地址空间:
4.如果PE是Secure state,那么它既能访问安全物理地址空间,也能访问非安全物理地址空间;
5.EL3永远是Secure state;
6.EL2/EL1/ELO是安全状态还是非安全状态,要根据SCREL3.NS比特:
7.SCR EL3.NS比特只能在EL3被修改
8.EL2是安全状态必须满足以下条件:(1)FEAT SEL2 is implemented(2)The Effective value of SCR EL3.EEL2 is 0b1(3)The Effective value of SCR EL3.NS is 0b0.

5 Interprocessing-执行状态切换模型

这个是由于v8中最初是32位架构,后面推出64位架构,V9第一款也是支持32和64,但是后面出的就是全支持64位架构,所以需要学习下这个执行状态切换,但是在未来都会使用64位架构,就不会存在这个问题了。

5.1 执行状态切换的要求

1.执行状态只能在异常从lower Exception level进入higher Exception level时,或从higher Exception level异常返回到lower Exception level时发生修改
2.如果异常进入或异常返回没有发生Exception Level变化,那么此时执行状态是不能被修改的
3.当产生一个异常从lower Exception level进入higher Exception level时,此时执行状态可能不变,或从aarch32变成arch64,不能从aarch64变成aarch32
4、当一个异常返回从higher Exception level到lower Exception level时,此时执行状态可能不变,或从aarch64变成aarch32,不能从aarch32变成aarch64
5.reset也能导致执行状态的变化

5.2、大系统软件中执行状态模型

在这里插入图片描述
在64位架构上可以运行64位或者32位,但是在32位架构之上只能运行32位

6.特权模型/安全模型/异常模型

在 ARMv8 中,执行发生在四个异常级别之一。在 AArch64 中,异常级别决定了特权级别,类似于ARMv7中定义的特权级别。异常级别决定特权级别,因此在ELn执行对应于特权PLn。类似地,具有比另一个更大的n值的异常级别处于更高的异常级别。一个数字比另一个小的异常级别被描述为处于较低的异常级别。
异常级别提供了适用于 ARMv8 架构的所有操作状态的软件执行权限的逻辑分离。它类似于并支持计算机科学中常见的分层保护域的概念。

  • ELO Normal user applications.
  • EL1 Operating system kernel typically described as privileged
  • EL2 Hypervisor.
  • EL3 Low-level frmware, including the Secure Monitor.

在这里插入图片描述

小结 aarch64和aarch32对比总结

AArch64,64位执行状态:
1.提供31个64位通用寄存器,其中X30用作过程链接寄存器。
2.提供64位程序计数器(PC)、堆栈指针(SPs)和异常链接寄存器(ELRS)。
3.为SIMD向量和标量浮点支持提供32个128位寄存器。
4.提供单个指令集A64定义了ARMV8异常模型,有四个异常级别,EL0-EL3,提供了一个执行特权层次结构
5.提供对64位虚拟寻址的支持
6.定义许多包含PE状态的进程状态(PSTATE)元素。A64指令集包括直接操作各种PSTATE元素的指令
7.使用表示可以访问寄存器的最低异常级别的后缀来命名每个系统寄存器。
AArch32,32位执行状态:
1.提供13个32位通用寄存器,以及一个32位PC、SP和link寄存器(LR)。LR同时用作ELR和过程链接寄存器。其中一些寄存器具有多个存储实例,用干不同的PE模式,
2.为从Hyp模式返回的异常提供一个ELR。
3.为高级SIMD向量和标量浮点支持提供32个64位寄存器。
4.提供两个指今集,A32和T32
5.支持基于PE模式的ARMv7-A异常模型,并将其映射到基于异常级别的ARMV8异常模型。
6.提供对32位虚拟寻址的支持。
7.定义许多包含PE状态的进程状态(PSTATE)元素。A32和T32指令集包括直接操作各种PSTATE元素的指令,以及使用应用程序(APSR)或当前程序状态寄存器(CPSR)访问PSTATE的指令

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3245634.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

C++(week11): C++基础 第六章:关联式容器 set、map

文章目录 第六章:关联式容器1.set(1)set的特点(2)set的构造(3)set的查找操作 (set访问元素)(4)set的插入操作、pair(5)set的遍历 2.map(1)map的特点(2)map的构造(3)map的查找操作(4)map的插入操作(5)map的下标操作 (重点)(5)map的遍历 第六章…

入度与出度在数据结构中的应用

文章目录 应用案例1. 邻接矩阵2. 邻接链表3. 邻接集(字典实现)4. 入度列表(基于邻接链表计算) 特别补充3. 邻接集计算入度(补充)4. 邻接多重表(概念介绍) 入度和出度是图论中的概念&…

手机误删图片怎么办?2个照片恢复大师来帮忙,轻松找回

手机照片早已成为我们日常生活中的一部分,记录着欢笑、泪水等各种瞬间。但有时候,因为各种原因,它们会突然消失,让人痛心疾首。照片恢复有哪些方法呢?别急,今天就给大家带来2位照片恢复大师,它们…

【手写数据库内核组件】0501多线程并发模型,任务分发多工作者执行架构实现,多线程读写状态时volatile存储类型使用技巧

0501 多线程管理 ​专栏内容: postgresql使用入门基础手写数据库toadb并发编程 个人主页:我的主页 管理社区:开源数据库 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 文章目录 0501 多…

[C++] 由浅入深理解面向对象思想的组成模块

文章目录 (一) 类的默认成员函数(二) 构造函数构造函数的特征构造函数示例无参构造带参构造 冲突:全缺省参数的构造函数与无参构造函数 (三)析构函数特性析构函数的析构过程解析 (四)拷贝构造函数什么是拷贝构造?特性为…

数据结构——单链表详解(超详细)(2)

前言: 上一篇文章小编简单的介绍了单链表的概念和一些函数的实现,不过为了保证文章的简洁,小编把它分成了两篇来写,这一篇小编紧接上一篇文章继续写单链表函数功能的实现: 目录: 1.单链表剩余函数的编写 1.…

MBR40150FCT-ASEMI无人机专用MBR40150FCT

编辑:ll MBR40150FCT-ASEMI无人机专用MBR40150FCT 型号:MBR40150FCT 品牌:ASEMI 封装:TO-220F 批号:最新 最大平均正向电流(IF):40A 最大循环峰值反向电压(VRRM&a…

小程序-视图与逻辑

一、页面导航 声明式导航 编程式导航 导航传参 1.声明式导航传参 2.编程式导航传参 3.在onload中接收导航参数 二、页面事件 下拉刷新 上拉触底 三、生命周期 分类 生命周期函数分类 1.应用的生命周期函数 2.页面的生命周期函数 四、WXS脚本 基础语法 wxs的特点 五、案…

智能硬件——0-1开发流程

文章目录 流程图1. 市场分析具体分析 2. 团队组建2. 团队组建早期团队配置建议配置一:基础型团队 (4人)配置二:扩展型团队 (6人)配置三:全面型团队 (7人) 3. 产品需求分析4. ID设计(Industrial Design, 工业设计)5. 结…

MathType加载项被word禁用怎么办 MathType加载到Word不能用

Word中的MathType加载项是指将MathType软件与Word文档进行关联的一项功能。它允许用户在Word中直接使用MathType的功能,方便地输入和编辑数学公式等内容。通过加载项,MathType的强大数学公式编辑能力可以与Word的文档处理功能相结合,提高工作…

谷歌账号异常的常见8种状态,前三种有望立刻恢复,越往后越难(1)

生搬硬套列夫•托尔斯泰的一句话名言“幸福的家庭都是相似的,不幸的家庭各有各的不幸。” 工作、学习、娱乐中需要使用谷歌账号的朋友可能会发现,幸福的人就是谷歌账号一直都好好的,每次登陆都如所愿,丝滑无比。但是“不幸”的人就会发现&am…

【微信小程序知识点】自定义构建npm

在实际开发中,随着项目的功能越来越多,项目越来越复杂,文件目录也变得很繁琐,为了方便进行项目的开发,开发人员通常会对目录结构进行优化调整,例如:将小程序源码放到miniprogram目录下。 &…

电脑型号数据源的性能提升:新一代技术的突破

随着科技的不断发展,电脑型号的数据源性能也得到了显著的提升。新一代技术的突破使得电脑型号的数据源更加准确、全面且易于使用。本文将从代码的角度解释这一突破,并参考挖数据平台的内容,向大家介绍电脑型号数据源的性能提升。 首先&#…

【scrapy】——个人笔记

scrapy简介 Scrapy,Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。 Scrapy吸引人的地方在于它是一个框架,任何人都可…

HEVC编码中的MPM(最可能模式,Most Probable Mode)

简介 最近看到有文章用视频编码时的MPM参数来映射特征并用于数字取证,故做该文章记录。 HEVC(高效视频编码)中的MPM(最可能模式,Most Probable Mode)用于预测帧内块的模式,以提高编码效率并减…

【python】PyQt5的窗口界面的各种交互逻辑实现,轻松掌控图形化界面程序

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

【ABB】示教器可编程按钮的配置

【ABB】示教器可编程按钮的配置 操作流程演示 操作流程 首先我要配置的是如图所示控制器上的四个按钮,这四个按钮是可以自定义功能的。 点击【菜单】点击【Control Panel】点击【ProgKeys】即可配置对应按键功能 演示 点击【菜单】 点击【配置可编程按键】 这里…

12306高铁票如何打印电子发票?

高铁票报销凭证电子版如何打印? 高铁票报销目前没有电子发票形式,只有纸质版报销凭证,不过虽然没有电子版报销凭证,但是可以通过多种方式获取纸质版报销凭证。 报销凭证只能打印一次,丢失不能补打,请妥善…

cpp 强制转换

一、static_cast static_cast 是 C 中的一个类型转换操作符,用于在类的层次结构中进行安全的向上转换(从派生类到基类)或进行不需要运行时类型检查的转换。它主要用于基本数据类型之间的转换、对象指针或引用的向上转换(即从派生…

Stable Diffusion教程|视频转绘有手就会Ebsynth Utility应用详解

过去这几个月,相信很多同行都已经见识到了AIGC强大的风格化绘图能力,不仅能够做出高品质的美术资产,还可以将制作效率大幅提高,这也是AI概念如今在资本市场受热捧的重要原因。 不过,目前我们所见到的大部分图形&#…