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

图1 页表的部分内容

问答题 虚拟地址共有几位,哪几位表示虚页号?物理地址共有几位?哪几位表示页框号(物理页号)?
【正确答案】由于虚拟地址空间大小为16MB,且按字节编址,因此虚拟地址共有24位(22416M)。由于页面大小为4KB(212=4K),因此虚页号为前12位。由于主存(物理)地址空间大小为1MB,因此物理地址共有20位(220=1M)。由于页内地址有12位,因此20-12=8,即前8位为页框号。
【答案解析】
问答题 使用物理地址访问Cache时,物理地址应划分成哪几个字段?要求说明每个字段的位数及在物理地址中的位置。
【正确答案】由于Cache采用直接映射方式,因此物理地址应划分成3个字段,如下: [*] 分析:由于块大小为32B,因此字块内地址占5位。又由于Cache共8行,因此字块标记占3位。综上所述,主存字块标记占20-5-3=12位。
【答案解析】
问答题 虚拟地址001C60H所在的页面是否在主存中?若在主存中,则该虚拟地址对应的物理地址是什么?访问该地址时是否Cache命中?要求说明理由。
【正确答案】虚拟地址001C60H的虚页号为前12位,即001H=1。查表可知,其有效位为1,故在内存中。虚页号为1对应页框号为04H,故物理地址为04C60H。由于采用的是直接映射方式,因此对应Cache行号为3。尽管有效位为1,但是由于标记位04CH≠105H,故不命中。
【答案解析】
问答题 假定为该机配置一个4路组相连的TLB,该TLB共可存放8个页表项,若其当前内容(十六进制)如图3所示,则此时虚拟地址024BACH所在的页面是否在主存中?要求说明理由。
【正确答案】由于采用了4路组相连的,因此TLB被分为2组,每组4行。因此,虚地址应划分成3个字段,如下: [*] 将024BACH转成二进制为0000 0010 0100 1011 1010 1100,可以看出组号为0。标记为0000 0010 010,换成十六进制为0000 0001 0010(高位补一个0),即012H,从图中的0组可以看出,标记为012H页面的页框号为1F,故虚拟地址024BACH所在的页面在主存中。
【答案解析】