【问题标题】:In MIPS TLBs, is it possible for two entries to be identical except for the ASID field?在 MIPS TLB 中,除了 ASID 字段之外,两个条目是否可能相同?
【发布时间】:2015-04-14 21:27:14
【问题描述】:

除了ASID不同之外,是否可以映射两个具有相同虚拟地址和物理地址的条目?

【问题讨论】:

  • 当然,为什么不呢?两个进程可能使用相同的 .so 映射到相同的虚拟地址。
  • 谢谢!从软件的角度来看,这是有道理的。我不确定 TLB 硬件是否能够在给定相同 VA 的情况下生成索引。

标签: linux mips paging tlb mips64


【解决方案1】:

http://pages.cs.wisc.edu/~remzi/OSTEP/vm-tlbs.pdf

真正的 TLB 入口

最后,让我们简单看看一个真正的 TLB。这个例子来自 MIPS R4000 [H93],一个使用软件管理的 TLB 的现代系统;一个略 简化的 MIPS TLB 入口如图 19.4 所示。

MIPS R4000 支持具有 4KB 页面的 32 位地址空间。因此, 我们期望在我们的典型虚拟地址中有 20 位 VPN 和 12 位偏移。 但是,正如您在 TLB 中看到的,只有 19 位用于 虚拟专用网;事实证明,用户地址只会来自地址的一半 空间(其余为内核保留),因此只有 19 位 VPN 是需要的。 VPN 最多可转换为 24 位物理帧号 (PFN),因此可以支持具有高达 64GB(物理)主要的系统 内存(2^24 4KB 页)。

MIPS TLB 中还有一些其他有趣的部分。我们看到一个全球 位 (G),用于在进程之间全局共享的页面。 因此,如果设置了全局位,则忽略 ASID。我们还看到了 8 位 ASID,操作系统可以使用它来区分地址空间(如 如上所述)。给你一个问题:如果有,操作系统应该怎么做 一次运行的进程是否超过 256 (2^8) 个?最后,我们看到 3 一致性 (C) 位,用于确定硬件如何缓存页面 (有点超出这些说明的范围);一个脏位,当 该页面已被写入(我们稍后会看到它的用法);有效位 它告诉硬件条目中是否存在有效的翻译。 还有一个页面掩码字段(未显示),支持多页 尺寸;我们稍后会看到为什么拥有更大的页面可能有用。最后, 一些 64 位未使用(图中的灰色阴影)。

是的,根据操作系统教科书(操作系统:三个简单的部分),对于某些 MIPS 系统(例如,MIPS R4000),他们确实有这个方案。例如,两个进程之间共享的操作系统的全局页面符合您的描述。

【讨论】:

    猜你喜欢
    • 2015-07-29
    • 2016-08-18
    • 2022-10-20
    • 2014-07-19
    • 2019-03-06
    • 2019-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多