2.28CACHE,虚拟存储器

news2024/11/28 16:45:00
  • 主存储器,简称主存。CPU可以直接随机地对其进行访问也可以和高速缓存器及辅助存储器交换数据。

  • 2> 辅助存储器,简称辅存,不能与CPU直接相连,用来存放当前暂时不用的程序和数据

  • 3> 高速缓冲存储器,位于主存和CPU之间,用来存放正在执行的程序段和数据
     

  •  随机存储器(RAM)。存储器的任何一个存储单元的内容都可以随机存取,而且存取时间与存取单元的物理位置无关,主要用作主存或高速缓冲存储器。

    2> 只读存储器(ROM)。存储器的内容只能随机读出而不能写入。。即使断电,内容也不会丢失。

    3> 串行访问存储器。对存储单元进行读/写操作时,需按其物理位置的先后顺序寻址,包括顺序存取存储器(如磁带)与直接存取存储器(如磁盘)。

位扩展是地址线占用,然后扩展每位的字节,即接到数据总线上进行利用

字扩展是地址线没用完,然后把地址线进行译码器去选,可以扩充容量

位扩展扩展的是单价,字扩展扩展的是数量

1K是2^10,那么2k就是2^11

片选线就是去选哪个芯片进行操作,程序分为两种,一种是系统程序区,另一种是用户程序区,选用不同的芯片,一般系统CPU地址线数量大于芯片要求的数量,因为要实现片选,也是字扩展

主存与CPU连接,外存(辅存)不与CPU连接

这个就是算完后,系统程序区的大小比用户程序区大,所以分配给系统程序区的地址线数量就多,ROM芯片的大小也就大。一整个主存存储系统与用户,分别用RAM与ROM进行存储,然后就是CPU与这一些列芯片进行连接(这一系列芯片就是主存)。

主存地址物理上是在不同芯片的,可能是不连续的。但逻辑地址是连续的

这个就是说主存逻辑地址上是连续的一片,即6000H~6BFFH,但是划分为系统程序区以及用户程序区,用不同的芯片进行存储。对于CPU的地址线,有一些地址线通过译码驱动部分电路(即译码器)来进行对芯片片选,译码器还需要MREQ来进行使能访问,一共用三个芯片。

以上是说那一系列芯片构成一个主存,逻辑指令地址在一个主存上连续,可能在不同芯片不连续,但不影响。而多体并行存储器是说逻辑地址连续,但是是在不同的主存上的(不管主存内是怎么实现的),插了多个主存条后,进行编址有高位和低位,低位的话就是连续的逻辑地址访问的是不同的主存条,高位的话就不是,因此低位的话可以加快存储周期,而高位的话只是单纯的扩展内存容量。存储周期就是包含写以及恢复,如果低位的话,逻辑上的连续就可以实现存储周期等于写

交叉存储器实际上是一种模块式的存储器,它能并行执行多个独立的读/写操作。

主存地址大小是256MB,1M是2^20,256=2^8,所以主存一共需要28位二进制,由于CACHE行长为64B,CHCHE里要记录主存字块标记,所以主存的字块标记有6位

 

段页式虚拟存储器

把程序按逻辑结构分段,每段再划分为固定大小的页
主存空间也划分为大小相等的页,
程序对主存的调入、调出仍以页为基本传送单位。
每个程序对应一个段表,每段对应一个页表
虚拟地址:段号+段内页号+页内地址

存储器的层次结构主要体现在 Cache-主存和 主存-辅存这两个存储层次上。
Cache-主存层次在存储系统中主要 对CPU访存起加速作用,即从整体运行的效果分析,CPU访存速度加快,接近于 Cache的速度,而寻址空间和位价却接近于主存。
主存-辅存层次在存储系统中主要 起扩容作用,即从程序员的角度看,他所使用的存储器的容量和位价接近于辅存,而速度接近于主存。
综合上述两个存储层次的作用,从整个存储系统来看,就达到了速度快、容量大、位价低的优化效果。
主存与 Cache之间的信息调度功能全部由硬件自动完成。而主存与辅存层次的调度目前广泛采用虚拟存储技术实现,即将主存与辅存的一部分通过软/硬结合的技术组成虚拟存储器,程序员可用这个比主存实际空间(物理地址空间)大得多的虚拟地址空间(逻辑地址空间)编程,当程序运行时,再由软/硬件自动配合完成虚拟地址空间与主存实际物理空间的转换。因此,这两个层次上的调度或转换操作对于程序员来说都是透明的。

存取周期和存取时间的主要区别是:存取时间仅为完成一次操作的时间;而存取周期不仅包含操作时间,而且包含操作后线路的恢复时间,即存取周期=存取时间+恢复时间

页面不能设置得过大,也不能设置得过小。因为页面太小时,平均页内剩余空间较少,可节省存储空间,但会使得页表增大,而且页面太小时不能充分利用访存的空间局部性来提高命中率;页面太大时,可减少页表空间,但平均页内剩余空间较大,会浪费较多存储空间,页面太大还会使页面调入/调出的时间较长

