计算机存储体系

news2024/11/15 9:28:14

目录

一、基本概念

二、主存储器的基本组成

三、SRAM和DRAM

四、只读存储器ROM

五、主存储器与CPU的连接

六、双端口RAM和多模块存储器

七、磁盘存储器

八、固态硬盘SSD 

九、Cache高速缓冲存储器

十、虚拟存储系统


一、基本概念

存储器的层次结构

主存——辅存:实现了虚拟存储系统,解决了主存容量不够的问题

主存——cache:解决了主存与CPU速度不匹配的问题

存储器的分类

按存取方式分类

随机存取存储器 RAM:Random Access Memory,主存

顺序存取存储器 SAM:Sequential Addressed Storage,磁带

直接存取存储器 DAS:Direct Access Storage,磁盘、机械硬盘

相联存储器 CAM:Content Addressed Memory,按照内容检索存储位置进行读写

只读存储器 ROM:Read-Only Memory,事实上很多ROM也可以写入数据,只是比较麻烦

按信息的可保存性分类

易失性存储器:断电后,存储信息消失,如主存、Cache

非易失性存储器:断电后,存储信息保持,如光盘、磁盘

破坏性读出:信息读出后,原存储信息被破坏,如DRAM芯片,读出数据后要进行重写

非破坏性读出:信息读出后,原存储信息不被破坏,如SRAM芯片

二、主存储器的基本组成

 

 

三、SRAM和DRAM

SRAM:Static Random Access Memory

DRAM:Dynamic Random Access Memory

DRAM用于主存,SRAM用于Cache

DRAM芯片:使用栅极电容存储信息

SRAM芯片:使用双稳态触发器存储信息

栅极电容与双稳态触发器

栅极电容:通过电容放电读出信息,是破坏性读出,读出后应有重写操作,也称“再生”

双稳态触发器:读出数据,触发器状态保持稳定,是非破坏性读出,无需重写

一个栅极电容读写1bit位需要1个MOS管,一个双稳态触发器读写1bit位需要6个MOS管,故栅极电容成本更低、功耗更低

DRAM和SRAM都是易失性存储器,即断电后信息消失。

DRAM芯片需要刷新,SRAM芯片不需要刷新。

DRAM芯片采用栅极电容存储电荷,但是电荷会流失,电容内的电荷只能维持2ms,即便不断电,2ms后电荷信息也会消失,故栅极电容2ms内必须给电容充一次电,即“刷新”。

SRAM芯片采用双稳态触发器保存信息,只要不断电,触发器的状态就不会改变,故不需要“刷新”。

DRAM存储器的组成

DRAM存储器的地址以矩阵方式排列,分为行地址和列地址,目的是减少选通线的数量。

 

DRAM的刷新

刷新周期:一般为2ms

刷新单位:以行为单位,每次刷新一行存储单元

刷新方式:读出一行信息后重新写入,占用1个读/写周期

刷新策略

①分散式刷新:每次读写玩都刷新一次

②集中式刷新:2ms内集中安排时间全部刷新,有一段时间专门用于刷新,无法访问存储器,称为访存“死区”

③异步式刷新:2ms内每行刷新一次即可,在CPU不访问存储器阶段刷新,如译码阶段

 

DRAM的地址线复用技术

DRAM与SRAM对比

 

四、只读存储器ROM

RAM芯片:易失性,断电后数据消失

ROM芯片:非易失性,断电后数据不消失

ROM芯片类型

MROM——掩模式只读存储器:在芯片生产过程中直接写入数据,任何人不可重写(只能读出),可靠性高,灵活性差

PROM——可编程只读存储器:用户可用专门的PROM写入器写入数据,写一次后不可修改

 

EPROM——可擦除可编程只读存储器:用户写入信息后,可用某种方法擦除数据,可进行多次重写

UVEPROM——ultraviolet rays,紫外线照射,擦除全部信息

EEPROM——electrically,电擦除,擦除特定的字

 

Falsh Memory——闪存,如U盘、SD卡,可进行多次快速擦除重写,写入需要先擦除再写入,故写数据速度慢于读数据

 

SSD——固态硬盘:可进行多次快速擦除重写

五、主存储器与CPU的连接

传统计算机的MAR和MDR集成在主存储器上,现代计算机大多是将MAR和MDR集成在CPU上

增加主存的存储字长——位扩展

 

增加主存的存储字长——字扩展

主存容量扩展——字位同时扩展

六、双端口RAM和多模块存储器

多体并行存储器

采用“流水线”的方式并行存取(宏观上并行,微观上串行)。

宏观上,一个存储周期内,m体交叉存储器可以提供的数据量是单个模块的m倍。

存取周期T,存取时间为r,为了使流水线不间断,应保证模块数 m≥T/r

存取周期 = 存取时间 + 恢复时间

七、磁盘存储器

磁盘设备的组成

磁盘的性能指标

 

