目录

8种降低cache不命中率的方法

增加cache大小

增加cache容量

提高相连度

伪相连cache

硬件预取

编译器控制的预取

编译优化

"牺牲"cache

三种类型的不命中

分类

强制性不命中

容量不命中

冲突不命中

三种不命中所占的比例

减少三种不命中的方法


  1. 8种降低cache不命中率的方法

    1. 增加cache大小

      1. 对于给定的cache容量, 当块大小增加时, 不命中率开始是下降的, 后来反而上升

        1. 原因: 一方面减少了强制性不命中, 另一方面又增加了冲突不命中
    2. 增加cache容量

    3. 提高相连度

      1. 相连度超过8就意义不大了
      2. 提高相连度是以牺牲命中时间为代价
      3. 2 : 1 cache经验规则
        1. 容量为N的直接映像cache不命中率和容量为N/2的二路组相连的cache不命中率相同
    4. 伪相连cache

      1. 优点: 命中时间小, 不命中率低

        1. 工作原理

          1. 在逻辑上把直接映像的cache上下分成两个区. 对于任何一次访问, 伪相连cache先按照直接映像cache的方式去处理. 若命中, 则访问方式和直接映像cache的方式一样. 若不命中, 则去另一个区的对应位置去查找. 若找到则发生伪命中, 否则就去访问下一级存储器
      2. 快速命中和慢速命中
        1. 分别对应快速命中和慢速命中
    5. 硬件预取

      1. 指令和数据都可以预取
    6. 编译器控制的预取

      1. 目的: 使执行指令和读取数据可以重叠执行
      2. 每次预取花费一条指令的开销
      3. 按照预取数据所放置的位置可以分为两种
        1. 寄存器预取
        2. cache预取
      4. 按照预取的处理方式可以分为
        1. 故障性预取
        2. 非故障性预取
    7. 编译优化

      1. 通过对软件进行优化来降低不命中率
      2. 程序代码和数据重组
        1. 重新组织程序而不影响程序的正确性
    8. "牺牲"cache

      1. 能减少冲突不命中次数而又不影响时钟频率的方法
      2. 基本思想
        1. 在cache和它的下一级存储器之间设置一个全相连的小cache, 用于存放刚被替换出去的块, 以备重用.
      3. 优点: 可以明显减少冲突不命中
  2. 三种类型的不命中

    1. 分类

      1. 强制性不命中

        1. 第一次访问cache的不命中就是强制性不命中
      2. 容量不命中

        1. 某些块刚被替换出去又要重新访问, 这个就是容量不命中
      3. 冲突不命中

        1. (碰撞不命中, 干扰不命中)
    2. 三种不命中所占的比例

      1. 相连度越高, 冲突不命中就越少
      2. 强制性不命中和容量不命中不受相连度的影响
      3. 强制不命中不受cache容量的影响, 但容量不命中却随着容量的增加而减少
    3. 减少三种不命中的方法

      1. 强制性不命中: 增加快大小 预取
      2. 容量不命中: 增加容量
      3. 冲突不命中: 增加相连度

07 降低cache不命中率相关推荐

  1. Cache的命中率影响因素

    1. Cache容量对命中率的影响 Cache的命中率随它的容量的增加而提高,它们之间的关系曲线如图所示.在Cache容量比较小的时候,命中率提高得非常快,但根据边际效应递减原理随着Cache容量的增 ...

  2. cache相关命中率的运算_Cache和命中率

    标签: Cache的工作原理 Cache的工作原理是基于程序访问的局部性. 对大量典型程序运行情况的分析结果表明,在一个较短的时间间隔内,由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内.指令 ...

  3. 几种通过降低Cache失效率来提升程序性能的方法

    几种通过降低Cache失效率来提升程序性能的方法 1 将矩阵转置 2 分块处理矩阵乘法 3 将分块和转置结合 4 总结 ​ 当程序访问多个数组时,经常会出现有些数组按行访问,有些数组按列访问的情况.以 ...

  4. cache和命中率的问题

    (1)"Cache"是什么 Cache(即高速缓冲存储器(Cache Memory),是我们最常听到的一个词了. (2)为什么要设计Cache 我们知道,电脑的内存是以系统总线的时 ...

  5. 一篇搞懂cache的命中率

    注:cache的命中率应接近于1.由于程序访问的局部性,实现这个目标是可能的. 在一个程序执行期间,设Nc 表示cache完成存取的总次数,Nm表示主存完成存取的总次数,h定义为命中率,则有 若tc表 ...

  6. cache相关命中率的运算_计算机高速缓冲存储器(Cache)命中率的分析

    第 21 卷 第 3 期 河南教育学院学报( 自然科学版) Vol. 21 No. 3 2012 年 9 月 Journal of Henan Institute of Education ( Nat ...

  7. Oracle 查看library cache 解析命中率

    这里的命中率指server process在library cache里软解析的命中率. 还有1个是rowcache(数据字典缓存)的命中率. 一般来讲,  production服务器运行的时间越长, ...

  8. cache相关命中率的运算_Linux cache命中率查看

    一.需求与背景 LINUX主机上的内存很为user.buffer.cache这个大的块.经常在使用free -m查看时,会发现cache占去了大头,从理论上我们也一直都知道cache里存放的是系统上访 ...

  9. 降低 cache 失效率的方法

    cache 失效产生原因,可分为以下三类: (1)强制性失效 ​ 当第一次访问一个块时,该块不在cache中,需从下一级存储器中调入cache,这种失效称为强制性失效(Compulsory Miss) ...

最新文章

  1. vue 前端框架 (三)
  2. 【前沿】MIT搞了个进取型机器人!能研究学习对象操纵的基础
  3. .NET自动化测试工具链:Selenium+NUnit+ExtentReport
  4. how to fix error 25007 : loadlibraryshim()
  5. Redis分布式锁原理解析
  6. linux把2块盘挂到一个分区,linux系统如何挂载第二块硬盘
  7. 物联网落地三大困境破解
  8. docker 删除映像_如何在Docker中删除映像和容器
  9. 【codevs2516】【BZOJ2461】符环,DP
  10. FD.io VPP环境下运行用户应用程序教程
  11. 微型计算机原理第二版学习辅导,微型计算机原理及应用学习辅导.pdf
  12. C# Base64方式的编码与解码
  13. J2EE部署项目至Tomcat报错 Unable to read TLD META-INF/c tld
  14. linux 编译libvlc,libvlc源码编译
  15. 【element-ui】el-table中slot-scope的使用,用于动态绑定className等
  16. Scratch角色的绘制与中心点
  17. file html5 样式,CSS小技巧之自定义个性的file表单样式
  18. google外链怎么做?谷歌网站做外链的方法
  19. 【数据库】数据库恢复技术
  20. 【风控系列】3. 高效的风控业务流程

热门文章

  1. 15个免费开放电子科研文献下载资源库
  2. 【Ubuntu】Ubuntu16.04下WPS演示闪退
  3. WPS演示的一些方法
  4. 上市公司女性高管指标 1999-2020年(内附详细指标说明及代码)
  5. AcWing 1010 拦截导弹
  6. 信息系统安全等级保护定级报
  7. 云python服务器_云服务器安装python3
  8. ThinkPHP6利用phpoffice/phpexcel导入表格数据
  9. 关于微积分教材的合理使用
  10. 计算机毕业设计ssm网上专家门诊预约系统