问答题 某计算机存储器按字节编址,虚拟(逻辑)地址空间大小为16MB,主存(物理)地址空间大小为1MB,页面大小为4KB;Cache采用直接映射方式,共8行;主存与Cache之间交换的块大小为32B。系统运行到某一时刻时,页表的部分内容和Cache的部分内容分别如题44—a图、题44—b图所示,图中页框号及标记字段的内容为十六进形式。请回答下列问题:(1)虚拟地址共有几位,哪几位表示页号?物理地址共有几位,哪几位表示页框号(物理页号)?(2)使用物理地址访问Cache时,物理地址应划分成哪几个字段?要求说明每个字段的位数及在物理地址中的位置。(3)虚拟地址001C60H所在的页面是否在主存中?若在主存中,则该虚拟地址对应的物理地址是什么?访问该地址时是否Cache命中?要求说明理由。(4)假定为该机配置一个4路组相联的TLB,该TLB共可存放8个页表项,若其当前内容(十六进制)如题44—c图所示,则此时虚拟地址024BACH所在的页面是否在主存中?要求说明理由。
【正确答案】正确答案:(1)虚拟地址共有几位,哪几位表示页号?物理地址共有几位,哪几位表示页框号(物理页号)? 页面大小为4KB=2 12 B,故页内地址12位。 虚拟地址空间大小为16MB=2 24 B,故虚地址共24位,低12位为页内地址,高24-12=12位为虚页号。 主存地址空间大小为1MB=2 20 B,故实地址共20位,低12位为页内地址,高20-12=8位为页框号(物理页号)。 (2)使用物理地址访问Cache时,物理地址应划分成哪几个字段?要求说明每个字段的位数及在物理地址中的位置。 主存与Cache之间交换的块大小为32B=2 5 B,故Cache行(块)内地址5位。 Cache共8行=2 3 行,故Cache大小为32×8=256B=2 8 B。Cache地址=3位Cache行号+5位行内地址。 主存物理地址区数=1MB/256B=2 20 /2 8 =2 12 =4096。 故物理地址分三个字段:高12位为标记tag,中间3位为Cache行号,最低5位为行内地址。 (3)虚拟地址001C60H所在的页面是否在主存中?若在主存中,则该虚拟地址对应的物理地址是什么?访问该地址时是否Cache命中?要求说明理由。 虚拟地址001C260H的低12位C60H为页内地址,高12位001H为虚页号。 查页表可知,虚页001H对应的有效位为1,故该页已调入主存,主存页号为04H,故主存地址为04C60H。 主存地址04C60H=000001001100 011 00000b的低5位00000b为行内地址,中间3位011b为Cache行号,查Cache标记可知,第3行的有效位为1,但标记为105H,故该地址Cache不命中。 (4)假定为该机配置一个4路组相联的TLB,该TLB共可存放8个页表项,若其当前内容(十六进制)如题44—c图所示,则此时虚拟地址024BACH所在的页面是否在主存中?要求说明理由。
【答案解析】