07《缓存》计算机组成与体系结构 系列课

目录

深入了解缓存内存

缓存的重要性

游戏中的存储需求与主内存

虚拟内存和按需分页

现代系统中的多级缓存

缓存级别的大小与速度

缓存相关的术语

缓存命中与未命中

页面命中与缺页

局部性原理

结语


深入了解缓存内存

大家好,欢迎来到今天的课程。上节课,我们学习了06《内存接口:解答往年试题》计算机组成与体系结构 系列课。今天我们将深入了解缓存内存。但在深入之前,我们先来理解一下它的重要性。现在让我们开始学习吧。

缓存的重要性

在之前的讨论中,当我们谈到命中率或命中比时,我们看到在一个包含100条指令的程序代码中,有80条被带入主存储器。你可能会想,为什么我们不直接将整个100条指令的代码都放入内存中呢?让我通过一个更现实的例子来说明这个问题。

游戏中的存储需求与主内存

  • 游戏示例:GTA 5、使命召唤:无限战争、现代战争2019重启版、杀手2(2018年重启版)。
  • 存储空间:这些游戏的存储需求几乎达到了100GB,现代战争2019重启版甚至需要超过200GB的存储空间。
  • 主内存需求
    • GTA 5:4GB
    • 使命召唤系列(无限战争/现代战争):8GB
    • 杀手2:16GB

虚拟内存和按需分页

这是因为我们的操作系统提供了虚拟内存和按需分页的概念。当我们在玩这些游戏或者从技术上讲,当处理器正在执行这些游戏的代码时,它们并不需要一次性地加载全部100GB的代码。这就是它的美妙之处。

正因为如此,即使主内存相对较小,我们仍然可以毫无问题地运行这些游戏。

为了更好地理解这个概念,我们用了仅100条指令的代码段作为例子。

现代系统中的多级缓存

现在让我们谈谈缓存。

为了便于理解,在之前的讨论中我提到缓存内存作为一个单一单元。

但准确地说,现代系统通常有多级缓存。如今的系统架构中,一般使用三级缓存:L1、L2 和 L3 缓存。

  • L1缓存:自诞生以来就内置于处理器本身。
  • L2缓存:最初集成在主板上,但现在也成为了处理器的一部分。
  • L3缓存:嵌入在处理器中,由处理器的所有不同核心共享。

随着技术的进步,我们见证了多核处理器的兴起,如双核、四核乃至八核等。这些术语描述了微处理器内部核心的数量,是现代微处理器分类中的一个重要方面。在计算机体系结构中,这样的设计使得处理器能够同时处理多个任务或线程,从而显著提升了计算效率和性能。

自L1缓存诞生以来,它就一直内置于处理器本身之中,作为最接近CPU核心的数据存储区域,提供了最快的访问速度。随着技术的发展,L2缓存被引入以进一步提升性能。最初,L2缓存通常是安装在主板上的独立组件;然而,随着时间推移,为了提高效率,L2缓存也逐渐集成到了处理器内部。

如今,在多核处理器架构中,每个核心都拥有自己的L1和L2缓存,这有助于减少数据访问延迟并提高单个核心的工作效率。

至于L3缓存,它同样嵌入在处理器芯片之内,但与L1和L2不同的是,L3缓存由所有核心共同使用。这种共享的设计,旨在优化跨核心的数据交换,对于需要频繁访问同一数据集的应用程序来说尤为重要。

通过了解这些缓存级别及其作用,我们可以更好地理解现代处理器是如何通过多层次缓存系统,来实现高效数据管理和加速计算过程的。

缓存级别的大小与速度

  • L1缓存:最小但最快。
  • L2缓存:用于存储访问频率次高、但因空间限制而无法纳入L1缓存的数据。
  • L3缓存:最大,被称为共享缓存。

在大小方面,L1是最小的,但它也是所有缓存中最快的。 L2缓存紧随其后,用来存储那些访问频率次高、但因空间限制而无法纳入L1缓存的数据。 最后,L3缓存是最大的,也被称为共享缓存。

希望你现在对不同级别的缓存有了清晰的理解。 在之后的讨论中,为了简化起见,我们大多假设只有一个缓存。 不过,在解释与缓存级别相关的数值问题时,我会提供各级别的详细说明。

缓存相关的术语

现在让我们了解一些与缓存相关的术语。

缓存命中与未命中

  • 缓存命中:如果处理器能够在缓存中找到所需的信息,所需的时间称为命中延迟。
  • 标签目录:用来确定所需信息是否存在于缓存中的一种特定数据结构。
  • 缓存未命中:如果信息不在缓存中,则处理器将在下一级内存即主内存中寻找该信息,并将其带回。这段时间总称作未命中延迟。