发生取指令 Cache缺失的处理过程是什么?

1)程序计数器恢复当前指令的值。
2)对主存进行读的操作。
3)将读入的指令写入 Cache中,更改有效位和标记位。
4)重新执行当前指令。

就是说A1和A2地址上的数据进行OP操作,然后存到A3位置上,A4是下一个地址

这个图就是说地址是那6位,这6位确定64个,然后每个上都有存储数据(比如00FF……)

每层往下的那个1都被保留,目的就是为了进行区分,这样做的话,虽然哦操作码的位数增长了,但实际变化的操作码数量并没有发生变化,所以对于每个地址数量的操作码而言,可进行的操作数量并没有发生太大变化,增长操作码,就会减少地址码,那么就是压缩了寻址空间

指令字长固定为16位(就是说操作码+地址码长度为16),要15条三地址指令,那么至少需要4位可变操作码。需要的操作数越多,那么需要的可变操作码数量也就越多。

若采用定长操作码的话,操作码的数量取决于最长的、需要的操作数。这样的话对于不需要那么多的操作的指令就造成了浪费

对于三地址指令,四位可变的,需要15种,那么会留出一种;对于12条二地址,至少需要4位可变的,需要4位,留出4种;对于一地址指令,62种,至少要6位,上层留出4种,则本层只需要4位,所以最后留出2种

 

采用扩展操作码后,就可以使寻址范围小的数据有长的操作码,最终目的以及实现效果是有效缩短指令长度

指令转移里的地址码就是指令的地址,而不是数据、操作数的地址

寻址特征就是说怎么找到操作数的位置,形式地址的目的是为了找到操作数的真实地址,

指令寻址方式(存放)

按字节编址,按字编址

虚拟存储器

什么是页表基址寄存器

CACHE映射

 

CACHE写策略

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

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

相关文章

Cesium:按行列绘制3DTiles的等分线

作者:CSDN @ _乐多_ 本文将介绍如何使用 Cesium 引擎根据模型的中心坐标,半轴信息,绘制 3DTiles 对象的外包盒等分线。 外包盒是一个定向包围盒(Oriented Bounding Box),它由一个中心点(center)和一个包含半轴(halfAxes)组成。半轴由一个3x3的矩阵表示,这个矩阵是…

基于Spring boot食品安全信息管理系统

摘 要 食品安全信息管理系统设计的目的是为用户提供食品信息、科普专栏、食品检测、检测结果、交流论坛等方面的平台。 与PC端应用程序相比,食品安全信息管理系统的设计主要面向于用户,旨在为管理员和用户提供一个食品安全信息管理系统。用户可以通过AP…

openEuler 22.03(华为欧拉)一键安装 Oracle 19C(19.22) 数据库

前言 Oracle 一键安装脚本,演示 openEuler 22.03 一键安装 Oracle 19C 单机版过程(全程无需人工干预):(脚本包括 ORALCE PSU/OJVM 等补丁自动安装) ⭐️ 脚本下载地址:Shell脚本安装Oracle数据…

echarts多个折线图共用一个x轴和tooltip组件

实现效果 根据接口传来的数据&#xff0c;使用echarts绘制出&#xff0c;共用一个x轴的图表 功能&#xff1a;后端将所有数据传送过来&#xff0c;前端通过监听选中值来展示对应的图表数据 数据格式&#xff1a; 代码&#xff1a; <template><div><div clas…

基于SpringCloud的菜谱美食交流系统Eureka

本技术是java平台的开源应用框架&#xff0c;其目的是简化Sping的初始搭建和开发过程。默认配置了很多框架的使用方式&#xff0c;自动加载Jar包&#xff0c;为了让用户尽可能快的跑起来spring应用程序。 本选题致力于开发一个菜谱交流系统&#xff0c;旨在帮助越来越多的人可以…

【计算机视觉】Gaussian Splatting源码解读补充

本文旨在补充gwpscut创作的博文学习笔记之——3D Gaussian Splatting源码解读。 Gaussian Splatting Github地址&#xff1a;https://github.com/graphdeco-inria/gaussian-splatting 论文地址&#xff1a;https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/3d_gauss…

第六篇:视频广告格式上传指南(上) - IAB视频广告标准《数字视频和有线电视广告格式指南》

第六篇&#xff1a; 视频广告格式和上传指南&#xff08;上&#xff09; --- 我为什么要翻译介绍美国人工智能科技公司IAB系列技术标准&#xff08;2&#xff09; 流媒体数字视频的广告格式分为线性和非线性两大类。任何一个广告都可以与显示在视频播放器外部的伴随横幅一起提…

电脑数据安全新利器:自动备份文件的重要性与实用方案

一、数据安全的守护神&#xff1a;自动备份文件的重要性 在数字化时代&#xff0c;电脑中的文件承载着我们的工作成果、个人回忆以及众多重要信息。然而&#xff0c;数据丢失的风险无处不在&#xff0c;无论是硬件故障、软件崩溃&#xff0c;还是恶意软件的攻击&#xff0c;都…

