每个缓存块/行的缓存索引是否相同?

时间:2017-06-10 15:10:08

标签: caching assembly mips processor

从我在网上找到的,每个缓存块/行的缓存索引是相同的。我们的导师给我们的笔记似乎与此相矛盾。

picture of the notes page

1 个答案:

答案 0 :(得分:0)

缓存索引(或称为set bits的某些时间)是(块地址)模块(缓存中的块数)。

如果缓存中的条目数是2的幂,那么模数可以是 简单地通过使用低位log2(块中的高速缓存大小)位来计算 地址。

在您的情况下直接映射缓存。

4块缓存使用块的两个最低位(4 = 2 ^ 2) 地址。

(block address)       cache index
   0000 mod 4     =       00
   1000 mod 4     =       00
   0000 mod 4     =       00
   0110 mod 4     =       10
   1000 mod 4     =       00

以下是一些方程式和参数,通常可以解决缓存问题。

要知道的参数

C = cache capacity
b = block size
B = number of blocks
N = degree of associativity
S = number of set
tag_bits
set_bits (also called index)
byte_offset
v = valid bits

要知道的等式

B = C/b
S = B/N
b = 2^(byte_offset)
S = 2^(set_bits)

内存地址

|___tag________|____set___|___byte offset_|