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.hqwc.cn/news/168229.html

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

相关文章

C#基于inpoutx64读写ECRAM硬件信息

inpoutx64.dll分享路径: 链接:https://pan.baidu.com/s/1rOt0xtt9EcsrFQtf7S91ag 提取码:7om1 1.InpOutManager: using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServi…

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

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

探索微信小程序框架的精华——高质量的优秀选择

目录 引言&#xff1a; 1. 框架性能 2. 开发者工具支持 3. 文档和社区支持 4. 扩展能力 5. 使用率和稳定性 结语&#xff1a; 引言&#xff1a; 微信小程序作为一种轻量级、高效便捷的应用形式&#xff0c;已经在移动应用领域占据了重要地位。而其中&#xff0c;选择一个…

【uniapp】仿微信通讯录列表实现

效果图 代码实现 <view class"main-container"><!-- 成员列表 --><scroll-viewclass"member-list":style"computedHeight":scroll-y"true":enable-back-to-top"true":scroll-with-animation"true"…

Hls学习(一)

1&#xff1a;CPU、DSP、GPU都算软件可编程的硬件 2&#xff1a;dsp在递归方面有所减弱&#xff0c;在递归方面有所增强&#xff0c;比如递归啊等&#xff0c;GPU可以同时处理多个进程&#xff0c;对于大块数据&#xff0c;流处理比较适用 3&#xff1a;为了提高运算量处理更多…

SHCTF-校外赛道

SHCTF-校外赛道 [WEEK1]babyRCE 1 (1)more:一页一页的显示档案内容2 (2)less:与 more 类似&#xff0c;但是比 more 更好的是&#xff0c;他可以[pg dn][pg up]翻页3 (3)head:查看头几行4 (4)tac:从最后一行开始显示&#xff0c;可以看出 tac 是 cat 的反向显示5 (5)tail:查看…

PDF Expert for mac(专业pdf编辑器)苹果电脑

PDF Expert for Mac 是一款功能强大、界面简洁的PDF阅读、编辑和转换工具&#xff0c;为Mac用户提供了全面而便捷的PDF处理体验。无论是日常工作中的文档阅读、标注&#xff0c;还是专业需求下的编辑、转换&#xff0c;PDF Expert 都能满足您的各种需求。 首先&#xff0c;PDF…

nfs配置

1.NFS介绍 NFS就是Network File System的缩写&#xff0c;它最大的功能就是可以通过网络&#xff0c;让不同的机器、不同的操 作系统可以共享彼此的文件。 NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文 件系统中&#xff0c;而在本地端的系统中来看&#…

【Kurbernetes集群】Pod资源、Pod资源限制和Pod容器的健康检查(探针)详解

Pod资源 一、Pod概述1.1 Pod的定义1.2 一个Pod能包含几个容器&#xff1f;1.3 Pod的分类1.3.1 控制器管理的Pod1.3.2 自主式Pod1.3.3 静态Pod 1.4 Pod中容器的分类1.4.1 Pause容器1.4.2 初始化容器1.4.3 应用容器 1.5 Pod常见的状态 二、Pod中的策略2.1 镜像拉取策略2.2 Pod中容…

C语言--定义一个包含年月日的结构体Day,实现一个函数,根据传入的结构体指针计算,该日期是当年的第几天?

一.题目要求 输入2000年6月5日&#xff0c;输出&#xff1a;这是2000年的第157天。 二.思路分析 首先定义一个包含年月日的结构体 年份&#xff1a;要判断是否是闰年&#xff0c;闰年的二月有29天&#xff0c;平年的二月有28天。 月份&#xff1a;一个月份分大月和小月&#…

K8S概念与架构

K8S概念与架构 一、Kubernetes 概述1、K8S 是什么2、为什么要用 K8S3、k8s介绍二、Kubernetes 集群架构与组件2.1、Master核心组件 2.2、Node核心组件 三、Kubernetes 核心概念3.1、Pod 控制器 一、Kubernetes 概述 1、K8S 是什么 K8S 的全称为 Kubernetes (K12345678S)&…

基于php js+mysql+laravel技术架构的手术麻醉管理系统源码 手麻系统源码

PHP手术麻醉管理系统源码 手麻系统源码 手术麻醉管理系统定义&#xff1a; 手术麻醉系统主要是由麻醉信息管理和监护设备数据采集系统两个部分组成&#xff0c;主要是将麻醉信息和从监护仪器上采集到的数据以及手术信息进行统计。 手术麻醉系统是指专用于住院患者手术与麻醉…