假设主存容量为16M×32位,Cache容量为64K×32位,主存与Cache之间以每块为4×32位大小传送数据,请确定直接映射方式的有关参数,并画出主存地址格式。如果采用全相联映射方式,则主存地址格式又该如何?
时间: 2023-12-24 11:05:42 浏览: 490
基于32位微处理器系统架构的Cache设计.pdf
5星 · 资源好评率100%
对于直接映射方式:
- 主存容量为16M×32位,表示一共有2^24个块,每块大小为32位,因此每个块的地址为24位。
- Cache容量为64K×32位,表示一共有2^16个块,每块大小为32位,因此每个块的地址为16位。
- 每个块大小为4×32位,因此每个块中有4个字,每个字大小为32位,因此每个字的地址为2位。
- 直接映射方式中,主存中每个块的地址的低6位用于表示块内的偏移量,因此直接映射需要使用主存地址的高18位和Cache地址的中间10位进行比较,来确定是否命中。
下图展示了直接映射方式下的主存地址格式:
```
+-----------------+----------------+-----------+
| 标记(8位) | 块号(10位) | 偏移量(6位) |
+-----------------+----------------+-----------+
```
对于全相联映射方式:
- 主存容量为16M×32位,表示一共有2^24个块,每块大小为32位,因此每个块的地址为24位。
- Cache容量为64K×32位,表示一共有2^16个块,每块大小为32位,因此每个块的地址为16位。
- 每个块大小为4×32位,因此每个块中有4个字,每个字大小为32位,因此每个字的地址为2位。
- 全相联映射方式中,主存地址的低6位用于表示块内的偏移量,Cache地址的低2位用于表示字的偏移量,因此全相联映射需要使用主存地址的高18位和Cache地址的高14位进行比较,来确定是否命中。
下图展示了全相联映射方式下的主存地址格式:
```
+-----------------+----------------+-----------+
| 标记(22位) | 偏移量(2位) | |
+-----------------+----------------+-----------+
```
阅读全文