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

机组存储系统

局部性

理论

程序执行,会不均匀访问主存,有些被频繁访问,有些很少被访问

时间局部性

被用到指令,不久可能又被用到

产生原因是大量循环操作

空间局部性

某个数据和指令被使用,附近数据也可能使用

主要原因是顺序存放,数据一般以数组,向量,表形式存储

存储分类

作用分类

主存

辅存

高速缓冲存储器(Cache),位于主存和CPU之间,现代计算机常将其放于CPU

存取方式分类

随机存储器(RAM)

存储单元可以随机存取,存取时间与存储单元物理位置无关,主要用于主存或高速缓冲器

只读存储器(ROM)

只能读不能写,断电内容不丢,存放固定不变程序,与RAM共同作为主存

广义上只读可以通过电擦除写入,写入速度比读取慢的多

ROM和RAM都是随机存取

串行访问存储器:按其物理位置先后顺序寻址,包括顺序存取存储器(磁带)和直接存取存储器(磁带,光盘)

顺序存储器只能按循序访问,存取时间长短与物理位置有关,存取速度慢

直接存取存储器是介于顺序访问和随机访问之间,先进行大区域查找,后再小区域顺序访问

按信息可保存分类

易失性存储器:RAM,断电后消失

非易失性存储器:ROM

破坏性读出:存储信息读出后,原存储信息破坏

非破坏读出

破坏性读出存储器,必须紧接一个再生操作,以便恢复破坏信息

性能指标

存储容量=存储字数*字长(如1M*8位)

存储字数表示存储器的地址空间,字长是一次存取操作数据量

单位成本:每位价格=总成本/总容量

存储速度:数据传输率=数据宽度/存取周期(存储周期)

存取时间=启动一次存储器操作到完成该操作经历时间,分为读出时间和写入时间

存取周期=读写周期或访问周期,完整读写一次的事件,即连续两次访问操作之间最小时间间隔

主存带宽:数据传输率,表示每秒从主存进出信息最大数量

多级层次存储系统

虚拟存储系统使编程可用地址远大于主存空间

主存

主存有DRAM实现,Cache由SRAM实现

DRAM价格低于SRAM,速度慢于SRAM,都是易失性

SRAM(静态随机存储器)

DRAM(动态随机存储器)

栅极电容的电荷存储

其电荷只能维持1-2ms,电源不断电,信息会自动消失,每隔一段时间需要刷新,通常取2ms,称为刷新周期

重合法地址译码

重合法将M位地址分成接近两段

一段用于水平作X地址线

一段用于垂直作y地址线

刷新一般按行刷新,为减少刷新开销,行数要少一些

三种刷新方法

1.集中刷新:利用固定时间,一次对存储器所有行逐一再生

存在“死时间”

2.分散刷新:把每行是刷新散到各个工作周期。

一个周期分为两个,前半用于读写,后半用于刷新

加长了存取时间

3.异步刷新:前两种方法结合

刷新周期除以行数,得到两次刷新时间间隔

缩短了死时间,充分利用间隔2ms

注意问题

1.刷新对CPU透明的,刷新不依赖与外部访问

2.动态RAM刷新单位为行,由芯片内部自行生成行地址

3.刷新不需要选片,整个存储器所有芯片同时刷新

DRAM读写周期

SRAM和DRAM比较

SRAMDRAM
存储双稳态触发器栅极电容
破坏性读出
需要刷新不用
送行列地址同时送两次送(地址复用技术)
运行速度
集成度
存储成本
用途Cache内存

存储器芯片的内部结构

由存储体,IO读写电路,地址移码和控制电路等组成

存储体(存储矩阵):是存储单元集合,有行选择线(X)和列选择线(Y)来选择访问单元,存储器同一行和同一列上的位同时读出

地址译码器:将地址转换成输出线的高电平

IO控制电路:控制被选中的单位的读出和写入,有放大信息作用

片选控制信号:访问某个字,必须选中该存储字所在芯片,而其他芯片不被选中

