Skip to content

2022年 408 计算机组成原理 第 15 题

计算机组成原理2022年选择题2分

题目

某计算机主存地址为 24 位,采用分页虚拟存储管理方式,虚拟地址空间大小为 4GB,页大小为 4KB,按字节编址。某进程的页表部分内容如下表所示。当 CPU 访问虚拟地址 00082840H,虚-实地址转换的结果是( )。

虚页号实页号(页框号)存在位
82024H0
.........
129180H1
130018H1

错因

A

把虚拟地址里"00082"这一段直接当成 VPN,对应表里"虚页号 82"那一行(实页号 024H),同时忽略了存在位 = 0——也就是无视了"该虚页其实没装入主存"的事实。两个错叠加:① VPN 不应是十进制 82(应是 0x82 = 130),② 即便确实是 VPN 82,存在位 0 也意味着缺页而不是直接给出物理地址。

B

VPN 算错了 1。可能把"00082840H"右移 12 位算成 0x81 = 129,或目测页表只看到了 129 那行(紧挨着)就直接用了。正确做法:(十进制)。看表时找 VPN = 130 那行才对。

D

误以为 VPN = 82(十进制,从地址前缀直接读)→ 查表发现存在位 = 0 → 缺页。问题同 A:VPN 应该是 (十进制),不是 82(十进制)。表中的"82""129""130"是十进制 VPN,必须把虚拟地址的高位部分按 16 进制 → 10 进制换算后再查。

总解析

第一步:拆分虚拟地址(页内偏移 + VPN)

页大小 = 4 KB = B → 页内偏移 12 位(低 12 位)。

虚拟地址 00082840H:

3112VPN20 bits00082H110Offset12 bits840H
  • 页内偏移(低 12 位):
  • 虚页号 VPN(高 20 位):(十进制)

第二步:查页表

查找的 VPN表中行实页号存在位结论
130130 → 018H018H1命中,直接拼接物理地址

第三步:拼接物理地址

物理地址 = 实页号 × 页大小 + 页内偏移

也可以理解为"低 12 位偏移不变,高位换成实页号"——VPN 字段(20 位)→ 实页号字段(24 - 12 = 12 位),然后拼上原偏移。

注意主存地址 24 位、按字节编址 → 物理页号 = 24 − 12 = 12 位,刚好放得下 0x018。

最终答案是 C(018840H)

关键易错点

  1. VPN 是十进制 130,不是从地址前缀直接读出来的"82"。表中的列要看头部说明
  2. 页内偏移在虚-实转换中保持不变(只换高位的页号)
  3. 主存物理地址只有 24 位(题面给定)—— 实页号最多 12 位,0x018 没问题;如果某选项给出的实页号超过 0xFFF 一定是错(如 0x180 在表里出现是实页号字段最多 12 位 = 0xFFF,180 = 0x180 = 384,仍合法)

速查公式

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数