机组存储系统

局部性

理论

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

时间局部性

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

产生原因是大量循环操作

空间局部性

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

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

存储分类

作用分类

主存

辅存

高速缓冲存储器(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

查找过程

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode热题100-二叉树的中序遍历【JavaScript讲解】

题目: 二叉树: 二叉树的遍历是指按照某种特定的顺序访问二叉树中的每个节点,使得每个节点被访问且仅被访问一次。二叉树的遍历主要分为三种:先序遍历(前序遍历)、中序遍历和后序遍历。 ‌先序遍历&#x…

【Linux】正则表达式

正则表达式是一种可供Linux工具过滤文本的自定义模板,Linux工具(如sed、gawk)会在读取数据时使用正则表达式对数据进行模式匹配。 正则表达式使用元字符来描述数据流中的一个或多个字符。它是由正则表达式引擎实现的。正则表达式引擎是一种底…

计算机视觉算法实战——步态识别(主页有源码)

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ ​​​​​​​​​​​​​​​​​​ 1. 步态识别简介✨✨ 步态识别(Gait Recognition)是计算机视觉领域中的一个…

【RTSP】使用webrtc播放rtsp视频流

一、简介 rtsp流一般是监控、摄像机的实时视频流,现在的主流浏览器是不支持播放rtsp流文件的,所以需要借助其他方案来播放实时视频,下面介绍下我采用的webrtc方案,实测可行。 二、webrtc-streamer是什么? webrtc-streamer是一个使用简单机制通过 WebRTC 流式传输视频捕获…

从0开始学习搭网站第二天

前言:今天比较惭愧,中午打铲吃了一把,看着也到钻二了,干脆顺手把这个赛季的大师上了,于是乎一直到网上才开始工作,同样,今天的学习内容大多来自mdn社区mdn 目录 怎么把文件上传到web服务器采用S…

【Pico串流预览】使用“PICO Unity Live Preview Plugin”和PDC工具进行实时预览

使用“PICO Unity Live Preview Plugin”和PDC工具进行实时预览 支持内容 支持预览的内容 虚拟场景手势追踪 支持操作系统 仅支持Windows 下载插件 PICO Unity Live Preview Plugin 当前版本:v1.0.4 更新时间: 2024-12-05 大小: 3.27MB …

poi处理多选框进行勾选操作下载word以及多word文件压缩

一、场景 将数据导出word后且实现动态勾选复选框操作 eg: word模板 导出后效果&#xff08;根据数据动态勾选复选框&#xff09; 二、解决方案及涉及技术 ① 使用poi提供的库进行处理&#xff08;poi官方文档&#xff09; ② 涉及依赖 <!-- excel工具 --><depen…

深入浅出负载均衡:理解其原理并选择最适合你的实现方式

负载均衡是一种在多个计算资源&#xff08;如服务器、CPU核心、网络链接等&#xff09;之间分配工作负载的技术&#xff0c;旨在优化资源利用率、提高系统吞吐量和降低响应时间。负载均衡的实现方式多种多样&#xff0c;以下是几种常见的实现方式&#xff1a; 1. 硬件负载均衡&…

基于Python机器学习、深度学习技术提升气象、海洋、水文领域实践应用-以ENSO预测为例讲解

1. 背景与目标 ENSO&#xff08;El Nio-Southern Oscillation&#xff09;是全球气候系统中最显著的年际变率现象之一&#xff0c;对全球气候、农业、渔业等有着深远的影响。准确预测ENSO事件的发生和发展对于减灾防灾具有重要意义。近年来&#xff0c;深度学习技术在气象领域…

MySQL表格练习(单表查询,多表查询)

一,单表查询 素材&#xff1a; 素材&#xff1a; 表名&#xff1a;worker-- 表中字段均为中文&#xff0c;比如 部门号 工资 职工号 参加工作 等 CREATE TABLE worker ( 部门号 int(11) NOT NULL, 职工号 int(11) NOT NULL, 工作时间 date NOT NULL, 工资 float(8,2) NOT NUL…

postgresql分区表相关问题处理

1.使用pg_cron按日创建分区表&#xff0c;会出现所在数据库对应用户权限不足的问题。 原因是pg_cron运行在postgres数据库中&#xff0c;是用superuser进行执行的&#xff0c;对应的分区表的owner为postgres&#xff0c;所以需要单独授权对表的所有操作权限。不知道直接改变ow…

【数据结构】基础知识

目录 1.1 什么是数据结构 1.2数据 1.3 逻辑结构 1.4 存储结构 1.4.1 顺序存储 1.4.2 链式存储 1.4.3 索引存储 1.4.4 散列存储 1.5 操作 1.1 什么是数据结构 数据的逻辑结构以及存储操作 数据结构没有那么复杂&#xff0c;它就教会你一件事&#xff1a;如何更有效的…

空指针:HttpSession异常,SpringBoot集成WebSocket

异常可能性&#xff1a; 404 &#xff1a; 请检查拦截器是否将请求拦截WebSocket握手期间HttpSession为空 HttpSession为空 方法一 &#xff1a; 网上参考大量的文档&#xff0c;有说跟前端请求域名有关系的。 反正对我来说&#xff0c;没啥用无法连接。 需使用 localhost&a…

相机SD卡照片数据不小心全部删除了怎么办?有什么方法恢复吗?

前几天&#xff0c;小编在后台友收到网友反馈说他在整理相机里的SD卡&#xff0c;原本是想把那些记录着美好瞬间的照片导出来慢慢欣赏。结果手一抖&#xff0c;不小心点了“删除所有照片”&#xff0c;等他反应过来&#xff0c;屏幕上已经显示“删除成功”。那一刻&#xff0c;…

Observability:利用 GCP Vertex AI 集成提升 LLM 可观察性

作者&#xff1a;来自 Elastic Ishleen Kaur•Muthukumar Paramasivam 随着组织越来越多地将 LLM 用于内容创建、检索增强生成 (Retrieval-Augmented Generation - RAG) 和数据分析等 AI 应用&#xff0c;SRE 和开发人员面临着新的挑战。监控工作流、分析输入和输出、管理查询延…

WEB攻防-通用漏洞_XSS跨站_权限维持_捆绑钓鱼_浏览器漏洞

目录 XSS的分类 XSS跨站-后台植入Cookie&表单劫持 【例1】&#xff1a;利用beef或xss平台实时监控Cookie等凭据实现权限维持 【例2】&#xff1a;XSS-Flash钓鱼配合MSF捆绑上线 【例3】&#xff1a;XSS-浏览器网马配合MSF访问上线 XSS的分类 反射型&#xff08;非持久…

21、Transformer Masked loss原理精讲及其PyTorch逐行实现

1. Transformer结构图 2. python import torch import torch.nn as nn import torch.nn.functional as Ftorch.set_printoptions(precision3, sci_modeFalse)if __name__ "__main__":run_code 0batch_size 2seq_length 3vocab_size 4logits torch.randn(batch…

上传自己的镜像到docker hub详细教程

上传自己的镜像到docker hub详细教程 本博客通B站视频一致&#xff1a; 上传自己的镜像到docker hub详细教程 1. 登录自己的hub.docker.com的账号 docker hub仓库 2. 点击Repositories&#xff0c;跳转到创建仓库页面 3. 点击Create a repository 创建repository&#xff0c…

高级软件工程-复习

高级软件工程复习 坐标国科大&#xff0c;下面是老师说的考试重点。 Ruby编程语言的一些特征需要了解要能读得懂Ruby程序Git的基本命令操作知道Rails的MVC工作机理需要清楚&#xff0c;Model, Controller, View各司什么职责明白BDD的User Story需要会写&#xff0c;SMART要求能…

初学stm32 --- SPI驱动25Q128 NOR Flash

目录 SPI介绍 SPI结构框图介绍 SPI外设对应的引脚 SPI数据发送与接收 SPI工作原理 SPI 全双工模式的通信机制 从机返回主机之前保存的数据 SPI工作模式介绍 SPI相关寄存器介绍&#xff08;F1 / F4 / F7&#xff09; SPI控制寄存器1&#xff08;SPI_CR1&#xff09; SPI状…