一个64位字长的机器,按字寻址,一个字8字节,一个块四字,Cache有64块,主存256k字节,(a) 在直接映射方式下,设计并画出主存地址格式,并给出 Tag, Index 和 Offset 的 bit 位 (b) 在四路组相联映射方式下,设计并画出主存地址格式,并给出 Tag, Index 和 Offset 的 bit 位 (c) 在全相联映射方式下,设计并画出主存地址格式,并给出 Tag, 和 Offset 的 bit 位,请设计 Cache 地址格式,给出详细的 步骤和思路:
时间: 2023-06-26 12:07:33 浏览: 139
(a) 直接映射方式下的主存地址格式为:
```
+--------+-----------+--------+
| Tag | Index | Offset |
+--------+-----------+--------+
| 13 | 6 | 3 |
+--------+-----------+--------+
```
其中,Tag 占据前 13 位,Index 占据中间的 6 位,Offset 占据最后的 3 位。
Cache 的地址格式为:
```
+--------+-----------+--------+
| Tag | Index | Offset |
+--------+-----------+--------+
| 13 | 6 | 3 |
+--------+-----------+--------+
```
Cache 有 64 块,每块大小为 4 个字,即 32 字节。
(b) 四路组相联映射方式下的主存地址格式为:
```
+--------+--------+-----------+
| Tag | Index | Offset |
+--------+--------+-----------+
| 11 | 6 | 5 |
+--------+--------+-----------+
```
其中,Tag 占据前 11 位,Index 占据中间的 6 位,Offset 占据最后的 5 位。
Cache 的地址格式为:
```
+--------+--------+-----------+
| Tag | Index | Offset |
+--------+--------+-----------+
| 11 | 4 | 5 |
+--------+--------+-----------+
```
Cache 有 16 组,每组有 4 块,每块大小为 4 个字,即 32 字节。
(c) 全相联映射方式下的主存地址格式为:
```
+--------+-----------+
| Tag | Offset |
+--------+-----------+
| 18 | 6 |
+--------+-----------+
```
其中,Tag 占据前 18 位,Offset 占据最后的 6 位。
Cache 的地址格式为:
```
+--------+--------+
| Tag | Offset |
+--------+--------+
| 18 | 6 |
+--------+--------+
```
对于全相联映射方式,由于任何一个主存块都可以映射到 Cache 中的任何一个块中,因此在进行 Cache 访问时需要进行全局搜索,以找到对应的主存块。具体的步骤如下:
1. 将主存地址中的 Tag 段与 Cache 中的所有块的 Tag 值进行比较,找到对应的 Cache 块。
2. 如果找到了对应的 Cache 块,则判断这个块中是否包含所需的数据。如果包含,则直接从 Cache 中读取;如果不包含,则从主存中读取数据并写入 Cache 中。
3. 如果没有找到对应的 Cache 块,则需要将主存块加载到 Cache 中。具体的替换策略可以使用 LRU(最近最少使用)算法等。
阅读全文