26考研——存储系统(3)

408答疑


文章目录

  • 一、存储器概述
  • 二、主存储器
  • 三、主存储器与 CPU 的连接
  • 四、外部存储器
  • 五、高速缓冲存储器
  • 六、虚拟存储器
  • 七、参考资料
    • 鲍鱼科技课件
    • 26王道考研书
  • 八、总结
    • 复习提示
    • 思考题
    • 常见问题和易混淆知识点


一、存储器概述

  • 文章链接: 点击跳转

二、主存储器

  • 文章链接: 点击跳转

三、主存储器与 CPU 的连接

  • 文章链接: 点击跳转

四、外部存储器

  • 文章链接: 点击跳转

五、高速缓冲存储器

  • 文章链接: 点击跳转

六、虚拟存储器

  • 文章链接: 点击跳转

七、参考资料

鲍鱼科技课件

b站免费王道课后题讲解:
在这里插入图片描述

网课全程班:
在这里插入图片描述

26王道考研书


八、总结

复习提示

本章是历年命题重点,特别是有关 Cache 和虚拟存储器的考点容易出综合题。此外,存储器的特点、存储器的扩展(芯片选择、连接方式、地址范围等)、交叉存储器、Cache 的相关计算与替换算法、虚拟存储器与 TLB 也容易出选择题。读者应在掌握基本原理的基础上,多结合习题进行反复训练,以加深巩固。另外,读者需掌握存在 Cache 和 TLB 的计算机中的地址翻译与 Cache 映射问题,也建议结合 OS 复习。

思考题

  1. 存储器系统为何要分这些层次?计算机如何管理这些层次?
    • Cache-主存层在存储系统中主要对 CPU 访存起加速作用,即从整体运行的效果看,CPU 访存速度加快,接近于 Cache 的速度,而寻址空间和位价却接近于主存。
    • 主存-辅存层在存储系统中主要起扩容作用,即从程序员的角度看,他所使用的存储器的容量和位价接近于辅存,而速度接近于主存。因此从整个存储系统来看,就达到了速度快、容量大、位价低的效果。
    • 主存与 Cache 之间的信息调度全部由硬件自动完成。
    • 而主存与辅存的信息调度则采用虚拟存储技术实现,即将主存与辅存的一部分通过软/硬结合的技术组成虚拟存储器,程序员可用这个比主存实际空间(物理地址空间)大得多的虚拟地址空间(逻辑地址空间)编程,当程序运行时,再由软/硬件自动配合完成虚拟地址空间与主存实际物理空间的转换。
  2. 影响 Cache 性能的因素有哪些?
    • 决定 Cache 系统访存效率重要因素是命中率,它与很多因素有关:
      • 命中率与映射方式有关,全相联映射方式的命中率最高,直接映射方式的命中率最低。
      • 命中率与 Cache 容量有关,显然 Cache 容量越大,命中率就越高。
      • 命中率还与主存块(或 Cache 行)的大小有关,主存块的大小要适中。
    • 除上述因素外,系统是采用单级还是采用多级 Cache、数据 Cache 和指令 Cache 是分离还是合在一起、主存-总线-Cache-CPU 之间采用什么架构等,都会影响 Cache 的总体性能。
  3. 虚拟存储系统的页面是设置得大一些好还是设置得小一些好?
    • 页面大小要适中。
    • 页面大小时,平均页内剩余空间较小,可节省存储空间,但会使得页表增大,页面大小时也不能充分利用空间局部性来提高命中率;
    • 页面太大时,可减少页表空间,但平均页内剩余空间较大,会浪费较多存储空间,页面太大还会使页面调入/调出的时间较长。

