ARM协处理器CP15寄存器详解

用于系统存储管理的协处理器CP15

MCR{cond}     coproc,opcode1,Rd,CRn,CRm,opcode2
MRC {cond}    coproc,opcode1,Rd,CRn,CRm,opcode2
coproc         指令操作的协处理器名.标准名为pn,n,为0~15 
opcode1      协处理器的特定操作码. 对于CP15寄存器来说,opcode1永远为0,不为0时,操作结果不可预知
CRd             作为目标寄存器的协处理器寄存器. 
CRn             存放第1个操作数的协处理器寄存器. 
CRm            存放第2个操作数的协处理器寄存器. (用来区分同一个编号的不同物理寄存器,当不需要提供附加信息时,指定为C0)
opcode2     可选的协处理器特定操作码.                (用来区分同一个编号的不同物理寄存器,当不需要提供附加信息时,指定为0)

  • 在基于ARM的嵌入式系统中,存储系统通常是通过系统控制协处理器CP15完成的。
  • CP15可以包含16个32位的寄存器,其编号为0-15。实际上对于某些编号的寄存器可能对应有多个物理寄存器。在指令中指定特定的标志位来区分这些物理寄存器。有些类似于ARM寄存器中,处于不同的处理器模式时,ARM某些寄存器可能不同。

CP15 的寄存器列表如表所示:

寄存器编号

基本作用

在 MMU 中的作用

在 PU 中的作用

0

ID 编码(只读)

ID 编码和 cache 类型

 

1

控制位(可读写)

各种控制位

 

2

存储保护和控制

地址转换表基地址

Cachability 的控制位

3

存储保护和控制

域访问控制位

Bufferablity 控制位

4

存储保护和控制

保留

保 留

5

存储保护和控制

内存失效状态

访问权限控制位

6

存储保护和控制

内存失效地址

保护区域控制

7

高速缓存和写缓存

高速缓存和写缓存控制

 

8

存储保护和控制

TLB 控制

保 留

9

高速缓存和写缓存

高速缓存锁定

 

10

存储保护和控制

TLB 锁定

保 留

11

保留

 

 

12

保留

 

 

13

进程标识符

进程标识符

 

14

保留

 

 

15

因不同设计而异

因不同设计而异

因不同设计而异


注:以下寄存器中相应位的含义在不同的处理器中可能不同,但总体功能不变

(一)CP15 的寄存器 C0
CP15 中寄存器 C0 对应两个标识符寄存器,由访问 CP15 中的寄存器指令中的 <opcode2> 指定要访问哪个具体物理寄存器, <opcode2> 与两个标识符寄存器的对应关系如下所示:

opcode2 编码

对应的标识符号寄存器

0b000

主标识符寄存器

0b001

cache类型标识符寄存器

其 他

保留


(1)主标识符寄存器
指令如下:
MRC    P15,0,R0,C0,C0,0       #将主标示符寄存器的内容读到AMR寄存器R0中
主标示符的编码格式对于不同的ARM处理器版本有所不同。

对于AMR7之后的处理器,其主标示符编码格式如下 : 

30                24

23                20

19                          16

15                 4

3                       0

由生产商确定

产品子编号

ARM 体系版本号

产品主编号

处理器版本号

各部分的编码详细含义如下表所示:

<
  • 10
    点赞
  • 92
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值