某计算机存储器按字节编址,虚拟(逻辑)地址空间大小为16MB,主存(物理)地址空间大小为1MB,页面大小为4KB;Cache采用直接映射方式,共8行;主存与Cache之间交换的块大小为32B。系统运行到某一时刻时,页表的部分内容和Cache的部分内容分别如图(a)、图(1))所示,图中页框号及标记字段的内容为十六进制形式。
问答题 虚拟地址共有几位,哪几位表示虚页号?物理地址共有几位,哪几位表示页框号(物理页号)?
【正确答案】正确答案:存储器按字节编址,虚拟地址空间大小为16MB=2 24 B,故虚拟地址为24位;页面大小为4kB=2 12 B,故高12位为虚页号。主存地址空间大小为1MB=2 20 B,故物理地址为20位;由于页内地址为12位,故高8位为页框号。
【答案解析】
问答题 使用物理地址访问Cache时,物理地址应划分成哪几个字段?要求说明每个字段的位数及在物理地址中的位置。
【正确答案】正确答案:由于Cache采用直接映射方式,所以物理地址各字段的划分如下。
【答案解析】
问答题 虚拟地址001C60H所在的页面是否在主存中?若在主存中,则该虚拟地址对应的物理地址是什么?访问该地址时是否Cache命中?要求说明理由。
【正确答案】正确答案:虚拟地址001C60H的前12位为虚页号,即001H,查看001H处的页表项,其对应的有效位为1,故虚拟地址001C60H所在的页面在主存中。页表001H处的页框号为04H,与页内偏移(虚拟地址后12位)拼接成物理地址为04C60H。物理地址04C60H=0000 0100 1100 0110 0000B,主存块只能映射到Cache的第3行(即第011B行),由于该行的有效位=1,标记(值为105H)≠04CH(物理地址高12位),故不命中。
【答案解析】
问答题 假定为该机配置一个4路组相联的TLB共可存放8个页表项,若其当前内容(十六进制)如图(c)所示,则此时虚拟地址024BACH所在的页面是否存在主存中?要求说明理由。
【正确答案】正确答案:由于TLB采用4路组相联,故TLB被分为8/4=2个组,因此虚页号中高11位为TLB标记、最低1位为TLB组号。虚拟地址024BACH=0000 0010 0100 1011 1010 1100B,虚页号为0000 0010 0100B,TLB标记为0000 0010 010B(即012H),TLB组号为0B,因此,该虚拟地址所对应物理页面只可能映射到TLB的第0组。组0中存在有效位=1、标记=012H的项,因此访问TLB命中,即虚拟地址024BACH所在的页面在主存中。
【答案解析】解析:考查虚拟存储器、Cache、TLB。