页表大小,虚拟内存大小和物理内存大小

时间:2018-02-16 21:41:56

标签: memory cpu-architecture

机器的内存架构有:

+-----------------------+-------+
| Virtual address:      | 48-bit|
| Page size             | 8 KB  |
| Page table entry size | 32 bit|
+-----------------------+-------+

让我们假装操作系统使用来自页表条目的4位来确定每个页面的访问权限

  1. 虚拟内存大小?
  2. 页表允许的最大物理内存大小
  3. 页面大小
  4. 我尝试了以下设置:

    • 虚拟内存大小= 2 ^ 48 B
    • 物理内存大小= 2 ^ 41 B
      PPN = 32-4 = 28位物理地址= 28+偏移位= 28 + 13 = 41位
    • 页面大小= 2 ^ 35 * 32位
      页面条目数= 48-13 = 35
      页表大小=页表条目大小*页面条目数

    我对PPN感到困惑。应该是28位还是32位?我不知道我的解决方案是否正确。有人可以提供我的建议吗?

    谢谢。

1 个答案:

答案 0 :(得分:0)

问题很模糊。首先,“最大物理内存大小”是指最大物理内存地址空间大小或可以在任何时间访问的最大物理内存大小?在前一种情况下,您的计算是正确的。在后一种情况下,物理内存大小受两个因素的限制:

  • 页表条目的最大数量。
  • 最大物理内存地址空间大小。

我认为你可以自己弄清楚这个案例的计算。

其次,“页表大小”是指覆盖最大虚拟地址空间,最大物理地址空间或其他内容所需的页表条目数(例如,页表指针格式支持) ?页面表是单级还是多级?或者它可能是多级的,但“页表大小”仅指最后一级页表条目。如果“页表大小”表示覆盖页表遵循单级格式的最大虚拟地址空间所需的页表条目的总大小,则计算才正确。

第三,似乎你假设内存是字节可寻址的,并且一个字节的大小是8位。这些是常见的假设,但最好在问题或答案中明确说明。否则计算会有所不同。

  

我对PPN感到困惑。应该是28位还是32位?

你是对的,它是28位。