aarch64-translaiton table descriptors 页表描述符-内存属性字段
2022/3/8 7:17:01
本文主要是介绍aarch64-translaiton table descriptors 页表描述符-内存属性字段,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
摘录自 原文: Linux内存管理(二):ARMv8 地址转换
https://blog.csdn.net/yhb1047818384/article/details/108210044
memory attributes
Table descriptor和table entry, block entry中都有attribute的概念
table descriptor(only for stage1):
NSTable | NS表示Non-Secure,该table描述符指向的下一级的转换表是否存储在secure memory之中。为0表示存储在Secutre PA中,否则表示存储在Non-secure PA中。当在non-secure状态下进行地址映射时,该标志别忽略 |
APTable | 下一级level lookup的access permission |
UXNTable | Unprivileged Execute Never, 下一级level lookup的是否有内存的执行权限 |
PXNTable | 下一级level lookup的是否有内存的特权执行权限(EL1) |
table/block entry:
UXN | Excute-never, 决定了descriptor指向的region是否excuteable |
PXN | privileged excute-never, 决定了descriptor指向的region在EL1是否excuteable |
Contiguous | 该表项是否为连续表项中的一项。即转换表在该表项前后是连续的,没有空洞。这样,这些连续的表项便有可能一次性加载到cache中(比如由一个TLB entry缓存) |
DBM | dirty bit modifier, dirty bit指示内存页有没有被修改 |
nG | not global, 指明当前的entry是global(nG=0,所有process都可以访问)还是non-global(nG=1,only本process允许访问)。如果是global类型,则TLB中不会tag ASID;如果是non-global类型,则TLB会tag上ASID,且MMU在TLB中查询时需要判断这个ASID和当前进程的ASID是否一致,只有一致才证明这条entry当前process有权限访问。 |
AF | access flag,当该标志为0,标明对应的内存区域(一个block或者一个page)并非真正映射到物理内存,访问会引发异常。为1表示 真正映射到了物理内存。 |
SH | shareable attribute。00 non-shareable; 01 reserved; 10 outer shareable, 11 inner shareable |
AP |
access permission, 设置数据访问的权限,可以设置为4中, 只读,读写,非EL0的只读, 非EL0的读写。
|
NS | security bit, 当从Secure状态访问内存时,该标志指示转换后的地址在Secure区域还是在Non-Secure区域 |
Indx | index into the MAIR_ELn, 指向内存区域的类型以及可缓存性。见 https://www.cnblogs.com/zhangzhiwei122/p/15975446.html |
这篇关于aarch64-translaiton table descriptors 页表描述符-内存属性字段的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享