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

05《存储器层次结构与接口》计算机组成与体系结构 系列课

目录

存储器层次结构概述

层次结构的定义

存储器的排名

存储器接口

处理器与存储器的速度匹配

存储器接口的定义

存储器访问命中率

两种接口

第1种方式:并行

命中率的计算

存储器访问时间

第2种方式:逐级

结语


大家好,欢迎回来。上一节课,我们学习了:​04《计算机的内部存储》计算机组成与体系结构 系列课​。在本次课程中,我们将学习关于存储器层次结构的知识,并且简要介绍不同的存储单元是如何与处理器进行接口连接的。那么,让我们开始学习吧!

存储器层次结构概述

层次结构的定义

简单来说,“层次结构”这个词意味着 排名。排名可以根据不同的参数来进行。

例如,如果我们根据上映日期来考虑诺兰的《黑暗骑士》三部曲,首先是《蝙蝠侠:侠影之谜》,然后是《黑暗骑士》,最后是《黑暗骑士崛起》。

但如果我们根据烂番茄网站的评分来看,以94%的新鲜度位居榜首的是《黑暗骑士》,因为老实说希斯·莱杰的表现实在是太出色了,其次是《黑暗骑士崛起》,最后是《蝙蝠侠:侠影之谜》。如果考虑Metacritic的评分,这个排名也是相同的。

存储器的排名

同样地,基于不同的方面,存储器存储也可以进行排名。如果我们考虑访问时间和大小,我们可以这样对存储单元进行排名:寄存器由触发器组成,并且嵌入在处理器内部,因此访问它们的时间是最少的。接下来是SRAM缓存,然后是DRAM主存储器。最后,是二级存储器。然而,在成本和使用频率方面,这个层次结构是相反的。

我的意思是,随着我们在层次结构中向上移动,成本和使用频率会增加。

存储器接口

处理器与存储器的速度匹配

在我们之前的讨论中,我们已经了解到处理器非常快,而拥有存储器层次结构的唯一目的就是:以合理的成本弥补快速处理器和慢速存储器之间的速度不匹配。

存储器接口的定义

现在,让我们来谈谈存储器接口,它是计算机组织的一部分,涉及将不同级别的存储单元,特别是与处理器以及I/O外围设备连接的方式。通常,处理器的速度是以MIPS为单位来计算的。有些人称之为MIPS,它代表每秒百万条指令,我们的目标是:以更快且成本效益高的方式,从存储器中向处理器提供那么多的指令。

存储器访问命中率

让我们尝试理解存储器的不同级别。如果我说,第n级别的信息是第(n+1)级别的信息的一个子集,这意味着如果处理器在第n级别存储器中查找某物,无论是任何指令或数据,如果只在该级别找到,我们称之为“命中”。否则,它被称为“未命中”,然后处理器会去第(n+1)级别,即下一个级别查找相同的信息。

所以,在未命中的情况下,在第n级别和第n+1级别查找信息所花费的时间因该被考虑到。

然而,情况并非总是这这样。实际上,这取决于接口的连接方式。让我深入的来看看。通常情况下,接口有两种方式。下面这个插图将帮助我们来进行理解。

两种接口

第1种方式:并行

所以不容的存储级别,都同时连接到处理器,每当处理器想要一些信息时,他可以在所有不同级别的存储器中并行查找,如图所示,就是处理器连接到了三个不同级别的存储单元。我们暂且叫他们分为是M1,M2,M3。而访问他们的时间分别是T1,T2,T3。同时,T1<T2<T3。

命中率的计算

现在,我们假设对于一个程序或一组指令,M1和M2的命中率分别为H1和H2。ok,你一定会再想,到底什么是命中率啊?怎么计算呢?

我们已经知道,在执行过程中,指令集从非易失性二级存储中被带入主存储器。同时,频繁访问的部分存储在缓存中。

假设一个程序中有100条指令,它们永久存储在存储器层次结构的最后一级,即二级存储器中。假设这100条指令中有80条被带入主存储器。在这种情况下,命中率将是80除以100,即0.8或80%。

这意味着:在执行过程中,处理器有80%的机会在主存储器中获得所需的指令。

由于最后一级是永久存储,命中率自然是100%。所以,我们并不真正需要担心这一级,因为如果程序不在这里,处理器就无法执行它。就像如果我们没有音频文件,我们怎么播放它呢?

存储器访问时间

所以,回到我们的图示,有了所有这些信息,如果我们现在尝试找出在这个组织中,平均需要多少时间来找到一条指令,这也就是人们常说的有效或平均存储器访问时间,公式如下。

让我们理解一下这个公式,这样我们就不需要再去专门记住它了。

所以,有H1%的机会在M1中找到指令。这是访问M1所花费的时间。现在,(1-H1)%的机会是处理器可能在M1中找不到所需的指令,这被称为M1的未命中率或未命中比率。对于这些情况,处理器将查看下一个级别,即M2,它有H2%的机会拥有这些指令。同时,访问M2所花费的时间是T2,因此是(1-H1)乘以H2和T2。

所以,最终呢,有(1-H2)%的几率是处理器可能在M2中找不到所需的指令,所以,M2的未命中率或未命中比率就是(1-H2)。因此(1-H2)(1-H2)T3的意思就是考虑到了所有找不到所需指令的情况,无论是在M1还是在M2上,这种情况下,我们就不得不在M3上进行查找了,也就是最后一级。访问M3的所需时间是T3,所以公式就是:(1-H2)(1-H2)T3。

请记住,这些不同级别的存储器都与处理器直接相连,而它们各自的访问时间差异,正是实现并行操作的关键所在。

第2种方式:逐级

第二种方式是逐级接口存储单元,这意味着,如果所需的指令在M1中找不到,那么处理器将去下一个级别,即M2中查找。如果它甚至不在那里,寻找过程将继续到下一个级别。

所以,在这种情况下,公式将变成这样。

因为在这里,处理器并不是同时连接到所有存储单元。同时,如果处理器在第(n+1)级别寻找指令,这意味着它已经在第n级别或前一个级别寻找过它,并且没有找到。这就是为什么要同时考虑了两个访问时间(T1+T2)。

结语

好了,这就是关于存储器层次结构以及存储器接口不同方式的所有内容。

在下一堂课中,我们将尝试解决一些与这个概念相关的数值问题,以便有一个清晰的理解。

所以,我希望在下一堂课中见到你们。谢谢大家的阅读。

相关文章:

05《存储器层次结构与接口》计算机组成与体系结构 系列课

目录 存储器层次结构概述 层次结构的定义 存储器的排名 存储器接口 处理器与存储器的速度匹配 存储器接口的定义 存储器访问命中率 两种接口 第1种方式:并行 命中率的计算 存储器访问时间 第2种方式:逐级 结语 大家好,欢迎回来。…...

elasticsearch报错fully-formed single-node cluster with cluster UUID