磁盘地址

磁盘阵列RAID

RAID:Redundant Array of Inexpensive Disks,廉价冗余磁盘阵列,将多个独立的物理磁盘组成一个独立的逻辑盘,数据在多个物理盘上分割交叉存储、并行访问,具有更好的存储性能、可靠性和安全性。

八、固态硬盘SSD 

SSD原理:基于闪存技术 Flash Memory,属于电可擦除ROM,即EEPROM

SSD组成:

  • 闪存翻译层:负责翻译逻辑块号,找到对应页
  • 存储介质:多个闪存芯片(Flash Chip),每个芯片包含多个块(Block),每个块包含多个页(Page)

 

读写性能特性:

  • 以“页”为单位读写,以“块”为单位擦除
  • 支持随机访问,系统给定一个逻辑地址,闪存翻译层通过电路迅速定位到指定的物理地址
  • 读快写慢。写操作的内存页如果有数据,则不能直接写入,需将块内其他页全部复制到一个新的干净的块中,再在新的块中写入数据,原本的块擦除干净

固态硬盘与机械硬盘的比较:

  • SSD读写速度更快,随机访问性能高,用电路控制访问位置;机械硬盘通过移动磁臂旋转磁盘控制访问位置,有寻道时间和旋转延迟
  • SSD安静无噪音、耐摔抗震、能耗低、造价更贵
  • SSD的一个“块”被擦除次数过多(重复写同一个“块”)可能会坏掉,而机械硬盘的扇区不会因为写的次数过多而坏掉

固态硬盘磨损均衡技术:

  • 思想:将擦除平均分布到不同的“块”上,以提升使用寿命
  • 动态磨损均衡:写入数据时,优先使用累计擦除次数少的较新闪存快
  • 静态磨损均衡:SSD检测并自动进行数据分配、迁移,让老的闪存快承担以读为主的存储任务,让较新的闪存快承担更多的写任务

九、Cache高速缓冲存储器

Cache基本概念和原理

  • 空间局部性:在最近的未来要用到的信息(指令和数据),很可能和现在正在使用的信息在存储空间上是相邻的。(数组元素、顺序执行的指令代码)
  • 时间局部性:在最近的未来要用到的信息,很可能是现在正在使用的信息。(循环执行的指令代码)
  • 基于局部性原理,CPU将当前访问的地址“周围”的部分数据放到Cache中

基于局部性原理,Cache将当前访问的地址“周围”的部分数据放入Cache中,如何界定周围?

Cache和主存的映射关系

 

Cache替换算法

 

Cache写策略

 

 

 

十、虚拟存储系统

页式虚拟存储器

段式虚拟存储器

段页式虚拟存储器

 

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

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

相关文章

1_5 光流法计算VO(optical_flow)

采用特征点法做VO存在耗时较大的问题,一般耗时情况:如下 (1) 在图像中提取特征点并计算特征描述, 非常耗时 ~10ms ORB,shift耗时更多; (2) 在不同图像中寻找特征匹配, 非常耗时 …

centos上搭建以太坊私有链

第一步 安装go语言环境 root用户下新建一个soft目录(相关目录可以随意) 去golang官网找到链接,在soft目录下下载golang压缩包 wget --no-check-certificate https://go.dev/dl/go1.20.4.linux-amd64.tar.gz其中如果出现Unable to establish SSL connection.&am…

Redis持久化、主从与哨兵架构-02

RDB快照(snapshot) 在默认情况下, Redis 将内存数据库快照保存在名字为 dump.rdb 的二进制文件中。 你可以对 Redis 进行设置, 让它在“ N 秒内数据集至少有 M 个改动”这一条件被满足时, 自动保存一次 数据集…

QLoRA | 48G内存训练24小时,改进版4-bit量化技术微调650亿参数的模型达到chatgpt99.3%的效果

一、概述 title:QLORA: Efficient Finetuning of Quantized LLMs 论文地址:https://arxiv.org/pdf/2305.14314.pdf 代码:GitHub - artidoro/qlora: QLoRA: Efficient Finetuning of Quantized LLMs and https://github.com/TimDettmers/bi…

【搭建服务器】Python一行命令搭建HTTP服务器并外网访问

文章目录 1.前言2.本地http服务器搭建2.1.Python的安装和设置2.2.Python服务器设置和测试 3.cpolar的安装和注册3.1 Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 1.前言 Python作为热度比较高的编程语言,其语法简单且语句清晰,而且python有…

Jetson AGX 安装 VScode 教程,适用于所有系统安装旧版本 VScode

最近使用Jetson AGX做项目,系统为Jetpack4.6,Ubuntu18.04版本,想装个VScode编辑代码,但是设备的内核是ARM 64架构,搜出来的是arrch64 直接在VScode官网上下载的arm版本deb安装包,无法安装,经过…

论文学习笔记:Swin Transformer: Hierarchical Vision Transformer using Shifted Windows

