【问题标题】:Mapping between virtual and physical address in memory paging内存分页中虚拟地址和物理地址之间的映射
【发布时间】:2014-09-09 17:55:32
【问题描述】:

在某些系统中,分页将虚拟地址 (a8b43f​​​)16 映射到物理地址 (13efd43f)16

关于页面大小可以推断出什么?

【问题讨论】:

  • “无”的答案是可接受的答案吗?
  • @nos 恐怕这不是一个可以接受的答案。请查看更新后的问题。
  • 这很不幸,因为您无法从这条信息中得知任何有关页面大小的信息。

标签: memory paging computer-architecture


【解决方案1】:

虽然这些信息不足以确定任何事情,但您可以通过注意两个地址的低 13 位相同来推断页面大小的上限。我们知道页索引是地址的低 x 位,如果我们找到最大页索引,我们就可以确定最大页大小。 0x00A8B43F 和 0x13EFD43F 共享相同的低 13 位 ('b1_0100_0011_1111)。因此,页面大小的最大值可以是 2^13 个单词,或 8 kwords。如果内存是字节可寻址的,这意味着页面大小为 8KB。

但是,如果没有更多信息,就不可能知道确切的页面大小,因为共享位可能来自方便的映射。

【讨论】:

  • @AndrewMedico 是的,页面可能是 2^8 个字,就像我说的那样,您只能获得页面大小的最大值。从位 0(2^1 字页面大小;位 1 到 12 匹配是巧合)到位 12(2^13 字页面大小;没有匹配位是巧合)的任何位置都是有效的页面索引,从而导致不同的页面大小。但是,由于第 13 位不匹配,您只能获得 2^13 个字的最大页面大小。我不明白你说的另一端是什么意思;高位是由虚拟 -> 物理映射替换的位,因此您需要找到匹配的最低位才能确定最大页面大小。
  • 重要的不是它们共享低 13 位,而是它们在 14 日不同——也就是说,正如你所说,页面不能超过 8K,否则位14 将是偏移量的一部分,并且必须匹配。
  • @Leeor 是的,我可能应该更明确地说我在 13 位之后停止,因为两个地址的第 13 位(第 14 位)不同;感谢您指出这一点:)
猜你喜欢
  • 1970-01-01
  • 2012-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-09
  • 1970-01-01
  • 2020-02-29
相关资源
最近更新 更多