缓存大小和设置关联映射

Cache size and set associative mapping

考虑一台具有 256 KB 字节可寻址主存储器和 8 字节块大小的机器。具有由 32 行组成的一组关联映射缓存,分为 2 行集。

  1. 缓存中将存储多少字节?
  2. 主存地址有多少位?
  3. 主内存地址是如何划分的,以提供映射到 缓存?
  4. 具有以下地址的字节将存储在哪个集合中 - 110101010101011010?

解释为什么会非常有用,因为我正在尝试了解如何解决这些问题以进一步理解。

在您回答之前,让我们先看一些计算(请参阅以 2 为底的 log):

i) 组数= 32/2 =16。因此,指向一组地址所需的位数= log 16=4.

ii) 一行中要作为偏移量保留的位数= log 8 =3。 8 是这里的块或行大小。

iii) RAM 中的块数 = 256KB /8 = 2^15.

  1. 缓存最多可以容纳 32 X 8 = 256 字节。(这与使用的映射技术无关)
  2. 主内存地址必须是 18 位 。(因为 RAM 的大小是 256 X 8 = 2^18 和 log(2^18)= 18.
  3. 主内存实际上并没有划分,尽管您可以将其视为在逻辑上被划分为 16(组数)个不同的区域,其中包含 2每个 ^11 行,这样该区域中的每一行都将仅映射到特定的集合中。 由于有 2^15 个块,将 2^15 除以 16 得到数字 2^11.
  4. 110101010101011010:在该地址中先留出后3位作为偏移量,后四位为1011,相当于十进制的11。因此这将落入 第 11 组 .