某Cache主存系统采用直接映射方式,其容量为8KB,每行内有16B,主存容量为512KB(1)主存地址结构?(2)Cache地址结构?(3)将主存的第513块调入Cache,对应Cache字块号是多少?(4)CPU访问主存地址04011H是否在Cache命中?
时间: 2023-08-19 10:37:38 浏览: 289
好的,我明白了。这是一道计算机组成原理方面的问题,我会尽力回答。
(1) 主存地址结构:
总共有 512KB 的主存容量,每行内有 16B,所以主存总共有 512KB / 16B = 32K 行。每行的地址需要用 15 位二进制数来表示,其中低 4 位表示字节偏移,高 11 位表示行号。因此,主存地址结构如下:
```
| 11 位行号 | 4 位字节偏移 |
```
(2) Cache地址结构:
Cache 采用直接映射方式,容量为 8KB,每行内有 16B,所以 Cache 总共有 8KB / 16B = 512 行。由于是直接映射方式,每行只能映射到主存的某一行,因此需要用 9 位二进制数来表示行号。每行内的字节偏移仍然需要用 4 位二进制数来表示。此外,还需要一个有效位来表示该行是否有效。因此,Cache地址结构如下:
```
| 1 位有效位 | 9 位行号 | 4 位字节偏移 |
```
(3) 将主存的第513块调入Cache,对应Cache字块号是多少?
由于主存容量为 512KB,每行内有 16B,所以主存总共有 512KB / 16B = 32K 行。因此,第513块对应的行号是 512 + 16 = 528。由于 Cache 采用直接映射方式,行号需要取模 512,因此对应的 Cache 行号是 528 mod 512 = 16。因此,将主存的第513块调入 Cache 后,对应的 Cache 字块号是 16。
(4) CPU访问主存地址04011H是否在Cache命中?
主存地址 04011H 对应的行号是 0401H,字节偏移是 1。由于 Cache 采用直接映射方式,对应的 Cache 行号是 0401H mod 512 = 129。因此,CPU访问主存地址 04011H 不在 Cache 命中。
阅读全文