为了解决 处理器主存储器 之间的速度不匹配问题,引入了高速缓冲存储器 (Cache)。

引入背景 重点

  • 矛盾:现代计算机存在“高速 CPU 与低速主存”之间的速度鸿沟。
  • 依据:Cache 的有效性基于 程序局部性原理

物理特性

  • 材质工艺:通常采用与 CPU 内部寄存器相同的 SRAM 工艺,访问速度极快。
  • 物理位置:由于工艺一致,通常被封装在处理器芯片内部。

Cache 的分级体系

现代处理器通常采用三级 Cache 结构以平衡速度与成本:

  • L1 Cache (一级): 访问速度最快,容量最小。通常采用哈佛结构(指令 Cache 与数据 Cache 分离),允许 CPU 同时读取指令和数据以提升性能。
  • L2 Cache (二级): 速度略慢,容量稍大。
  • L3 Cache (三级): 通常为多核心共享,容量最大。

访存逻辑

CPU 发出主存地址,同时查找 Cache。

  • 命中 (Hit): 直接访问 Cache。由于局部性原理,命中率通常非常高。

  • 不命中 (Miss): 访问主存,并将数据所在块调入 Cache。

  • 性能评估

    Cache性能分析

    用于评估 Cache 对系统性能的提升程度。

    1. 命中率 (Hit Rate, H)

    CPU 访存时,在 Cache 中找到所需数据的概率。

    • 公式:
      • : 访问 Cache 命中的次数。
      • : 访问主存的次数(未命中)。

    2. 平均访问时间 ()

    • 通用公式:
      • 一般教科书在讲 Cache 效能时采用此公式。凡是大型考试一律以此为准重点
    • 蒋本珊教材公式:
      • 仅在蒋老师的教科书中使用,反映了先访问 Cache 后访问主存的逻辑差异。

    3. 访问效率 ()

    • 公式:
    • 效率反映了 Cache 带来的加速比。理想情况下 越接近 100% 越好。
    指向原始笔记的链接

  • 映射方式

    Cache映射方式

    映射方式决定了主存块如何放置到 Cache 的行中。

    1. 全相联映射 (Fully Associative)

    • 规则: 主存中的任意一块可以装入 Cache 中的任意一行。
    • 优点: 灵活,块冲突概率最低,Cache 利用率高。
    • 缺点:
      • 地址变换复杂,需要查阅目录表(或使用昂贵的相联存储器进行并行查找)。
      • 查表过程会增加访问延迟,影响 Cache 访问速度。 重点

    2. 直接映射 (Direct Mapping)

    • 规则: 每个主存块只能映射到 Cache 的固定行中。
      • 公式: 重点
    • 优点: 地址变换速度最快,硬件简单。
    • 缺点: 块冲突概率最高,容易出现“抖动”现象。

    3. 组相联映射 (Set-Associative)

    组相联映射是直接映射与全相联映射的折中方案,是现代计算机最常用的方式。

    • 逻辑结构:

      • 将 Cache 分成 (Set),每组包含 (Line)。
      • 若每组包含 个行,则称为“ 路组相联”(例如图片中每组有 2 行,即为 2 路组相联)。
    • 映射规则:

      • 组间直接映射: 主存块号按模运算决定其所属的 Cache 组号。
      • 组内全相联: 主存块可以存入所属 Cache 组内的任意一行重点
    • 数学公式:

    • 图片逻辑解析:

      • 主存分区: 主存被划分为若干个(如区 0、区 1…),每个区的块数等于 Cache 的组数
      • 映射关系: 主存每个区中相对位置相同的块,映射到同一个 Cache 组。例如:
        • 区 0 的 0 号块、区 1 的 0 号块(全局 4 号块)均映射到 Cache 的 组 set0
        • 进入组内后,该块可以放置在 set0 的第 0 行或第 1 行中的任何一个。
    • 特征: “组间直接,组内全相联”。

    • 优点:

      • 兼顾了直接映射的低成本(查找范围缩小到组内)和全相联的高利用率(组内有多个位置可选)。
      • 有效降低了块冲突(抖动)的概率。 重点

    指向原始笔记的链接

  • 一致性策略:

    • 写全法 (Write-through): 同时写入 Cache 和主存。
    • 写回法 (Write-back): 只写 Cache,仅在块被替换时才写回主存。 重点

Circular transclusion detected: 计算机组成体系原理/Cache映射方式