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

admin2013-07-12  30

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

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

选项

答案Cache分为128组,组内分成2块,主存和Cache的地址格式如下图所示。 [*] CPU要顺序访问的4个数的地址写出二进制,可以发现: 20124H=00100 0000001 001。0100B,组号为1,是第2组的块,根据第44题图可知,现在Cache内有这个块,第1次访问命中,实际访问的Cache地址为0124H。 58100H=01011 0000001 00000000B,组号为1,是第2组的块,根据第44题图可知,现在Cache内有这个块。第2次访问命中,实际访问的Cache地址为0100H。 60140H=01100 0000001 01000000B,组号为l,是第2组的块,但(2ache中没有这个块,第3次访问不命中,根据LRU算法,替换掉第0块位置上的数据块,变化后的地址阵列如下图所示。 60138H—01100 0000001OOlll000B,组号为1,是第2组的块,与上一个地址处于同一个块,此时这个块已调入Cache中,所以第4次访问命中,实际访问的Cache地址为0138H。第4个数访问结束时,地址阵列的内容与刚才相同。 [*]

解析 主存容量为1MB,Cache容量为64KB,分成大小相等的数据块。设每个数据块为256字节,则主存共有4098块,(2ache共有256块,两路组相连方式(即每组仅有两块),所以Cache中共有128组,64K÷(2×256)=128组。
[归纳总结]组相联映射实际上是全相联映射和直接映射的折衷方案,所以其优点和缺点介于全相联和直接映射方式之间。组相联映射将Cache空间分成大小相同的组,让主存中的一块直接映射装入Cache中对应组的任何一块位置上,即组间采取直接映射,而组内采取全相联映射。
组相联映射的关系可以定义为:J=I mod Q
    式中:J为Caehe的组号;I为主存的块号;Q为Cache的组数。
    在采用全相联映像和组相联映像方式从主存向(2ache传送一个新块,而cache中的空间已被占满时,就需要把原来存储的一块替换掉。LRU算法(近期最少使用算法)是把CPU近期最少使用的块作为被替换的块。这种替换方法需要随时记录Cache中各块的使用情况,以便确定哪个块是近期最少使用的块。
[解题技巧]本题涉及高速缓冲存储器的两个重要问题,一是Cache和主存之间的地址映射关系,二是替换算法问题。
转载请注明原文地址:https://jikaoti.com/ti/HVajFFFM
0

最新回复(0)