在32位虚拟地址 + 256MB物理内存 + 4KB分页系统下,地址是如何转换的

在这里插入图片描述
这张图解释的是:
🔷 在32位虚拟地址 + 256MB物理内存 + 4KB分页系统下,地址是如何转换的(Address Translation)


✅ 结构分解与中文解释:

🧩 系统配置:

  • 虚拟地址空间:32-bit(即 232=4 GB2^{32} = 4\,\text{GB}232=4GB
  • 物理地址空间:28-bit(因为256MB = 2282^{28}228
  • 页大小:4KB(即 2122^{12}212,4096字节)

🔷 1. 虚拟地址结构(Virtual Address)

总共 32 bits,被分成两部分:

部分位数含义
虚拟页号(VPN)20 bits虚拟地址中的页编号,用来查页表
页内偏移(offset)12 bits每页4KB内的偏移地址,无需转换,直接保留

📌 所以每页有 212=40962^{12} = 4096212=4096 个地址 —— 就是 4KB 一页


🔷 2. 页表映射(Page Table)

  • 虚拟页号(20 bits) 去查页表,得到 物理页号(16 bits)
  • 注意:页表不翻译偏移(12 bits 直接保留)

📌 也就是说:一个 PTE(Page Table Entry) 负责 4KB 地址范围的映射
这就是右边红框说的:

“每一个 PTE 处理 4KB 的地址空间,12 bits 不被转换,直接原样保留。”


🔷 3. 物理地址结构(Physical Address)

被分成:

部分位数含义
物理页号(PPN)16 bits因为物理内存是 256MB = 2282^{28}228 ⇒ 可容纳 228÷212=2162^{28} ÷ 2^{12} = 2^{16}228÷212=216 个页
页内偏移(offset)12 bits与虚拟地址中的偏移相同,直接复制

✅ 结论一句话总结:

页表翻译的是“页号部分”(高位),不翻译页内偏移(低位12 bits);
所以每个 PTE 管理一整页(4KB)的映射。


如果你想,我可以帮你整理成中文完整版图解或者出几个题目练习页表大小/页数/地址分解。需要吗?📘✨

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值