📜  门| GATE CS 2019 |简体中文问题11

📅  最后修改于: 2021-06-29 18:07:13             🧑  作者: Mango

某个处理器使用大小为16 kB的完全关联的高速缓存。高速缓存块的大小为16个字节。假定主存储器是字节可寻址的,并且使用32位地址。处理器生成的地址中的“标记”和“索引”字段分别需要多少位?

(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 

因为没有选项匹配,但是如果我们假设“行偏移”是“标记位”的一部分,

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)是正确的。
这个问题的测验