ARM协处理器CP15寄存器详解
于定义数据cache的属性,[11: 0]用于定义指令cache的属性
编码格式如下:
11 | 8 | 5 | 2 | 1 |
000 | cache | cache | M | 块大小 |
编 | cache |
0b00 | 2 |
0b01 | 4 |
0b10 | 8 |
0b11 | 16 |
编 | M=0 | M=1 |
0b000 | 1 | 没有 |
0b001 | 2 | 3 |
0b010 | 4 | 6 |
0b011 | 8 | 12 |
0b100 | 16 | 24 |
0b101 | 32 | 48 |
0b110 | 64 | 96 |
0b111 | 128 | 192 |
编 | M=0 | M=1时含义 |
0b000 | 0.5KB | 0.75 |
0b001 | 1 | 1.5 |
0b010 | 2 | 3 |
0b011 | 4 | 6 |
0b100 | 8 | 12 |
0b101 | 16 | 24 |
0b110 | 32 | 48 |
0b111 | 64 | 96 |
(二)CP15
CP15中的寄存器C1是一个控制寄存器,它包括以下控制功能:
- 禁止或使能MMU以及其他与存储系统相关的功能
- 配置存储系统以及ARM处理器中的相关部分的工作
指令如下:
mrc
mcr
CP15
C1中的控制位 | 含义 |
M(bit[0]) | 0 1 如果系统中没有MMU及PU,读取时该位返回0,写入时忽略该位 |
A(bit[1]) | 0 1 |
C(bit[2]) | 当数据cache和指令cache分开时,本控制位禁止/使能数据cache。当数据cache和指令cache统一时,该控制位禁止/使能整个cache。 0 1 如果系统中不含cache,读取时该位返回0.写入时忽略 当系统中不能禁止cache |
W(bit[3]) | 0 1 如果系统中不含写缓冲时,读取时该位返回0.写入时忽略 当系统中不能禁止写缓冲时,读取时返回1.写入时忽略 |
P(bit[4]) | 对于向前兼容26位地址的ARM处理器,本控制位控制PROG32控制信号 0 1 如果本系统中不支持向前兼容26位地址,读取该位时返回1,写入时忽略 |
D(bit[5]) | 对于向前兼容26位地址的ARM处理器,本控制位控制DATA32控制信号 0 1 如果本系统中不支持向前兼容26位地址,读取该位时返回1,写入时忽略 |
L(bit[6]) | 对于ARMv3及以前的版本,本控制位可以控制处理器的中止模型 0 1 |
B(bit[7]) | 对于存储系统同时支持big-endian和little-endian的ARM系统,本控制位配置系统的存储模式 0 1 对于只支持little-endian的系统,读取时该位返回0,写入时忽略 对于只支持big-endian的系统,读取时该位返回1,写入时忽略 |
S(bit[8]) | 在基于 |
R(bit[9]) | 在基于 |
F(bit[10]) | 由生产商定义 |
Z(bit[11]) | 对于支持跳转预测的ARM系统,本控制位禁止/使能跳转预测功能 0 1 对于不支持跳转预测的ARM系统,读取该位时返回0,写入时忽略 |
I(bit[12]) | 当数据cache和指令cache是分开的,本控制位禁止/使能指令cache 0 1 如果系统中使用统一的指令cache和数据cache或者系统中不含cache,读取该位时返回0,写入时忽略。当系统中的指令cache不能禁止时,读取时该位返回1,写入时忽略 |
V(bit[13]) | 对于支持高端异常向量表的系统,本控制位控制向量表的位置 0 1 对于不支持高端异常向量表的系统,读取时该位返回0,写入时忽略 |
PR(bit[14]) | 如果系统中的cache的淘汰算法可以选择的话,本控制位选择淘汰算法 0 1 如果系统中cache的淘汰算法不可选择,写入该位时忽略。读取该位时,根据其淘汰算法是否可以比较简单地预测最坏情况返回0或者1 |
L4(bit[15]) | 对于ARM版本5及以上的版本,本控制位可以提供兼容以前的ARM版本的功能 0 1 |
Bits[31:16]) | 这些位保留将来使用,应为UNP/SBZP |
(三)CP15
C2寄存器的别名:Translation table base (TTB) register
ARM协处理器CP15寄存 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)