Armv9 system register class空间编码

1. 前言

Armv9 system register的编码空间由一组参数标识:{op0, op1, CRn, CRm, op2},它们形成了一个编码层次结构,其中:

  • op0:定义编码空间的最高类别划分。
  • op1:定义了可以访问这个编码空间的最低Exception level。具体如下:
    • Accessible at EL0:op1的值为3
    • Accessible at EL1:op1的值为0,1,2
    • Accessible at Secure EL1:op1的值为7
    • Accessible at EL2:op1的值为4,5。其中5是用于在VHE实现和HCR_EL2.E2H为1情况下,EL12编码访问EL1 system registers的。
    • Accessible at EL3:op1的值为6

ARM架构里预留了一些IMPLEMENTATION DEFINE的空间,它强烈建立这段空间的op1的值也要符合上述约定。

系统指令类的编码空间里的每条instruction有以下任意特性:

  • 转移到system register:这种system instruction具有写的特性;
  • 从system register转移。这种system instruction具有读的特性;

执行system instruction就像是对寄存器进行传输一样。

2. op0分类

在AArch64指令集中,system instruction class对{op0, op1, CRn, CRm, op2}的编码结构为:

 op0域提供了system instruction类型的最顶层编码分类,它的值有:

  • 0b00 These encodings provide:
    • Instructions with an immediate field for accessing PSTATE, the current PE state.
    • The architectural hint instructions.
    • Barriers and the CLREX instruction.
  • 0b01 These encodings provide:
    • Cache maintenance instructions.
    • TLB maintenance instructions.
    • Address translation instructions.
    • Prediction restriction instructions.
    • BRBE instructions.
  • 0b10 These encodings provide moves to and from:
    • Legacy AArch32 System registers for execution environments, to provide access to these registers from higher Exception levels that are using AArch64.
    • Debug and trace registers.
  • 0b11 These encodings provide:
    • Moves to and from Non-debug System registers. The accessed registers provide system control, and system status information.
    • Access to Special-purpose registers.

记忆原则就是43522,4是op1的类别,3522分别对应op1为0,1,,2,3的类别。

3. op0之下的分类

在上面我们看到系统寄存器的分类取决于{op0, op1, CRn, CRm, op2}参数。op0决定大类,在之下的根据op1,op2,CRn,CRm还可以继续细分有: 

上述是总体小类别划分的总结。

op0 == 0b00

op0 == 0b01

op0 == 0b10

op0 == 0b11

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ARMv9指令集手册是ARM体系架构(ARM architecture)的第9版指令集的详细说明文档。ARMv9ARM架构的最新版本,它引入了一系列新的特性和功能,以提供更高的性能和更好的能效。 ARMv9指令集手册通过详细描述ARMv9架构的指令结构、编码方式和操作规则,让软件开发者和硬件设计者能够深入了解ARMv9体系架构,从而更好地利用ARMv9架构提供的新特性。 ARMv9指令集手册通常包括以下内容: 1. 简介:介绍ARMv9指令集的发展背景、整体结构和基本术语。 2. 指令集概述:对ARMv9指令集的整体设计思想、特点和新功能进行概述。 3. 指令编码:详细解释每一条指令的编码方式,包括操作码、寄存器操作数、立即数、地址计算等。 4. 指令格式:描述不同指令格式的定义和用法,例如数据处理指令、分支跳转指令、加载存储指令等。 5. 寄存器和内存管理:介绍ARMv9架构中的寄存器和内存管理机制,包括寄存器文件、特殊寄存器、地址映射等。 6. 异常和中断处理:说明ARMv9架构支持的异常和中断处理机制,以及相应指令的使用方法。 7. 特殊指令和特权指令:介绍一些特殊用途的指令和特权指令,如访问控制指令、系统调用指令等。 8. 协处理器:描述与ARMv9架构相关的协处理器的设计和使用方法。 9. 实例和示例代码:提供一些实例和示例代码,以帮助开发者更好地理解和使用ARMv9指令集。 通过仔细阅读ARMv9指令集手册,开发者能够更好地理解ARMv9架构的特性和功能,并能够开发出更高效、优化的ARMv9架构的应用程序。此外,硬件设计者也可以根据指令集手册提供的设计规范,设计出兼容ARMv9架构的处理器、芯片组和系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谷公子的藏经阁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值