储存器:缓存、主存

本文探讨了缓存的作用,主存的容量问题以及磁盘读取的不同算法。重点讲述了高速缓存的设计,包括字块大小、主存和缓存的总容量计算,并详细阐述了高速缓存的命中率和访问效率计算。最后,介绍了四种常见的高速缓存替换策略:随机算法、先进先出(FIFO)、最不经常使用(LFU)和最近最少使用(LRU)。
摘要由CSDN通过智能技术生成

缓存:

  • 解决 CPU与 I/O设备的 速度速度差异
  • 减少CPU中断频率
  • 使CPU和I/O设备可以更好的并发执行

主存:

  • 主要解决容量问题

磁盘读取方法:

  • 先来先服务算法
  • 最短寻道时间算法
  • 扫描算法(电梯算法)
  • 循环扫描算法

高速缓存:

  • 一个字有32位,一个字块有B个字,主存共M个字块
  • B * M = 主存总字数
  • B * M * 32 = 主存总容量(bits)
  • 字的地址:前m位,后b位
  • 2^m = M,2^b = B
例题:
    主存用户空间容量4G,字块大小4M,字长32位,
    对于字地址中的块地址m和块内地址b的位数至少多少

    4G = 4096M

    字块数:4096 / 4 = 1024

    块内地址m:2^m = 1024  m = 10

    块内字数: 4M / 32bit = 1048576

    块内地址b: 2^b = 1048576  b = 20

        m >= 10  b >= 20

  • 一个字有32位,一个字块有B个字,缓存共C个字块
  • 2^c = C   2^b = B

访问主存次数:Nm、访问cache次数Nc

  • 命中率:h = Nc / Nc + Nm

访问效率:e、访问主存时间:tm、访问缓存时间:tc

  • 访问cache->主存系统平均时间:ta = h * tc + (1 - h)* tm
  • 访问效率:e = tc / ta = tc / h * tc + (1 - h)*  tm
例题:
    cpu运行,共访问cache命中2000次,访问主存50次,
    已知cache存取时间位50ns,主存存取时间200ns,
    求:cache->主存系统的命中率、访问效率和平均访问次数

    命中率:h = 2000 / (2000 + 20) 
             ≈ 0.97
    
    平均时间:ta = 0.97 * 50 + (1 - 0.97) * 200 
                = 54.5

    访问效率:e = 50 / 0.97 * 50 + (1 - 0.97) * 200
               = 50 / 54.5
               ≈ 0.917

高速缓存替换策略的四种方法:

1、随机算法

2、先进先出算法(FIFO)

  • 替换最先进入

    原:    1,2,3,4
    // 1被替换,剩余2,3,4,5
    替换:  (1),2,3,4,5

3、最不经常使用算法(LFU)

访问123
频率214
  • 替换频率最低的2

4、最近最少使用算法(LRU)

按照三位存储

1、1

2、2 1

3、3 2 1

// 1被替换
4、5 3 2 [1]

// 2被替换
5、6 5 3 [2]

6、6 5 3

// 3被替换
7、9 6 5 [3]

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值