假定一个计算机系统中有1个TLB和1个L1 Data Cache。该系统按字节编址,虚拟地址16位,物理地址12位,页大小为128B,TLB为4路组相连,共有16个页表项,L1 Data Cache采用直接映射方式,块大小为4B,共16行。在系统运行到某一时刻时,TLB、页表和L1 Data Cache中的部分内容如图2-3所示。
问答题 虚拟地址中哪几位表示虚拟页号?哪几位表示页内偏移量?虚拟页号中哪几位表示TLB标记?哪几位表示TLB索引?
【正确答案】正确答案:16位虚拟地址中低7位为页内偏移量,高9位为虚页号;虚页号中高7位为TLB标记,低2位为TLB组索引。
【答案解析】
问答题 物理地址中哪几位表示物理页号?哪几位表示页内偏移量?
【正确答案】正确答案:12位物理地址中低7位为页内偏移量,高5位为物理页号。
【答案解析】
问答题 主存(物理),地址如何划分成标记字段、行索引字段和块内地址字段?
【正确答案】正确答案:12位物理(主存)地址中,低2位为块内地址,中间4位为Cache行索引,高6位为标记。
【答案解析】
问答题 CPU从地址067.AH中取出的值为多少?说明CPU读取地址067AH中内容的过程。
【正确答案】正确答案:地址067AH=0000 0110 01111010B,所以,虚页号为0000011 00B,映射到TLB的第0组。将0000011B=03H与TLB第0组的4个标记比较,虽然和其中一个相等,但对应的有效位为0,其余都不等,所以TLB缺失,访问主存中的页表。直接查看000001100B=00CH处的页表项,有效位为1,取出物理页号19H=11001B,与页内偏移1111010B拼接成物理地址:110011111010B。根据中间4位1110直接找到Cache第14行(行号从0开始),即第E行,有效位为1,且标记为33H=110011B,正好等于物理地址高6位,所以命中。根据物理地址最低两位10,所以应该取出该块的第2字节,即4AH=01001010B。
【答案解析】