6.存储器概述,主存储器

目录

一. 存储系统基本概念

(1)存储系统的层次结构

(2)分类

(3)存储器的性能指标

二. 主存储器的基本组成

三. SRAM和DRAM

四. 只读存储器ROM

五. 提升主存速度的方法

(1)双端口RAM

(2)多体并行存储器

六. 主存储器与CPU的连接

(1)位扩展

(2)字扩展

(3)字-位同时扩展


一. 存储系统基本概念

(1)存储系统的层次结构

注:有的教材把安装在电脑内部的磁盘称为“辅存”,把U盘、光盘等称为“外存”。也有的教材把磁盘、U盘、光盘等统称为“辅存”或“外存”。

辅存中的数据要调入主存后才能被CPU访问。主存―辅存:实现虚拟存储系统,解决了主存容量不够的问题。Cache—主存:解决了主存与CPU速度不匹配的问题。

(2)分类

按层次分类:

按存储介质分类:半导体存储器,磁表面存储器,光存储器。

按存取方式:随机存取存储器(RandomAccess Memory,RAM):读写任何一个存储单元所需时间都相同,与存储单元所在的物理位置无关。顺序存取存储器(SequentialAccess Memory,SAM):读写一个存储单元所需时间取决于存储单元所在的物理位置。直接存取存储器(Direct AccessMemory,DAM):既有随机存取特性,也有顺序存取特性。先直接选取信息所在区域,然后按顺序方式存取。SAM和DAM都是串行访问存储器,读写某个存储单元所需时间与存储单元的物理位置有关。相联存储器(Associative Memory):即可以按内容访问的存储器(ContentAddressesd Memory,CAM),可以按照内容检索到存储位置进行读写,“快表”就是一种相联存储器。

按信息的可更改性:读写存储器(Read/Write Memory)——即可读、也可写(如:磁盘、内存、Cache)。只读存储器(Read Only Memory)——只能读,不能写(如:实体音乐专辑通常采用CD-ROM,实体电影采用蓝光光碟,BIOS通常写在ROM中)。

按信息的可保存性:断电后,存储信息消失的存储器―—易失性存储器(主存、Cache)
断电后,存储信息依然保持的存储器――非易失性存储器(磁盘、光盘)
信息读出后,原存储信息被破坏――破坏性读出(如DRAM芯片,读出数据后要进行重写)信息读出后,原存储信息不被破坏――非破坏性读出(如SRAM芯片、磁盘、光盘)

(3)存储器的性能指标

1.存储容量:存储字数×字长(如1M×8位)。MDR位数反映存储字长。

2.单位成本:每位价格=总成本/总容量。
3.存储速度:数据传输率=数据的宽度/存储周期。数据的宽度即存储字长。

