首先说明一下,我们在调试程序时看到的地址其实是逻辑地址而不是线性地址或是物理地址。cpu需要通过一些手段才可以访问到物理地址。这个手段就是分段与分页。
那么为什么cpu不直接操控物理地址中?第一,为了程序运行的更安全,编程更容易,cpu提供了分段机制。第二,为了方便内存管理,无缝扩展存储空间,cpu提供了分页机制。
那怎么将逻辑地址转换成物理地址呢?首先,逻辑地址通过分段机制转成线性地址。如果cpu开启了分页机制,则还需要通过分页机制才能将线性地址转换成物理地址,否则线性地址就是物理地址。
关于转换的原理可以参考下面的文章