首页 > 解决方案 > ARM架构中虚拟地址和修改虚拟地址的区别

问题描述

我是 arm 和 arm 指令集的新手。在 ARM-Cortex A8 的文档中,我看到了一些命令,如缓存刷新接受输入地址作为 MVA(修改后的虚拟地址)。“修改后的虚拟地址”和“虚拟地址”之间有任何区别,如果是,如何将 32 位长的虚拟地址转换为 MVA。

标签: armcpucpu-cacheaddressing-mode

解决方案


修改的虚拟地址是使用快速上下文切换扩展的结果。修改后的虚拟地址在 32 位地址的上部包含一个 7 位进程 ID,要求虚拟地址的这些位为零。这允许 TLB 标记和缓存虚拟标记使用未使用进程 ID(地址空间 ID)扩展(标记)的 32 位地址。

有关更多信息,请参阅波士顿大学博客文章“标记的 TLB 和上下文切换”或 Gilles Chanteperdrix 和 Richard Cochran 的论文“Linux 的 ARM 快速上下文切换扩展”( PDF )。


推荐阅读