📜  门| GATE CS 2019 |问题 11

📅  最后修改于: 2021-09-24 06:18:24             🧑  作者: Mango

某个处理器使用大小为 16 kB 的全关联缓存,缓存块大小为 16 字节。假设主存储器是字节可寻址的并使用 32 位地址。处理器生成的地址中的 Tag 和 Index 字段分别需要多少位?

(A) 24 位和 0 位
(B) 28 位和 4 位
(C) 24 位和 4 位
(D) 28 位和 0 位答案: (D)
说明:给定缓存块大小为 16 字节,因此块或字偏移量为 4 位。大小为 16 kB 的完全关联缓存,因此行偏移应为,

= cache size / block size
= 16 kB / 16 B
= 1 k 
= 1024
= 10 bits Line or Index Offset 

标记位大小将是,

= processor address size - (line offset + word offset)
= 32 - 10 - 4
= 18 bits tag size 

因为,没有选项匹配,但是如果我们假设 Line Offset 是 Tag 位的一部分,因此,

Tag bits = 18+10 = 28 bits
Line or Index offset = 0 bits (since fully associative cache memory),
Word or block offset = 4 bits 

替代方式:
我们知道在完全关联映射中,

Line size = block size = frame size 

可以使用以下公式确定标签中的位数

Number of Tag bits 
= Total number of bits in Physical Address - no of bits in Block offset 

这里没有给出块偏移中的位数。可以使用

ceil(log2 Cache block size) = ceil(log2 16) = 4 

所以,

Number of Tag bits = 32-4 = 28 

完全关联映射中没有索引位,因此索引位 = 0

所以,选项(D)是正确的。
这个问题的测验