假定主存按字节编址,Cache共有64行,采用4路组相联映射方式,主存块大小为32字节,所有编号都从O开始,则主存第3000号单元所在主存块对应的Cache组号是( )。
【正确答案】
C
【答案解析】解析:因为主存按字节编址,每块32B,故第3000号单元(从0开始编制)所在的块号为3000/32=93;又因为Cache采用四路组相连,一共64行(可看成64块),一共有64/4=16组,于是按照主存块号对应Cache组号,映射后第93块在Cache中的组号为93%16=13。答案选C。 提示:求第多少号单元属于第几主存块的时候,很多同学可能有这样的错觉,只要不是整除,那么就一定在下一个主存块,其实这是不对的,因为块的编号是从0开始的,原则上从次序上来说,它确实是第94块,但计算机起始计数一般都是从0开始的,这样它的序号就变成了93,Cache也是如此,因此当结果求得是13的时候,它确实是在次序上来说处于第14组,但是编号确实第13组;另外,题目不加说明我们默认主存块大小等于Cache块大小,Cache一行等于一块。