当前位置:网站首页>ARMV8体系结构简介
ARMV8体系结构简介
2022-07-25 09:23:00 【工作使我快乐】
前言
基于网上资料对相关概念做整理汇总,部分内容引用自文后文章。
1. 概述
本节引用自文章“ ARMV8体系结构简介 ”,链接放在文后
本文的主要内容来源于ARMV8白皮书v5,对ARMV8做一个概述。包含如下的内容:
- 首先从背景谈起,讲述ARM的发展历程;
- 之后介绍ARMV8体系结构的基本特征;
- 介绍A64指令集
- 介绍异常级别
- 介绍内存管理单元
- 介绍编程寄存器
- 介绍DEBUG相关
- ARMV8生态系统的演化
1.1 背景


1.2 ARMV8架构基本特性

- ARMV8目前只定义了Application profile
- ARMV8定义了48bit符号虚拟地址和达到48bit物理地址
- ARMV8采用了新的指令集A64
- ARMV8兼容ARMV7的指令
- A32和A64的转换只能发生在异常级别转换时
1.3 A64指令集
- A64下的每条指令被定义为固定32bit
- A32和A64分别解码,这样可以简化解码表,单独的解码表可以允许更多更先进的分支预测技术
- 通用目的寄存器增加到31个
- A64删除了LDM/STM指令,因为LDM/STM实现比较复杂
- 更少的条件指令,因为实现复杂,并且没有明显的好处
- 浮点单元硬件支持
- SIMD支持,针对A64做了专门修订,引入了双精度浮点支持
1.4 异常级别

- A32和A64之间的转换有一个严格的规则集合
- 异常级别增加,可以保持A32或升级到A64
- A64引入了专门的寄存器ELR,用于记录异常返回地址,在所有的异常入口会进行设置
- 在异常入口,中断mask会自动置位
- 每个异常级别都有自己的向量基址寄存器,每个向量被按照类型区分:synchronous,IRQ,FIQ或Error
- 关于异常的详细细节在syndrome register
1.5 内存管理单元

1.6 程序寄存器

- 30个通用寄存器(X0-X30),每个寄存器使64bits,其中X30是LR寄存器
- 只有一个SP寄存器和ELR寄存器
- SPSR
- Pstate
1.7 DEBUG
- 可以通过debugger调试器直接发送指令,处理器可以提取
- 两种类型的debug:self-host和halt mode debug
参考
| 1、作者 | 博文 |
| jasonactions | ARMV8体系结构简介 |
边栏推荐
- matlab绘图|坐标轴axis的一些常用设置
- 基于stm32的恒功率无线充电
- @4-1 CCF 2020-06-1 linear classifier
- Mixed supervision for surface-defect detection: from weakly to fully supervised learning:表面缺陷检测的混合监督
- *6-1 CCF 2015-03-2 numerical sorting
- Principle analysis of self supervised depth estimation of fish eye image and interpretation of omnidet core code
- [code source] daily one question non decreasing 01 sequence
- CDA Level1知识点总结之业务分析报告与数据可视化报表
- *7-1 CCF 2015-09-1 sequence segmentation
- 解决QTCreator使用VS编译中文乱码错误
猜你喜欢

初识Opencv4.X----图像直方图匹配

【数据挖掘】第四章 分类任务(决策树)

单目深度估计自监督模型Featdepth解读(下)——openMMLab框架使用

Creation of adjacency table of undirected connected graph output breadth depth traversal

Wechat applet realizes the rotation map (automatic switching & manual switching)

*7-2 CCF 2015-09-2 date calculation

@2-1 safety index predicted by CCF at the end of December 1, 2020

*7-1 CCF 2015-09-1 sequence segmentation

CCF 201512-4 送货

基于机智云平台的温湿度和光照强度获取
随机推荐
打造个人极限写作流程 -转载
初识Opencv4.X----为图像添加椒盐噪声
chmod和chown对挂载的分区的文件失效
matlab如何导入大量数据
Learning new technology language process
单目深度估计自监督模型Featdepth解读(下)——openMMLab框架使用
解决QTCreator使用VS编译中文乱码错误
CUDA 解释 - 深度学习为何使用 GPU
初识Opencv4.X----图像直方图均衡
【Tensorflow2安装】Tensorflow2.3-CPU安装避坑指南!!!
[code source] I have a big head for a problem every day
CDA Level1知识点总结之多维数据透视分析
Matlab drawing | some common settings of axis
[code source] daily one question non decreasing 01 sequence
Singleton mode
@4-1 CCF 2020-06-1 linear classifier
[code source] daily question tree
Minkowskiengine installation
Evolution based on packnet -- review of depth estimation articles of Toyota Research Institute (TRI) (Part 2)
Use kotlin use to simplify file reading and writing