当前位置: 首页 > news >正文

SCTLR_EL1,系统控制寄存器(EL1)

SCTLR_EL1 的特性如下:

用途

在 EL1 和 EL0 异常级别下,提供系统顶层控制,包括存储系统控制。

配置

AArch64 系统寄存器 SCTLR_EL1 的位 [31:0] 在架构上映射到 AArch32 系统寄存器 SCTLR [31:0]。

本寄存器的部分或全部可读写(RW)字段具有定义好的复位值。仅当处理引擎(PE)复位后进入 AArch64 架构的 EL1 模式时,这些复位值才有效。否则,本寄存器中的可写字段复位为架构规定的 ** 未知(UNKNOWN)** 值。

属性

SCTLR_EL1 是一个 64 位寄存器。


字段说明

SCTLR_EL1 位分配如下:

63 62 61 60 59 58 57 56 55 54 53 52 51 50 RES0 49 48 47 46 TWEDEL 45 TWEDEn 44 DSSBS 43 ATA 42 ATA0 41 40 TCF 39 38 TCF0 37 ITFSB 36 BT1 35 BT0 34 33 32 RES0 31 EnIA 30 EnIB 29 LSMAOE 28 nTLSMD 27 EnDA 26 UCI 25 EE 24 E0E 23 SPAN 22 EIS 21 IESB 20 TSCXT 19 WXN 18 nTWE 17 RES0 16 nTWI 15 UCT 14 DZE 13 I 12 EOS 11 EnRCTX 10 UMA 9 SED 8 ITD 7 nAA 6 CP15BEN 5 SA0 4 SA 3 C 2 A 1 M 0 EnDB

位 [63:50]

保留,必须写 0(RES0)。

TWEDEL,位 [49:46]

实现 ARMv8.6-TWED 时有效:WFE 陷阱延迟。4 位无符号数。当 SCTLR_EL1.TWEDEn = 1 时,对由 SCTLR_EL1.nTWE 触发的 WFE 指令陷阱,编码其最小触发延迟为2^(TWEDEL + 8)个周期。

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

其他情况:保留,RES0。

TWEDEn,位 [45]

实现 ARMv8.6-TWED 时有效:WFE 陷阱延迟使能。对由 SCTLR_EL1.nTWE 触发的 WFE 指令陷阱,启用可配置的延迟陷阱功能。

  • 0b0:WFE 陷阱延迟由实现定义
  • 0b1:WFE 陷阱延迟至少为 SCTLR_EL1.TWEDEL 定义的周期数

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

其他情况:保留,RES0。

DSSBS,位 [44]

实现 ARMv8.0-SSBS 时有效:异常进入时 PSTATE.SSBS 的默认值

  • 0b0:进入 EL1 异常时,PSTATE.SSBS 置 0
  • 0b1:进入 EL1 异常时,PSTATE.SSBS 置 1

在 PE 复位进入 EL1 的系统中,该字段复位为实现定义值。

其他情况:保留,RES0。

ATA,位 [43]

实现 ARMv8.5-MemTag(内存标签扩展)时有效:EL1 级分配标签访问控制。当 SCR_EL3.ATA=1 且 HCR_EL2.ATA=1 时,控制 EL1 对分配标签的访问。

禁止访问分配标签时:

  • 加载 / 存储数据指令为非检查模式

  • 加载 / 存储分配标签指令将其视为读零 / 忽略写(RAZ/WI)

  • 向地址插入逻辑地址标签的指令,将生成标签所用的分配标签视为 0

  • 使缓存分配标签失效的缓存维护指令,行为等价于清理并失效分配标签

  • 0b0:禁止访问分配标签

  • 0b1:允许访问分配标签

该位可被 TLB 缓存。在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

其他情况:保留,RES0。

ATA0,位 [42]

实现 ARMv8.5-MemTag 时有效:EL0 级分配标签访问控制。当 SCR_EL3.ATA=1、HCR_EL2.ATA=1 且 HCR_EL2.{E2H,TGE} ≠ {1,1} 时,控制 EL0 对分配标签的访问。

限制规则与 ATA 一致。

  • 0b0:禁止 EL0 访问分配标签
  • 0b1:允许 EL0 访问分配标签

该字段可被 TLB 缓存。

注:软件可在上下文切换时修改该控制位。

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

其他情况:保留,RES0。

TCF,位 [41:40]

