如何计算设置关联缓存大小?

How to calculate set associative cache size?

一个 32 位处理器有一个双向关联缓存集,它使用 32 个地址位,如下所示:31-14 个标记,13-5 个索引,4-0 个偏移量。

计算:

  1. 缓存行的字数大小
  2. 以位为单位的总缓存大小

我不明白如何解决它,在我的幻灯片中几乎没有设置关联缓存。

解决方案:

  1. 2^3 = 8 words(剩余3个偏移位去掉2个字节地址位)
  2. 2 * 2^9 * (1 + 18 + 8 * 2^5)

对于 1 不应该是 2^(偏移位数)所以 2^5? 2 使用的公式是什么?

  1. 未给出单词的大小和可寻址的最小实体。但是,如果我们假设地址是面向字节的并且一个字包含 4 个字节,则有 2^5 bytes/line 和 2^3 个字

  2. 2 * 2^9 * (1 + 18 + 8 * 2^5)

2 (number of ways/sets) * 2^9 (number of sets based on index) 
     * (1 (valid bit) + 18 (tag size) + 8 (bits/byte) * 2^5 (line size in bytes))