Skip to content

2026年 408 计算机组成原理 第 19 题

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

题目

某计算机按字节编址,虚拟地址为 16 位,页大小为 256B,页表项中包含装入位(P)、页框号(PPN)等字段。TLB 采用 4 路组相联映射,共有 16 个页表项,TLB 表项中包含标记(Tag)、有效位(V)等字段。在主存页表与 TLB 表项同步后,若主存页表中页号 22 对应的页表项中 P=0,PPN=2AH,则下列不可能出现在组号为 2 的 TLB 表项中的是( )。

错因

B

只看 PPN——发现 B 的 PPN=2AH 跟题目里"页号 22 的 PPN=2AH"巧合一致,就把 B 当成可疑选项。但 B 的 Tag=06H,对应页号 = ,不是页号 22;不同的虚页可以映射到相同的物理页框号(共享页、code page),且 V=1、PPN=2AH 与"页号 22 P=0"完全无关——B 是合法的 TLB 内容。

C

被"Tag=16H"看起来很大吓住,怀疑这个 Tag 不能放在组 2。其实 TLB Tag 字段长度 = 页号位数 − 组号位数 = 8 − 2 = 6 位,最大可表示到 0x3F = 63,0x16 = 22 完全在合法范围内。该项 V=0 表示无效,意味着这个槽里"曾经放过、现在已废"——TLB 项无效时其它字段(PPN)是垃圾值,可以是任意数,所以 C 完全可能出现。

D

可能误用了"V=0 时项不存在"的错觉,认为 D 也不可能出现。事实上 V=0 只是当前无效,TLB 槽里仍保留着上一次填进来的位组合——Tag、PPN 都可能是任意残留值。D 的 Tag=1AH(页号 106)、PPN=1CH 都属合法残留,不与题目给的"页号 22 信息"冲突。

总解析

第一步:算 TLB 字段宽度

计算
页内偏移位数8 位
页号位数16 − 88 位
TLB 组数16 项 / 4 路4 组
组号位数2 位
Tag 位数页号位数 − 组号位数 = 8 − 26 位

第二步:算页号 22 在 TLB 中的位置

把 8 位页号拆成 [Tag (6 位) | 组号 (2 位)]:

字段比特
组号(低 2 位)102
Tag(高 6 位)0001010x05

所以页号 22 落在 TLB 组 2,对应的 Tag = 05H

第三步:"页表与 TLB 同步" 的含义

题目说主存页表与 TLB 表项已同步。意思是:TLB 中存在的页表项必须和主存页表内容一致——但这里有重要区别:

"同步" 只对有效条目(V=1)做约束。V=0 的条目内容是历史残留 / 任意值,与页表当前状态无关。

所以同步后的约束是:

如果 TLB 组 2 中某项的 Tag = 05H 且 V=1,那么它的 PPN 必须等于主存页表中页号 22 的 PPN——而页号 22 的 P=0(未装入),意味着页表中根本没有有效的 PPN 可"同步"过来,TLB 中该位置如果 V=1 就矛盾了。

第四步:逐项核对组号 2 的 TLB 内容

选项Tag对应页号V含义是否可能
A05H = 221声称"页号 22 在 TLB 中有效",与"页表里 P=0(未装入)"矛盾不可能
B06H = 261是页号 26 的有效 TLB 项,与页号 22 无关可能
C16H = 900V=0 无效项,其它字段是残留值,任意都行可能
D1AH = 1060V=0 无效项,残留值任意可能

关键判据

  • 页号 → Tag:Tag = 页号 ÷ 组数 = 页号的高位部分;不同页号的 Tag 通常不同
  • 同 Tag 才指同页:A 的 Tag=05H 唯一对应页号 22;B 的 Tag=06H 对应的是页号 26
  • V=0 时所有其他字段都不受约束

最终答案是 A

易错抓手

  1. 不要看到 PPN 一样就判"冲突"——不同虚页映射到同一物理页是常见情况(共享页)
  2. V=0 的 TLB 项中 PPN、Tag 都是垃圾值,不能用"PPN 应等于 X" 反推
  3. 真正的冲突只发生在 V=1 且 Tag 指向已知"未装入"页号的情形

最后更新:

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

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