1.问题描述 k8s集群内部署的es中间件起不来,查看日志发现如下警告,节点发现功能开启,但是目前我是单节点服务,所以尝试编辑sts将节点发现功能去掉或者在部署时将你的sts的yaml文件和chart文件修改重新部署以去掉该功能 {"t…...

Milvus×Florence:一文读懂如何构建多任务视觉模型

近两年来多任务学习(Multi-task learning)正取代传统的单任务学习(single-task learning),逐渐成为人工智能领域的主流研究方向。其原因在于,多任务学习可以让我们以最少的人力投入,获得尽可能多…...

DAPP

02-DAPP 1 啥是 DApp? DApp,部署在链上的去中心化的应用。 DApp 是开放源代码,能运行在分布式网络上,通过网络中不同对等节点相互通信进行去中心化操作的应用。 DAPP 开放源代码,才能获得人的信任。如比特币&#xff…...

生产环境中,nginx 最多可以代理多少台服务器,这个应该考虑哪些参数 ?怎么计算呢

生产环境中,nginx 最多可以代理多少台服务器,这个应该考虑哪些参数 ?怎么计算呢 关键参数计算方法评估步骤总结 在生产环境中,Nginx最多可以代理的服务器数量并没有一个固定的限制,它取决于多个因素,包括Ng…...

【深度学习|目标跟踪】StrongSORT 详解(以及StrongSORT++)

StrongSort详解 1、论文及源码2、DeepSORT回顾3、StrongSORT的EMA4、StrongSORT的NSA Kalman5、StrongSORT的MC6、StrongSORT的BOT特征提取器7、StrongSORT的AFLink8、StrongSORT的GSI模块 1、论文及源码 论文地址:https://arxiv.org/pdf/2202.13514 源码地址&#…...

23种设计模式-原型(Prototype)设计模式

文章目录 一.什么是原型设计模式?二.原型模式的特点三.原型模式的结构四.原型模式的优缺点五.原型模式的 C 实现六.原型模式的 Java 实现七. 代码解析八.总结 类图: 原型设计模式类图 一.什么是原型设计模式? 原型模式(Prototype…...

Qt—QLineEdit 使用总结

文章参考:Qt—QLineEdit 使用总结 一、简述 QLineEdit是一个单行文本编辑控件。 使用者可以通过很多函数,输入和编辑单行文本,比如撤销、恢复、剪切、粘贴以及拖放等。 通过改变 QLineEdit 的 echoMode() ,可以设置其属性,比如以密码的形式输入。 文本的长度可以由 m…...

go-zero使用自定义模板实现统一格式的 body 响应

前提 go环境的配置、goctl的安装、go-zero的基本使用默认都会 需求 go-zero框架中,默认使用goctl命令生成的代码并没有统一响应格式,现在使用自定义模板实现统一响应格式: {"code": 0,"msg": "OK","d…...

BUGKU printf

整体思路 实现循环-->获取libc版本和system函数地址->将strcpy的got表项修改为system并获得shell 第一步:实现循环 从汇编语句可以看出,在每次循环结束时若0x201700处的值是否大于1则会继续循环。 encode1会将编码后的结果保存至0x2015c0处&am…...

深度学习:梯度下降法

损失函数 L:衡量单一训练样例的效果。 成本函数 J:用于衡量 w 和 b 的效果。 如何使用梯度下降法来训练或学习训练集上的参数w和b ? 成本函数J是参数w和b的函数,它被定义为平均值; 损失函数L可以衡量你的算法效果&a…...

`console.log`调试完全指南

大家好,这里是 Geek技术前线。 今天我们来探讨 Console.log() 的一些优点。并分析一些基本概念和实践,这些可以让我们的调试工作变得更加高效。 理解前端 log 与后端 log 的区别 前端 log 与后端 log 有着显著的不同,理解这一点至关重要。…...

ROS VSCode调试方法

VSCode 调试 Ros文档 1.编译参数设置 cd catkin_ws catkin_make -DCMAKE_BUILD_TYPEDebug2.vscode 调试插件安装 可在扩展中安装(Ctrl Shift X): 1.ROS 2.C/C 3.C Intelliense 4.Msg Language Support 5.Txt Syntax 3.导入已有或者新建ROS工作空间 3.1 导入工作…...

16 —— Webpack多页面打包

需求&#xff1a;把 黑马头条登陆页面-内容页面 一起引入打包使用 步骤&#xff1a; 准备源码&#xff08;html、css、js&#xff09;放入相应位置&#xff0c;并改用模块化语法导出 原始content.html代码 <!DOCTYPE html> <html lang"en"><head&…...

微服务即时通讯系统的实现(服务端)----(3)

目录 1. 消息存储子服务的实现1.1 功能设计1.2 模块划分1.3 模块功能示意图1.4 数据管理1.4.1 数据库消息管理1.4.2 ES文本消息管理 1.5 接口的实现1.5.1 消息存储子服务所用到的protobuf接口实现1.5.2 最近N条消息获取接口实现1.5.3 指定时间段消息搜索接口实现1.5.4 关键字消…...

.net6.0 mvc 传递 model 实体参数(无法对 null 引用执行运行时绑定)

说一下情况&#xff1a; 代码没问题&#xff0c;能成功从数据库里查到数据&#xff0c;能将数据丢给ViewBag.XXXX, 在View页面也能获取到 ViewBag.XXXX的值&#xff0c;但是发布到线上后报这个错&#xff1a; Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 无法对 …...

VUE 入门级教程:开启 Vue.js 编程之旅

一、Vue.js 简介 Vue.js 是一套构建用户界面的渐进式 JavaScript 框架。它专注于视图层的开发&#xff0c;能够轻松地与其他库或现有项目进行整合。Vue.js 的核心库只关注视图层&#xff0c;通过简洁的 API 实现数据绑定和 DOM 操作的响应式更新&#xff0c;让开发者可以高效地…...

Ubantu系统docker运行成功拉取失败【成功解决】

解决docker运行成功拉取失败 失败报错 skysky-Legion-Y7000-IRX9:~$ docker run hello-world docker: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Head “http://%2Fvar%2Frun%2Fdocker.sock/_ping”: dial uni…...

mvn-mac操作小记

1.安装brew 如果报错&#xff0c;Warning: /opt/homebrew/bin is not in your PATH. vim ~/.zshrc&#xff0c;最后一行追加 export PATH“/opt/homebrew/bin:$PATH” source ~/.zshrc 2.安装brew install maven mvn -version查看路径 Maven home: /opt/homebrew/Cellar/mav…...

机器学习——生成对抗网络(GANs):原理、进展与应用前景分析

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一. 生成对抗网络的基本原理二. 使用步骤2.1 对抗性训练2.2 损失函数 三. GAN的变种和进展四. 生成对抗网络的应用五. 持续挑战与未来发展方向六. 小结 前言 生…...

2026校招技术岗薪资大盘点:AI方向白菜价40w起,这个方向却跌破20w

上周帮学弟看offer&#xff0c;吓了一跳。某大厂给AI对齐岗的校招白菜价&#xff0c;总包42w。同一个公司&#xff0c;传统测试开发岗&#xff0c;开出了18w。差了不止一倍。这不是个例。我翻了牛客网五月最新的offer帖&#xff0c;又问了几个在阿里、字节、美团的朋友&#xf…...

别再滥用虚函数了!用CRTP(奇异递归模板模式)在C++里实现零开销的静态多态

用CRTP重构C性能关键路径&#xff1a;从虚函数到零开销抽象的艺术 在游戏引擎开发中&#xff0c;当处理成千上万的实体渲染调用时&#xff0c;每个虚函数调用都可能成为性能瓶颈。某次性能分析显示&#xff0c;一个简单的Render()虚函数调用在热路径上消耗了超过15%的CPU周期—…...

OpenClaw(小龙虾)Windows 一键部署教程,零基础搭建本地 AI 智能体

OpenClaw 是一款面向本地自动化场景的轻量级执行框架&#xff0c;凭借稳定的系统级交互能力、简洁的架构设计及良好的扩展性&#xff0c;在桌面自动化、批量任务处理、办公效率提升等场景中广泛应用。与传统脚本工具相比&#xff0c;它无需编写复杂代码&#xff0c;通过自然语言…...

hermes agent工具如何对接taotoken多模型聚合平台

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Hermes Agent 工具如何对接 Taotoken 多模型聚合平台 Hermes Agent 是一款功能强大的 AI 代理开发框架&#xff0c;支持通过自定义…...

Cursor Pro功能无限试用:开源自动化工具原理与实战部署指南

1. 项目概述与核心思路拆解最近在开发者圈子里&#xff0c;Cursor 这款 AI 驱动的代码编辑器热度一直很高&#xff0c;它集成了强大的 AI 助手&#xff0c;能极大地提升编码效率。不过&#xff0c;其核心的 Pro 功能需要付费订阅才能持续使用。很多开发者&#xff0c;尤其是学生…...

3分钟魔法:把化学分子变成3D艺术品的秘密武器

3分钟魔法&#xff1a;把化学分子变成3D艺术品的秘密武器 【免费下载链接】blender-chemicals Draws chemicals in Blender using common input formats (smiles, molfiles, cif files, etc.) 项目地址: https://gitcode.com/gh_mirrors/bl/blender-chemicals 还在为枯燥…...

用C++和libmodbus库封装一个可复用的Modbus客户端类(TCP/RTU双模式)

用C和libmodbus库封装可复用的Modbus客户端类&#xff08;TCP/RTU双模式&#xff09; 在工业自动化和物联网项目中&#xff0c;Modbus协议因其简单可靠的特点成为设备通信的事实标准。但每次新项目都要从头实现底层通信逻辑&#xff0c;不仅效率低下&#xff0c;还容易引入重复…...

2026年株洲老人小孩都能用专业床垫有哪些?

引言随着生活水平的提高&#xff0c;人们对床垫的要求也越来越高。特别是对于老人和小孩这两类特殊人群&#xff0c;选择一款合适的床垫尤为重要。本文将介绍几款适合老人和小孩使用的专业床垫&#xff0c;其中包括德国美得丽&#xff08;Musterring&#xff09;床垫。德国美得…...

C++ 资源操作注意事项(内存、文件、数据库、网络...)

文章目录1. 资源类型2. 资源可变性3. 资源分配策略4. 资源访问权限5. 资源所有权转移6. 资源获取和释放7. 生命周期管理8. 资源有效性检查9. 资源竞争&#xff08;多线程安全性&#xff09;10. 资源泄漏防范11. 异常安全性在C中&#xff0c;确保资源的有效和安全管理至关重要。…...

Speechless:一键永久保存你的微博记忆,免费导出高质量PDF

Speechless&#xff1a;一键永久保存你的微博记忆&#xff0c;免费导出高质量PDF 【免费下载链接】Speechless 把新浪微博的内容&#xff0c;导出成 PDF 文件进行备份的 Chrome Extension。 项目地址: https://gitcode.com/gh_mirrors/sp/Speechless 在数字记忆日益珍贵…...