首页 > 试题广场 >

回答下面问题

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

请回答下列问题:

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

组号 有效位标记 页框号  有效位标记 页框号  有效位标记 页框号  有效位标记 页框号

44c图 TLB部分内容

(1)虚拟地址为 24 位,其中高 12 位为虚页号;
物理地址为20 位,其中高 8 位为物理页号。 
(2) 20 位物理地址中,最低 5 位为块内地址,中间 3 位为 Cache 行号,高 12 位为标志。
(3)在主存中。

虚拟地址001C60H=0000 0000 0001 1100 0110 0000B,故虚页号为 0000 0000 0001B,查看0000 0000 0001B=001H 处的页表项,由于对应的有效位为 1,故虚拟地址 001C60H 所在的页面在主存中。
页表001H 处的页框号(物理页号)为 04H=0000 0100B,与页内偏移 1100 0110 0000B 拼接成物理地址: 0000 0100 1100 0110 0000B=04C60H。( 1 分)
对于物理地址0000 0100 1100 0110 0000B,所在主存块只可能映射到 Cache 第 3 行(即第011B 行); 由于该行的有效位=1、 标记( 值为 105H) ≠04CH( 物理地址高 12位), 故访问该地址时 Cache 不命中。
(4)虚拟地址 024BACH=0000 0010 0100 1011 1010 1100B,故虚页号为 0000 0010 0100B。由于 TLB 只有 8/4=2 个组,故虚页号中高 11 位为 TLB 标记,最低 1 位为 TLB 组号,它们的值分别为 0000 0010 010B(即 012H)和 0B,因此,该虚拟地址所对应物理页面只可能映射到 TLB 第 0 组。

由于组0 中存在有效位=1、标记=012H 的项,所以访问 TLB 命中,即虚拟地址 024BACH所在的页面在主存中。

发表于 2016-11-19 16:32:43 回复(0)