某些处理器中的分页可以映射虚拟地址 (A2345678)到物理地址(823C5678)。但是,这是不可能的 将虚拟地址(345678)映射到(2ABC678)。 我们可以得出什么结论 关于框架的大小,页面,虚拟内存的大小,物理的大小 存储器
我对此的看法:
(A2345678) - > (823C5678)
因此,大小偏移最多为19位。我们知道页面(和框架)的大小最多为2 19 ,like in my previous question。
当涉及到虚拟内存和物理内存的大小时 - 我什么都不做。
同样,我不知道是什么告诉我有关非可能性映射地址的信息。
你可以试着解释一下吗?
答案 0 :(得分:-1)
我确实看到了我们可以得出的结论:
如果可以映射到物理地址0x823C5678
,则物理内存至少是那么大。 (假设在物理地址空间中没有任何漏洞;在真实硬件上没有好的假设,但无论如何。我们可以说物理地址空间至少是那么大,即使它没有全部映射到DRAM或MMIO)。
同样,有效的虚拟地址0xA2345678
为我们提供了虚拟地址大小的下限。据推测,所有虚拟地址位都可以是1
,因此最高可能的虚拟地址至少为0xFFFFFFFF
。即虚拟地址至少为32位,但可以是更大的大小。
这种推理适用于物理地址空间,但不适用于物理内存的大小。 (例如,在具有19GiB RAM的计算机中,最高有效物理地址不是 n -1。)
您无法将0x345678映射到0x2ABC678的事实告诉我们页面大小大于2 12 。物理地址低于可映射的地址,因此我们可以排除映射不可能的可能原因。我认为太高和错位是导致映射不可能的唯一可能原因。
(0xc = 0b1100,而0x5为0b0101,因此公共位仅为0x678。)
我们可以假设物理内存是一个整数页面,因此我们可以将物理内存的最低可能末端四舍五入到2 13 的下一个倍数。