假设某计算机按字编址,Cache 有 4 行,Cache 和主存之间交换的块大小为 1 个字,若 Cache 的内容初始为空,采用 2 路组相连映射方式和 LRU 替换策略,则访问主存地址 依次为 0,4,8,2,0,6,8,6,4,8 时,命中 Cache 的次数是多少
时间: 2024-05-27 22:10:08 浏览: 108
根据题意,Cache 的大小为 4 行,每行存储一个字,因此 Cache 的总大小为 4 个字。
采用 2 路组相连映射方式,将主存地址映射到 Cache 行的方式如下:
1. 计算索引值:
索引值 = 主存地址 mod (Cache大小 / 组数) = 主存地址 mod (4 / 2) = 主存地址 mod 2
2. 计算组号:
组号 = 主存地址 / (块大小 × 组数) = 主存地址 / (1 × 2) = 主存地址 / 2
3. 访问 Cache:
在第组内搜索,如果有命中则更新该行的访问时间,否则替换最久未被访问的行。
按照上述方式,依次访问主存地址 0,4,8,2,0,6,8,6,4,8 时,Cache 的状态如下:
| 访问主存地址 | 索引值 | 组号 | Cache 状态 |
|--------------|--------|------|----------------------------------|
| 0 | 0 | 0 | 0 |
| 4 | 0 | 2 | 0 4 |
| 8 | 0 | 4 | 0 4 8 |
| 2 | 0 | 1 | 0 2 8 |
| 0 | 0 | 0 | 0 2 8 |
| 6 | 0 | 3 | 6 2 8 |
| 8 | 0 | 4 | 6 2 8 |
| 6 | 0 | 3 | 6 2 8 |
| 4 | 0 | 2 | 6 4 8 |
| 8 | 0 | 4 | 6 4 8 (最终状态,命中 7 次) |
因此,访问主存地址时,命中 Cache 的次数为 7 次。
阅读全文