读写控制信号:根据CPU读写命令进行读写

ROM(只读存储器)

非易失

随机访问

类型

掩模式只读存储器(MROM)

厂家直接写入,无法改变

一次可编程只读存储器(PROM)

用户写入,写入后无法改变

可擦除可编程只读存储器(EPROM)

可改且可写,不能作为RAM

Flash存储器(闪存)

由MOS管组成,是半导体,非易失存储器,随机访问,可代替外存

可在不加电保存信息

可读且可写,读速度快于写

固态硬盘(SSD)

控制单元和存储单元组成

长期保存信息,可改和可写

主存组成

存储单元(存储0或1记忆单元)构成的存储矩阵(存储体)是存储器的核心部分

记忆单元是具有两种稳态的表示0或1的物理器件

为了获取存储器信息,需要对存储单元编号

指令执行过程

1.访问主存时,CPU把访问单元的地址送到MAR

2.通过地址线将主存地址送到地址寄存器,以便地址译码器进行译码选中单元

3.同时CPU将读写信号通过控制线送到主存的读写控制电路

如果是写操作,CPU将写的信息送到MDR,在读写控制电路控制下,经数据线将信号写入选定单元

如果是读操作,主存读出选中单元数据送到MDR

地址线与MAR宽度相同,数据线和MAR宽度相同

DMAR芯片容量大,地址位数多,行地址和列地址通过相同引脚先后两次输入,地址引脚数可减少一半

RAM和ROM区别

ROMRAM
易失性非易失易失
访问随机访问随机访问
位置主存Cache
存取只读存取

例题

读写控制线也可以是一根 

多模块存储器

单体多字存储器

多体并行存储器

高位交叉编址(顺序方式)

低位交叉编址(交叉方式)

主存与CPU连接

连接原理

主存通过数据总线,地址总线,控制总线与CPU连接

数据总线位数与工作频率乘积正比于数据传输率

地址总线位数决定可寻址最大内存空间

芯片扩展技术

多个芯片集成到内存条

主存容量的扩展

位扩展法

字扩展法

字位同时扩展法

画法

外存

硬盘设备(随机访问)组成

 硬盘存储器

由磁盘驱动器,磁盘控制器和盘片组成

存储区域

一个硬盘由若干记录面,每个记录面有若干个磁道,磁道又划分成若干扇区

扇区(块)是磁盘读写最小单位,磁盘按块存取

磁头数:记录面数,表示硬盘有多少个磁头

柱面数:每面盘面有多少磁道

扇区数:每条磁道有多少扇区

位密度

单位长度磁道能记录二进制位数

在磁盘各磁道记录信息量相同,固位密度从外向内地址,所以最内磁道位密度最大

一般泛指位密度,指最内圈磁道位密度

磁记录原理

原理:磁头和磁性记录介质相对运动,通过电磁转换完成读写操作

磁记录方式:调频制(FM)和改进型调频制(MFM)记录方式

磁盘地址

磁盘阵列

RAID是将多个独立物理磁盘组成逻辑磁盘

固态硬盘(SSD)

基于闪存技术

随机读写不需要机械操作,速度明显高于磁盘,随机写比较慢

由一个或多个闪存芯片和闪存翻译器组成

容易磨损

访问一个扇区平均存取时间

访问一个扇区的平均延迟时间(旋转半周的时间=1/转速/2)

+传输时间(1/转速/磁道包含扇区数)

+寻道时间(一般题目给出)

(+磁盘延迟器延迟)

rpm为转/分,一般要除以60用转/秒计算

高速缓冲存储器(Cache)

高速缓冲存储器利用局部性原理,把程序中正在使用的部分数据存放在Cache中,使CPU访存操作大多针对Cache

与CPU和主存数据交换

CPU和Cache以字为单位进行数据交换

Cache和主存用块为单位进行数据交换

基本工作原理

CPU访问主存,Cache硬件判断是否命中Cache(组相联)