①存取时间(Ta):存取时间是指从启动一次存储器操作到完成该操作所经历的时间,分为读出时间和写入时间。
②存取周期(Tm):存取周期又称为读写周期或访问周期。它是指存储器进行一次完整的读写操作所需的全部时间,即连续两次独立地访问存储器操作(读或写操作)之间所需的最小时间间隔。
主存带宽(Bm):(主存带宽又称数据传输率,表示每秒从主存进出信息的最大数量,单位为字/秒、字节/秒(B/s)或位/秒(b/s)。

二. 主存储器的基本组成

存储器由存储体,MAR和MDR组成。存储体又由存储元构成。

每一个存储元由MOS管和电容组成。MOS管可理解为一种电控开关,输入电压达到某个阈值时,MOS管就可以接通。

  • 存储0/1:电容器有电荷则为1,没有电荷则为0;
  • 读0/1:MOS管接高于阈值的电压,使得MOS管导通,此时在右面检测,有电荷则为读出1,没有电荷则为读出0;
  • 写0/1:MOS管接高于阈值的电压,使得MOS管导通,右面为高电平则向电容写入1,为低电平则向电容写入0;

多个存储单元可以组成一个存储体。除了存储体之外,还有译码器(输入地址总线,n位地址,对应2^n个存储单元)。控制电路,片选线(划线表示低电平有效)。

简化图里面有一个译码驱动,作用是稳定的输出选择存储单元的红线(字选择线)信号。上图的每根线都会对应一个金属引脚。另外还有供电引脚,接地引脚等。由于n位地址→2^n个存储单元,总容量=存储单元个数×存储字长。例如8K×8位,即2^{13}\times 8bit,8K×1位,即2^{13}\times 1bit。

最后介绍一下寻址。总容量为1KB。关于字节地址向字地址的转换,算术左移两位即可。

  • 按字节寻址: 1K个单元(需要10根地址线,1K=2^{10}),每个单元1B。
  • 按字寻址:256个单元,每个单元4B
  • 按半字寻址:512个单元,每个单元2B
  • 按双字寻址:128个单元,每个单元8B

三. SRAM和DRAM

顺序存取存储器(SAM):读写一个存储单元所需时间取决于存储单元所在的物理位置。直接存取存储器(DAM):既有随机存取特性,也有顺序存取特性。DRAM用于主存、SRAM用于Cache。现在的主存通常采用SDRAM芯片。

DRAM芯片:就是上一节介绍的,利用电容+MOS管制造。

SRAM芯片:使用双稳态触发器存储信息。双稳态:1:A高B低;0:A低B高。

电容放电信息被破坏,是破坏性读出。读出后应有重写操作,也称“再生”。每个存储元制造成本更低,集成度高,功耗低,读取速度慢。

双稳态触发器读出数据,触发器状态保持稳定,是非破坏性读出,无需重写。每个存储元制造成本更高,集成度低,功耗大,读取速度快。

初学者应当注意区分“破坏性读出”和“易失性”的区别。

最后补充一下DRAM的刷新问题。电容内的电荷只能维持2ms,即便不断电,2ms后信息也会消失。因此2ms内必须“刷新”一次(给电容充电)。通常,每次刷新一行存储单元。这就引出另一个问题—―为什么要用行列地址?答案是减少译码器的选通线数量:

刷新有硬件支持,由存储器独立完成,不需要CPU控制。读出一行的信息后重新写入,占用1个读/写周期。至于刷新的方式,有三种刷新方式:分散刷新,集中刷新,异步刷新。假设DRAM内部结构排列成128×128的形式,读/写周期(也称存取周期)0.5\mu s。这样2ms就是4000个读写周期。

关于DRAM的地址线复用技术:行、列地址分两次送,可使地址线更少芯片引脚更少。原本需要n个,现在只需要n/2个。

四. 只读存储器ROM

RAM芯片一一易失性,断电后数据消失。ROM芯片——非易失性,断电后数据不会丢失。

ROM芯片虽然名字是“Read-Only”,但很多ROM也可以“写”闪存的写速度一般比读速度更慢,因为写入前要先擦除。很多ROM也具有“随机存取”的特性。

MROM (Mask Read-Only Memory) 一一掩模式只读存储器,厂家按照客户需求,在芯片生产过程中直接写入信息,之后任何人不可重写(只能读出)可靠性高、灵活性差、生产周期长、只适合批量定制。
PROM (Programmable Read-Only Memory) ——可编程只读存储器用户可用专门的PROM写入器写入信息,写一次之后就不可更改。
EPROM (Erasable Programmable Read-Only Memory)——可擦除可编程只读存储器允许用户写入信息,之后用某种方法擦除数据,可进行多次重写。
UVEPROM (ultraviolet rays)——用紫外线照射8~20分钟,擦除所有信息。
EEPROM(也常记为E2PROM,第一个E是Electrically)——可用“电擦除”的方式,擦除特定的字
每个存储元只需单个MOS管,位密度比RAM高。
Flash Memory ——闪速存储器(注:U盘、SD卡就是闪存)。在EEPROM基础上发展而来,断电后也能保存信息,且可进行多次快速擦除重写注意:由于闪存需要先擦除在写入,因此闪存的“写”速度要比“读”速度更慢。手机辅存也使用Flash芯片,但相比SSD使用的芯片集成度高、功耗低、价格贵。
SSD (Solid State Drives) ——固态硬盘,由控制单元+存储单元(Flash芯片)构成,与闪速存储器的核心区别在于控制单元不一样,但存储介质都类似,可进行多次快速擦除重写。SSD速度快、功耗低、价格高。目前个人电脑上常用SSD取代传统的机械硬盘。

主板上的BIOS芯片(ROM),存储了“自举装入程序”,负责引导装入操作系统(开机)。但注意:我们常说“内存条”就是“主存”,但事实上,主板上的ROM芯片也是“主存”的一部分。逻辑上主存由RAM+ROM组成,它们统一编址。

五. 提升主存速度的方法

分别是两种主存优化技术。DRAM芯片的恢复时间比较长,有可能是存取时间的几倍(SRAM的恢复时间较短)。多核CPU都要访存,怎么办? CPU的读写速度比主存快很多,主存恢复时间太长怎么办?

(1)双端口RAM

双端口RAM解决多核CPU都要访存的问题,优化多核CPU访问一根内存条的速度。图示两个CPU1和CPU2,需要有两组完全独立的数据线、地址线、控制线。CPU、RAM中也要有更复杂的控制电路。两个端口对同一主存操作有以下4种情况:
1.两个端口同时对不同的地址单元存取数据。
2.两个端口同时对同一地址单元读出数据。
3.两个端口同时对同一地址单元写入数据,此时发生写入错误。
4.两个端口同时对同一地址单元,一个写入数据,另一个读出数据。此时发生读出错误。

解决方法:置“忙”信号为0,由判断逻辑决定暂时关闭一个端口(即被延时),未被关闭的端口正常访问,被关闭的端口延长一个很短的时间段后再访问。

(2)多体并行存储器

多体并行存储器每个模块都有相同的容量和存取速度。各模块都有独立的读写控制电路、地址寄存器和数据寄存器。它们既能并行工作,又能交叉工作。可以理解为“多根内存条”。首先介绍什么是高位交叉编址和低位交叉编址。高位交叉编址就是高位表示存储体编号,低位交叉编址就是低位表示存储体编号。

现在考虑连续读取n个存储字。如果使用高位编址,因为这几个地址对应的存储单元都在M0,所以必须等其恢复之后在进行访问,而如果采用低位编址,我们可以访问M0,然后在M0的恢复时间去访问M1...以此类推,到M3读取完,M0的恢复时间也刚好结束。宏观上低位编址读写一个字的时间接近r。

所以,低位编址可以采用“流水线”的方式并行存取(宏观上并行,微观上串行)。宏观上,一个存储周期内,m体交叉存储器可以提供的数据量为单个模块的m倍。存取周期为T,存取时间(总线传输时间)为r,为了使流水线不间断,应保证模块数m≥T/r。

与多模块存储器对应的还有单体多字存储器,每个存储单元存储m个字,总线宽度也为m个字,一次并行读出m个字。每次只能同时取m个字,不能单独取其中某个字。

六. 主存储器与CPU的连接

(1)位扩展

(2)字扩展

线选法:把地址位直接接CS,此时地址不连续。

译码片选法:n条线,2^n个选片信号。

(3)字-位同时扩展

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

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

相关文章

复杂度计算实例

1.常见时间复杂度计算举例 实例1 实例1基本操作执行了2N10次,通过推导大O阶方法知道,时间复杂度为 O(N) 实例2 实例2基本操作执行了MN次,有两个未知数M和N,时间复杂度为 O(NM) 实例3 实例3基本操作执行了100次,通过…

FTP、NFS以及SAMBA服务

一、FTP服务 1、Linux下ftp客户端管理工具 ftp、lftp都是Linux下ftp的客户端管理工具,但是需要独立安装 # yum install ftp lftp -y ☆ ftp工具 # ftp 10.1.1.10 Connected to 10.1.1.10 (10.1.1.10). 220 (vsFTPd 3.0.2) Name (10.1.1.10:root): 输入FTP的账号…

游戏公司数据分析师必备知识(持续补充中...)

1.如何撰写专题报告? ①原则 只有一个主题:即使不讲ppt,业务方也能看得懂行文通俗简单易懂:学习产品经理平常是如何写报告的明确的数据结论和落地项先行:跟业务方多沟通数据结论,让他们给出落地项 ②结构…

【星海随笔】git的使用

1.在终端,检查git是否安装 git --version 2.没有安装的话去,官网,下载git 3.一直点下一步即可 4.安装后在终端检查git是否安装好 5.设置用户名和邮件地址(最好和GitHub的用户名/邮箱保持一致) git config --global user.name “自己的用户名”…

Linux编写一个极简版本的Shell

Linux编写一个极简版本的Shell 📟作者主页:慢热的陕西人 🌴专栏链接:Linux 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 本博客主要内容在Linux环境下&#xff…

Markdown使用教程

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

笔记本电脑的麦克风没有声音

笔记本电脑的麦克风没有声音是一个常见的问题,可能是由于以下几个原因导致的: 第一,麦克风没有启用或者被禁用了。在Windows系统中,右键单击任务栏上的音量图标,选择“录音设备”,在弹出窗口中找到麦克风&a…

Python+Appium自动化测试-编写自动化脚本

一,连接测试手机,获取测试机及被测APP配置 配置信息如下: {"platformName": "Android","platformVersion": "10","deviceName": "PCT_AL10","appPackage": "c…

【技术支持】DevTools中重写覆盖源js文件

sources面板下,左侧overrides标签下添加一个文件夹,并同意。 勾选Enable Local overrides 然后在page标签下,修改文件后ctrls保存 直接就保存在overrides的文件夹下了 或者文件上右键Override content

【leaflet】1. 初见

▒ 目录 ▒ 🛫 导读需求开发环境 1️⃣ 概念概念解释特点 2️⃣ 学习路线图3️⃣ html示例🛬 文章小结📖 参考资料 🛫 导读 需求 要做游戏地图了,看到大量产品都使用的leaflet,所以开始学习这个。 开发环境…

【操作系统内核】线程

【操作系统内核】线程 为什么需要线程 比如我要做一个视频播放器,就需要实现三个功能: ① 从磁盘读取视频数据 ② 对读取到的视频数据进行解码 ③ 对解码的数据进行播放 如果串行执行(通过一个进程来执行): 那么…

redis配置文件详解

一、配置文件位置 以配置文件启动 Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf ( Windows名为redis.windows. conf) 例: # 这里要改成你自己的安装目录 cd ./redis-6.0.8 vim redis.conf redis对配置文件对大小写不敏感 二、配置文件 1、获取当前服务的…

CSS特效第一弹:右上角tag标志纯代码前端实现(非图片)

😎效果: 🤷‍♂️思路: 分为2个部分: 1.文字方块右下角折角 文字方块用绝对定位z-index让文字方块悬浮在右上角的位置 2.右下角折角通过before伪元素border属性实现(三角形实现方法) 👍核心代…

15 # 手写 throttle 节流方法

什么是节流 节流是限制事件触发的频率,当持续触发事件时,在一定时间内只执行一次事件,这个效果跟英雄联盟里的闪现技能释放差不多。 函数防抖关注一定时间连续触发的事件只在最后执行一次,而函数节流侧重于一段时间内只执行一次…

现在个人想上架微信小游戏已经这么难了吗...

点击上方亿元程序员关注和★星标 引言 大家好,最近我突然想起来我还有一款微信小游戏还没有上架,于是捣鼓了一天把游戏完善了一下,然后准备提交审核,却发现异常的艰难… 1.为什么难? 相信大家都大概知道&#xff0c…

畅通工程之局部最小花费问题 (C++)

目录 题目&#xff1a; 思路&#xff1a; 代码&#xff1a; 结果 题目&#xff1a; 思路&#xff1a; 详细思路都在代码注释里 。 代码&#xff1a; #include<iostream>//无向图邻接矩阵 #include<map> #include<algorithm> #define mvnum 1005 using …

yo!这里是STL::unordered系列简单模拟实现

目录 前言 相关概念介绍 哈希概念 哈希冲突与哈希函数 闭散列 框架 核心函数 开散列 框架 核心函数 哈希表&#xff08;开散列&#xff09;的修改 迭代器实现 细节修改 unordered系列封装 后记 前言 我们之前了解过map和set知道&#xff0c;map、set的底层结构是…

基于PHP的设云尘资讯网站设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

K8s----资源管理

目录 一、Secret 1、创建 Secret 1.1 用kubectl create secret命令创建Secret 1.2 内容用 base64 编码&#xff0c;创建Secret 2、使用方式 2.1 将 Secret 挂载到 Volume 中&#xff0c;以 Volume 的形式挂载到 Pod 的某个目录下 2.2 将 Secret 导出到环境变量中 二、Co…

Win11专业版安装Docker Desktop,并支持映射主机的gpu

一、Windows环境下安装 Docker 必须满足: 1. 64位Windows 11 Pro(专业版和企业版都可以) 2. Microsoft Hyper-V,Hyper-V是微软的虚拟机,在win11上是自带的,我们只需要启动就可以了 二、下载Docker Desktop安装包 方式一:进入官网下载 https://docs.docker.com/desktop…