zoukankan      html  css  js  c++  java
  • Cache-主存效率问题

    本文主要明确在软考中经常遇到的缓存效率问题。

    第零,明确一个问题:

    如果Cache不命中时,不同的系统有不同的应对策略。
    一是直接从主存中拿走待取数据,它的时间消耗仅仅是一个访问主存周期。
    二是把待取数据先拿回Cache,然后再从Cache中取走数据。而它的时间消耗不仅是一个主存周期,还包括一个访问Cache周期。

    第一,求命中率:

    CPU欲访问的信息已经在Cache中的比率称之为命中率。 设程序在执行期间,Cache的命中次数是Nc,访问主存的次数是Nm,则命中率为:H=Nc/(Nc+Nm)

    第二,求平均访问时间:

    平均访问时间Ta = H⋅Tc+(1−H)⋅Tm.

    第三,求Cache-主存系统效率:

    Cache-主存系统效率E = Tc / Ta

    第四,求存储性能提升倍数:

    X = Tm / Ta
    此处要注意Ta的两种不同取值。具体见例题分析。

    例:假设Cache的访问速度是主存的5t,且Cache的命中率是95%,则采用Cache后,存储器的存储性能提高多少?
    解:
    (1)同时访存时:Cache存储周期是t,主存的存储周期是5t
    则平均访问时间:Ta = 0.95t + 0.05 * 5t = 1.2t
    主存性能:5t/1.2t = 4.17倍
    (2)不同时访存时,在不命中的时候用时就不是5t,而是6t
    于是:Ta = 0.95t + 0.05 * 6t = 1.25t
    主存性能:5t/1.25 = 4倍

    即不同时访问时,在访问Cache失败时耽误了1t时间,计算不命中的时间时加上访问Cache用时即可。


    ===========我是华丽的分割线===========


    更多知识:
    点击关注专题:嵌入式Linux&ARM

    或浏览器打开:https://www.jianshu.com/c/42d33cadb1c1

    或扫描二维码:

    6217760-fb25d7cd85861e9a.jpg
    扫我

  • 相关阅读:
    什么是ROR
    Struts2中使用Session的两种方法
    js的时间操作方法
    产生4位包含大小字母与数字的验证码
    Java关键字this、super使用总结
    java 反射的实例
    Java语言中定义常量注意事项
    java 静态方法和实例方法的区别
    多线程的例子
    java 中的内省机制
  • 原文地址:https://www.cnblogs.com/leon1124/p/14039713.html
Copyright © 2011-2022 走看看