arm - ARM架构中虚拟地址和修改虚拟地址的区别
问题描述
我是 arm 和 arm 指令集的新手。在 ARM-Cortex A8 的文档中,我看到了一些命令,如缓存刷新接受输入地址作为 MVA(修改后的虚拟地址)。“修改后的虚拟地址”和“虚拟地址”之间有任何区别,如果是,如何将 32 位长的虚拟地址转换为 MVA。
解决方案
修改的虚拟地址是使用快速上下文切换扩展的结果。修改后的虚拟地址在 32 位地址的上部包含一个 7 位进程 ID,要求虚拟地址的这些位为零。这允许 TLB 标记和缓存虚拟标记使用未使用进程 ID(地址空间 ID)扩展(标记)的 32 位地址。
有关更多信息,请参阅波士顿大学博客文章“标记的 TLB 和上下文切换”或 Gilles Chanteperdrix 和 Richard Cochran 的论文“Linux 的 ARM 快速上下文切换扩展”( PDF )。
推荐阅读
- python - 使用取决于索引的值填充嵌套的 numpy 数组
- typescript - 使用 AdonisJS 5 / Lucid 在模型中设置空字段的最佳实践
- javascript - Safari iOS 上的 scrollTop 值
- php - Laravel 未定义变量。如何将多个变量从一个或多个控制器传递到视图?
- python - 当我什至没有对其执行任何操作时,为什么 .sub 会更改我的原始数据框?
- c# - 使用 SQLite-Net 的通用类方法
- nginx - 如何在不带斜线的情况下使用斜线重定向,条件是 url 末尾的斜线是什么?
- mysql - 如何在不使用任何mysql查询的情况下在java中获取mysql存储引擎类型
- python - 谁能建议如何修改/修复我的 Selenium Python 代码以在不手动检查记录的情况下抓取该网站
- xslt - Muenchian分组逻辑代码中需要计数器值