常见问题和易混淆知识点

  1. Cache 行的大小和命中率之间有什么关系?
    • Cache 行的长度较大时,能充分利用程序访问的空间局部性,使一个较大的局部空间被一起调到 Cache 中,因此可以增加命中机会。但是,行长也不能太大,主要原因有两个:

      • 行长大使失效损失变大。也就是说,若未命中,则需花更多时间从主存读块。
      • 行长太大,Cache 项数变少,因此命中的可能性变小。
    • Cache 行的长度较小时,命中率会很低,但好处是存取块的代价较小。

  2. 发生取指令 Cache 缺失的处理过程是什么?
    • 程序计数器恢复当前指令的值。
    • 对主存进行读的操作。
    • 将读入的指令写入 Cache 中,更改有效位和标记位。
    • 重新执行当前指令。
  3. Cache 总容量与映射方式有何种关系?
    • C a c h e 总容量 = [ 每个 C a c h e 行标记项的容量(有效位、脏位、 L R U 替换位、标记位) + C a c h e 行长 ] × C a c h e 总行数 Cache 总容量 = [每个 Cache 行标记项的容量(有效位、脏位、LRU 替换位、标记位)+ Cache 行长] × Cache 总行数 Cache总容量=[每个Cache行标记项的容量(有效位、脏位、LRU替换位、标记位)+Cache行长]×Cache总行数

    • 其中,有效位和标记位是所有 Cache 所必需的;脏位只在 Cache 采用回写法时才需要设置;LRU 替换位只在 Cache 采用 LRU 替换算法时才需要设置。

    • 有效位:占1位,用于说明 Cache 行中的数据是否有效。

    • 脏位(修改位):占 1 位,回写法才需要设置,用以说明 Cache 行中的数据是否被修改过。

    • LRU 替换位:位数为 log ⁡ 2 \log_2 log2(组内块数),用于 LRU 替换算法中的访问计数。

    • 标记位 Tag:主存地址结构中的标记字段,其位数取决于所用的映射方式,用于匹配 Cache 行对应主存中的哪个块。

    • Cache 容量与映射方式的具体关系如下图所示。

在这里插入图片描述

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

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

相关文章

.NET 6 + Dapper + User-Defined Table Type

大家都知道,对于SQL Server IN是有限制条件的,如果IN里面的内容过多,在执行的时候会被自动截断,因而导致查询到的结果不是实际需要的结果。 select * from Payments where Id in (1,2,3,4,...) 为了解决上面的限制,可以…

MySQL 8(Ubuntu 18.04.6 LTS)安装笔记

一、前言 其实之前已经写过一篇笔记【MySQL 8.0.34(x64)安装笔记】。机缘巧合,这次遇到的环境是Ubuntu 18.04 LTS,相比Windows平台的安装,对mysql的版本以及依赖的选择,稍微要窄一些。特作笔记。 二、准备…

学习 Apache Kafka

学习 Apache Kafka 是一个很好的选择,尤其是在实时数据流处理和大数据领域。以下是一个系统化的学习建议,帮助你从入门到进阶掌握 Kafka: 1. 先决条件 在开始 Kafka 之前,确保你具备以下基础: Java 基础:K…

使用 binlog2sql 闪回 MySQL8 数据

【说明】 MySQL服务器版本 8.0.26 mysql> SELECT version(); ----------- | version() | ----------- | 8.0.26 | -----------Python 版本 Python 3.8.10 [infuq ~]# python -V Python 3.8.10【安装】 binlog2sql 官方地址 1.安装 binlog2sql [infuq ~]# git clone …

JavaScript 异步编程与请求取消全指南

JavaScript 异步编程与请求取消全指南 涵盖:同步/异步、Promise、async/await、AbortController、前后端协作 一、同步与异步 1. 同步(Synchronous) 定义:代码按顺序执行,前一步完成才能执行下一步。特点&#xff1…

永久缓存 Git 凭证

永久缓存 Git 凭证 打开终端或命令行工具。 执行以下命令,设置 Git 使用 store 凭证帮助程序: bash git config --global credential.helper store第一次执行 git pull 时输入账号密码。之后,所有需要凭证的操作都将自动使用存储的凭证&…

力扣-48.旋转图像

