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

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)。

结语

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

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

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


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

相关文章:

  • Golang 并发机制-6:掌握优雅的错误处理艺术
  • 洛谷网站: P3029 [USACO11NOV] Cow Lineup S 题解
  • 【技海登峰】Kafka漫谈系列(二)Kafka高可用副本的数据同步与选主机制
  • openai agent第二弹:deepresearch原理介绍
  • 【自然语言处理(NLP)】NLP实战:IMDB影评情感分析项目
  • trinitycore服务器离线,原来是mysql里数据库flag设置为2离线状态了
  • STM32的一些知识技巧
  • 关于edu的信息收集的一次笔记分享
  • CEF127 编译指南 Linux篇 - 拉取CEF源码(五)
  • python实现自动计算排工期
  • 如何通过 ADB 安装 xapk
  • 【前端】Vue3+Vite如何进行多环境配置呢
  • Cobalt Strike 4.8 用户指南-第十一节 C2扩展
  • OpenAI Whisper 语音识别 模型部署及接口封装
  • AOSP的同步问题
  • gitee:创建仓库,存入本地文件至仓库
  • k8s Init:ImagePullBackOff 的解决方法
  • go-zero使用自定义模板实现统一格式的 body 响应
  • 如何利用Java爬虫获取1688关键词接口数据
  • Linux常用操作之vim快捷操作
  • 【QNX+Android虚拟化方案】129 - USB眼图参数配置
  • Unity ShaderLab 实现3D物体描边
  • Mybatis:CRUD数据操作之单条件查询
  • YOLO模型训练后的best.pt和last.pt区别
  • HTML技术深度解析:构建现代网页的基石
  • redis-bitmap使用详解