让你轻松搞懂Cache(高度缓存存储器):计算机组成原理超详解


在计算机体系结构中, Cache是提升系统性能的重要组件。对于基础小白来说,理解Cache的工作原理和相关概念至关重要。本文将以简洁明了的方式,详细介绍Cache的基本原理、工作机制和优化方法,帮助读者快速掌握这一关键知识点。

一. 为什么要使用Cache(什么是Cache)?

Cache是一种位于CPU和主存之间的小容量、高速度的存储器。其主要作用是弥补CPU与主存之间的速度差异,从而提高系统整体性能。

  • 原因:CPU主频提升会带动系统性能的改善,但内存存取速度较低会导致CPU等待,降低处理速度,浪费CPU能力。
  • 解决方法:在慢速的DRAM和快速的CPU之间插入一至多级的速度较快、容量较小的SRAM起到缓冲作用,使CPU能够快速存取主存中的数据,而不使系统成本上升过高,这就是Cache的作用。
    在这里插入图片描述

二. Cache采用的程序访问的局部性原理

程序访问的局部性是指在一个较短的时间间隔内,程序产生的地址往往集中在存储器逻辑地址空间的很小范围内。

  • 局部性原理:对局部范围的存储器地址频繁访问,而对其他范围的访问甚少。
  • Cache利用局部性原理:将常用的数据和指令从主存调入Cache,供CPU在一段时间内使用,从而提高访问速度。

三. Cache的工作原理

1. 主存地址的划分

为了方便比较和快速查找,Cache和主存都被分成了若干大小相同的,每块包含若干个字。
在这里插入图片描述

  • 主存块地址:标识CPU访问的主存单元所在的主存块号。
  • 块内偏移地址:表示要访问的单元在某块的偏移值。
  • 索引:指示CPU访问Cache存储体的范围。
  • 标记:用于判断内容是否在Cache中。
2. Cache的基本结构

Cache的结构主要包括三部分:

  • 数据存储体:存放主存数据的副本。
  • 标记存储体:存放标记,不同映射方式标记位数不同。
  • 有效位:标识存放在Cache中的数据是否有效。
3. Cache的组织及CPU访问Cache的流程

Cache命中

  1. 对CPU访问存储器的地址进行逻辑划分,得到标记、索引、块内地址。
  2. 按索引字段的值从Cache标记存储体的特定单元读出标记值,并比较。
  3. 若命中,则形成Cache地址。
  4. 访问Cache数据存储体,读取数据送至CPU。

Cache不命中

  1. 对CPU访问存储器的地址进行逻辑划分,得到标记、索引、块内地址。
  2. 按索引字段的值从Cache标记存储体的特定单元读出标记值,并比较。
  3. 若不命中,则进入Cache替换策略。
  4. 调入数据块,更新标记存储体,送数据至CPU。

四. Cache的命中率计算详解

命中率 H:
H=Nc/(Nc+Nm

  • 命中率:Cache命中的次数占总访问次数的比例。
  • 丢失率:1−H
  • 平均访问时间 Ta
    Ta=H⋅Tc+(1−H)⋅Tm

举例说明
假设一个程序访问内存100次,其中70次命中Cache,30次不命中。Cache的访问时间为10纳秒,主存的访问时间为50纳秒。

  • 命中率 H:
    H=70/100=0.7
  • 平均访问时间 Ta
    Ta=0.7⋅10+(1−0.7)⋅50=7+15=22 纳秒

五. Cache的地址映射及变换方法

1. 什么是Cache的地址映射?

地址映射是指将主存地址空间映射到Cache的地址空间,即将存放在主存中的程序或数据按照某种规则装入Cache,并建立两者之间地址的对应关系。

2. 什么是Cache的地址变换?

地址变换是指在程序运行时,根据地址映像函数将主存地址变换成Cache地址。

3. 三种地址映射方法:
  1. 全相联映射:主存中的任何一个块都可以映射到Cache中的任何一个位置。这种方式灵活性高,但查找速度慢。
  2. 直接映射:主存中的每一个块固定映射到Cache中的某一个位置,查找速度快,但灵活性差。
  3. 组相联映射:综合了全相联映射和直接映射的优点,将Cache分成若干组,每组内采用全相联映射,组间采用直接映射,既有一定的灵活性,又能保持较高的查找速度。

六. Cache的三种替换算法

1. 为什么需要三种替换算法?

不同的替换算法在实现复杂度、命中率提升和硬件开销等方面各有优劣。通过选择合适的替换算法,可以在不同应用场景下优化Cache性能。

2. 三种替换算法
  1. 先进先出(FIFO)

    • 原理:选择最早调入Cache的字块进行替换。
    • 优点:实现简单,开销小。
    • 缺点:未考虑数据的访问频率,命中率较低。
  2. 近期最少使用(LRU)和最不经常使用(LFU)

    • LRU:将长时间未被访问的行换出,能有效提高命中率。
    • LFU:将一段时间内被访问次数最少的行换出,但无法严格反映近期访问情况。
  3. 随机法

    • 原理:随机确定被替换的块。
    • 优点:实现容易。
    • 缺点:命中率不稳定,有时会降低命中率。

结论

通过详细分析Cache的工作原理、地址映射方法和替换算法,本文帮助读者深入理解了Cache在计算机系统中的重要作用及其实现机制。Cache通过利用程序访问的局部性原理,有效提高了CPU访问存储系统的速度,从而提升了计算机系统的整体性能。

计算机原理复习目录汇总 ⬇️点击这里阅读完整文章⬇️

  • 21
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

CongSec

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

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

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

打赏作者

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

抵扣说明:

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

余额充值