前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【系统架构设计师】计算机组成与体系结构 ④ ( 高速缓存 Cache | 冯诺依曼结构性能瓶颈 | 程序局部性原理 - 时间局部性、空间局部性 | 访问命中率 和 访问失效率 | 数据访问平均周期 )

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

作者头像
韩曙亮
发布2024-07-14 08:18:23
830
发布2024-07-14 08:18:23
举报
文章被收录于专栏:韩曙亮的移动开发专栏

一、高速缓存 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

;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-06-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、高速缓存 Cache
    • 1、冯诺依曼结构 的 性能瓶颈
      • 2、高速缓存 Cache 解决性能瓶颈
        • 3、程序局部性原理 - 时间局部性、空间局部性
          • 4、高速缓存 Cache 的评价标准 - 访问命中率 和 访问失效率
            • 5、数据访问平均周期
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档