1、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域的访问
2、类型,具体说明如表4-7所示。 表4-7 域的访问控制字段编码及含义 控制位编码 访问类型 含 义 0b00 没有访问权限 这时访问该域将产生访问失效 0b01 客户(client) 根据CP15的C1控制寄存器中的R和S位以及页表中地址变换条目中的访问权限控制位AP来确定是否允许各种系统工作模式的存储访问 0b10 保留 使用该值会产生不可预知的结果 0b11 管理者(manager) 不考虑CP15的C1控制寄存器中的R和S位以及页表中地址变换条目中的访问权限控制位AP,在这种情况下不管系统工作在特权模式还是用户模式都不会产生访问失效 当域访问
3、权限控制位设置为上面的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
4、 读/写 只读 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
5、 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,表示系统支持
6、写时分配cache 粗粒度二级页表基址: 如果bit[1:0]=01,那么该存储空间是二级分大页管理,1页=4KB,粗粒度二级页表基址表示的是页描述符表的基址,1KB对齐,一张页描述符表占1KB空间,256个页描述符条目,描述了1MB空间的映射关系以及访问权限和域控制属性 段基址: 如果bit[1:0]=10,那么该存储空间是分段管理,该段描述符号描述了1MB存储空间的映射关系以及访问权限和域控制属性,段基址就是该存储空间的物理基地址,1MB对齐 细粒度二级页表基址: 如果bit[1:0]=11,那么该存储空间是二级分小页管理,1页=1KB,细粒度二级页表基址表示的是页描述符表的基
7、址,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
8、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
9、 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对齐 小页基地址: 该描述符对应的小页存储空
10、间的物理基地址,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






