2.10 本节小结 上述示例涵盖了从虚拟地址到Cache 查找过程中可能出现的典型情形。完整的地址翻译与数 据访问流程如下:首先查询 TLB; 若 TLB 未命中,则需访问页表以完成虚实地址转换。在此过 程中,若发现所需页面尚未调入主存(页表项无效),则触发缺页中断,从外存调入该页面。随 后,利用所得物理地址访问Cache; 若 Cache 未命中,则进一步从主存读取所需数据。 · 对 于 0x0b1:Cache 组索引为0xc, 标记为0x02。查 Cache 索引为0xc 的行,有效位为0, Cache 未命中,需从主存中读取物理页号为0x2、偏移为0x31处的数据。 · 对 于 0x354:Cache 组索引为5,标记为0x0d。查 Cache 索引为5的行,标记为0d 且有 效位为1,Cache 命中。偏移为0(块0),故虚拟地址0x03d4对应的数据为36H。 物理地址 Cache标记 Cache索引 偏 移 11 10 9 8 7 6 5 4 3 2 1 0 0x354 0 0 1 1 0 1 0 1 0 1 0 0 0x0b1 0 0 0 0 1 0 1 1 0 0 0 1 物理页号 页内偏移 表3.5 物理地址结构 获得主存中页面的物理地址后,需通过该地址访问数据,此时应检查其内容是否在Cache 中, 物理地址结构如表3.5所示。 · 对于0x0229: 组索引为0,TLB 标记为0x02。查 TLB 第0组,无匹配项。再查页表,虚 拟页号为0x08, 对应页表项有效位为0,页面不在主存中,触发缺页中断。 · 对于0x00fl: 组索引为3,TLB 标记为0x00。查 TLB 第3组,无匹配项, TLB 未命中, 转而查询页表。虚拟页号为0x03, 页表第3行有效位为1,表明页面在主存中。物理页 号为0x02(000010), 拼接页内偏移110001,得物理地址为0x0b1 (000010110001)。 地址为0x354(001101010100)。 225第 3 章 内 存 管 理 225 · 对 于 0x03d4: 组索引为3,TLB 标记为0x03。查TLB 第3组,存在标记为03且有效位 为1的项,TLB 命中。对应物理页号为0xOd(001101), 拼接页内偏移010100,得物理 由表3.4可得各地址的虚拟页号、组索引及TLB 标记。接下来需判断对应页面是否已在主存 中;若在主存中,则进一步确定其物理地址。 虚拟地址 T L B 标 记 组 索 引 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0x03d4 0 0 0 0 1 1 1 1 0 1 0 1 0 0 0x00fl 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0x0229 0 0 0 0 1 0 0 0 1 0 1 0 0 1 虚拟页号 页内偏移 表3 .4 虚拟地址结构 首先将十六进制的虚拟地址0x03d4,0x00f¹ 和 0x0229 转换为二进制形式,如表3.4所示。 索引 标记位 有效位 块0 块1 块2 块3 索引 标记位 有效位 块0 块1 块2 块3 0 19 1 99 11 23 11 8 24 1 3A 00 51 89 1 15 0 一 一
一 9 2D 0 一 一 2 1B 1 00 02 04 08 A 2D 1 93 15 DA 3B 3 36 0 一 一 一 一 B 0B 0 一 一 一 一 4 32 1 43 6D 8F 09 C 02 0
5 OD 1 36 72 F0 1D D 16 1 04 96 34 15 6 31 0 一 一 一 一 E 13 1 83 77 1B D3 7 16 1 11 C2 DF 03 F 14 0 一 一 一 表3.3 data Cache 内 容 虚拟 页号 物理 页号 有效位 虚拟 页号 物理 页号 有效位 00 28 1 08 一 0 01 一 0 09 17 1 02 33 1 0A 09 1 03 02 1 0B 一 0 04 一 0 0C 一 0 05 16 1 0D 2D 1 06 0 0E 11 1 07 一 0 0F 0D 1 表3.2 部分页表 索引 标记 位 物理 页号 有效位 标记 位 物理 页号 有效 位 0 03 一 0 09 0D 1 00 一 0 07 02 1 1 03 2D 1 02 一 0 04 一 0 0A 一 0 2 02 一 0 08 一 0 06 一 0 03 一 0 3 07 一 0 03 0D 1 0A 34 1 02 一 0 表3. 1 TLB TLB 、部分页表及data Cache的内容分别见表3.1、表3.2和表3.3。 图3.28 地址结构 TLB标记 TLB组索引虚拟页号 页内偏移(a) 虚拟地址 (b) 物理地址 TLB标记 TLB组索引 虚拟页号 页内偏移 (a) 虚拟地址 (b) 物理地址 16个条目,因此组数为16/4=4,组索引占log24=2 位,虚拟页号的低2位作为组索引、高6位 作为TLB 标记。data Cache 行大小为4B, 故物理地址中最低log₂4=2 位为块内偏移;Cache 共 16组,因此接下来的log₂16=4 位为组索引,剩余高6位为标记。地址结构如图3.28所示。 系统以字节编址,页面大小为64B, 故页内偏移占log₂64=6 位。虚拟地址共14位,故虚拟 页号为14-6=8位;物理地址共12位,故物理页号为12-6=6位。TLB 采用四路组相联,共 要求分析对虚拟地址0x03d4,0x00f1 和 0x0229 的访问过程。 · data Cache采用物理寻址、直接映射方式,行大小为4B, 共16组。 · TLB 采用四路组相联结构,共16个条目; ●页面大小为64B; ●物理地址为12位; ●虚拟地址为14位; ●存储器以字节为编址单位; ●配置一个TLB和一个data Cache; 设某系统满足以下条件: 考虑到408统考越来越注重学科综合能力的考查,本节结合《计算机组成原理》中Cache 的 相关内容,分析虚实地址的变换过程。对于不参加统考的读者,可酌情跳过;对于参加统考但尚 未复习该部分内容的读者,建议先完成相关章节的学习,再回过头来学习本节。
[tag_link]
正确答案:B