You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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)
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
arm的指令集有以下几种:
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.
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
Change log
[2022年6月29日]: 更新arm寄存器分类的脑图
[2022年7月7日]:
增加对arm指令集分类的介绍
指令分类图
The text was updated successfully, but these errors were encountered:
Introduction
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:
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: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.Instruction Sets
arm的指令集有以下几种:
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.种类
https://github.com/carloscn/doclib/blob/master/man/arm/armv8/arm64_quick_reference.pdf
System Registers
Supported Data Types
Exception Levels (RM-D1.1)
AArch64's Registers
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
Exception Masking bits
Exection Status Control bits
Change log
The text was updated successfully, but these errors were encountered: