way & set
这里将Way解释为一组line的集合,这个说法常见的解释是用于set的。
通常说N-Way组相连,理解为一个set由N个line组成。Way是line的单位名称。
这里将Set解释为每一路的同一line,这个概念没有get到,能不能深入解释下。网上查到的图片
网上也看到一篇跟这里解释类似的更详细的描述:
两路组相连缓存(Two-way set associative cache)
我们依然假设64 Bytes cache size,cache line size是8 Bytes。什么是路(way)的概念。我们将cache平均分成多份,每一份就是一路。因此,两路组相连缓存就是将cache平均分成2份,每份32 Bytes。cache被分成2路,每路包含4行cache line。我们将所有索引一样的cache line组合在一起称之为组。
这里的解释跟我们视频中是一样的。那么这里哪一种解释是正确的呢?
路(way)到底是line的单位名称,还是指一组line呢?
组(set)到底是index相同的lines集合,还是说在cache划分的时候,自然会用中位作为index,所以同一组自然就有了相同的index。
其实,最疑惑的还是,路的概念如果是平分而已,有什么意义呢。拿到一个地址,从Index获取到set,然后用tag找到line。这就结束了,那么way 的概念意义是什么呢??