nodejs基于vue班级管理系统的设计与实现-flask-django-python-php

根据现实需要&#xff0c;此系统我们设计出一下功能&#xff0c;主要有以下功能模板。 1.学生功能&#xff1a;首页、个人中心、课程信息管理、学生成绩管理、班级事件管理、班费支出管理、班级相册管理、班级音乐角管理。 2.管理员功能&#xff1a;首页、个人中心、班级管理、…

Qt5.9.6+VS2015 部署PCL1.8.1

本文系转载&#xff0c;如侵权请告知删除。原博文链接&#xff1a;https://blog.csdn.net/jepco1/article/details/80752954 0 编译环境 所需软件包及其版本 Qt5.9.6 msvc2015_64 VS2015 VTK 8.0.0 https://gitlab.kitware.com/vtk/vtk/tree/v8.0.0 PCL1.8.1 https://github.c…

[PwnThyBytes 2019]Baby_SQL

[PwnThyBytes 2019]Baby_SQL 查看源码发现 下载源码&#xff0c;首先观察index.php 首先进入index.php&#xff0c;会执行session_start();启动session这里通过foreach将所有的环境变量的值都遍历了一遍&#xff0c;并且都使用了addslashes()进行转义&#xff0c;然后就定义了…

SpringCloud入门(1) Eureka Ribbon Nacos

这里写目录标题 认识微服务SpringCloud 服务拆分和远程调用服务拆分案例实现远程调用 RestTemplate Eureka注册中心Eureka的结构和作用搭建eureka-server服务注册服务发现 Ribbon负载均衡 LoadBalancedLoadBalancerIntercepor源码解析负载均衡策略饥饿加载 Nacos注册中心安装与…

【Node.js从基础到高级运用】十五、单元测试与集成测试

引言 在Node.js开发过程中&#xff0c;测试是确保代码质量和功能正确性的关键步骤。单元测试和集成测试是最常见的测试类型。下面我们将使用Jest框架来进行测试。 单元测试 单元测试是指对软件中的最小可测试单元进行检查和验证。在Node.js中&#xff0c;这通常指的是函数或者…

将html网页展示的图表,下载到PPT文档内,以图片的形式展示在PPT内

使用到的工具有&#xff1a; 开发工具&#xff1a;IDEA 报表开发工具&#xff1a;帆软10.0.19 1、针对帆软报表[普通报表]的设置 1.1首先选中在帆软里制作好的报表&#xff0c;选择模板web属性 1.2.选择数据分析模式&#xff0c;添加一个事件设置&#xff0c;该事件应该设置“…

抖音视频爬虫工具安装|视频无水印批量下载软件

抖音视频批量下载工具安装教程 想要快速、便捷地批量下载抖音视频吗&#xff1f;不用担心&#xff0c;我们为您提供了简单易行的安装教程&#xff0c;让您轻松体验抖音视频的下载乐趣。q1977470120跟随以下步骤&#xff0c;一起来安装抖音视频批量提取工具吧&#xff01; 步骤…

Android 系统源码中添加可执行程序

Android 系统源码中添加可执行程序 本文基本Android 10的源码环境 android 添加的可执行程序&#xff0c;可以分为两类&#xff1a; * C/C 可执行程序 * Java 可执行程序 &#xff08;jar&#xff09;在了解如何给 android 添加可执行程序前&#xff0c;我们需要了解一下ARM…

云原生相关知识

一、kubernetes 1 概述 Kubernetes&#xff08;也称 k8s 或 “kube”&#xff09;是一 个​​开源​​的容器编排平台&#xff0c;可以自动完成在部署、管理和扩展容器化应用过程中涉及的许多手动操作。 我们常说的编排的英文单词为 “Orchestration”&#xff0c;它常被解释…

Linux中,黑窗口使用vi编辑文件

linux用的比较少&#xff0c;一般我只用来部署项目的时候安装环境和传文件&#xff0c;好多乱七八糟的命令&#xff0c;好多东西&#xff0c;不会啊啊啊啊啊啊啊。 这个改文件几百年才用一次,我只想编辑一下文件&#xff0c;百度搜出来一大堆命令&#xff0c;各种模式什么的&am…

【JVM】如何判断堆上的对象没有被引用?

如何判断堆上的对象没有被引用&#xff1f; 常见的有两种判断方法&#xff1a;引用计数法和可达性分析法。 引用计数法会为每个对象维护一个引用计数器&#xff0c;当对象被引用时加1&#xff0c;取消引用时减1。 引用计数法的缺点-循环引用 引用计数法的优点是实现简单&…

qt-pdf-viewer-library 编译过程记录

1.qtpdfviewerinitializer.h 中 类模板问题需要修改为下面代码: https://github.com/develtar/qt-pdf-viewer-library 下载代码&#xff1a; 编译出现错误 修改代码&#xff0c;如下: 2.无法触发onViewerLoaded 事件&#xff0c;就是界面无法显示PDF文件 修改下面代码&#…