【正确答案】Cache分为128组,组内分成2块,主存和Cache的地址格式如下图所示。

【答案解析】[解析] 主存容量为1MB,Cache容量为64KB,分成大小相等的数据块。设每个数据块为256字节,则主存共有4098块,Cache共有256块,两路组相连方式(即每组仅有两块),所以Cache中共有128组,64K÷(2×256)=128组。
组相联映射实际上是全相联映射和直接映射的折中方案,所以其优点和缺点介于全相联和直接映射方式之间。组相联映射将Cache空间分成大小相同的组,让主存中的一块直接映射装入Cache中对应组的任何一块位置上,即组间采取直接映射,而组内采取全相联映射。
组相联映射的关系可以定义为:J=I mod Q。
式中:J为Cache的组号;I为主存的块号;Q为Cache的组数。
在采用全相联映射和组相联映射方式从主存向Cache传送一个新块,而Cache中的空间已被占满时,就需要把原来存储的一块替换掉。LRU算法(近期最少使用算法)是把CPU近期最少使用的块作为被替换的块。这种替换方法需要随时记录Cache中各块的使用情况,以便确定哪个块是近期最少使用的块。
本题涉及高速缓冲存储器的两个重要问题,一是Cache和主存之间的地址映射关系,二是替换算法问题。