计算机组成原理 — 存储器(2)

高速缓冲存储器

大家好呀!我是小笙,由于存储器这部分章节内容较多,我分成二部分进行总结,以下是第二部分,希望内容对你有所帮助!

概述

目的:避免CPU空等现象

原理:程序访问的局部性原理(指令和数据在主存地址分布不是随机的,而是相对的簇聚,也就是说程序大部分访问都是少数的指令和数据)

image-20230722101550637

Cache 工作原理

主存和缓存的编址

  • 主存和缓存按块存储,块的大小相同(B 就是块的大小)
  • Cache 内的块内地址不仅大小和主存一样,而且取值也是一样的
  • Cache 内的标记就是来记录主存的主存块号

image-20230722101645431

命中与未命中

缓存共有 C 块,主存共有 M 块(M >> C)

  • 命中:CPU 所要访问的数据已经从主存储器映射到了 Cache 缓存中(用标记建立起与主存的关系)
  • 未命中:CPU 所要访问的数据没有在 Cache 缓存中找到
  • 命中率 h:CPU欲访问的信息在 Cache 中的比率(与 Cache 的容量和块长有关)
  • 访问效率 e:tc / (h * tc + (1-h) * (tm + tc)) * 100% (区间:[tc / tm ,1]) (访问 Cache 的时间 tc ; 访问主存的时间 tm)

示例详解

假设 CPU 执行某段程序时,共访问 Cache 命中3000次,访问主存 20 次。已知 Cache的存取周期为50ns,主存的存取周期为200ns,求Cache-主存系统的命中率、访问效率和平均访问时间?

  • 命中率 = 命中 Cache 的次数 / 总次数 = 3000 / (3000+20)
  • 平均访问时间 = Cache的存取周期 * 命中率 + (1 - 命中率) * 主存的存取周期 = 50ns * h + (1-h) * 200ns
  • 访问效率 e = 访问 Cache 的时间 / 平均访问时间 * 100% = 50ns / 50ns * h + (1-h) * 200ns

Cache 的基本结构

Cache 的基本结构原理框图

CPU(通过地址总线)给出地址,这个地址包括**(主存)块号块内地址**。块内地址直接传给Cache,使用块号在主存Cache地址映像机构中确认是否命中。如果发生命中,得到Cache的块号;如果未命中,查看Cache中是否有空间可装入主存块。若有,访问主存装入Cache;若没有,启用Cache替换机构,根据替换算法,决定Cache中哪块可以被替换,然后访问主存替换Cache即可

它主要由Cache存储体、地址映射变换机构、Cache替换机构几大模块组成

  • Cache存储体

    Cache存储体以块为单位与主存交换信息,为加速Cache与主存之间的调动,主存大多采用多体结构,且Cache访存的优先级最高

  • 地址映射变换机构

    地址映射变换机构是将CPU送来的主存地址转换为Cache地址

  • Cache替换机构

    当Cache内容已满,无法接受来自主存块的信息时,就由Cache内的替换机构按一定的替换算法来确定应从Cache内移出哪个块返回主存,而把新的主存块调入Cache

  • Cache的读写操作

    • 读操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

罗念笙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值