资源描述
ARM存储空间访问权限控制-
在ARM处理器中,MMU将整个存储空间分成最多16个域,记作D0~D15,每个域对应一定的存储区域,该区域具有相同的访问控制属性。
在ARM处理器中,MMU中的每个域的访问权限分别由CP15的C3寄存器中的两位来设定,C3寄存器刚好可以设置16个域的访问权限。C3寄存器的域定义如表4-6所示。
表4-6 CP15的C3寄存器的域定义
D15
D14
D13
D12
D11
D10
D9
D8
D7
D6
D5
D4
D3
D2
D1
D0
C3寄存器的D0~D15各占两位,它们分别控制D0~D15共16域的访问类型,具体说明如表4-7所示。
表4-7 域的访问控制字段编码及含义
控制位编码
访问类型
含 义
0b00
没有访问权限
这时访问该域将产生访问失效
0b01
客户(client)
根据CP15的C1控制寄存器中的R和S位以及页表中地址变换条目中的访问权限控制位AP来确定是否允许各种系统工作模式的存储访问
0b10
保留
使用该值会产生不可预知的结果
0b11
管理者(manager)
不考虑CP15的C1控制寄存器中的R和S位以及页表中地址变换条目中的访问权限控制位AP,在这种情况下不管系统工作在特权模式还是用户模式都不会产生访问失效
当域访问权限控制位设置为上面的0b01即客户类型权限时,用户模式以及特权模式的访问权限则由CP15的C1控制寄存器中的R和S位以及页表中地址变换条目中的访问权限控制位AP两位来确定,具体说明如表4-8所示。
表4-8 MMU中存储访问权限控制
AP[1:0]
S
R
特权(privileged)模式访问权限
用户(user)模式访问权限
00
0
0
不能访问
不能访问
00
1
0
只读
不能访问
00
0
1
只读
只读
00
1
1
访问导致不可预知的结果
访问导致不可预知的结果
01
x
x
读/写
不能访问
10
x
x
读/写
只读
11
x
x
读/写
读/写
4.4.1 MMU的一级映射描述符1389498090
ARM处理器MMU的一级映射描述符编码格式如下所示:
31 20 19 14 13 12 11 10 9 8 5 4 3 2 1 0
0 0
粗粒度二级页表基址
0
Domain
U
0 1
段基址
0
TEX
AP
P
Domain
U
C
B
1 0
细粒度二级页表基址
0
Domain
U
1 1
位
说 明
Bit[1:0]:
一级描述符类型标识。00:无效;01:粗页;10:段;11:细页
C、B:
该一级描述符对应的存储空间的cache和Write Buffer特性控制位,如表4-4所示
U:
由用户定义
Domain:
指明该存储空间所属的域号0~15;见前面“MMU中的域”说明
P:
保护标志位;只有ARMv5或以上版本处理器有定义
AP:
访问权限控制位,详见前面“ARM处理器的存储域”说明
TEX:
在ARMv5以上版本处理器中有定义,如果TEX等于1,表示系统支持写时分配cache
粗粒度二级页表基址:
如果bit[1:0]=01,那么该存储空间是二级分大页管理,1页=4KB,粗粒度二级页表基址表示的是页描述符表的基址,1KB对齐,一张页描述符表占1KB空间,256个页描述符条目,描述了1MB空间的映射关系以及访问权限和域控制属性
段基址:
如果bit[1:0]=10,那么该存储空间是分段管理,该段描述符号描述了1MB存储空间的映射关系以及访问权限和域控制属性,段基址就是该存储空间的物理基地址,1MB对齐
细粒度二级页表基址:
如果bit[1:0]=11,那么该存储空间是二级分小页管理,1页=1KB,细粒度二级页表基址表示的是页描述符表的基址,4KB对齐,一张页描述符表占4KB空间,1 024个页描述符条目,描述了1MB空间的映射关系以及访问权限和域控制属性
表4-4
C
B
写通类型cache
写回类型cache
可选择写通属性的写回类型cache
0
0
Uncached/unbuffered
Uncached/unbuffered
Uncached/unbuffered
0
1
Uncached/buffered
Uncached/buffered
Uncached/buffered
1
0
cached/unbuffered
不可预测
写通cached/buffered
1
1
Cached/buffered
Cached/buffered
写回cached/buffered
MMU的二级映射描述符1389598090
4.4.2 MMU的二级映射描述符1389598090
ARM处理器MMU的二级映射描述符编码格式如下所示:
31 16 15 12 11 10 9 8 7 6 5 4 3 2 1 0
00
大页基地址
0
AP3
AP2
AP1
AP0
C
B
01
小页基地址
AP3
AP2
AP1
AP0
C
B
10
极小页基地址
0
AP
C
B
11
位
说 明
Bit[1:0]:
页描述符类型标识。00:无效;01:大页;10:小页;11:极小页
C、B:
该二级描述符对应的存储空间的cache和Write Buffer特性控制位,如表4-5所示
APx:
访问权限控制位,详见前面“MMU中的域”说明
TEX:
在ARMv5以上版本处理器中有定义,如果TEX等于1,表示系统支持写时分配cache
大页基地址:
该描述符对应的大页存储空间的物理基地址,64KB对齐
小页基地址:
该描述符对应的小页存储空间的物理基地址,4KB对齐
极小页基地址:
该描述符对应的极小页存储空间的物理基地址,1KB对齐
表4-5
C
B
写通类型cache
写回类型cache
可选择写通属性的写回类型cache
0
0
Uncached/unbuffered
Uncached/unbuffered
Uncached/unbuffered
0
1
Uncached/buffered
Uncached/buffered
Uncached/buffered
1
0
cached/unbuffered
不可预测
写通cached/buffered
1
1
Cached/buffered
Cached/buffered
写回cached/buffered
展开阅读全文