第 16 题
某计算机主存地址为32位,按字节编址,某Cache的数据区容量为32KB, 主存块大小为64B, 采用 8路组相联映射方式,该Cache 中比较器的个数和位数分别为()。
A.8,20
B.8,23
C.64,20
D.64,23
[tag_link]
正确答案:A
Cache 采用 组相联映射 ,主存地址结构应分为 Tag 标记、组号、块内地址三部分。主存块大小 = Cache 块大小 = 64B = 2 6 B,因此块内地址占 6 位。Cache 数据区容量为 32KB, 每个 Cache 块大小为 64B,则 Cache 总块数 = 32KB/64B = 2 9 ,由于采用 8 路组相联映射,即 每 8 个 Cache 块为一个分组,因此总共被分为 2 9 /8 = 2 6 组,因此,组号占 6 位。除了块内地 址和组号,剩余的位为 Tag 标记,占 32-6-6=20 位。地址结构如下所示。Tag 标记 组号 块内地址 20 位 6 位 6 位 Cache 采用 8 路组相联映射,因此在访问一个物理地址时,要先根据组号定位到某一分组,然 后用物理地址的高 20 位(Tag 标记)与分组中 8 个 Cache 行的 Tag 标记做并行比较(用 8 个 20 位“比较器”实现),若某个 Cache 行的 Tag 标记与物理地址的高 20 位完全一致,则选 中该 Cache 行。综上所述,在组相联映射的 Cache 中,“比较器”用于并行地比较分组中所 有 Cache 行的 Tag 标记位与欲访问物理地址的 Tag 标记位,因此比较器的个数就是分组中的 Cache 行数 8,比较器的位数就是 Tag 标记位数 20。