组成原理
2021-44
假设计算机 M 的主存地址为 24 位,按字节编址;采用分页存储管理方式,虚拟地址为 30 位,页大小为 4 KB;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)
虚拟地址30位,页大小为4KB(2^12),页内地址占12位,虚页号占30-12=18位。
- 虚页号:虚拟地址的高18位(位29~12)。
- 页内地址:虚拟地址的低12位(位11~0)。
2)
TLB共8组,组号需3位(log2(8)=3)。虚页号的低3位作为TLB组号,高位部分作为TLB标记。
- TLB标记:虚页号的高15位(对应虚拟地址位29~15)。
- TLB组号:虚页号的低3位(对应虚拟地址位14~12)。
3)
虚页号4对应的TLB表项被替换。
理由:TLB初始为空,访问序列中,当访问虚页号20时,其TLB组号(20 mod 8 = 4)对应的组已满(包含虚页号12和4),且虚页号4在组内为LRU(最久未使用),因此被替换。
4)
虚拟地址增至32位后,虚页号位数增至32-12=20位。TLB组号仍为3位,TLB标记位数增至20-3=17位。TLB表项中物理页号等位数不变,故TLB表项位数增加2位。