第一个术语是缓存命中。 在执行过程中,如果处理器能够在缓存中找到所需的信息,我们就称之为缓存命中。 这个过程所需的时间称为命中延迟。 这里,处理器使用一种特定的数据结构——标签目录【Tag Directory】,来确定所需信息是否存在于缓存中。 如果信息不在缓存中,也就是说信息缺失,我们称之为缓存未命中。 在这种情况下,正如前面所讨论的,处理器将在下一级内存,即主内存中寻找该信息,并将其带回。 同时,也会将信息放置在缓存中。 这段时间总称作未命中延迟

页面命中与缺页

  • 页面命中:如果信息在主内存中找到。
  • 缺页:如果信息也不在主内存中,这种情况称为缺页。
  • 缺页服务时间:操作系统会在辅助存储器中查找信息,并将其带回主内存的过程所需的时间。

顺便提一下,如果信息也不在主内存中,这种情况称为缺页。 如果找到了信息,我们称之为页面命中。 在缺页的情况下,操作系统,作为管理主内存和辅助存储器之间通信的角色,会在层次结构的最后一层,也就是辅助存储器中查找信息,并将其带回主内存。 整个过程称为缺页服务,完成这一过程所需的时间称为缺页服务时间

我们已经知道,相对于其他数据而言,访问频率极高的信息通常会被保留在缓存中。 这种根据访问频率优先化主内存部分以加载到缓存中的做法,是基于局部性原理

局部性原理

  • 空间局部性:如果处理器引用了某个内存位置,那么附近的位置在未来很可能会被引用。
  • 时间局部性:如果某个内存位置被引用过,那么它很可能在未来再次被引用。

简单来说,有两种方法可以帮助处理器决定应该将主内存中的哪些数据放在缓存中。 第一种方法基于空间局部性。 这意味着在某个时刻,如果处理器引用了某个内存位置,那么附近的位置在未来很可能会被引用。 第二种方法基于时间局部性。 这意味着如果某个内存位置被引用过,那么它很可能在未来再次被引用。 这个知识点,在研究缓存替换策略时会更加清晰。

结语

好了,这就是本次课程的内容。

我想既然我们已经学到了缓存内存的组织方式,接下来探讨不同的缓存映射技术以及更深入地理解缓存和主内存之间的交互就会更容易些。

期待下次再见。谢谢大家阅读。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FPGA实战篇(触摸按键控制LED灯)

1.触摸按键简介 触摸按键主要可分为四大类:电阻式、电容式、红外感应式以及表面声波式。根据其属性的不同,每种触摸按键都有其合适的使用领域。 电阻式触摸按键由多块导电薄膜按照按键的位置印制而成,但由于耐用性较差且维护复杂&#xff0c…

java基础概念47-ArrayList、LinkList和迭代器

一、ArrayList集合 1-1、ArrayList的两种添加信息的方式 1-2、ArrayList集合底层逻辑 1、利用空参创建的集合,在底层创建一个默认长度为0的数组 2、添加第一个元素时,底层会创建一个新的长度为10的数组 3、存满时,会扩容1.5倍。 4、如果…

C++学习日记---第16天

笔记复习 1.C对象模型 在C中,类内的成员变量和成员函数分开存储 我们知道,C中的成员变量和成员函数均可分为两种,一种是普通的,一种是静态的,对于静态成员变量和静态成员函数,我们知道他们不属于类的对象…

Java基础之网络编程:开启网络通信的神秘之门

一、网络编程概述 网络编程是通过计算机网络进行数据传输和通信的编程技术,在 Java 中,我们可以使用丰富的网络编程功能和 API 来实现不同计算机之间的数据交互。 Java 网络编程是指在 Java 语言中使用网络协议和 API 进行网络通信的编程技术。Java 网络…

Go 语言函数编程指南:定义、调用技巧与返回值机制

🐇明明跟你说过:个人主页 🏅个人专栏:《Go语言探索之旅》🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、Go语言简介 2、Go语言的特点 二、函数定义 1、Go语言函数定义 2、函…

在办公室环境中用HMD替代传统显示器的优势

VR头戴式显示器(HMD)是进入虚拟现实环境的一把钥匙,拥有HMD的您将能够在虚拟现实世界中尽情探索未知领域,正如如今的互联网一样,虚拟现实环境能够为您提供现实中无法实现的或不可能实现的事。随着技术的不断进步&#…

Springboot项目中子模块maven层级不一致的问题

