2011-44
某计算机存储器按字节编址,虚拟(逻辑)地址空间大小为 16MB,主存(物理)地址空间大小为 1MB,页面大小为 4KB;Cache 采用直接映射方式,共 8 行;主存与 Cache 之间交换的块大小为 32B。系统运行到某一时刻,页表的部分内容和 Cache 的部分内容分别如题 44-a 图、题 44-b 图所示,图中页框号及标记字段的内容为十六进制形式。

请回答下列问题。
(1)虚拟地址共有几位,哪几位表示虚页号?物理地址共有几位,哪几位表示页框号(物理页号)?
(2)使用物理地址访问 Cache 时,物理地址应划分成哪几个字段?要求说明每个字段的位数及在物理地址中的位置。
(3)虚拟地址 001C60H 所在的页面是否在主存中?若在主存中,则该虚拟地址对应的物理地址是什么?访问该地址时是否 Cache 命中?要求说明理由。
(4)假定为该机配置一个四路组相联的 TLB 共可存放 8 个页表项,若其当前内容(十六进制)如题 44-c 图所示,则此时虚拟地址 024BACH 所在的页面是否存在主存中?要求说明理由。

(1)虚拟地址为24位,虚页号为高12位;物理地址为20位,页框号为高8位。
(2)物理地址划分为主存字块标记、Cache 行号和块内地址三个字段:主存字块标记占高 12 位(第 19~8 位),Cache 行号占 3 位(第 7~5 位),块内地址占低 5 位(第 4~0 位)。原“Cache字块标记(3位)”的说法不准确,这 3 位实际用于直接映射的 Cache 行索引。
(3)虚拟地址001C60H的虚页号为001H,对应页表项有效位为1,故页面在主存中;页框号为04H,页内偏移为C60H,物理地址为04C60H。访问该物理地址时,Cache索引为第3行,但行中标记(105H)与主存标记(04CH)不相等,故Cache不命中。
(4)虚拟地址024BACH的虚页号为024H,TLB组数为2,组号由虚页号最低1位决定(为0),TLB标记为高11位(012H)。TLB第0组中存在有效且标记匹配的项,故TLB命中,页面在主存中。