题目描述 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 class Solution { public:void rotate(vector<vector<int>…

Qt ModbusSlave多线程实践总结

最近项目中用到了ModbusSlave&#xff0c;也就是Modbus从设备的功能&#xff0c;之前用的基本都是master设备&#xff0c;所以读取数据啥的用单线程就行了&#xff0c;用 void WaitHelper::WaitImplByEventloop(int msec) {QEventLoop loop;QTimer::singleShot(msec, &loop…

opencv--图像

像素(像素点) 定义&#xff1a; Pixel 是 Picture Element&#xff08;图像元素&#xff09;的缩写&#xff0c;是数字图像中最小的独立单位。每个像素代表图像中的一个点的颜色和亮度信息。 关键特性&#xff1a; 颜色&#xff1a;通过不同的色彩模型&#xff08;如RGB、CMYK…

记录学习汇编语言02+各种寄存器分类

8086cpu是十六位的 然后寄存器能存八位 所以分为高八位低八位 高八位在下面低八位在上面 从下往上读&#xff08;从地址小的地方开始读&#xff09; 8086cpu种有两个和栈相关的寄存器 栈段寄存器ss&#xff08;栈顶的段寄存器&#xff09; 栈顶指针寄存器sp&#xff08;…

OpenCV 图形API(53)颜色空间转换-----将 RGB 图像转换为灰度图像函数RGB2Gray()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 将图像从 RGB 色彩空间转换为灰度。 R、G 和 B 通道值的常规范围是 0 到 255。生成的灰度值计算方式如下&#xff1a; dst ( I ) 0.299 ∗ src…

(51单片机)LCD显示数据存储(DS1302时钟模块教学)(LCD1602教程)(独立按键教程)(延时函数教程)(I2C总线认识)(AT24C02认识)

目录 演示视频&#xff1a; 源代码 main.c LCD1602.c LCD1602.h AT24C02.c AT24C02.h Key.c Key.h I2C.c I2C.h Delay.c Delay.h 代码解析与教程&#xff1a; Dealy模块 LCD1602模块 Key模块 I2C总线模块 AT24C02模块 /E2PROM模块 main模块 演示视频&#xff1a; E2…

电子病历高质量语料库构建方法与架构项目(数据遗忘篇)

引言 在人工智能与医疗健康的深度融合时代,医疗数据的价值与风险并存。跨机构和平台的医疗数据共享对于推动医学研究、提高诊断精度和实现个性化治疗至关重要,但同时也带来了前所未有的隐私挑战。先进的AI技术可以从理论上去标识化的医疗扫描中重新识别个人身份,例如从MRI数…

CentOS创建swap内存

服务器版本为CentOS7 一、检查现有 swap 空间 sudo swapon --show如果系统中没有 swap 空间或者现有的 swap 空间不足&#xff0c;可以继续后续步骤来创建 swap 空间。 二、创建 swap 文件&#xff08;推荐 2GB 作为示例&#xff09; sudo dd if/dev/zero of/swapfile bs1M …

在Android中如何使用Protobuf上传协议

在 Android 中使用 Protobuf&#xff08;Protocol Buffers&#xff09;主要分为以下几个步骤&#xff1a; ✅ 1. 添加 Protobuf 插件和依赖 在项目的 build.gradle&#xff08;Project 级&#xff09;文件中添加 Google 的 Maven 仓库&#xff08;通常默认已有&#xff09;&am…

Android学习总结之ANR问题

一、ANR 基础概念与核心原理&#xff08;必考题&#xff09; 1. 什么是 ANR&#xff1f;为什么会发生 ANR&#xff1f; 答案要点&#xff1a; 定义&#xff1a;ANR&#xff08;Application Not Responding&#xff09;即应用无响应&#xff0c;是 Android 系统检测到主线程&…

视频监控从安装到优化的技术指南,视频汇聚系统EasyCVR智能安防系统构建之道

在当今数字化安防时代&#xff0c;监控系统的安装与配置对于保障各类场所的安全起着至关重要的作用。从前期规划到实际安装&#xff0c;再到后期的功能实现与维护&#xff0c;每一个环节都不容小觑。本文将详细阐述监控安装过程中的关键要点&#xff0c;并结合EasyCVR平台功能&…

如何避免IDEA每次打开新项目都重复配置Maven?

每次打开新项目都要重新设置Maven路径&#xff1f;每次导入工程都要手动调整settings.xml&#xff1f;如果你也受够了IDEA这种“健忘”行为&#xff0c;那么这篇文章就是为你准备的&#xff01;今天我们就来彻底解决这个问题&#xff0c;让IDEA记住你的Maven配置&#xff0c;一…

PostgesSQL外部数据封装FDW

PostgesSQL外部数据封装FDW 1. FDW外部数据配置&#xff08;单表&#xff09;1.1 远端数据库创建测试表1.2 安装扩展postges\_fdw1.3 创建外部服务SERVER1.4 创建用户映射USER MAPPING1.5 创建远程表FOREIGN TABLE1.6 数据库更新测试 2. FDW外部数据配置&#xff08;用户&#…

策略模式(Strategy Pattern)详解

文章目录 1. 什么是策略模式&#xff1f;2. 为什么需要策略模式&#xff1f;3. 策略模式的核心概念3.1 策略&#xff08;Strategy&#xff09;3.2 具体策略&#xff08;Concrete Strategy&#xff09;3.3 上下文&#xff08;Context&#xff09; 4. 策略模式的结构5. 策略模式的…