(一)问题描述 campus-common、campus-pojo、campus-server都是campus-flower-system的子模块,但是只有campus-common在campus-flower-system下 (二)解决方法 打开父工程(我这里是campus-flower-system&…

SpringBoot 架构下的在线家具商城:规划与实践之路

第1章 绪论 1.1选题动因 当前的网络技术,软件技术等都具备成熟的理论基础,市场上也出现各种技术开发的软件,这些软件都被用于各个领域,包括生活和工作的领域。随着电脑和笔记本的广泛运用,以及各种计算机硬件的完善和升…

【阅读笔记】Android广播的处理流程

关于Android的解析,有很多优质内容,看了后记录一下阅读笔记,也是一种有意义的事情, 今天就看看“那个写代码的”这位大佬关于广播的梳理, https://blog.csdn.net/a572423926/category_11509429.html https://blog.c…

【C++boost::asio网络编程】有关异步读写api的笔记

异步读写api 异步写操作async_write_someasync_send 异步读操作async_read_someasync_receive 定义一个Session类&#xff0c;主要是为了服务端专门为客户端服务创建的管理类 class Session { public:Session(std::shared_ptr<asio::ip::tcp::socket> socket);void Conn…

Proteus8.17下载安装教程

Proteus是一款嵌入式系统仿真开发软件&#xff0c;实现了从原理图设计、单片机编程、系统仿真到PCB设计&#xff0c;真正实现了从概念到产品的完整设计&#xff0c;其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等&#xff0c;能够帮助用…

frp 内网穿透

文章目录 前言使用自己的服务器搭建frp 这里服务器是linux centos 7 宝塔&#xff0c;client是 windows10 https://github.com/fatedier/frp/releases/tag/v0.53.2 版本下载分客户端与服务端 一、frp是什么&#xff1f;二、使用步骤1.部署服务器端2.客户端 前言 使用自己的服务…

大数据-239 离线数仓 - 广告业务 测试 FlumeAgent 加载ODS、DWD层

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; Java篇开始了&#xff01; 目前开始更新 MyBatis&#xff0c;一起深入浅出&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff0…

基于 SpringBoot 开发在线家具商城:设计架构与实践流程

第3章 系统分析 用户的需求以及与本系统相似的在市场上存在的其它系统可以作为系统分析中参考的资料&#xff0c;分析人员可以根据这些信息确定出本系统具备的功能&#xff0c;分析出本系统具备的性能等内容。 3.1可行性分析 尽管系统是根据用户的要求进行制作&#xff0c;但是…

【Django-xadmin】

时间长不用,会忘的系列 1、Django-xadmin后台字段显示处理 主要是修改每个模块下adminx.py文件 代码解释&#xff1a;第1行控制表单字段显示第2行控制列表字段显示第3行控制搜索条件第4行控制过滤条件第5行支持单个或多个字段信息修改第6行列表分页&#xff0c;每页显示多少行…

【HM-React】02. React基础-下

React表单控制 受控绑定 概念&#xff1a;使用React组件的状态&#xff08;useState&#xff09;控制表单的状态 function App(){const [value, setValue] useState()return (<input type"text" value{value} onChange{e > setValue(e.target.value)}/>) …

朗迪锋亮相2024人因工程与智能系统交互国际会议

2024年11月28日至30日&#xff0c;2024人因工程与智能系统交互国际会议在深圳隆重举办。此次大会以推动我国人因工程学科发展为目标&#xff0c;致力于加强国际学术交流&#xff0c;深入探讨人工智能时代的智能系统交互&#xff0c;旨在培育新质生产力&#xff0c;助力经济社会…

基于Java Springboot房屋租赁App且微信小程序

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 微信…

【小白学机器学习42】进行多次抽样,样本的分布参数和总体的分布参数的关系

目录 1 进行多次抽样&#xff0c;样本的分布参数和总体的分布参数的关系 2 样本容量越大&#xff0c;多次抽样的样本的分布参数和总体的分布参数的关系 2.1 如果进行多次抽样&#xff0c;样本的均值将趋向总体的均值 2.2 换句话说&#xff1a;样本的均值将趋向总体的均值就…

Spring Web开发(请求)获取JOSN对象| 获取数据(Header)

大家好&#xff0c;我叫小帅今天我们来继续Spring Boot的内容。 文章目录 1. 获取JSON对象2. 获取URL中参数PathVariable3.上传⽂件RequestPart3. 获取Cookie/Session3.1 获取和设置Cookie3.1.1传统获取Cookie3.1.2简洁获取Cookie 3. 2 获取和存储Session3.2.1获取Session&…