gem5学习(21):索引策略——Indexing Policies

本文介绍了集合关联(包括直接映射和全关联)和倾斜关联这两种常见的缓存索引策略,以及Gem5中的实现。着重讲解了getPossibleEntries()和regenerateAddr()在索引过程中的作用。
摘要由CSDN通过智能技术生成

目录

一、集合关联(Set Associative)

二、倾斜关联(Skewed Associative)


官网教程:gem5: Indexing Policies

索引策略确定基于地址将一个块映射到哪个位置。

索引策略的最重要方法是getPossibleEntries()和regenerateAddr():

  • getPossibleEntries()用于确定给定地址可以映射到的条目列表。它根据地址信息,计算并返回所有可能的条目。
  • regenerateAddr()使用存储在条目中的地址信息确定其完整的原始地址。可以将条目中的地址信息还原为其最初的地址形式。

有关缓存索引策略的更多信息,请参阅维基百科上有关放置策略和关联性的文章。

一、集合关联(Set Associative)

集合关联的索引策略是表格结构缓存中的常用方法,它可以进一步分为直接映射(也称1路集合关联)、集合关联和全关联(N路集合关联,其中N是表格条目的数量)。

在集合关联缓存中,缓存被分成若干个集合,每个集合包含多个路(也称为组或槽)。直接映射缓存是最简单的形式,每个地址只能映射到一个特定的集合中的一个路。

集合关联缓存增加了灵活性,允许一个地址映射到一个集合中的多个路。例如,一个2路集合关联缓存可以将一个地址映射到集合中的两个不同路中的任意一个。

全关联缓存是集合关联的极端形式,每个地址可以映射到任意一个路,不受集合的限制。这意味着每个地址都可以在整个缓存中进行搜索,提供了最大的灵活性和缓存命中率。

倾斜关联是一种特殊形式的集合关联缓存。它通过使用一个倾斜函数,将每个地址映射到所有路中的相同位置。这个倾斜函数可以是一个简单的函数,例如取模运算,使得每个地址都被映射到相同位置的不同路中。

二、倾斜关联(Skewed Associative)

倾斜关联是一种特殊的索引策略,它基于哈希函数进行可变映射。这意味着对于给定的值x和所使用的路,可以将x映射到不同的集合。具体的映射方式是通过哈希函数计算得出的。

Gem5实现了Seznec等人在《Skewed-Associative Caches》中描述的倾斜缓存。

需要注意的是,实际可用的哈希函数数量是有限的。如果路的数量超过了可用的哈希函数数量,那么就会使用一个次优的自动生成的哈希函数。这意味着在这种情况下,可能会使用不太理想的哈希函数来进行地址映射。

这个教程比较简单,本来不准备写的,但是强迫症还是不想断了节奏,所以还是简单写写吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值