【Cache缓存】两路组相连和全相连
目录
两路组相连缓存(Two-way set associative cache)
两路组相连缓存优缺点
全相连缓存(Full associative cache)
四路组相连缓存示例
两路组相连缓存(Two-way set associative cache)
假设64 Bytes cache size,cache line size是8 Bytes。将cache平均分成多份,每一份就是一路(way)。因此,两路组相连缓存就是将cache平均分成2份,每份32 Bytes。如下图所示。

cache被分成2路,每路包含4行cache line。将所有index一样的cache line组合在一起称之为组 (set)。
例如,上图中一个组有两个cache line,总共4个组。我们依然假设从地址0x0654地址读取一个字节数据。由于cache line size是8 Bytes,因此offset需要3 bits,这和之前直接映射缓存一样。不一样的地方是index,在两路组相连缓存中,index只需要2 bits,因为一路只有4行cache line。上面的例子根据index找到第2行cache line(从0开始计算),第2行对应2个cache line,分别对应way 0和way 1。因此index也可以称作set index(组索引)。先根据index找到set,然后将组内的所有cache line对应的tag取出来和地址中的tag部分对比,如果其中一个相等就意味着命中。
因此,两路组相
