由主存地址映射到Cache地址称为地址映射。地址映射方式很多,有直接映射(固定的映射关系)、全相联映射(灵活性大的映射关系)组相联映射(上述两种映射的折中)。
1.直接映射
图4.54示出了直接映射方式主存与缓存中字块的对应关系。
2.全相联映射
全相联映射允许主存中每一字块映射到Cache中的任何一块位置上,如图4.55所示。这种映射方式可以从已被占满的Cache中替换出任--旧字块。显然,这种方式灵活,命中率也更高,缩小了块冲突率。与直接映射相比,它的主存字块标记从t位增加到t +c位,这就使Cache“标记”的位数增多,而且访问Cache时主存字块标记需要和Cache的全部“标记”位进行比较,才能判断出所访问主存地址的内容是否已在Cache内。这种比较通常采用“按内容寻址”的相联存储器来完成。
3.组相联映射
组相联映射是对直接映射和全相联映射的一种折中。它把Cache分为Q组,每组有R块,并有以下关系:
i =j mod Q
其中,i为缓存的组号,j为主存的块号。某一主存块按模Q将其映射到缓存的第i组内,如图4.56所示。