02. ARMv8 some basic concepts
ARMv8
Introduction
- 新一代64位处理
- 保持ARMv7兼容性
New feature
在programmer guide 2.1里面 引入那些feature:
-
Large physical address
32位系统的没有enable的话,只支持4G。
-
64bit virtual addressing
使之虚拟地址空间可以超过4GB
-
automatic event sinaling
支持原子操作的存储和访问的操作
-
larger register files
减少对栈的使用,提高性能。
-
...
-
Addtional 16KB 和64KB TLB
-
...
-
Load-Acquire, Store Release instructions
-
NEON double-precision floating-points
ARMv8 some basic concepts
RM datasheet:
- PE: Processing Element(处理机)
RISC架构的特性(RM提供的):
-
A large uniform register file. (ARMv7提供R0-R15,ARMv8提供更丰富的寄存器,比如X0-X30)
-
A load/store architecture, where data-processing operations only operate on register contents, not directly on memory contents.
-
Simple address modes, with all the load/store address determined from register contents and instruction fields only. (采用统一的简单的,比如内存映射MMU模式)
Execution States
The downward compatibility of ARMv7 shall be considered when the ARM designed the ARMv8 instruction set architecture,so the ARM designs the Execution State
to be compatible with the ARMv7. There are the two types of `Execution State designed:
- AArch64
- AArch32
The two kinds of Execution State
are like the different containers for different execution envs. In the lesson, the AArch64 execution state should be focused only. The difference between the AArch64 and the AArch32 exection states are showed as following table.
Features | AArch64 | AArch32 |
---|---|---|
General-purpose registers | 31-64bits (X30 is used as the procedure link register) | 13-32bits registers |
Program Counter (PC) | one 64-bits registers | one 32-bits register |
Stack Pointers (SP) | mulitple 64-bits registers | one 32-bits register |
Exception Link Register (ELR) | mulitple 64-bits registers | one 32-bits LR register use as ELR |
Procedure Link Register | one 64-bits, it is X30 register | Sharing the LR with the ELR as PLR. |
Advanced SIMD vector/floating-point | 32 128-bits registers | 32 64-bits registers |
Instruction Set | A64 | A32 and T32 |
Excepiton model | 4 excepiton levels, EL0-EL3 (ARMv8 Exception Model) | PE modes and maps this onto the Armv8 Exception model (ARMv7 exception Model) |
Virtual Addressing | 64 bits virual address | 32 bits virtual address |
Process State (PSTATE) | The A64 includes instructions that operate diectly on various PSTATE. | Constract with the AArch64, the A32 and T32 operate them directly and can also use the APSR, CPSR to access. |
Instruction Sets
- A64
- A32/T32
AArch64 (A64)
Uses 32-bit instruction encodings and fixed-length.
AArch32 (A32/T32)
A32 uses 32-bit instruction encodings samely, and fixed-length. However, the T32 is a variable-length instruction set that uses both 16-bit and 32-bit instruction encodings.
Note, in AArch32, the A32/T32 instruction sets were called ARM and Thumb
instruction sets. The ARMv8 instrcution set extends each of these instruction sets.
System Registers
- Format
- Types [D13 chapter in RM]
Supported Data Types
- Byte 8bits
- Halfword 16 bits
- Word 32 bits
- Doubleword 64 bits
- Quadword 128 bits
Exception Levels (RM-D1.1)
- EL0
- EL1
- EL2
- EL3
AArch64's Registers
- R0-R30
- SP
- PC
- V0-V31
R0-R30
31 general-purpose registers. Each register can be accessed as X0-X30 (all the 64-bit are used) in 64 bit mode, W0-W30 (only low 32-bit are used). The Wx are Xx low 32-bit.
SP
64-bit dedicated Stack Pointer register.
PC
A 64-bit Program Counter holding the address of the current instruction. Software cannot write directly to the PC. It can only be updated on a branch, exception entry or exception return.
Processor State (RM-D1.7)
Condition Flags
- N
- Z
- C
- V
Exception Masking bits
- D
- A
- I
- F
Exection Status Control bits
- SS
- IL
- nRW
- EL
- SP
转载请注明出处:http://www.sdxiangshi.com/article/20230330/740764.html
随机推荐
-
02-29 朴素贝叶斯(垃圾邮件分类)
目录朴素贝叶斯(垃圾邮件分类)一、邮箱训练集下载地址二、模块导入三、文本预处理四、遍历邮件五、训练模型六、测试模型 人工智能从入门到放弃完整教程目录:https://www.cnblogs.com/nickchen121/p/116869...
-
02 Transformer 中 AddNorm (残差和标准化)代码实现
python/pytorch 基础 https://www.cnblogs.com/nickchen121 培训机构(Django 类似于 Transformers) 首先由一个 norm 函数 norm 里面做残差,会输入( x 和 ...
-
[02]为您的机器配置开发环境
为了方便和大家交流我建立了几个群,欢迎大家加群交流哦~ 【52ABP .NET CORE 实战交流】:633751348 ...
-
02-10 正则化线性回归(波士顿房价预测)
目录正则化线性回归(波士顿房价预测)一、导入模块二、获取数据三、训练模型四、可视化 人工智能从入门到放弃完整教程目录:https://www.cnblogs.com/nickchen121/p/11686958.html 正则化线性回归(...
-
02-02 响应模块
egon新书python全套来袭:https://egonlin.com/book.html 响应模块 1、作用 根据 用户请求URL 或 用户可接受的类型,筛选出合适的 渲染组件。 用户请求URL: http://127.0.0.1:8...
-
02-13 Softmax回归
目录Softmax回归一、Softmax回归详解1.1 让步比1.2 不同类之间的概率分布1.3 目标函数1.4 目标函数最大化二、Softmax回归优缺点2.1 优点2.2 缺点 人工智能从入门到放弃完整教程目录:https://www...
-
02.MyBatis配置文件详解
MyBatis入参考文档:http://mybatis.org/mybatis-3/zh/ 1.properties 属性1.在MyBatis配置文件中引用属性文件 MyBatis允许在mybatis-config.xml配置文件中加载...
-
02-09 对数线性回归(波士顿房价预测)
目录对数线性回归(波士顿房价预测)一、导入模块二、获取数据三、训练模型四、可视化 人工智能从入门到放弃完整教程目录:https://www.cnblogs.com/nickchen121/p/11686958.html 对数线性回归(波士...
-
02-20 kd树(鸢尾花分类)
目录kd树(鸢尾花分类)一、导入模块二、获取数据三、构建决策边界四、训练模型五、可视化 人工智能从入门到放弃完整教程目录:https://www.cnblogs.com/nickchen121/p/11686958.html kd树(鸢尾...
-
02-36 支持向量回归
目录支持向量回归一、支持向量回归学习目标二、支持向量回归详解2.1 支持向量机目标函数优化问题回顾2.2 支持向量回归损失度量函数2.3 支持向量回归目标函数优化问题2.4 支持向量回归目标函数对偶形式2.5 支持向量回归模型系数的稀疏性...