某机主存容量为1 MB,两路组相连方式(每组仅有两块)的Cache容量为64 KB;每个数据块为256字节。CPU要顺序访问的地址为20124H、58100H、60140H和60138H等4个主存字节单元中的数。已知访问开始前第2组(组号为1)的地址阵列内

admin2014-07-18  34

问题 某机主存容量为1 MB,两路组相连方式(每组仅有两块)的Cache容量为64 KB;每个数据块为256字节。CPU要顺序访问的地址为20124H、58100H、60140H和60138H等4个主存字节单元中的数。已知访问开始前第2组(组号为1)的地址阵列内容如下图所示,Cache采用LRU替换策略。

    说明Cache的结构(即分多少组、组内分多少块),给出主存及Cache的地址格式。上述4个数能否直接从Cache中读取,若能,请给出实际访问的Cache地址。第4个数访问结束时,上图的内容如何变化。

选项

答案根据题意知,主存容量为1 MB,Cache容量为64 KB,分成大小相等的数据块。设每个数据块为256字节,则主存共有4 098块,Cache共有256块,两路组相连方式(即每组仅有两块),所以Cache中共有128组。 Cache分为128组,组内分成2块,主存和Cache的地址格式,如下图所示。 [*] 将CPU要顺序访问的4个数的地址写出二进制,可以发现: (1)20124H=00100000000100100100B [*] 组号为1,是第2组的块,根据题目中给出的图可知,现在Cache内有这个块,第1次访问命中,实际访问的Cache地址为0124H。 (2)58100H=01011000000100000000B [*] 组号为1,是第2组的块,根据题目中给出的图可知,现在Cache内有这个块。第2次访问命中,实际访问的Cache地址为0100H。 (3)60140H=01100000000101000000B [*] 组号为1,是第2组的块,但Cache中没有这个块,第3次访问不命中。根据LRU算法,替换掉第0块位置上的数据块,变化后的地址阵列,如下图所示: [*] (4)60138H=0110000000010o111000B [*] 组号为1,是第2组的块,与上一个地址处于同一个块,此时这个块已调入Cache中,所以第4次访问命中,实际访问的Cache地址为0138H。第4个数访问结束时,地址阵列的内容与刚才相同。

解析
转载请注明原文地址:https://kaotiyun.com/show/Zaxi777K
0

最新回复(0)