如图题目,计算机组成原理,129号写成主存地址后8位是10000001,后五位为块内地址,前两位10不是组号为2?

129号主存单元,cache每块大小32字节,主存大小分块与cache相同,所以129单元主存对应cache为129/32= 4块(为第5块),cache共有16块,分组为每组2块,按组为16/2 = 8组。即为3位。所以4块编码为0100,对应组号为2(排序为第3组):0000,0001为0组;0010,0011为1组,0100,0101为2组,以此类推。实际上,主存地址最高4位中的前3位才表示组号,最后一位即第4位表示每组内的2块的块号。

所以答案我认为为B

其实,这里不仅仅要看100 00001共8位地址。实际上,这里要看010 0 00001共9位地址,前3位为组地址,第4位为每组分块地址。后5位才为块内地址。

个人见解,仅供参考,可能有误,多加指正

该题属于二路组相连映射,16/2=2^3,因此组地址可以用3位二进制数来表示。由于按字节字块内地址编址,每块32字节,32=2^5,因此字块内地址可以用5位二进制数来表示。129写成二进制数是100 00001,从后往前比对一下,最后5位应该是字块内地址,那100就是组地址啦,100就是二进制数中的4,因此答案选C。具体可以参考计算机组成原理 第二版 唐朔飞 编著 第四章存储器P119

个人愚见,仅供参考