ScholarGate
助手

缓存组织与策略

缓存组织涉及缓存如何将内存块映射到存储——其放置方式和关联性——以及管理替换和写入的策略,这些共同决定了缓存的命中频率以及它与主内存的交互方式。

用 PaperMind 寻找选题即将推出Find papers & topics
Tools & resources
下载幻灯片
Learn & explore
视频即将推出

Definition

缓存组织和策略是缓存的结构和管理选择——块可以放置在哪里,当发生缺失时哪个块被逐出,以及写入如何传播到较低级别——它们共同决定了缓存的命中率和行为。

Scope

本主题涵盖单个缓存的内部设计:直接映射、组相联和全相联放置;替换策略,例如LRU及其近似算法;写入策略(直写与回写)和写分配;块大小;以及将缺失分类为强制性、容量性和冲突性。它不包括多缓存一致性(缓存一致性协议)和地址转换(虚拟内存和分页)。

Core questions

  • 直接映射、组相联和全相联放置在成本和冲突行为上有何不同?
  • 当发生缺失时,应采用何种替换策略来逐出块,以及如何廉价地近似实现?
  • 直写和回写策略在流量和复杂性上有何不同?
  • 缺失是如何分类的,以及哪些设计更改可以减少每种类型的缺失?

Key concepts

  • 直接映射缓存
  • 组相联缓存
  • 全相联缓存
  • 最近最少使用(LRU)替换
  • 直写与回写
  • 写分配
  • 块(行)大小
  • 强制性、容量性和冲突性缺失

Key theories

三C缺失模型
缓存缺失可以分为强制性(首次访问)、容量性(缓存对于工作集来说太小)和冲突性(关联性太低),这个框架将每个设计参数——大小、块大小、关联性——与其减少的缺失类型联系起来。

Mechanisms

内存地址被分成标签、索引和偏移字段。索引选择一个组,标签识别组内的块,关联性设置有多少块共享一个组。当发生缺失时,缓存会获取该块并逐出由替换策略(通常是最近最少使用(LRU)的近似算法)选择的另一个块。写入要么立即更新主内存(直写),要么将块标记为脏并推迟更新(回写)。

Clinical relevance

缓存组织决定了有效性能,因为缺失惩罚相对于命中而言是很大的。程序员通过数据布局、分块和提高局部性的访问模式来改善缓存行为,而架构师则调整关联性、块大小和写入策略,以平衡命中率与面积、功耗和带宽。

History

Wilkes于1965年提出了从属(缓存)内存,缓存很快被商业采用。Alan Jay Smith在1982年的调查综合了对放置、替换和写入策略的广泛测量,建立了至今仍在使用的设计词汇。三C模型后来提供了一种结构化的方式来推理缺失的原因和补救措施。

Key figures

  • Maurice Wilkes
  • Alan Jay Smith
  • John L. Hennessy
  • David A. Patterson

Related topics

Seminal works

  • smith1982cache
  • hennessy2019

Frequently asked questions

直写缓存和回写缓存有什么区别?
直写缓存每次写入时都会更新缓存和主内存,保持内存最新但会产生更多流量。回写缓存只更新缓存,将块标记为脏,并且只有在块被逐出时才将其写入内存,从而减少流量,但代价是需要额外的簿记开销。
为什么使用组相联缓存而不是直接映射缓存?
直接映射缓存允许每个块只有一个位置,因此映射到相同槽位的块会发生冲突。组相联缓存为每个块在组内提供了几个可能的位置,从而减少了冲突缺失,但代价是需要更多的比较硬件和稍微慢的命中速度。

Methods for this concept

Related concepts