微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

虚拟和物理地址中有哪些字段?

如何解决虚拟和物理地址中有哪些字段?

在研究虚拟内存概念时,我了解到一个虚拟地址(由处理器生成以访问内存位置)包含页码和页偏移量。我们使用页表来获取与此页号相对应的物理地址(本质上是帧号)。

现在,如果这些地址(物理/虚拟)以页/帧为单位运行,那么处理器如何访问以块/行为单位的缓存?

如果虚拟地址仅由页码和页偏移量组成,则标记位从何处来检查高速缓存集(由索引/集位指定)是否包含所需数据?

解决方法

我想出了这个问题的答案。

  1. 可以使用/解释相同的地址来访问两个不同的寻址方案。 (感谢@PeterCordes指出这一点)

    • 方案1(访问TLB):PageNumber + PageOffset
    • 方案2(访问缓存):标签+设置/索引+偏移量
  2. 通常,在VIPT高速缓存中,页码来自高阶TAG位,而页偏移量来自低阶TAG位以及SET和OFFSET位。为了防止混淆(多个虚拟地址映射到同一物理地址),重要的是SET / INDEX位必须完全来自页面偏移量。此限制限制了缓存的大小。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。