计算机体系结构之多级缓存、缓存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“。相信这样描述大家应该能够理解了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/913509.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

后端SpringBoot学习项目-用户管理-增删改查

最终代码结构 仓库地址 Entity文件 数据库表设计 entity层实现 文件创建 ● 创建entity文件夹 ● 在entity层创建Java类,名字为User (关键字不可使用) 代码实现 package com.example.drhtspringboot.entity;import com.baomidou.mybatisplus.annotation.IdT…

华为入围Linux 内核CVE 检视“五人团”,openEuler要再进阶?

背景:内核社区接管 Linux 社区漏洞发布 往年 Linux 内核漏洞发布存在来源不固定、覆盖不全面,有时发布无修复补丁的 CVE 从而形成 0-day 漏洞等问题,给 Linux 内核安全带来了不确定性,为了更规范化运作,2024 年 2 月 1…

【C语言指南】C语言内存管理 深度解析

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《C语言指南》 期待您的关注 引言 C语言是一种强大而灵活的编程语言,为程序员提供了对内存的直接控制能力。这种对内存…

12 Node.js API接口开发

八、API接口 8.1 json-server工具 1)安装json-server npm i -g json-server2)示例 //students.json {"student":[{"id":1,"name":"sally","age":18,"gender":"女"},{"id":2,&…

前段时间我所在的公司收到了来自Nevicat的律师函

前段时间我所在的公司收到了来自Nevicat的律师函,至于原因嘛,大家懂的都懂。肯定是因为没有购买人家的正版软件,于是公司下令,所有人禁止继续使用Nevicat自行寻找其他sql工具,迫于无奈,在我使用了十几款主流…

【系统设计】理解带宽延迟积(BDP)、吞吐量、延时(RTT)与TCP发送窗口的关系:优化网络性能的关键

在设计和优化网络性能时,理解 带宽延迟积(BDP)、吞吐量、延时(RTT) 和 TCP发送窗口 之间的关系至关重要。这些概念相互影响,决定了网络连接的性能上限,尤其是在高带宽、高延迟的环境中&#xff…

微服务容器化部署实践(FontConfiguration.getVersion)

文章目录 前言一、整体步骤简介二、开始实战1.准备好微服务2.将各个微服务打包为镜像第一种第二种3. 将各个打包好的镜像,通过docker-compose容器编排,运行即可总结前言 docker容器化部署微服务: 将微服务容器化部署到 Docker 容器中是一个常见的做法,可以提高应用的可移…

如何监控员工上网行为?五大妙招轻松上手,员工上网监控全攻略!挖到宝啦!

如何监控员工上网行为? 员工的不当上网行为不仅有可能导致企业机密的泄露,还可能对工作效率造成显著影响。 因此,如何有效地监控员工的上网行为,已成为许多企业管理者关注的重点。 本文,将为您介绍五大妙招&#xff…

【C++ 算法进阶】算法提升十一 十二

目录标题 让字符串成为回文串的最少插入次数题目题目分析代码题目题目 字符子串 (滑动窗口)题目题目分析代码 最长连续子序列 (头尾表)题目题目分析代码 让字符串成为回文串的最少插入次数 题目 本题为为LC原题 题目如下 题目分…

Linux(CentOS)安装 MySQL

CentOS版本:CentOS 7 三种安装方式: 一、通过 yum 安装,最简单,一键安装,全程无忧。 二、通过 rpm 包安装,需具备基础概念及常规操作。 三、通过 gz 包安装,需具备配置相关操作。 --------…

6.1 软件测试:软件质量与测试

软件质量与测试 1、软价质量保证1.1 软件质量质量控制QC:QUALITY CONTROL质量保证QA:QUALITY ASSURANCE质量成本软件质量软件质量保证 1.2 软件评审1.3 软件可靠性 2、软件测试2.1 软件测试过程模型软件测试策略软件测试策略V模型回归测试软件测试策略原则软件测试策…

JavaEE进阶---SpringMVC(二)请求里面十种参数类型

文章目录 1.请求1.1接受单个参数的请求1.2多个参数的传递1.3传递对象1.4参数重命名1.5设置参数是非必传的1.6数组的请求方式1.7如何传递集合1.8传递json数据1.9获取url里面的参数1.10获取文件 1.请求 1.1接受单个参数的请求 下面的这个就是我们的项目代码,都是单个…

FIPS203 后量子安全ML-KEM(标准简读)

FIPS 203是美国国家标准与技术研究院(NIST)发布的关于模块格基密钥封装机制(ML-KEM)的标准,旨在提供一种能抵御量子计算机攻击的密钥建立方案。以下是对该文档的详细总结: 标准概述 目的与范围&#xff…

Android GPU纹理数据拷贝

在 Android 开发中读取纹理数据有以下几种方法: glReadPixelsImageReaderPBO(Pixel BufferObject) HardwareBuffer 1. glReadPixels glReadPixels 是 OpenGL ES 的 API,通常用于从帧缓冲区中读取像素数据,OpenGL ES…

NVM切换本地node版本

1、下载nvm https://github.com/coreybutler/nvm-windows/releases nvm-windows 然后点击nvm-setup.exe下载&#xff0c;尽可能都选择默认安装选项 2、nvm常用命令 使用以下命令安装特定版本的 Node.js&#xff1a; nvm install <version> nvm install 14.17.0 使…

GNN系统学习:消息传递图神经网络

引言 在开篇中我们介绍了&#xff0c;为节点生成节点表征&#xff08;Node Representation&#xff09;是图计算任务成功的关键&#xff0c;我们要利用神经网络来学习节点表征。 消息传递范式是一种聚合邻接节点信息来更新中心节点信息的范式&#xff0c;它将卷积算子推广到了…

C语言 | Leetcode C语言题解之第554题砖墙

题目&#xff1a; 题解&#xff1a; struct HashTable {int key, val;UT_hash_handle hh; };int leastBricks(int** wall, int wallSize, int* wallColSize) {struct HashTable* cnt NULL;for (int i 0; i < wallSize; i) {int n wallColSize[i];int sum 0;for (int j …

全文检索ElasticSearch到底是什么?

学习ElasticSearch之前&#xff0c;我们先来了解一下搜索 1 搜索是什么 ① 概念&#xff1a;用户输入想要的关键词&#xff0c;返回含有该关键词的所有信息。 ② 场景&#xff1a; ​ 1互联网搜索&#xff1a;谷歌、百度、各种新闻首页&#xff1b; ​ 2 站内搜索&#xff…

【C++】vector模拟实现、迭代器失效问题(超详解)

vector会使用之后我们来模拟实现一下&#xff0c;通过对vector的模拟实现&#xff0c;我们来说一下迭代器失效问题。 1.准备工作 在头文件vector.h里声明和实现函数&#xff0c;然后在test.cpp里测试代码的正确性。 在vector.h中用命名空间分隔一下&#xff0c;因为c库里面也有…

前端CSS3 渐变详解

文章目录 CSS3 渐变详解一、引言二、CSS3 渐变基础1、线性渐变1.1、基本线性渐变1.2、改变渐变方向 2、径向渐变2.1、基本径向渐变2.2、设置径向渐变的中心 三、高级渐变技巧1、重复渐变1.1、重复线性渐变1.2、重复径向渐变 四、总结 CSS3 渐变详解 一、引言 在现代网页设计中…