对于题 45,若计算机 M 的主存地址为 32 位,采用分页存储管理方式,页大小为 4KB,则第 1 行 push 指令和第 30 行 ret 指令是否在同一页中(说明理由)?若指令 Cache 有 64 行,采用 4 路组相联映射方 式,主存块大小为 64B,则 32 位主存地址中,哪几位表示块内地址?哪儿位表示 Cache 组号?哪几位表 示标记(tag)信息?读取第 16 行 call 指令时,只可能在指令 Cache 的哪一组中命中(说明理由)?
因为页大小为 4KB,所以虚拟地址的高 20 位为虚拟页号。第 1 行的 push 指令和第 30 行 的 ret 指令的虚拟地址的高 20 位都是00401H,因此两条指令在同一页中。
指令 Cache 有 64 块,采用 4 路组相联映射方式,故指令 Cache 共有 64/4 =16 组,Cache组号共 4 位。主存块大小为 64B,故块内地址为低 6 位。综上所述,在 32 位主存地址中,低 6位为块内地址,中间 4 位为组号,高 22 位为标记。
因为页大小为 4KB,所以虚拟地址和物理地址的最低 12 位完全相同,因而 call 指令虚拟地址 0040 1025H 中的 025H = 0000 0010 0101B 为物理地址的低 12 位,对应的 7~10 位为组号,故对应的 Cache 组号为 0。