ARM的MMU存储访问权限控制详解
2011-04-17 23:43
357 查看
MMU对段和页面进行保护,对段和页面进行保护是由几个因素造成的。它由域的访问控制字段和一级描述符或二级描述符中的AP字段,以及C1寄存器的S(表示system),R(表示rom)控制位来共同决定的。
MMU中的域是指的一些段,大页或者小页的集合。ARM支持最多16个域,每个域的访问控制特性由CP15中的寄存器C3中的两位来控制。CP15中的寄存器C3的格式如下:
其中每两位控制一个域的访问控制特性,其编码及对应的含义如下:
当控制位为00时,此域是没有访问权限的;
当控制位为01时,此时域的属性为“用户”域;
当控制位为11时,此时域的属性为“系统”域。
当其域为“系统”域时,AP,S,R的值将会忽略,CPU(无论cpu运行在用户级还是在特权级)可以直接访问存储内容,将不进行存储权限检查。
当其域为“用户”域时,存储访问权限控制由AP,S,R来决定。
当域为“用户”域时,AP,S,R控制访问权限的具体规则如下:
对上图的应该这样理解:
当域为“用户”域时,当CPU运行在“特权级”或“用户级”时,AP,S,R控制段或页的存储访问权限;
比如:
当域为“用户”域时,当CPU运行在“用户级”时,AP=00,S=1,R=0,查表可知,这时CPU没有访问权限;
当域为“用户”域时,当CPU运行在“特权级”时,AP=00,S=1,R=0,这里CPU只能读存储内容,但不能写,如果写的话将产生错误;
注意:AP,S,R的决定访问权限的作用只用是在其域为“用户”域的状态。
MMU中的域是指的一些段,大页或者小页的集合。ARM支持最多16个域,每个域的访问控制特性由CP15中的寄存器C3中的两位来控制。CP15中的寄存器C3的格式如下:
其中每两位控制一个域的访问控制特性,其编码及对应的含义如下:
当控制位为00时,此域是没有访问权限的;
当控制位为01时,此时域的属性为“用户”域;
当控制位为11时,此时域的属性为“系统”域。
当其域为“系统”域时,AP,S,R的值将会忽略,CPU(无论cpu运行在用户级还是在特权级)可以直接访问存储内容,将不进行存储权限检查。
当其域为“用户”域时,存储访问权限控制由AP,S,R来决定。
当域为“用户”域时,AP,S,R控制访问权限的具体规则如下:
对上图的应该这样理解:
当域为“用户”域时,当CPU运行在“特权级”或“用户级”时,AP,S,R控制段或页的存储访问权限;
比如:
当域为“用户”域时,当CPU运行在“用户级”时,AP=00,S=1,R=0,查表可知,这时CPU没有访问权限;
当域为“用户”域时,当CPU运行在“特权级”时,AP=00,S=1,R=0,这里CPU只能读存储内容,但不能写,如果写的话将产生错误;
注意:AP,S,R的决定访问权限的作用只用是在其域为“用户”域的状态。
相关文章推荐
- 详解Java之路(五) 访问权限控制
- JAVAWEB开发之Servlet Filter(过滤器)详解包括post和get编码过滤器、URL访问权限控制、自动登录。以及装饰模式的使用
- 网络层访问权限控制技术-ACL详解(转)
- 网络层访问权限控制技术-ACL详解 (2)
- 网络层访问权限控制技术-ACL详解
- 网络层访问权限控制技术-ACL详解 (3)
- MMU 存储访问控制
- Java中的访问权限控制详解
- 网络层访问权限控制技术-ACL详解 (1)
- ASP.NET Core使用自定义验证属性控制访问权限详解
- MongoDB 3.0+安全权限访问控制详解
- 网络层访问权限控制技术-ACL详解 (2)
- 【Android核心基础02】 - 界面布局、测试、数据存储访问、权限控制、XML
- ceph存储 网络层访问权限控制技术-acl(访问控制列表)
- 网络层访问权限控制技术 ACL详解
- 文件访问权限详解(eclipse和studio如何访问虚拟机内部的存储内容)
- Java编程访问权限的控制代码详解
- 网络层访问权限控制技术-ACL详解 (1)
- MMU内存管理单元(2)-访问权限控制
- 网络层访问权限控制技术-ACL详解