Cache发出访问请求,访问主存组地址对应的Cache,然后比较Tag(标记)

若匹配且有效位为1,将地址转换成Cache地址,与主存无关

否则,则访问主存,并把块全部从主存调入Cache

若Cache已满,就用替换算法进行替换

Cache和主存之间地址映射

Cache有一个有效位

直接映射

主存的每一块只能装入Cache的唯一位置,若该位置有内容,产生块冲突,原先的块无条件替换出去(无须使用替换算法)

如果相等,且有效位为1,则访问Cache命中

如果不相等或有效位为0,则不命中,从主存取一块送到对应Cache行中,并将有效位置1,并将标记设置为地址高t位,同时将地址内容送到CPU

全相联映射

组相联映射

每组Cache行数量越大,发生块冲突概率越低

三种映射之间关系

直接映射

块冲突概率高,空间利用率最低

不断替换,降低命中率

全相联映射

块冲突概率低,空间利用率高,命中率高

地址变换速度慢,实现成本高

组相联映射

组间用直接映射,组内用全相联映射

命中率高,电路简单

Cache主存块的替换算法

采用全相联和组相联映射方法,从主存向Cache传送新块,当Cache满了,用替换算法置换行

随机算法

先进先出算法

近期最少适应算法(LRU)

与局部性原理有关

Cache映射需要添加一个LRU位来作为附加位

最不经常使用算法

Cache写策略

因为Cache内容是主存块副本,对Cache内容进行更新时,需选用写操作使Cache和主存内容保持一致

全写法

CPU对Cache命中时,必须将Cache和主存同时写入,某一块需要替换,不必把这一块写回主存,用新调入块直接覆盖即可

回写法

CPU对Cache命中时,只把数据写入Cache,而不立即写入主存,只有此块被换出时才写入主存

Cache需要添加脏位

脏位有两个状态

清:表示未修改过

浊:表示修改过

与内存不一致时,将Cache块写会主存并设置脏位为“清”

虚拟存储器

主存和辅存共同构成虚拟存储器,二者在硬件和系统软件共同管理下工作

对于应用程序员,虚拟存储器是透明的,由主存的速度和辅存容量

对于系统程序员,虚拟存储器不透明

基本概念

将主存和辅存地址空间同一编址,形成庞大地址空间,在该空间,用户可以自由编程,不必在乎实际内存容量和程序位置

用户编程涉及地址为虚地址或逻辑地址

虚地址对应虚拟空间或程序空间

实际主存单元地址称为实地址或物理地址

虚地址比实地址大得多

CPU使用虚地址时,用辅助硬件找出虚地址和实地址关系,并判断该虚地址是否已装入主存

若在主存中,通过地址变换,CPU可直接访问内存指示的实际单元

 不在,则把包括这个字的一页或一段调入主存后由CPU访问。若主存已满,进行替换

虚拟存储器也采用Cache类似技术,将辅存常访问的数据副本存放到主存

虚拟存储记住采用全相联映射,每个虚页面可以存放到对应主存区域任何空闲页位置

进行写操作时,不能每次写操作都同时写回磁盘

处理一致性问题,要写回写法

页式虚拟存储器

以页为基本单位

虚拟空间和内存空间被划分成同样大小页,主存页称为实页,页框,虚存页为虚页

虚拟地址:虚页号和页内地址

页表(慢表)

脏位来表示是否被修改过(回写法)

引用位来配合页面替换策略使用

快表和慢表

快表速度来源于硬件本身

慢表速度来源于查找算法

快表和慢表命中率之间没有联系

快表式慢表部分拷贝,不能够得到比慢表更多结果

具有TLB(全相联映射方式)和Cache的多级存储系统

TLB由组相联存储器组成,也可以由SRAM组成

Cache机构根据映射方式将物理地址划分成多个字段

根据映射规则找到对应Cache行中的标记与物理地址高位比较

若相等且有效位为1,则Cache命中,并将块内地址送CPU