实现 ARMv8.5-MemTag 时有效:EL1 级标签检查失败处理。控制 EL1 中加载 / 存储导致标签检查失败的行为。

  • 0b00:标签检查失败对 PE 无影响
  • 0b01:标签检查失败触发同步异常
  • 0b10:标签检查失败异步累积
  • 0b11:保留

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

其他情况:保留,RES0。

TCF0,位 [39:38]

实现 ARMv8.5-MemTag 时有效:EL0 级标签检查失败处理。当 HCR_EL2.{E2H,TGE} ≠ {1,1} 时,控制 EL0 加载 / 存储标签检查失败行为。

取值含义同 TCF。

注:软件可在上下文切换时修改该控制位。

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

其他情况:保留,RES0。

ITFSB,位 [37]

实现 ARMv8.5-MemTag 时有效:当 EL0/EL1 加载 / 存储的标签检查失败不产生同步异常时,控制标签检查失败向 TFSRE0_EL1 和 TFSR_EL1 的自动同步。

  • 0b0:进入 EL1 时不同步标签检查失败状态
  • 0b1:进入 EL1 时同步标签检查失败状态

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

其他情况:保留,RES0。

BT1,位 [36]

实现 ARMv8.5-BTI(分支目标识别)时有效:EL1 级 PAC 分支类型兼容性

  • 0b0:EL1 执行时,PACIASP / PACIBSP 与 PSTATE.BTYPE == 0b11 兼容
  • 0b1:EL1 执行时,PACIASP / PACIBSP 与 PSTATE.BTYPE == 0b11 不兼容

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

其他情况:保留,RES0。

BT0,位 [35]

实现 ARMv8.5-BTI 时有效:EL0 级 PAC 分支类型兼容性

  • 0b0:EL0 执行时,PACIASP / PACIBSP 与 PSTATE.BTYPE == 0b11 兼容
  • 0b1:EL0 执行时,PACIASP / PACIBSP 与 PSTATE.BTYPE == 0b11 不兼容

当 HCR_EL2.E2H == 1 且 HCR_EL2.TGE == 1 时,该位对 EL0 执行无影响。

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

其他情况:保留,RES0。

位 [34:32]

保留,RES0。


EnIA,位 [31]

实现 ARMv8.3-PAuth(指针认证)时有效:在 EL1&0 地址转换域中,控制 ** 指令地址指针认证(APIAKey_EL1 密钥)** 的使能。

  • 0b0:禁用指令地址指针认证
  • 0b1:启用指令地址指针认证

注:该字段控制 AddPACIA / AuthIA 伪代码函数。为 1 时生效,为 0 时为空操作(NOP)。

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

其他情况:保留,RES0。

EnIB,位 [30]

实现 ARMv8.3-PAuth 时有效:在 EL1&0 转换域中,控制 ** 指令地址指针认证(APIBKey_EL1 密钥)** 使能。

含义与 EnIA 类似,密钥不同。在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

其他情况:保留,RES0。

LSMAOE,位 [29]

实现 ARMv8.2-LSMAOC 时有效:多加载 / 多存储指令原子性与顺序性使能

  • 0b0:EL0 下 A32/T32 多加载 / 多存储可在访存序列中被中断,且不要求访存有序
  • 0b1:EL0 下 A32/T32 多加载 / 多存储的顺序与中断行为遵循 Armv8.0 定义

该位可被 TLB 缓存。实现 ARMv8.1-VHE 且 HCR_EL2.{E2H,TGE}={1,1} 时,对 EL0 无影响。

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

其他情况:保留,必须写 1(RES1)。

nTLSMD,位 [28]

实现 ARMv8.2-LSMAOC 时有效:不陷阱多加载 / 多存储至设备 nGRE/nGnRE/nGnRnE 内存

  • 0b0:EL0 下 A32/T32 多加载 / 多存储访问第一阶段标记为设备内存时,触发陷阱并产生对齐错误
  • 0b1:不触发上述陷阱

该位可被 TLB 缓存。VHE 场景下对 EL0 无影响。

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

其他情况:保留,RES1。

EnDA,位 [27]

实现 ARMv8.3-PAuth 时有效:在 EL1&0 转换域中,控制 ** 数据地址指针认证(APDAKey_EL1 密钥)** 使能。

  • 0b0:禁用数据地址指针认证
  • 0b1:启用数据地址指针认证

注:控制 AddPACDA / AuthDA 函数,为 1 生效,为 0 为空操作。

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

