5.4 设有一个“Cache-主存"层次, Cache为4块,主存为8块;试分别对于以下3种情况,画出 其映像关系示意图,并计算访存块地址为5时的索引(index)。 (1)全相联。 (2)组相联,每组两块。 (3)直接映像。
时间: 2024-02-15 22:01:50 浏览: 29
好的,我来逐个回答你的问题。
1. 对于全相联的情况,每个Cache块可以映射到主存中的任意一个块,因此每个Cache块中包含了主存中所有块的数据。映像关系示意图如下:
```
Cache块 -> 主存块
0 -> 0, 1, 2, 3, 4, 5, 6, 7
1 -> 0, 1, 2, 3, 4, 5, 6, 7
2 -> 0, 1, 2, 3, 4, 5, 6, 7
3 -> 0, 1, 2, 3, 4, 5, 6, 7
```
当访存块地址为5时,需要通过取模运算计算出索引,即5 mod 4 = 1。因此索引为1,应该访问Cache中的第1个块。
2. 对于组相联的情况,主存中的每两个块映射到一个Cache组中的两个块,每个组有两个块,Cache共分为2个组。映像关系示意图如下:
```
Cache组 -> 主存块
0 -> 0, 1, 4, 5
1 -> 2, 3, 6, 7
```
当访存块地址为5时,需要先将5除以每组包含的块数,即5 / 2 = 2,得到所在组的编号为2。然后再将5对每组包含的块数取模,即5 mod 2 = 1,得到在组内的索引为1。因此访问的是Cache中第2个组的第1个块。
3. 对于直接映像的情况,主存中的每个块只能映射到Cache中的一个固定块。映像关系示意图如下:
```
Cache块 -> 主存块
0 -> 0
1 -> 1
2 -> 2
3 -> 3
```
当访存块地址为5时,需要将5除以Cache的块数,即5 / 4 = 1,得到索引为1。因此访问的是Cache中的第1个块。