某机按字节编址,主存容量为1MB,采用两路组相联方式(每组仅有两块)的Cache容量为64KB,每个数据块为256B。己知访问开始前第2组(组号为1)的地址阵列内容如下图所示(第一列为组内块号)。Cache采用LRU替换策略。
问答题 分别说明主存地址中标记(Tag)、组号和块内地址三部分的位置和位数。
【正确答案】正确答案:本题考查Cache与主存的映射、替换算法。在采用全相联和组相联映像方式从主存向Cache传送一个新块,而Cache中的空间己被占满时,就需要把原来存储的一块替换掉。LRU算法(最近最少使用法)是把CPU近期最少使用的块作为被替换的块。 按字节编址,每个数据块为256B,则块内地址为8位;主存容量为1MB,则主存地址为20位;Cache容量为64KB,Cache共有256块,采用两路组相连,所以Cache共有128组(64K÷(2×256)),则组号为7位;标记(Tag)的位数为20一7—8=5位。主存和Cache的地址格式如下图所示:
【答案解析】
问答题 若CPU要顺序访问地址为20124H、58100H、60140H和60138H等4个主存单元。上述4个数能否直接从Cache中读取,若能,请给出实际访问的Cache地址。第4个数访问结束时,上图中的内容将如何变化。
【正确答案】正确答案:将CPU要顺序访问的4个数的地址写成二进制,可以发现: 20124H=0010 0000 0001 0010 0100B,组号为1,是第2组的块,根据题中阵列内容的图可知,现在Cache内有这个块,第1次访问命中,实际访问的Cache地址为0124H。 58100H=01011000 0001 0000 0000B,组号为1,是第2组的块,根据题中阵列内容的图可知,现在Cache内有这个块,第2次访问命中,实际访问的Cache地址为0100H。 60140H=0110 0000 0001 0100 0000B,组号为1,是第2组的块,但Cache中无此块,第3次访问不命中,根据LRU算法,替换掉第O块位置上的块,变化后的地址阵列如下图。
【答案解析】
问答题 若Cache完成存取的次数为5000次,主存完成存取的次数为200次。已知Cache存取周期为40ns,主存存取周期为160ns,求该Cache/主存系统的访问效率。(注:默认为Cache与主存同时访问)
【正确答案】正确答案:Cache的命中率H=Nc/(Nc+Nm)=5000/(5000+200)=5000/5200=25/26,主存慢于Cache的倍率r=Tm/Tc=160ns/40ns=4,访问效率e=l/[H+r(1一H)]=1/[25/26+4×(1—25/26)]=89.7%。
【答案解析】