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

让你轻松搞懂Cache(高度缓存存储器):计算机组成原理超详解Cache 是一种位于 CPU 和主存之间的小容量 高速度的存储器


在计算机体系结构中, 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访问存储系统的速度,从而提升了计算机系统的整体性能。

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

编程小号
上一篇 2025-01-09 16:11
下一篇 2025-01-09 16:01

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/106291.html