比较器位数=Tag

查找过程

进行查找时,快表和慢表可以同时进行

若快表有虚页号,找到,则将慢表查找作废

相关文章:

机组存储系统

局部性 理论 程序执行,会不均匀访问主存,有些被频繁访问,有些很少被访问 时间局部性 被用到指令,不久可能又被用到 产生原因是大量循环操作 空间局部性 某个数据和指令被使用,附近数据也可能使用 主要原因是顺序存…...

【基础工程搭建】内存访问异常问题分析

前言 汽车电子嵌入式开始更新全新的AUTOSAR项目实战专栏内容,从0到1搭建一个AUTOSAR工程,内容会覆盖AUTOSAR通信协议栈、存储协议栈、诊断协议栈、MCAL、系统服务、标定、Bootloader、复杂驱动、功能安全等所有常见功能和模块,全网同步更新开发设计文档(后期也会更新视频内…...

Mysql 和 navicat 的使用

初识navicat 点开navicat,然后点击连接选择mysql连接,输入密码(一般都是123456)即可进行连接mysql 可以看见mysql中有如下已经建立好的数据库,是我之前已经建立过的数据库,其中test就是我之前建立的数据库…...

计算机网络(五)运输层

5.1、运输层概述 概念 进程之间的通信 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。 当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端到端的通信时…...

托宾效应和托宾q理论。简单解释

托宾效应和托宾q理论 托宾效应(Tobin Effect)和托宾q理论(Tobins q Theory)都是由美国经济学家詹姆斯托宾(James Tobin)提出的,它们在宏观经济学和金融经济学中占有重要地位。 托宾效应 托宾…...

大数据原生集群 (Hadoop3.X为核心) 本地测试环境搭建二

本篇安装软件版本 mysql5.6 spark3.2.1-hadoop3.2 presto0.272 zeppelin0.11.2 kafka_2.13_3.7.2 mysql 安装步骤见-》 https://blog.csdn.net/dudadudadd/article/details/110874570 spark 安装步骤见-》https://blog.csdn.net/dudadudadd/article/details/109719624 安装…...

ClickHouse vs StarRocks 选型对比

一、面向列存的 DBMS 新的选择 Hadoop 从诞生已经十三年了,Hadoop 的供应商争先恐后的为 Hadoop 贡献各种开源插件,发明各种的解决方案技术栈,一方面确实帮助很多用户解决了问题,但另一方面因为繁杂的技术栈与高昂的维护成本&…...

04.计算机体系三层结构与优化(操作系统、计算机网络、)

3.计算机体系三层结构与优化(day04) 3.1 操作系统 内容概要: 操作系统的发展史:批处理系统》分时操作系统》unix>linux多道技术》(进程、线程)并发进程与线程相关概念任务运行的三种状态:…...

UML系列之Rational Rose笔记八:类图

一、新建类图 首先依旧是新建要绘制的类图;选择class diagram; 修改命名; 二、工作台介绍 正常主要就是使用到class还有直接关联箭头就行; 如果不要求规范,直接新建一些需要的类,然后写好关系即可&#…...

Pycharm 使用教程

一、基本配置 1. 切换Python解释器 pycharm切换解释器版本 2. pycharm虚拟环境配置 虚拟环境的目的:创建适用于该项目的环境,与系统环境隔离,防止污染系统环境(包括需要的库)虚拟环境配置存放在项目根目录下的 ven…...

pycharm+pyside6+desinger实现查询汉字笔顺GIF动图

一、引言 这学期儿子语文期末考试有一道这样的题目: 这道题答案是B,儿子做错了选了C。我告诉他“车字旁”和“车”的笔顺是不一样的,因为二者有一个笔画是不一样的,“车字旁”下边那笔是“提”,而“车”字是“横”&am…...

vue3学习-day5

provide $ inject 跨层传递普通数据 跨层传递响应式数据 跨层传递方法 需求解决思考 总结 Vue3.3新特性-defineOptions Vue3.3新特性-defineModel...

SpringData-Redis缓存之RedisTemplate

一、概述 大多数用户可能会使用RedisTemplate及其相应的包org.springframework.data.redis.core或其反应式变体ReactiveRedisTemplate。由于其丰富的功能集,该模板实际上是Redis模块的中心类。该模板为Redis交互提供了高级抽象。虽然[Reactive]RedisConnection提供…...

第423场周赛:检测相邻递增子数组 Ⅰ、检测相邻递增子数组 Ⅱ、好子序列的元素之和、统计小于 N 的 K 可约简整数

Q1、检测相邻递增子数组 Ⅰ 1、题目描述 给你一个由 n 个整数组成的数组 nums 和一个整数 k&#xff0c;请你确定是否存在 两个 相邻 且长度为 k 的 严格递增 子数组。具体来说&#xff0c;需要检查是否存在从下标 a 和 b (a < b) 开始的 两个 子数组&#xff0c;并满足下…...

hive知识体系

hive知识体系 hive知识体系 链接: 1Hive概览 链接: 2Hive表类型 链接: 3Hive数据抽样 链接: 4Hive计算引擎 链接: 5Hive存储与压缩 链接: 6Hive Sql 大全 链接: 6Hive Sql 大全-Hive 函数 链接: 6Hive Sql 大全-窗口函数 链接: 7Hive执行计划 链接: 8Hive SQL底层执行原理 链接…...

第三篇 Avaya IP Office的架构及其服务组成

所谓的架构&#xff0c;其实就是Solution,解决方案。一般就是如下几套&#xff1a; IPO primary IPO secondaryIPO primary IP500v2IPO primary IPO secondary IP500v2IPO primary IPO secondary IP500v2 Expansion Server(IP500v2,扩展)IPO primaryIPO 500v2 简单的解释…...

AUTOSAR EcuM(ECU状态管理器)

EcuM管理的ECU状态特指ECU的上下电状态。EcuM有两种EcuMFixed和EcuMFlex&#xff0c;其中EcuMFlex是在 AUTOSAR4.x 之后新增的规范文件&#xff0c;相应地原来的 EcuM 改称为 EcuMFixed。EcuMFlex主要是为了适应不同应用场景的各种不同需求&#xff0c;实现更加灵活的处理。所以…...

【PyQt】如何在mainwindow中添加菜单栏

[toc]如何在mainwindow中添加菜单栏 如何在mainwindow中添加菜单栏 主要有两种方法&#xff1a; 1.直接创建mainwindow进行添加 2.使用ui文件加载添加 第二种方法更为常见&#xff0c;可以应用到实际 1.直接创建mainwindow进行添加 import sysfrom PyQt5.QtWidgets import …...

浅谈云计算01 | 云计算服务的特点

在当今数字化时代&#xff0c;云计算作为一种强大的技术解决方案&#xff0c;正逐渐改变着企业和个人对信息技术的使用方式。本文将详细探讨云计算的五个主要特点&#xff0c;包括按需自助服务、广泛的网络接入、资源池化、快速弹性伸缩以及可计量服务。 一、按需自助服务 云…...

【开题报告】基于springboot的煤矿安全监测系统的设计与实现

【开题报告】基于springboot的煤矿安全监测系统的设计与实现 1.选题背景、研究目的及意义 1.1选题背景 煤炭是我国能源行业的重要组成部分&#xff0c;对国民经济具有支撑和推动作用。在煤炭生产过程中存在较高的安全风险&#xff0c;煤矿事故频发&#xff0c;这不仅对人员生…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用&#xff1a;作为微服务架构的网关&#xff0c;统一入口&#xff0c;处理所有外部请求。 核心能力&#xff1a; 路由转发&#xff08;基于路径、服务名等&#xff09;过滤器&#xff08;鉴权、限流、日志、Header 处理&#xff09;支持负…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器&#xff1a;Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...