假定一个计算机系统中有一个TLB和一个L1 Data Cache。该系统按字节编址,虚拟地址16位,物理地址12位,页大小为128B,TLB为4路组相连,共有16个页表项,Ll Data Cache采用直接映射方式,块大小为4B,共16行。在系统运行到某一

admin2017-04-28  28

问题 假定一个计算机系统中有一个TLB和一个L1 Data Cache。该系统按字节编址,虚拟地址16位,物理地址12位,页大小为128B,TLB为4路组相连,共有16个页表项,Ll Data Cache采用直接映射方式,块大小为4B,共16行。在系统运行到某一时刻时,TLB、页表和L1 Data Cache中的部分内容如图2—3所示。

试回答下列问题:
CPU从地址067AH中取出的值为多少?说明CPU读取地址067AH中内容的过程。

选项

答案地址067AH=0000 0110 0111 1010B,所以,虚页号为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。

解析 由于系统按字节编址,所以将Cache中4B大小的块都分成了字节0~字节3。这样就可以方便地取出每块的任意1个字节。例如,该题第(4)问如果将物理地址的后两位改成00,则取出的就是55H,而不是4AH。
转载请注明原文地址:https://kaotiyun.com/show/sXRi777K
0

最新回复(0)