CPU 缓存中索引位的用途

Purpose of index bits in CPU caching

当前 Wikipedia article 关于 CPU 缓存说明如下:

The index describes which cache row (which cache line) that the data has been put in.

我怀疑这是真的,因为据我了解缓存的工作方式,索引位 select 可以存储项目的集合。一组由多个缓存行(也称为缓存块)组成。然后使用标记位来识别高速缓存行。

我说得对吗?

您正在混淆 2 种不同的映射方案。术语 set 仅在使用的映射是 set-associative 时使用。如果使用的映射是直接映射,则没有任何意义。这些不同的映射在您在问题中提供的link中有清楚的解释。

请注意声明

The index describes which cache row (which cache line) that the data has been put in.

是针对直接映射方案,其中索引字段中的位数描述了高速缓存中的行数。意思是如果索引字段是 x 位,那么缓存内存中有 2 次方的 x 行。并且偏移量用于定位我们要在特定行中读取的字节,以防我们的内存是字节可寻址的。

对于set-associative方案,我们整个缓存内存都是分成集合的。 index 字段现在不再存在,但它分为两个字段,即 setoffset,其中 set 描述了我们关注的集合,offset 用于指定我们想要的集合中的哪个字节,以防内存是字节可寻址的。