讨论计算机体系结构中的集合相联映射?
computer architecturecomputer sciencenetwork更新于 2026/1/12 3:22:17
集合相联映射通过将缓存行排列成集合,将直接映射与全相联映射相结合。集合使用直接映射方案持久化。但是,每个集合中的行被视为一个小型全相联缓存,其中任何可以保存在集合中的块都可以存储到集合内的任意行中。
该图使用一个以四行组成一个集合的示例缓存来表示这种排列方式。

每组包含 k 行的集合相联缓存称为 k 路集合相联缓存。由于映射方法与直接映射一样仅使用内存地址,因此集合中包含的行数应类似于 2 的整数幂,例如 2、4、8、16 等。
示例 − 考虑一个包含 29 = 512 行的缓存,一个内存块包含 23 = 8 个字,整个内存空间包含 230 = 1G 个字。在直接映射方案中,可以为标签留下 30 – 9 – 3 = 18 位。
通过从直接映射发送到集关联,每个集合的集合大小为两行,实现的各个集合等于行数的一半。在缓存有 512 条线的情况下,我们可以实现 256 个集合,每个集合包含两条线,这需要内存地址中的 8 位来识别集合。
这样可以剩下 30 - 8 - 3 = 19 位用于标记。通过为每个集合发送四条线,集合数量减少到 128 个,其中需要 7 位来识别集合,20 位用于标记。

