确定缓存的详细信息
Determining details of a cache
Your machine has an L1 cache and memory with the following properties.
- Memory address space: 24 bits
- Cache block size: 16 bytes
- Cache associativity: direct-mapped
- Caches size: 256 bytes
我被要求确定以下内容:1. 标记位的数量。 2.现金索引的位数。 3.缓存大小的位数。
标签位=m - (s+b)
m = 24。s = log2 S,S = C/(B*E)。 E = 1,因为它是直接映射的。所以 S = 256/16 = 16.s = log2 16 = 4. B = 16(缓存块大小)b = log2 B;这是 log2 16= 4。所以 s=4,b=4,m=24。 t = 24-(4+4) = 16 个标签位。
我不知道怎么解决这个问题。
我相信缓存大小的位数只是 C*(num bits/byte) = 256*8 = 2048.
谁能帮我弄清楚2.,判断1.&3.的逻辑是否正确?
1) 这对于 m=32 是正确的(不是 24 吗?)。
2) 索引位数:直接映射时用于寻址高速缓存中块的位数,因为它标识集合(在这种情况下仅包含一个块)。如果它是 2 向的,则索引(并添加到标记位)将需要少一位。对于这个问题,由于有 16 个集合,您需要 16 个索引位,可以用 4 个索引位表示。
3) 这个问题怎么解释还不是很清楚。我将其理解为寻址缓存所需的位数,在这种情况下为 4?如果确实如您假设的那样,意味着缓存中的位数,则必须为解决方案的标记位添加 16*16 位。
Your machine has an L1 cache and memory with the following properties.
- Memory address space: 24 bits
- Cache block size: 16 bytes
- Cache associativity: direct-mapped
- Caches size: 256 bytes
我被要求确定以下内容:1. 标记位的数量。 2.现金索引的位数。 3.缓存大小的位数。
标签位=m - (s+b)
m = 24。s = log2 S,S = C/(B*E)。 E = 1,因为它是直接映射的。所以 S = 256/16 = 16.s = log2 16 = 4. B = 16(缓存块大小)b = log2 B;这是 log2 16= 4。所以 s=4,b=4,m=24。 t = 24-(4+4) = 16 个标签位。
我不知道怎么解决这个问题。
我相信缓存大小的位数只是 C*(num bits/byte) = 256*8 = 2048.
谁能帮我弄清楚2.,判断1.&3.的逻辑是否正确?
1) 这对于 m=32 是正确的(不是 24 吗?)。
2) 索引位数:直接映射时用于寻址高速缓存中块的位数,因为它标识集合(在这种情况下仅包含一个块)。如果它是 2 向的,则索引(并添加到标记位)将需要少一位。对于这个问题,由于有 16 个集合,您需要 16 个索引位,可以用 4 个索引位表示。
3) 这个问题怎么解释还不是很清楚。我将其理解为寻址缓存所需的位数,在这种情况下为 4?如果确实如您假设的那样,意味着缓存中的位数,则必须为解决方案的标记位添加 16*16 位。