论文阅读:Swin Transformer: Hierarchical Vision Transformer using Shifted Windows 今天学习的论文是 ICCV 2021 的 best paper,Swin Transformer,可以说是 transformer 在 CV 领域的一篇里程碑式的工作。文章的标题是一种基于移动窗口的…

【LeetCode】14,最长公共前缀。 难度等级:简单。知识点:字符串的大小比较(比较 ascii码的大小)

文章目录 一、题目二、我的解法:双指针逐个字符比较三、巧妙解法:字符串的字典序比较四、知识点:字符串的字典序比较 一、题目 二、我的解法:双指针逐个字符比较 双指针逐个字符比较是最容易想到的方法,但由于测试用例…

torch_scatter.scatter()的使用方法

学习目标: 在学习PyG时,遇到了 scatter 这个函数,经过学习加上自身的理解,记录如下以备复习 学习内容: src:表示输入的tensor,接下来被处理;index:表示tensor对应的索引…

【C++】C++11

文章目录 1、C11的简介2、 统一的列表初始化2-1、{}初始化2-2、std::initializer_list 3、声明3-1、auto3-2、decltype3-3、nullptr 4、范围for循环5、智能指针6、STL中一些变化6-1、STL新容器和容器新方法6-2、final和override 7、右值引用和移动语义7-…

【网络协议详解】——OSPF协议(学习笔记)

目录 🕒 1. 概述🕒 2. 相关概念🕘 2.1 基本思想🕘 2.2 区域及路由🕘 2.3 链路状态数据库🕤 2.3.1 点到点网络🕤 2.3.2 点到多点网络🕤 2.3.3 广播网络与非广播多址接入网络&#x1f…

嵌入式开发常用的几招调试方法

嵌入式系统调试时相对比较麻烦一些,特别是在定位一些疑难问题时,调试手段就显得非常重要。废话不多说,直接上方法。 方法一:利用特殊文件名字的文件存在与否来触发调试代码是否运行。比如有些特殊状况下,我们需要保存一…

文心一言 VS 讯飞星火 VS chatgpt (30)-- 算法导论5.2 2题

二、在 HIRE-ASSISTANT 中,假设应聘者以随机顺序出现,你正好雇用两次的概率是多少? 文心一言: 我们可以先计算出在HIRE-ASSISTANT中,雇佣一个应聘者的概率为3/4,然后计算出雇佣两次应聘者的概率为3/4 * 3…

教你用Appium搭建Android自动化测试框架(详细教程)

如题,本文附有仓库地址以及代码,目录如下: 1.下载安装appium 2.配置并使用appium 3.配置工程 一、下载安装appium 下载appium-desktop的mac版本,我选择用1.17.1版本,最新的版本1.22.0,拆分一个桌面应用…

k-means算法超级详解-转载

这是搬运的 一、 实验准备 1.1 实验概述 所谓聚类算法是指将一堆没有标签的数据自动划分成几类的方法,属于无监督学习方法,这个方法要保证同一类的数据有相似的特征。根据样本之间的距离或者说是相似性(亲疏性),把越…

牛郎织女的幸福生活(活锁)

从前,有一对夫妻,男的叫牛郎,女的叫织女,他们很好地传承了中华民族的谦让美德,每次吃饭时都会优先考虑对方,如果对方饿的话,就让给对方吃,等对方吃饱了自己才吃,这种美德…

SpringBoot整合OSS文件上传

一、注册阿里云账号并开通OSS服务 1、登录阿里云账号 2、创建一个bucket 3、创建子用户 对自用户分配权限,打开操作OSS的全部权限(也可根据业务需求进行更改) 4、配置上传跨域规则 任何来源: *允许方法: POST任何请求头Headers: * 二、…

pytorch实现图像分类任务-手写数字识别(一)

Pytorch手写数字识别 Minst数据集介绍 Size: 2828 灰度手写数字图像 Num: 训练集 60000 和 测试集 10000,一共70000张图片 Classes: 0,1,2,3,4,5,6,7,8,9 一…

pybullet学习(一)——安装与入门pybullet

PyBullet介绍 PyBullet 基于著名的开源物理引擎 bullet 开发,封装成了 Python 的一个模块,用于机器人仿真和学习。PyBullet 支持加载 URDF、SDF、MJCF 等多种机器人描述文件,并提供正/逆向运动学、正/逆向动力学、碰撞检测、射线相交查询等功…

FreeRTOS多任务系统

FreeRTOS 文章目录 FreeRTOS1 单任务和多任务系统1.1 单任务系统1.2 多任务系统 2 FreeRTOS 任务状态3 FreeRTOS 任务优先级4 Free RTOS 任务调度方式4.1 抢占式调度4.2 时间片调度 5 FreeRTOS 任务控制块6 FreeRTOS 任务栈 1 单任务和多任务系统 1.1 单任务系统 单任务系统的…