ARM处理器中CP15协处理器的寄存器
时间:11-09
来源:互联网
点击:
| 0b0000 | 写通类型 | 不需要内容清除 | 不支持内容锁定 |
| 0b0001 | 写回类型 | 数据块读取 | 不支持内容锁定 |
| 0b0010 | 写回类型 | 由寄存器C7定义 | 不支持内容锁定 |
| 0b0110 | 写回类型 | 由寄存器C7定义 | 支持格式A |
| 0b0111 | 写回类型 | 由寄存器C7定义 | 支持格式B |
| 1198653210 | ||||
| 000 | cache容量 | cache相联特性 | M | 块大小 |
| 编码 | M=0时含义(单位KB) | M=1时含义(单位KB) |
| 0b000 | 0.5 | 0.75 |
| 0b001 | 1 | 1.5 |
| 0b010 | 2 | 3 |
| 0b011 | 4 | 6 |
| 0b100 | 8 | 12 |
| 0b101 | 16 | 24 |
| 0b110 | 32 | 48 |
| 0b111 | 64 | 96 |
| 编码 | M=0时含义 | M=1时含义 |
| 0b000 | 1路相联(直接映射) | 没有cache |
| 0b001 | 2路相联 | 3路相联 |
| 0b010 | 4路相联 | 6路相联 |
| 0b011 | 8路相联 | 12路相联 |
| 0b100 | 16路相联 | 24路相联 |
| 0b101 | 32路相联 | 48路相联 |
| 0b110 | 64路相联 | 96路相联 |
| 0b111 | 128路相联 | 192路相联 |
| 编码 | cache块大小 |
| 0b00 | 2个字(8字节) |
| 0b01 | 4个字(16字节) |
| 0b10 | 8个字(32字节) |
| 0b11 | 16个字(64字节) |
31 16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
附加
L4
RR
V
I
Z
F
R
S
B
L
D
P
W
C
A
M
| 位 | 说明 |
| M | 0:禁止MMU或者PU;1:使能MMU或者PU |
| A | 0:禁止地址对齐检查;1:使能地址对齐检查 |
| C | 0:禁止数据/整个cache;1:使能数据/整个cache |
| W | 0:禁止写缓冲;1:使能写缓冲 |
| P | 0:异常中断处理程序进入32位地址模式;1:异常中断处理程序进入26位地址模式 |
| D | 0:禁止26位地址异常检查;1:使能26位地址异常检查 |
| L | 0:选择早期中止模型;1:选择后期中止模型 |
| B | 0:little endian;1:big endian |
| S | 在基于MMU的存储系统中,本位用作系统保护 |
| R | 在基于MMU的存储系统中,本位用作ROM保护 |
| F | 0:由生产商定义 |
| Z | 0:禁止跳转预测功能;1:使能跳转预测指令 |
| I | 0:禁止指令cache;1:使能指令cache |
| V | 0:选择低端异常中断向量0x0~0x1c;1:选择高端异常中断向量0xffff0000~ 0xffff001c |
| RR | 0:常规的cache淘汰算法,如随机淘汰;1:预测性淘汰算法,如round-robin淘汰算法 |
| L4 | 0:保持ARMv5以上版本的正常功能;1:将ARMv5以上版本与以前版本处理器兼容,不根据跳转地址的bit[0]进行ARM指令和Thumb状态切换:bit[0]等于0表示ARM指令,等于1表示Thumb指令 |
| 附加: |
310
一级映射描述符表的基地址(物理地址)
310
D15
D14
D13
D12
D11
D10
D9
D8
D7
D6
D5
D4
D3
D2
D1
D0
31987430
UNP/SBZP
0
域标识
状态标识其中,域标识bit[7:4]表示存放引起存储访问失效的存储访问所属的域。
状态标识bit[3:0]表示放引起存储访问失效的存储访问类型,该字段含义如表4-3所示(优先级由上到下递减)。
表4-3状态标识字段含义
| 引起访问失效的原因 | 状态标识 | 域标识 | C6 |
| 终端异常(Terminal Exception) | 0b0010 | 无效 | 生产商定义 |
| 中断向量访问异常(Vector Exception) | 0b0000 | 无效 | 有效 |
| 地址对齐 | 0b00x1 | 无效 | 有效 |
| 一级页表访问失效 | 0b1100 | 无效 | 有效 |
| 二级页表访问失效 | 0b1110 | 有效 | 有效 |
| 基于段的地址变换失效 | 0b0101 | 无效 | 有效 |
| 基于页的地址变换失效 | 0b0111 | 有效 | 有效 |
| 基于段的存储访问中域控制失效 | 0b1001 | 有效 | 有效 |
| 基于页的存储访问中域控制失效 | 0b1101 | 有效 | 有效 |
| 基于段的存储访问中访问权限控制失效 | 0b1111 | 有效 | 有效 |
| 基于页的存储访问中访问权限控制失效 | 0b0100 | 有效 | 有效 |
| 基于段的cache预取时外部存储系统失效 | 0b0110 | 有效 | 有效 |
| 基于页的cache预取时外部存储系统失效 | 0b1000 | 有效 | 有效 |
| 基于段的非cache预取时外部存储系统失效 | 0b1010 | 有效 | 有效 |
310
失效地址(虚拟地址)
3132-W 31-W0
cache组内块序号index
0其中index表示当下一次发生cache未命中时,将预取的存储块存入cache中该块对应的组中序号为index的cache块中。此时序号为0~index-1的cache块被锁定,当发生cache替换时,从序号为index到ASSOCIATIVITY的块中选择被替换的块。
编码格式B如下所示:
| 3130WW-10 | ||
| L | 0 | cache组内块序号index |
| 位 | 说明 |
| L=0 | 当发生cache未命中时,将预取的存储块存入cache中该块对应的组中序号为index的cache块中 |
| 位 | 说明 |
| L=1 | 如果本次写操作之前L=0,并且index值小于本次写入的index,本次写操作执行的结果不可预知;否则,这时被锁定的cache块包括序号为0~index-1的块,当发生cache替换时,从序号为index到ASSOCIATIVITY的块中选择被替换的块 |
31 3032-W31-W32-2W31-2W10
可被替换的条目起始地址的base
下一个将被替换的条目地址victim
0
P
| 位 | 说明 |
| victim | 指定下一次TLB没有命中(所需的地址变换条目没有包含在TLB中)时,从内存页表中读取所需的地址变换条目,并把该地址变换条目保存在TLB中地址victim处 |
| base | 指定TLB替换时,所使用的地址范围,从(base)到(TLB中条目数-1);字段victim的值应该包含在该范围内 |
| P | 1:写入TLB的地址变换条目不会受使整个TLB无效操作的影响,一直保持有效;0:写入TLB的地址变换条目将会受到使整个TLB无效操作的影响 |
ARM处理器CP15协处理器寄存 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)
