用于系统存储管理的协处理器CP15
来源:互联网 发布:网络微名片免费制作 编辑:程序博客网 时间:2024/09/21 09:06
- 在基于ARM的嵌入式系统中,存储系统通常是通过系统控制协处理器CP15完成的。
- CP15可以包含16个32位的寄存器,其编号为0-15。实际上对于某些编号的寄存器可能对应有多个物理寄存器。在指令中指定特定的标志位来区分这些物理寄存器。有些类似于ARM寄存器中,处于不同的处理器模式时,ARM某些寄存器可能不同。
寄存器编号
基本作用
在
在
0
ID
ID
1
控制位(可读写)
各种控制位
2
存储保护和控制
地址转换表基地址
Cachability
3
存储保护和控制
域访问控制位
Bufferablity
4
存储保护和控制
保留
保 留
5
存储保护和控制
内存失效状态
访问权限控制位
6
存储保护和控制
内存失效地址
保护区域控制
7
高速缓存和写缓存
高速缓存和写缓存控制
8
存储保护和控制
TLB
保 留
9
高速缓存和写缓存
高速缓存锁定
10
存储保护和控制
TLB
保 留
11
保留
12
保留
13
进程标识符
进程标识符
14
保留
15
因不同设计而异
因不同设计而异
因不同设计而异
opcode2
对应的标识符号寄存器
0b000
主标识符寄存器
0b001
cache类型标识符寄存器
其 他
保留
对于AMR7之后的处理器,其主标示符编码格式如下 :
30
23
19
15
3
由生产商确定
产品子编号
ARM
产品主编号
处理器版本号
位
位
生产商定义的处理器版本号
位
生产商定义的产品主编号
其中最高
因为:
0x0表示
0x7
位
ARM
0x1
0x2
0x3
0x4
0x5
其他
位
生产商定义的产品子编号。当产品主编号相同时,使用子编号来区分不同的产品子类,如产品中不 同的高速缓存的大小等
位
生产厂商的编号,现在已经定义的有以下值:
0x41
0x44
0x69
31
28
24
23
11
位
含义
位
主要用于定义对于写回类型的cache的一些属性
位
定义系统中的数据
0
1
位
定义数据
如果位
位
定义指令
如果位
-
控制字段位 [28 : 25] 的含义
cache
编
cache
cache
cache
0b0000
写通类型
不需要内容清除
不支持内容锁定
0b0001
写回类型
数据块读取
不支持内容锁定
0b0010
写回类型
由寄存器
不支持内容锁定
0b0110
写回类型
由寄存器
支持格式
0b0111
写回类型
由寄存器
支持格式
- 控制字段位
[23 : 12] 及控制字段位 [11 : 0] 含义
11
8
5
2
1
000
cache
cache
M
块大小
其中bits[1:0]含义如下:编
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
- 禁止或使能MMU以及其他与存储系统相关的功能
- 配置存储系统以及ARM处理器中的相关部分的工作
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
31
CP15
31
D15
D14
D13
D12
D11
D10
D9
D8
D7
D6
D5
D4
D3
D2
D1
D0
10:保留状态(我们最好不要填写该值,以免引起不能确定的问题)
11:当前级别下,对该内存区域的访问都不进行权限检查。
MRC p15, 0, , c5, c0, 0 访问数据失效状态寄存器
MRC p15, 0, , c5, c0, 1 访问指令状态失效寄存器
编码格式如下所示:
31
8
7
3
UNP/SBZP
0
域标识
状态标识
其中,域标识bit[7:4]表示存放引起存储访问失效的存储访问所属的域。状态标识bit[3:0] 表示放引起存储访问失效的存储访问类型,该字段含义如下表所示(优先级由上到下递减)。
引起访问失效的原因
状态标识
域标识
C6
终 端异常(
0b0010
无 效
生 产商定义
中 断向量访问异常(
0b0000
无 效
有 效
地 址对齐
0b00x1
无 效
有 效
一 级页表访问失效
0b1100
无 效
有 效
二 级页表访问失效
0b1110
有 效
有 效
基 于段的地址变换失效
0b0101
无 效
有 效
基 于页的地址变换失效
0b0111
有 效
有 效
基 于段的存储访问中域控制失效
0b1001
有 效
有 效
基 于页的存储访问中域控制失效
0b1101
有 效
有 效
基 于段的存储访问中访问权限控制失效
0b1111
有 效
有 效
基 于页的存储访问中访问权限控制失效
0b0100
有 效
有 效
基 于段的
0b0110
有 效
有 效
基 于页的
0b1000
有 效
有 效
基 于段的非
0b1010
有 效
有 效
CP15
MRC p15, 0, , c6, c0, 0 访问数据失效地址寄存器
MRC p15, 0, , c6, c0, 2 访问指令失效地址寄存器
编码格式如下所示:
31
指令
Rd
含义
MCR p15, 0, Rd, c8, c5, 0
0
使无效整个指令TLB
MCR p15, 0, Rd, c8, c5, 1
虚拟地址
使无效指令TLB中的单个地址变换条目
MCR p15, 0, Rd, c8, c6, 0
0
使无效整个数据TLB
MCR p15, 0, Rd, c8, c6, 1
虚拟地址
使无效数据TLB中的单个地址变换条目
MCR p15, 0, , c8, c7, 0
0
使无效整个数据和指令TLB
MCR p15, 0, , c8, c7, 1
虚拟地址
使无效数据和指令TLB中的单个地址变换条目
MCR p15, 0, , c12, c0, 0 ;Rd中存放要修改的异常向量基地址
31
4
异常向量基地址
Reserve
CP15中的寄存器C13用于快速上下文切换。其编码格式如下所示。
访问寄存器C13的指令格式如下所示。
MCR
MRC
其中, 在读操作时,结果中位[31::25]返回PID,其他位 的数值是不可以预知的。写操作将设置PID的值。
- 用于系统存储管理的协处理器CP15
- 系统控制协处理器CP15
- ARM920T的CP15协处理器
- ARM处理器的协处理器CP15/CP14
- MMU内存管理单元(3)-系统控制协处理器CP15
- ARM CP15协处理器
- ARM CP15协处理器
- ARM9协处理器CP15
- ARM协处理器CP15
- ARM CP15协处理器
- ARM CP15协处理器
- ARM CP15协处理器
- S2C2440 CP15协处理器
- ARM CP15协处理器
- s3c2440 cp15协处理器
- s3c2440 cp15协处理器
- ARM处理器中CP15协处理器的寄存器1376698090
- 内存管理单元MMU介绍~协处理器CP15使用~
- 欢迎使用CSDN-markdown编辑器
- js通过Object.prototype.toString.call()精确判断数据类型后并复制数据
- NSMappingModel
- 实行设备点检制
- 吕爱国倾心讲座:混合方法研究的类型与程序设计
- 用于系统存储管理的协处理器CP15
- 正规表达式
- idea2015 注册激活。
- 谈谈 C++ 中的 new/delete 和 new[]/delete[]
- 安卓开发之引入布局中自定义控件、OnDraw()绘图
- 微信开发定时器更新token
- jquery分页插件
- NSManagedObjectModel
- 外网登陆SAP的两种方式