已知某多层次存储系统仅由 Cache 和主存构成,Cache 由 4 块组成,主 存由 16 块构成,Cache 块和主存块大小均为 16 字节;且当前 Cache 中, 0-3 块的内容按照进入时间的先后顺序分别为主存中的第 2,5,4,3 块。 若程序执行过程中,主存块访问流为:0、2、2、1,3,3,5,3,4、2 时,试求: (1) 全相联映像方式下采用 FIFO 替换算法时的命中率; (2) 2 路组相联方式下采用 LRU 替换算法时的命中率;(3) 内存地址为 6BH 的字节存储单元,在 2 路组相联方式下应映射到 Cache 中的那一组、哪一块的哪一个字节单元
时间: 2024-01-10 09:03:35 浏览: 122
(1) 全相联映像方式下采用 FIFO 替换算法时的命中率
由于是全相联映射,因此主存中的每一块都可以映射到 Cache 中的任意一块中,因此,对于任意一次访问,Cache 中的每一块都有可能被替换。根据题目给出的信息,Cache 中的 0-3 块分别是主存中的第 2,5,4,3 块,因此在第一次访问时,Cache 中的块命中率为 0/4=0;在第二次访问时,Cache 中的块命中率为 1/4=0.25;在第三次访问时,Cache 中的块命中率为 1/4=0.25;在第四次访问时,Cache 中的块命中率为 0/4=0;在第五次访问时,Cache 中的块命中率为 0/4=0;在第六次访问时,Cache 中的块命中率为 1/4=0.25;在第七次访问时,Cache 中的块命中率为 0/4=0;在第八次访问时,Cache 中的块命中率为 0/4=0;在第九次访问时,Cache 中的块命中率为 0/4=0;在第十次访问时,Cache 中的块命中率为 1/4=0.25。
因此,全相联映像方式下采用 FIFO 替换算法时的命中率为:(0+0.25+0.25+0+0+0.25+0+0+0+0.25)/10=0.1,即 10%。
(2) 2 路组相联方式下采用 LRU 替换算法时的命中率
由于采用 2 路组相联方式,因此主存中的每一块只能映射到 Cache 中的两个块中的一个,而且不同的主存块可能映射到同一个组中的不同块中。根据题目给出的信息,Cache 中有 4 个块,因此可以将它们分成 2 组,每组有 2 个块,即 Cache 中的 0、2 块为一组,1、3 块为一组。根据访问流程,将主存中的 0、2、1、3、5、4 按照映射到 Cache 中的块来表示,得到以下映射关系:
主存块 | Cache 中的块
-------|-------------
0 | 0 或 2
2 | 0 或 2
1 | 1 或 3
3 | 1 或 3
5 | 1 或 3
4 | 0 或 2
从上表中可以看出,主存中的块 0、2、4 映射到 Cache 中的块 0 或 2 中,主存中的块 1、3、5 映射到 Cache 中的块 1 或 3 中。因此,对于任意一次访问,Cache 中的每一组都有可能被替换。根据 LRU 替换算法,每次替换时应该选择最近最少使用的块进行替换。因此,在第一次访问时,Cache 中的块命中率为 0/2=0;在第二次访问时,Cache 中的块命中率为 1/2=0.5;在第三次访问时,Cache 中的块命中率为 1/2=0.5;在第四次访问时,Cache 中的块命中率为 1/2=0.5;在第五次访问时,Cache 中的块命中率为 1/2=0.5;在第六次访问时,Cache 中的块命中率为 1/2=0.5;在第七次访问时,Cache 中的块命中率为 1/2=0.5;在第八次
阅读全文