ARM协处理器CP15寄存器详解
MCR{cond}
MRC {cond}
coproc
opcode1
CRd
CRn
CRm
opcode2
- 在基于ARM的嵌入式系统中,存储系统通常是通过系统控制协处理器CP15完成的。
- CP15可以包含16个32位的寄存器,其编号为0-15。实际上对于某些编号的寄存器可能对应有多个物理寄存器。在指令中指定特定的标志位来区分这些物理寄存器。有些类似于ARM寄存器中,处于不同的处理器模式时,ARM某些寄存器可能不同。
CP15
寄存器编号 | 基本作用 | 在 | 在 |
0 | ID | ID | |
1 | 控制位(可读写) | 各种控制位 | |
2 | 存储保护和控制 | 地址转换表基地址 | Cachability |
3 | 存储保护和控制 | 域访问控制位 | Bufferablity |
4 | 存储保护和控制 | 保留 | 保 留 |
5 | 存储保护和控制 | 内存失效状态 | 访问权限控制位 |
6 | 存储保护和控制 | 内存失效地址 | 保护区域控制 |
7 | 高速缓存和写缓存 | 高速缓存和写缓存控制 | |
8 | 存储保护和控制 | TLB | 保 留 |
9 | 高速缓存和写缓存 | 高速缓存锁定 | |
10 | 存储保护和控制 | TLB | 保 留 |
11 | 保留 | ||
12 | 保留 | ||
13 | 进程标识符 | 进程标识符 | |
14 | 保留 | ||
15 | 因不同设计而异 | 因不同设计而异 | 因不同设计而异 |
注:以下寄存器中相应位的含义在不同的处理器中可能不同,但总体功能不变
(一)CP15
CP15
opcode2 | 对应的标识符号寄存器 |
0b000 | 主标识符寄存器 |
0b001 | cache类型标识符寄存器 |
其 他 | 保留 |
(1)主标识符寄存器
指令如下:
MRC
主标示符的编码格式对于不同的ARM处理器版本有所不同。
对于AMR7之后的处理器,其主标示符编码格式如下 :
30 | 23 | 19 | 15 | 3 |
由生产商确定 | 产品子编号 | ARM | 产品主编号 | 处理器版本号 |
各部分的编码详细含义如下表所示:
位 | |
位 | 生产商定义的处理器版本号 |
位 | 生产商定义的产品主编号 其中最高 因为: 0x0表示 0x7 |
位 | ARM 0x1 0x2 0x3 0x4 0x5 其他 |
位 | 生产商定义的产品子编号。当产品主编号相同时,使用子编号来区分不同的产品子类,如产品中不 同的高速缓存的大小等 |
位 | 生产厂商的编号,现在已经定义的有以下值: 0x41 0x44 0x69 |
(2)cache类型标识符寄存器
指令如下:
MRC
ARM
31 | 28 | 24 | 23 | 11 |
各部分的编码详细含义如下表所示:
位 | 含义 |
位 | 主要用于定义对于写回类型的cache的一些属性 |
位 | 定义系统中的数据 0 1 |
位 | 定义数据 如果位 |
位 | 定义指令 如果位 |
控制字段位 [28 : 25] 的含义
主要用于定义对于写回类型的cache的一些属性
cache
编 | cache | cache | cache |
0b0000 | 写通类型 | 不需要内容清除 | 不支持内容锁定 |
0b0001 | 写回类型 | 数据块读取 | 不支持内容锁定 |
0b0010 | 写回类型 | 由寄存器 | 不支持内容锁定 |
0b0110 | 写回类型 | 由寄存器 | 支持格式 |
0b0111 | 写回类型 | 由寄存器 | 支持格式 |
- 控制字段位
[23 : 12] 及控制字段位 [11 : 0] 含义
[23:12]用
ARM协处理器CP15寄存 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)