在高速缓存系统中,假设主存容量为256KB,Cache容量为8KB,块长为32字节。采用四路组相联映射方式,且Cache初始为空。若CPU依次访问主存地址0x0000、0x0020、0x0040、0x0800、0x0820、0x0840、0x1000、0x1020、0x1040,且每次访问均命中Cache。当需要替换Cache块时,采用LRU替换策略。请问此时Cache中每个组最多能存储多少个主存块?
答案解析
核心考点说明:本题考察高速缓存的组相联映射方式、Cache地址结构、以及LRU替换策略的综合应用。需要理解组相联映射中组数与每组块数的关系,以及Cache容量、块长与地址划分之间的逻辑。
解题思路分析:
1. 首先计算Cache的总块数:8KB / 32字节 = 256块
2. 四路组相联意味着每组有4块,因此组数为256 / 4 = 64组
3. 每个组最多能存储的主存块数取决于组的大小。在四路组相联中,每个组可以容纳4个主存块
每个干扰项的设计意图:
A. 4个:正确选项,对应四路组相联中每组4块的特性
B. 8个:错误地将组数与每组块数混淆
C. 16个:错误地将Cache总块数与每组块数混淆
D. 32个:错误地将块长与每组块数直接关联
易错点提醒:
1. 容易混淆组相联映射中组数与每组块数的概念
2. 容易忽略Cache初始为空且所有访问都命中的前提条件
3. 容易将主存容量与Cache容量直接关联计算
正确答案的关键依据:
四路组相联映射的定义是每个组中有4个Cache块,因此每个组最多能存储4个主存块。
正确答案:A