第1题
(8 分)假设计算机 M 的主存地址为 24 位,按字节编址;采用分页存储管理方式,虚拟
地址为 30 位,页大小为 4KB;TLB 采用 2 路组相联方式和 LRU 替换策略,共 8 组。请回答
下列问题。
(1)虚拟地址中哪几位表示虚页号?哪几位表示页内地址?
(2)已知访问 TLB 时虚页号高位部分用作 TLB 标记,低位部分用作 TLB 组号,M 的虚拟
地址中哪几位是 TLB 标记?哪几位是 TLB 组号?
(3)假设 TLB 初始时为空,访问的虚页号依次为 10、12、16、7、26、4、12 和 20,在此过
程中,哪一个虚页号对应的 TLB 表项被替换?说明理由。
(4)若将 M 中的虚拟地址位数增加到 32 位,则 TLB 表项的位数增加几位?
【答案解析】
(1)因为按字节编址,页大小为 4KB=212B,所以虚拟地址中高 30-12=18 位表示虚页号。虚
拟地址低 12 位表示页内地址。
(2)因为 TLB 采用 2 路组相联方式,共 8=23 组,所以虚拟地址(或虚页号)中高 18-3=15 位
为 TLB 标记;虚拟地址中随后 3 位(或虚页号中低 3 位)为 TLB 组号。
(3)虚页号 4 对应的 TLB 表项被替换。因为虚页号与 TLB 组号的映射关系为 TLB 组号=虚
页号 mod TLB 组数=虚页号 mod 8,因此,虚页号 10、12、16、7、26、4、12、20 映射到的
TLB 组号依次为 2、4、0、7、2、4、4、4。TLB 采用 2 路组相联方式,从上述映射到的 TLB
组号序列可以看出,只有映射到 4 号组的虚页号数量大于 2,相应虚页号依次是 12、4、12 和
20。根据 LRU 替换策略,当访问第 20 页时,虚页号 4 对应的 TLB 表项被替换出来。
(4)虚拟地址位数增加到 32 位时,虚页号增加了 32-30=2 位,使得每个 TLB 表项中的标记
字段增加 2 位,因此,每个 TLB 表项的位数增加 2 位。