[register]-04-ARMv8的寄存器简介和总结

发布者:温暖梦想最新更新时间:2021-11-30 来源: eefocus关键字:ARMv8  寄存器 手机看文章 扫描二维码
随时随地手机看文章

在介绍寄存器之前,我们先看下ARM中都有什么,以arm为例:

在这里插入图片描述

1、通用寄存器

(1)、a r m v 7 color{red}{arm v7}armv7 有 16 个 32-bit 通用寄存器,用 r0-r15 表示;

sp:r13, lr:r14, pc:r15

(2)、a r m v 8 color{red}{arm v8}armv8 有 31 个 64-bit 通用寄存器,用 x0-x30 表示,和v7不一样的是,这31个寄存器也可以作为 32-bit 寄存器来用,用 w0-w30 表示,其中 wn 是 xn 的低32位;

lr:x30, sp, pc


2、向量寄存器(SIMD)

(1)、a r m v 7 color{red}{arm v7}armv7 包含 16 个 128-bit 向量寄存器,用 q0-q15 表示。其中每个q寄存器又可以拆分成两个 64-bit 向量寄存器来用,用 d0-d31 来表示

(2)、a r m v 8 color{red}{arm v8}armv8 包含32个 128-bit 向量寄存器


a)、每个128-bit向量寄存器可以当做:


包含 2 个 64-bit 元素的向量寄存器来用,表达形式是 vn.2d;

包含 4 个 32-bit 元素的向量寄存器来用,表达形式是 vn.4s;

包含 8 个 16-bit 元素的向量寄存器来用,表达形式是 vn.8h;

包含 16 个 8-bit 元素的向量寄存器来用,表达形式是 vn.16b;

或者每个向量寄存器也可以只用低 64-bit:


1 个 64-bit 元素的向量寄存器来用,表达形式是 vn.1d;

2 个 32-bit 元素的向量寄存器来用,表达形式是 vn.2s;

4 个 16-bit 元素的向量寄存器来用,表达形式是 vn.4h;

8 个 8-bit 元素的向量寄存器来用,表达形式是 vn.8b;

q:128, d:64, s:32, h:16, b:8


状态寄存器


3、banked registers:

(armv8文档描述)

Banked register

A register that has multiple instances, with the instance that is in use depending on the PE mode, Security state, or other PE state


(stackoverflow的描述)

(https://stackoverflow.com/questions/42810627/arm-banked-register 描述)

In ARM there is a concept of Banked Register. While reading many questions and their answer and various other resources about what is Banked mean here. Then I got this definition: Register banking refers to providing multiple copies of a register at the same address. Not all registers can be seen at once.


在a r m v 7 color{red}{arm v7}armv7中,有很多banked registers,例如TTBRx,VBAR,SCTLR…

在a r m v 8 color{red}{arm v8}armv8中,banked registers就少了很多,因为大多数系统寄存器都添加了ELx后缀


4、状态寄存器CPSR:

在armv7上有cpsr寄存器

在armv8-32上同样有cpsr寄存器

在armv8-32上同样有PSTATE取代了cpsr,PSTATE是一组状态寄存器的集合


5、系统寄存器:

在armv7上,系统寄存器的读写都是通过协处理器指令来操作的

在armv8-arch64上,移除了协处理器的概念,通过MSR/MRS来访问系统寄存器。


6、以下重点介绍ARMV8的系统寄存器:

• Special-purpose registers.

• VMSA-specific registers

• ID registers on page

• Performance monitors registers

• Debug registers on page

• RAS registers on page

• Generic timer registers

• Cache maintenance system instructions

• Address translation system instructions

• TLB maintenance system instructions

• Prediction restriction System instructions

• Base system registers


(1)、Special-purpose registers

ELR_EL1

ELR_EL2

ELR_EL3


SP_EL0

SP_EL1

SP_EL2

SP_EL3


SPSR_EL1

SPSR_EL2

SPSR_EL3

SPSR_fiq

SPSR_irq

SPSR_und

SPSR_abt


(2)、Base system registers

PSTATE

SCR_EL3

SCTLR_EL1

SCTLR_EL2

SCTLR_EL3

VBAR_EL1

VBAR_EL2

VBAR_EL3


其中PSTATE又包含:

NZCV

DAIF

CurrentEL

SPSel

PAN

UAO

DIT

SSBS


(3)、Cache maintenance system instructions

DC CGDSW

DC CGDVAC

DC CGDVADP

DC CGDVAP

DC CGSW

DC CGVAC

…(共31个)…


DC CGDVAC,


(4)、Address translation system instructions

AT S12E0R

AT S12E0W

AT S12E1R

AT S12E1W

AT S1E0R

AT S1E0W

AT S1E1R

AT S1E1RP

AT S1E1W

AT S1E1WP

AT S1E2R

AT S1E2W

AT S1E3R

AT S1E3W


AT S1E1W,


(5)、TLB maintenance system instructions

TLBI ALLE1

TLBI ALLE1IS

TLBI ALLE1OS

TLBI ALLE2

TLBI ALLE2IS

TLBI ALLE2OS

…(共78个)…


TLBI ALLE1IS{, }


(6)、cryptographic Extension instructions

关键字:ARMv8  寄存器 引用地址:[register]-04-ARMv8的寄存器简介和总结

上一篇:ARM9的大端模式和小端模式
下一篇:ARM aarch64汇编学习笔记(三):寄存器概述

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved