分页-虚拟地址、物理地址、映射-注意事项



某些处理器中的分页使映射虚拟地址成为可能(A2345678(到物理地址(823C5678(。但是,这是不可能的以将虚拟地址(345678(映射到(2ABC678(我们能得出什么结论关于帧大小、页面大小、虚拟内存大小、物理内存大小内存

我对此的看法:
(A2345678(->(823C5678(
所以,大小偏移最多为19位。我们知道页面(和框架(的大小最多为219,就像我之前的问题一样。

当谈到虚拟内存和物理内存的大小时,我无法得出任何结论。

同样,我不知道是什么告诉我关于不可能映射地址的信息。

你能试着给我解释一下吗?

我确实看到了一些我们可以得出的结论:

如果可以映射到物理地址0x823C5678,那么物理内存至少有那么大。(假设物理地址空间没有任何漏洞;这在真正的硬件上不是一个好的假设,但不管怎样。我们可以看出,物理地址空间至少有那么大,即使它并不都映射到DRAM或MMIO(。

类似地,有效的虚拟地址0xA2345678为我们提供了虚拟地址大小的下限。假定所有的虚拟地址位都可以是1,因此最高可能的虚拟地址至少是0xFFFFFFFF。即虚拟地址是至少32位,但可以是任何更大的大小。

这种推理适用于物理地址空间,但不适用于物理内存的大小。(例如,在具有19GiB RAM的计算机中,最高有效物理地址不是2n-1。(


您无法将0x345678映射到0x2ABC678,这一事实确实告诉我们页面大小大于212。物理地址低于可映射的地址,因此我们可以排除映射不可能的可能原因。我认为过高和错位是无法进行映射的唯一可能原因。

(0xc=0b1100,而0x5是0b0101,所以公共位只有0x678。(


我们可以假设物理内存是一个整数页,所以我们可以将物理内存的最低可能端四舍五入到213的下一个倍数。

最新更新