[译] ARMv8-A架构基础之系统寄存器

在AArch64中,系统配置是通过使用MSR和MRS指令来控制的(通过MSR和MRS指令访问系统寄存器)。 这与ARMv7-A不同,在ARMv7-A中通常通过协处理器15(CP15)操作系统寄存器。

寄存器的名称通常暗示着它能被访问的最低的异常级别。 例如:

  • 可以从EL1,EL2和EL3访问TTBR0_EL1。
  • 可以从EL2和EL3访问TTBR0_EL2。

具有后缀_ELn的寄存器在一些或所有级别上都有单独的存储副本,EL0除外。 只有很少的系统寄存器可以从EL0访问,比如缓存类型寄存器(CTR_EL0)就可以。

访问系统寄存器的代码采用以下形式:

MRS X0,TTBR0_EL1 //将TTBR0_EL1移入X0
MSR TTBR0_EL1,X0 //将X0移入TTBR0_EL1

ARM架构的之前版本使用协处理器来进行系统配置。 但是,AArch64不支持协处理器。

下表显示了异常级别,这些异常级别具有每个寄存器的单独副本。 例如,单独的辅助控制寄存器(ACTLR)以ACTLR_EL1,ACTLR_EL2和ACTLR_EL3的形式存在。

名称 寄存器 说明 n的允许值
ACTLR_ELn 辅助控制寄存器 控制处理器特定的功能。 1,2,3
CCSIDR_ELn 当前缓存大小ID寄存器 提供有关当前所选缓存的体系结构的信息。 1
CLIDR_ELn 缓存级别ID寄存器 在每个级别上实现的单个或多个高速缓存的类型

缓存层次结构的一致性级别和统一级别。
1,2,3
CNTFRQ_ELn 计数器频率寄存器 报告系统计时器的频率。 0
CNTPCT_ELn 计数器物理计数寄存器 保持64位的当前计数值。 0
CNTKCTL_ELn 计数器内核控制寄存器 控制从虚拟计数器生成事件流。还控制从EL0访问物理计数器,虚拟计数器,EL1物理计时器和虚拟计时器。 1
CNTP_CVAL_ELn 计数器物理计时器比较值寄存器 保存EL1物理计时器的比较值。 0
CPACR_ELn 协处理器访问控制寄存器 控制对跟踪,浮点和SIMD功能的访问。 1
CSSELR_ELn 缓存大小选择寄存器 通过指定所需的缓存级别和缓存类型(指令或数据缓存),选择当前的缓存大小ID寄存器CCSIDR_EL1。 1
CNTP_CTL_ELn 计数器物理控制寄存器 控制EL1物理计时器的寄存器。 0
CTR_ELn 缓存类型寄存器 有关集成缓存体系结构的信息。 0
DCZID_ELn 数据缓存零ID寄存器 指示数据缓存零根据虚拟地址(DCZVA)系统指令写入字节值为0的块大小。 0
ELR_ELn 异常链接寄存器 保存导致异常的指令的地址。 1,2,3
ESR_ELn 异常综合特征寄存器 包括有关异常原因的信息。 1,2,3
FAR_ELn 故障地址寄存器 保存虚拟错误地址。 1,2,3
FPCR 浮点控制寄存器 控制浮点扩展行为。该寄存器中的字段映射到AArch32 FPSCR中的等效字段。 .
FPSR 浮点状态寄存器 提供浮点系统状态信息。该寄存器中的字段映射到AArch32 FPSCR中的等效字段。 .
HCR_ELn Hypervisor 配置寄存器 控制虚拟化设置,并将异常情况捕获到EL2。 2
MAIR_ELn 存储器属性间接寄存器 在ELn的阶段1翻译的Long-descriptor格式转换表项中,提供对应于可能值的存储器属性编码。 1,2,3
MIDR_ELn 主ID寄存器 代码运行的处理器类型(部件号和版本)。 1
MPIDR_ELn 多处理器密切关系的寄存器 处理器和群集ID,在多核或群集系统中。 1
RVBAR_ELn 基于地址寄存器的重置向量 保存重置向量的基地址,以便发送给ELn的任何异常。 1,2,3
SCR_ELn 安全配置寄存器 控制安全状态和EL3的异常情况。 3
SCTLR_ELn 系统控制寄存器 控制架构功能,例如MMU,缓存和对齐检查。 0,1,2,3
SPSR_ELn 保存的程序状态寄存器 当发生异常时,保持已保存的处理器状态。 abt,fiq,irq,und,1,2,3
TCR_ELn 转换控制寄存器 确定哪个转换表基地寄存器定义了转换表行走(translation table walk)的基地址,该基地址是ELn中,内存访问阶段1转换所需要的。

还控制转换表格式并保存可缓存和可共享的信息。
1,2,3
TPIDR_ELn 用户读/写线程ID寄存器 为了操作系统管理的目的,提供一个在ELn上执行的软件可以存储线程标识信息的位置。 0,1,2,3
TPIDRRO_ELn 用户只读线程ID寄存器 提供在EL1或更高版本上执行的软件可以存储线程标识信息的位置。为了操作系统管理的目的,在EL0上执行的软件可以看到这些信息。 0
TTBR0_ELn 转换表基址寄存器0 保存转换表0的基地址,以及它占用的内存的信息。这是ELn内,内存访问阶段1转换的转换表之一。 1,2,3
TTBR1_ELn 转换表基址寄存器1 保存转换表1的基地址,以及它占据的存储器的信息。

这是在EL0和EL1内,内存访问阶段1转换的转换表之一
1
VBAR_ELn 基于向量的地址寄存器 保存异常基地址,以便发送到ELn的任何异常。 1,2,3
VTCR_ELn 虚拟化转换控制寄存器 控制来自非安全EL0和EL1的内存访问阶段2转换所需的转换表步行。还保存访问的可缓存和可共享信息。 2
VTTBR_ELn 虚拟化转换表基址寄存器 保存来自非安全EL0和EL1的内存访问阶段2转换的转换表的基地址。 2

原文
https://developer.arm.com/products/architecture/a-profile/docs/100878/latest/system-registers

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,122评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,070评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,491评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,636评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,676评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,541评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,292评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,211评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,655评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,846评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,965评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,684评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,295评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,894评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,012评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,126评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,914评论 2 355

推荐阅读更多精彩内容