当前位置: 首页 > article >正文

计算机体系结构之多级缓存、缓存miss及缓存hit(二)

        前面章节《计算机体系结构之缓存机制原理及其应用(一)》讲了关于缓存机制的原理及其应用,其中提出了多级缓存、缓存miss以及缓存hit的疑问。故,本章将进行展开讲解,

            多级缓存、缓存miss以及缓存hit存在的意义是为了保持成本效益的同时,尽可能地提高计算机系统的性能和效率。它们是现代处理器设计中关键的元素,对于提高用户体验和系统吞吐量是占据至关重要的一环。对于系统吞吐量不太了解的朋友可以参考

《计算机体系结构之系统吞吐量(三)》一文。

1、什么是多级缓存?其目的又是什么?

        解:多级缓存是一种计算机体系结构中用于减少处理器访问主存所需时间的管策略。多级缓存由多个缓存叠加组成,但其每个缓存层级有着不同的容量大小、速度以及成本。

2、多级缓存组成及“金字塔”

        缓存金字塔讲述的是计算机在各个层级之间缓存的访问速度及其容量大小。通过此金字塔可以直观的了解在计算机中关于多级缓存的概念。此处讲解下L1/L2/L3缓存。

            L1 Cache:最接近处理器核心的缓存,其速度最快,但容量最小。

            L2 Cache:速度略慢,但容量相较于L1 Cache更大。

            L3 Cache:速度更慢,但容量相较于L2 Cache更大。

            多级缓存的设计原理在《计算机体系结构之缓存机制原理及其应用(一)》一文有所讲解,即程序在执行时倾向于重复访问相同的数据和指令。每级缓存指令都旨在缓存最近或最频繁访问的数据,以减少处理器访问主存的次数

3、多级缓存的优点有哪些?

        解:多级缓存具有以下优点:

            更高的命中率:多级缓存相较于提供了大量的缓存空间,可以存储更多的数据,从而提高命中率。

            更好的管理能耗:多级缓存可以根据数据的使用频率和重要性来优化能耗。

            更快的访问速度:每一级缓存都比后一级缓存更接近处理器,所以会有更快的访问速度。

            降低主存瓶颈;多级缓存减少了处理器直接访问主存的次数,减轻了主存的压力。

            提高系统整体性能:通过减少数据访问造成的延迟,多级缓存显著的提高了系统的整体性能。

4、缓存Miss是什么?

        解:缓存Miss是指处理器请求的数据不在缓存中,需要从更慢更远的存储层次中检索数据的情况。

5、缓存Miss造成什么后果?

        解:缓存Miss会导致性能的下降,当缓存Miss后会从主存获取数据,而主存的访问速度比缓存慢得多,所以会造成性能得下降。这也被称作是“未命中处罚”,也是缓存Miss未产生前至产生后直至完成处理后的过程。

6、缓存Miss的出现后计算机如何处理?

        解:当出现缓存Miss后,计算机会进行以下步骤进行处理。其中“替换策略”,顾名思义是决定替换哪部分数据的条件,常见的替换策略有“最少使用替换”以及“随即替换”。每个平台的策略都有可能不同,但其根本就是为了将存储在主存所需要的数据替换到缓存中。

7、什么是缓存Hit?

        解:缓存Hit恰恰与缓存Miss相反,是指处理器请求的数据恰好在缓存中,因此可以直接从缓存中读取数据,从而不必访问更慢的存储层级。换句话说,缓存的目的之一就是为了让处理器能够在缓存中获取到将要用到的数据。

8、总结

        没接触过计算机体系结构的朋友可能对感觉比较生疏,没关系,在这里作者会基于以前的发文将相关知识体系就行发散讲解,将整个文章串联起来,让大家有迹可循,而不是断层知识点。关于多级缓存,这里给大家举个例子。如:我发了一篇文章,关于多级缓存的,当大家不了解这个知识点时,就会想办法查阅该知识点,可以是通过书籍、可以是通过上网、亦可以是访问作者的文章啊,等待相关途径;当然啦,也可以不去了解这个知识点。其中,作者的此文章、网络资料以及数据就相当于“主存或磁盘“,大家的大脑就相当于”缓存“。而有这个需求,但其本身又不了解就称作”缓存Miss“;本身了解就称作”缓存Hit“。相信这样描述大家应该能够理解了。


http://www.kler.cn/a/388868.html

相关文章:

  • 【学习】【HTML】HTML、XML、XHTML
  • 算法演练----24点游戏
  • kafka消费数据太慢了,给优化下
  • Java之泛型--对象指定多个泛型类型(有示例)
  • fastapi 查询参数支持 Pydantic Model:参数校验与配置技巧
  • 基于promtail+loki+grafana搭建日志系统
  • 【LeetCode】分发糖果 解题报告
  • O-RAN简介
  • 【数学二】线性代数-线性方程组-齐次线性方程组、非齐次线性方程组
  • python的学习
  • 深度学习-神经网络基础-网络搭建-损失函数-网络优化-正则化方法
  • Ubuntu 20.04安装ROS noetic
  • 产品经理晋级-Axure中继器制作美观表格
  • 线上问题的排查之内存溢出(OOM)问题如何排查
  • 09 Oracle数据拯救:Flashback Technologies精细级数据恢复指南
  • Spring Boot 3中基于纯MyBatis的CURD开发实例
  • 嵌入式采集网关(golang版本)
  • CSS的综合应用例子(网页制作)
  • vue系列=状态管理=Pinia使用
  • 【STM32笔记】定时器(TIM1)无法工作
  • 网关 Spring Cloud Gateway
  • Hive的远程模式
  • lua入门教程:随机数
  • c++-有关计数、双变量累加、半衰、阶乘、变量值互换的基础知识
  • 架构篇(05理解架构的服务演化)
  • Ubuntu24.04安装Perforce服务