其他情况:保留,RES0。

UCI,位 [26]

陷阱 EL0 缓存维护指令。仅 AArch64 态,陷阱至 EL1 或 EL2,EC 异常码 0x18。覆盖指令:DC CVAU、DC CIVAC、DC CVAC、DC CVAP、IC IVAU 等,随扩展特性增加。

  • 0b0:EL0 AArch64 执行指定指令将被陷阱
  • 0b1:不由此控制位触发陷阱

VHE 特定场景下对 EL0 无影响。在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

EE,位 [25]

EL1 数据访问端序及 EL1&0 第一阶段页表遍历端序。

  • 0b0:小端
  • 0b1:大端

该位可被 TLB 缓存。VHE 特定场景下对 PE 无影响。

在 PE 复位进入 EL1 的系统中,该字段复位为实现定义值。

E0E,位 [24]

EL0 数据访问端序

  • 0b0:EL0 小端
  • 0b1:EL0 大端

对 EL1 执行的 LDTR/STTR 系列指令端序无影响。VHE 特定场景下对 EL0 无影响。

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

SPAN,位 [23]

实现 ARMv8.1-PAN(特权访问永不)时有效:进入 EL1 异常时设置 PAN

  • 0b0:进入 EL1 异常时 PSTATE.PAN 置 1
  • 0b1:进入 EL1 异常时保持 PSTATE.PAN 不变

VHE 特定场景下对 EL0 无影响。

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

其他情况:保留,RES1。

EIS,位 [22]

实现 ARMv8.5-CSEH 时有效:异常入口为上下文同步事件

  • 0b0:进入 EL1 异常不是上下文同步事件
  • 0b1:进入 EL1 异常是上下文同步事件

VHE 特定场景下对 EL0 无影响。

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

其他情况:保留,RES1。

IESB,位 [21]

实现 ARMv8.2-IESB 时有效:隐式错误同步事件使能

  • 0b0:禁用
  • 0b1:在每次进入 EL1 异常时、EL1 执行每条 ERET 前,插入隐式错误同步事件

调试状态下行为不可预测。在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

其他情况:保留,RES0。

TSCXT,位 [20]

实现 ARMv8.0-CSV2 时有效:陷阱 EL0 AArch64 访问 SCXTNUM_EL0 寄存器

  • 0b0:不禁用 EL0 访问 SCXTNUM_EL0
  • 0b1:禁用 EL0 访问,触发异常;SCXTNUM_EL0 视为 0

VHE 特定场景下对 EL0 无影响。

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

其他情况:保留,RES1。

WXN,位 [19]

写权限隐含不可执行(XN)。对 EL1&0 转换域,强制所有可写内存区域视为不可执行。

  • 0b0:对内存访问权限无影响
  • 0b1:EL1&0 中可写区域强制为 XN

仅在 SCTLR_EL1.M=1 时有效。该位可被 TLB 缓存。VHE 特定场景下对 PE 无影响。

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

nTWE,位 [18]

陷阱 EL0 WFE 指令,两种执行状态均有效,EC 异常码 0x01。

  • 0b0:EL0 执行 WFE 且将进入低功耗时触发陷阱
  • 0b1:不由此控制位触发陷阱

AArch32 下仅条件满足的 WFE 会被陷阱。

注:WFE/WFI 可随时完成,陷阱不保证一定触发;仅保证无唤醒事件且无法有限时间完成时触发陷阱。

VHE 特定场景下对 EL0 无影响。

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

位 [17]

保留,RES0。

nTWI,位 [16]

陷阱 EL0 WFI 指令,两种执行状态均有效,EC 异常码 0x01。

含义与 nTWE 类似,针对 WFI。VHE 特定场景下对 EL0 无影响。

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

UCT,位 [15]

陷阱 EL0 AArch64 访问 CTR_EL0 寄存器,EC 0x18。

  • 0b0:EL0 访问 CTR_EL0 被陷阱
  • 0b1:不触发陷阱

VHE 特定场景下对 EL0 无影响。

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

DZE,位 [14]

陷阱 EL0 AArch64 执行 DC ZVA 指令,EC 0x18。实现 MemTag 时还覆盖 DC GVA / DC GZVA。

  • 0b0:EL0 执行相关指令被陷阱;EL0 读 DCZID_EL0.DZP 返回 1
  • 0b1:不触发陷阱

VHE 特定场景下对 EL0 无影响。

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

