关于组相联映射的地址,这里有两个版本。求大神解答:
首先,cache有S = 2^s行(组),每组有2 = 2^1块 ,每块有 B = 2^b 字节。主存地址范围为 M = 2^m 。
关于地址有,
版本1(大多数考研书上写的):
cache地址为s+1+b位 。主存地址的第0-b-1位为块内偏移,第b位为组内块号,第b+1到b+s位为组号。剩下的为标示。
版本2(《深入理解计算机系统》Randal E. Bryant 、 David R. O'Hallaron ):
cache地址为s+b位。主存地址的第0到b-1位为块内偏移,第b 到 b+s-1为组号,剩下的为标示。
问题就是我觉得版本2是对的。
主存地址到cache的转换中找到组号之后就是全相联映射的过程。只要在组中组个比较标示就可以找到相应的块。并不需要组内块号啊。