【系统架构设计师】计算机组成与体系结构 ④ ( 高速缓存 Cache | 冯诺依曼结构性能瓶颈 | 程序局部性原理 - 时间局部性、空间局部性 | 访问命中率 和 访问失效率 | 数据访问平均周期 )

2024-07-14 08:18:23 浏览数 (2)

一、高速缓存 Cache


1、冯诺依曼结构 的 性能瓶颈

冯诺依曼结构 的 性能瓶颈 : CPU 寄存器 的 存储速度 与 主存 ( 内存 ) 的 速度 不匹配 , 二者速度相差太大 , 严重影响计算机的性能 ;

  • 随着 CPU 发展 , CPU 的运算速度越来越快 ;
  • 内存 的 读取速度很慢 , 严重浪费了 CPU 的计算性能 ;

2、高速缓存 Cache 解决性能瓶颈

高速缓存 Cache 主要解决 上述问题 , 主存 中的数据 先读取到 高速缓存 Cache 中 , 然后在从 Cache 中读取到 CPU 寄存器 中 ;

高速缓存 Cache 的 数据访问速度 高于 主存 ( 内存 ) , 低于 CPU 寄存器 ;

高速缓存 Cache 的 存在 对于 程序员 来说是透明的 , 其内部的 地址 , 映射关系 , 由硬件直接完成 ;

3、程序局部性原理 - 时间局部性、空间局部性

高速缓存 Cache 改善 改善性能 , 依据是 " 程序局部性原理 " ;

" 程序局部性原理 " 分为 : 时间局部性 和 空间局部性 两种原理 ;

  • 时间局部性 : 程序 中 某条指令 一旦执行 , 可能在不久之后还要再次执行该指令 ;
    • 只要该指令还在 高速缓存 Cache 中 , 就可以避免大量读取内存的操作 ;
    • 导致 时间局部性 的 最主要的原因就是 程序中的 大量的循环操作 ;
    • 该特性 能够有效减少 因频繁访问主存 而引起的性能损失 ;
  • 空间局部性 : 程序 中 某个存储单元 一旦被访问 , 可能在不久之后 附近的存储单元也要被访问 ;
    • 程序访问的 内存空间 数据 的地址 , 可能集中在一定的范围内 ;
    • 该特性 提高了数据加载的效率 , 减少了主存访问的延迟 ;

工作集理论 : 程序运行时 , 会频繁访问的 页面集合 , 被称为 " 工作集 " ;

4、高速缓存 Cache 的评价标准 - 访问命中率 和 访问失效率

CPU 访问数据时 , 可以从 高速缓存 Cache 中获取 , 也可以从 内存 中获取 ;

  • 从 高速缓存 Cache 获取 的概率 称为 访问命中率 Hit Rate ;
    • 访问命中率 Hit Rate 越高 , 表示 高速缓存 Cache 有效地减少了对主存的访问次数 , 提高了整体的访问速度和性能 ;
    • 访问命中率 Hit Rate 越低 , 表明 高速缓存 Cache 未能有效地减少主存访问次数 , 系统性能可能会受到影响 ;
  • 从 内存 获取 的概率 称为 访问失效率 Miss Rate ;
  • 访问命中率 Hit Rate 失效率 Miss Rate = 1 ;

高速缓存 Cache 系统 可以通过 改进替换策略、增大缓存容量、优化缓存块大小等方式 进行优化 , 提升 访问命中率 Hit Rate , 降低 访问失效率 Miss Rate ;

5、数据访问平均周期

数据访问平均周期计算 :

  • 假设 访问命中率 Hit Rate 的概率为 h ;
  • 高速缓存 Cache 的 访问周期是 t1 ;
  • 主存 的 访问周期是 t2 ;
  • 则 使用 Cache 和 主存 的平均访问周期为 t3 ;

有如下公式 :

t_3 = h times t_1 (1 - h) times t_2
h times t_1

是 Cache 访问周期

t_1

乘以 Cache 的访问概率 h ;

(1 - h) times t_2

是 主存访问周期

t_2

乘以 主存访问概率

1-h

;

0 人点赞