EnDB,位 [13]

实现 ARMv8.3-PAuth 时有效:在 EL1&0 转换域中,控制 ** 数据地址指针认证(APDBKey_EL1 密钥)** 使能。

  • 0b0:禁用
  • 0b1:启用

注:控制 AddPACDB / AuthDB 函数。

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

其他情况:保留,RES0。

I,位 [12]

EL0/EL1 指令访问缓存性控制

  • 0b0:EL0/EL1 对普通内存的指令访问为各级非缓存;M=0 时为普通、外共享、内外非缓存
  • 0b1:不对指令访问缓存性做额外控制;M=0 时为普通、外共享、内外写直通

HCR_EL2.DC=1 时,指令访问始终为缓存。VHE 特定场景下对 PE 无影响。

复位值为 0。

EOS,位 [11]

实现 ARMv8.5-CSEH 时有效:异常返回为上下文同步事件

  • 0b0:EL1 异常返回不是上下文同步事件
  • 0b1:EL1 异常返回是上下文同步事件

VHE 特定场景下对 EL0 无影响。

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

其他情况:保留,RES1。

EnRCTX,位 [10]

实现 ARMv8.0-PredInv 时有效:使能 EL0 访问 AArch32/AArch64 预测上下文指令

  • 0b0:禁用并陷阱至 EL1/EL2
  • 0b1:允许 EL0 访问

VHE 特定场景下对 EL0 无影响。

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

其他情况:保留,RES0。

UMA,位 [9]

用户模式屏蔽访问控制。陷阱 EL0 AArch64 下访问 PSTATE.{D,A,I,F} 屏蔽位的 MSR/MRS 指令,EC 0x18。

  • 0b0:EL0 访问 DAIF 相关指令被陷阱
  • 0b1:不触发陷阱

VHE 特定场景下对 EL0 无影响。

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

SED,位 [8]

禁用 SETEND 指令。禁止 EL0 AArch32 执行 SETEND。

  • 0b0:允许 EL0 AArch32 执行 SETEND
  • 0b1:SETEND 为未定义指令,触发异常

不支持混合端序或 EL0 不支持 AArch32 时为 RES1。VHE 特定场景下对 EL0 无影响。

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

ITD,位 [7]

IT 指令禁用。限制 EL0 AArch32 下 IT 指令的部分用法。

  • 0b0:全部 IT 功能启用
  • 0b1:特定 IT 编码及后续指令为未定义并触发异常

EL0 不支持 AArch32 时为 RES1。VHE 特定场景下对 EL0 无影响。

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

nAA,位 [6]

实现 ARMv8.4-LSE 时有效:非对齐访问控制。在特定条件下控制 EL1/EL0 对齐错误产生。

  • 0b0:LDAPR、LDAR、STLR 等一系列原子指令访问跨 16 字节边界时触发对齐错误
  • 0b1:不由此位触发对齐错误

VHE 特定场景下对 EL0 无影响。

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

其他情况:保留,RES0。

CP15BEN,位 [5]

系统指令内存屏障使能。允许 EL0 AArch32 访问 CP15 编码的 DMB/DSB/ISB。

  • 0b0:EL0 AArch32 执行 CP15DMB/CP15DSB/CP15ISB 为未定义并异常
  • 0b1:允许执行

EL0 不支持 AArch32 时为 RES0。VHE 特定场景下对 EL0 无影响。

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

SA0,位 [4]

EL0 栈指针对齐检查使能。置 1 时,EL0 以 SP 为基址加载 / 存储,若 SP 未 16 字节对齐则触发对齐错误异常。

VHE 特定场景下对 EL0 无影响。

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

SA,位 [3]

EL1 栈指针对齐检查使能。置 1 时,EL1 以 SP 为基址加载 / 存储未 16 字节对齐则触发对齐错误。

VHE 特定场景下对 PE 无影响。

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

C,位 [2]

数据访问缓存性控制

  • 0b0:EL0/EL1 对普通内存的数据访问及页表访问为各级非缓存
  • 0b1:不对数据访问缓存性做额外控制

HCR_EL2.DC=1 时忽略该位。VHE 特定场景下对 PE 无影响。

复位值为 0。

A,位 [1]

对齐检查使能。EL1/EL0 对齐错误检查总开关。

  • 0b0:禁用对齐检查(独占 / 序访问指令除外)
  • 0b1:启用对齐检查,访问地址与数据大小不匹配触发数据中止异常

独占 / 序访问指令始终做对齐检查,与该位无关。VHE 特定场景下对 EL0 无影响。

在 PE 复位进入 EL1 的系统中,该字段复位为架构未知值。

M,位 [0]

EL1/EL0 第一阶段地址转换(MMU)使能

  • 0b0:禁用 MMU
  • 0b1:启用 MMU

HCR_EL2.{DC,TGE} ≠ {0,0} 时,非安全态行为等同于 M=0。VHE 特定场景下对 PE 无影响。

复位值为 0。


SCTLR_EL1 的访问

当 HCR_EL2.E2H = 1 时,EL3 使用 SCTLR_EL1 与 SCTLR_EL12 助记符的访问,若无显式同步,不保证有序。

访问编码

MRS <Xt>, SCTLR_EL1

plaintext

op0=0b11 op1=0b000 CRn=0b0001 CRm=0b0000 op2=0b000
  • EL0:未定义
  • EL1:受 EL2 TVM、HFGRTR 等控制,可陷阱或直接返回
  • EL2:E2H=1 时返回 SCTLR_EL2,否则返回 SCTLR_EL1
  • EL3:返回 SCTLR_EL1

MSR SCTLR_EL1, <Xt>

编码同上,按异常级别与虚拟化配置执行写入或陷阱。

MRS <Xt>, SCTLR_EL12 / MSR SCTLR_EL12, <Xt>

plaintext

op0=0b11 op1=0b101 CRn=0b0001 CRm=0b0000 op2=0b000

仅在 EL2/E2H=1 等特定配置下有效,其余场景为未定义。

http://www.cnnetsun.cn/news/1926033.html

相关文章:

  • 解锁Bootloader前必看:联想ZUI手机数据备份、保修影响与风险规避指南
  • 从GitFlow到飞流Flow:阿里AoneFlow如何重塑多环境发布的分支策略
  • 3分钟搞定B站缓存视频:m4s转MP4的终极简单指南
  • 2025_NIPS_Delving into Large Language Models for Effective Time-Series Anomaly Detection
  • 开超市做门头都需要注意那几点
  • 慕课助手终极指南:5分钟学会用智能插件轻松完成在线课程
  • Fish-Speech-1.5语音老化效果展示:从青年到老年的声音变化
  • Python3.8 + PySpider 爬取图片网站实战:从环境搭建到数据展示的完整避坑指南
  • 2026年4月实测:收藏夹里的Docker镜像源又挂了一批,NAS用户怎么办?
  • 2026年AI测试工程师生存指南:3大不可替代技能
  • 保姆级教程:用FFmpeg+rtsp-simple-server,5分钟搞定Windows摄像头RTSP推流
  • VerilogA与analogLib在模拟IC设计中的效率与灵活性对比
  • Pixel Aurora Engine行业应用:复古电子表盘、智能手表UI像素资源生成
  • 告别仿真翻车!手把手教你用Verilog-2001的signed特性做有符号乘法器
  • 别再死记硬背DID了!手把手教你用CANoe实战UDS 22服务,读取ECU的‘身份证’信息
  • 网络设备---电源线
  • 大模型应用开发实战(5)——Prompt、RAG、Agent、MCP到底有什么区别?这篇终于讲明白了
  • TES5Edit:零代码打造你的专属天际省,3个案例让你从玩家变创造者
  • Qwen3-ASR-0.6B开箱即用:Gradio界面一键体验多语言语音转文字
  • MoocDownloader终极指南:免费打造你的离线MOOC学习资料库
  • 告别纸质海图!用Python+PyQt从零搭建一个简易的S57电子海图浏览器(附源码)
  • Markdown Viewer:免费浏览器扩展让你的技术文档焕然一新
  • ensp提示抓包工具wireshark配置路径不正确
  • 贾子水平定理(Kucius Level Theorem)下逆向能力与创新的核心解析:评估、提升与贡献
  • 3分钟极速汉化:Axure RP全系列中文语言包完整教程
  • 【交换机】核心交换机与汇聚交换机:性能对比与选型指南
  • 企业级API测试解决方案:构建可靠分布式验证架构的3大优势
  • 崩坏星穹铁道全自动助手:5分钟完成日常任务,每周节省10小时游戏时间
  • 重新定义材料设计:下一代CALPHAD相图计算框架
  • 一种winform实时刷新日志内容的方法