概述

存储器的分类

按存储介质分类

存储介质是指能寄存“0”、“1”两种代码并能区分两种状态的物质或元器件。

  • 半导体存储器:分为双极型(TTL)半导体存储器和MOS半导体存储器,优点是体积小、功耗低、存取时间短,缺点是断电后,存储信息会丢失。TTL存储器速度快,MOS存储器集成度高,制造简单、成本低、功耗小,被广泛使用。
  • 磁表面存储器:在基体上涂一层磁性材料作为记录介质,工作时磁层随载磁体高速转动,用磁头在磁层上进行读写操作。可分为磁盘、磁带和磁鼓,具有非易失性的特点。
  • 磁芯存储器:在硬磁材料做成的原件中穿有驱动线和读出线,可进行读写操作。具有非易失性的特点,但其体积过大,工艺复杂,功耗大,后被半导体存储器替代
  • 光盘存储器:应用激光在记录介质上进行读写。具有非易失性的特点,光盘记录密度高,耐用性好,可靠性高,互换性强。

按存取方式分类

存取方式可以分为存取时间与物理地址无关和存取时间与物理地址有关两类,应用前者的有随机存储器和只读存储器,后者有顺序存取存储器和直接存取存储器。

  • 随机存储器RAM:在程序的执行过程中可读可写。其广泛应用在计算机的主存,按照存储原理的不同,又可分为静态RAM(触发器原理)和动态RAM(电容充放电原理)。
  • 只读存储器ROM:在程序的执行过程中只可读。通常用它存储固定不变的程序、常数及汉字字库等,与RAM一起作为主存。
  • 顺序存取存储器:进行读写操作时,需要按物理地址的先后顺序寻找地址,每次都从介质的始端开始按顺序寻找。代表:磁带。
  • 直接存取存储器:读写时,先直接指出该存储器中的某个小区域,再按顺序寻址,前半段是直接访问,后半段是串行访问。代表:磁盘。

早期的ROM无法更改存储的信息,叫做掩膜型只读存储器(MROM),随着技术的发展,ROM派生出了可编程只读存储器PROM、可擦除可编程只读存储器EPROM以及用电可擦除可编程只读存储器EEPROM,近年来还出现了快擦型存储器Flash Memory,具有EEPROM的特点但速度要快很多。

按在计算机中的作用分类

存储器的层次结构

存储器有三个主要特性:速度、容量和价位。我们追求的是大容量、高速度、低价位的存储器,但这是很难达到的,具体原因可以下一下存储器的分层结构图(下图):

最上层的寄存器放在CPU的内部,主存用来存放参与程序运行的数据,两者之前速度差距很大,为了两者更好的匹配,在主存与CPU之间加入了高速缓存(Cache),有时候Cache会有多级,其中靠近CPU的那一级也会放入CPU内。CPU不能直接与辅存通信,辅存只能与主存交换信息。

存储器的结构层次主要体现在缓存-主存和主存-辅存这两个存储层次。

从CPU的角度看,缓存-主存这一层次的速度是接近缓存的速度,容量和价位接近主存的容量和价位,主存-辅存这一层次,整体分析,速度接近主存,容量和价位接近辅存,缓存、主存和辅存的三级结构解决了速度、容量、成本三者矛盾。

主存储器

概述

主存和CPU的联系

现代计算机的主存由半导体集成电路构成,MAR、MDR制作在CPU芯片内,驱动器、译码器和读写电路制作在存储芯片内。存储芯片和CPU芯片可通过总线连接。

主存中存储单元的地址分配

12345678H这个十六进制数在主存中如何存储?

区别与联系:大端/小端法,主机字节序/网络字节序
不同的CPU有不同的字节序类型,这些字节序是指整数在内存中保存的顺序,叫做主机序。主机字节序包括大端法和小端法,x86系列的CPU都是小端法。
网络字节顺序是TCP/IP中规定好的一种数据表示格式,它与具体的CPU类型、操作系统等无关,从而可以保证数据在不同主机之间传输时能够被正确解释。网络字节序是大端法。

主存的技术指标

存储容量:指主存存放二进制代码的总位数。

  • 存取速度:包括存取时间和存取周期两个方面。存取时间指存储器的访问时间(读时间和写时间);存取周期指连续两次独立的存储器操作(读或写)所需要的的最小间隔时间。
  • 存储器带宽:每秒从存储器进出信息的最大数量,单位为位/秒。可用存取周期计算

半导体存储芯片

基本结构

地址线和数据线共同反映存储芯片的容量。地址线10根,数据线为4根,则芯片总容量为2^10x4=4K。

控制线包括片选线和读/写控制线,片选线用来选择存储芯片。

译码驱动方式

  • 线选法:一根字选择线直接选中一个存储单元的各位。这种方式结构简单,但如果容量比较大的时候,字线的数量会非常多,有1K的存储单元,就需要1024根线。

  • 重合法:从x、y两个方向对存储单元进行选择,对于1Kx1的芯片,显然只需要64根选择线(x、y方向各32根),被选择单元是由x和y两个方向的地址决定的,故称重合法。

随机存取存储器(RAM)

随机存取存储器按其存储信息的原理不同,可分为静态RAM(SRAM)和动态RAM(DRAM)。

所谓的刷新指的是先将原信息读出,再由刷新放大器形成原信息并重新写入的再生过程。

根据两者的特点,DRAM主要用于主存,SRAM主要用于缓存。

只读存储器(ROM)

  • 早期的只读存储器——在厂家写好内容,无法修改——MROM
  • 改进1——用户可以自己写(一次性)——PROM
  • 改进2——可以多次写(可以擦除)——EPROM
  • 改进3——电可擦写(需要特定设备)
  • 改进4——电可擦写(不需要特定设备,直接连到计算机上)——EEPROM(全部/局部擦写)
  • 结合EPROM价格便宜、集成度高和EEPROM电可擦写的特点,发展出闪速存储器(Flash Memory)

存储器与CPU的连接

存储器容量的扩展

  • 位扩展:增加存储字长,比如可以用2片1Kx4的芯片组成1Kx8的存储器,8根数据线前4根连接第一个1Kx4芯片,作为高4位;后4根连接第二个1Kx4芯片,作为低4位。
  • 字扩展:增加存储字数量,比如可以用2片1Kx8的芯片组成2Kx8的存储器,11根地址线,最高位的那根地址线作为片选线其余10根地址线都连在两个1K芯片上,如果片选信号为0,选择第一个芯片,片选信号为1,选择第二个芯片。
  • 位和字同时扩展

存储器与CPU的连接

  • 地址线连接:CPU的地址线数往往比存储芯片的地址线数要多,通常将CPU地址线的低位与存储芯片的地址线相连,CPU地址线的高位用做存储芯片扩充,或者其他用法。
  • 数据线连接:如果CPU数据线与存储器数据线不相等,必须要对存储器数据线进行扩展。
  • 读/写命令线连接:CPU读写命令线直接与存储器读写命令线相连,通常高电平为读,低电平为写。
  • 片选线连接:是CPU与存储芯片正确工作的关键,片选有效信号与CPU的访存控制信号MREQ有关。当CPU访问I/O设备时,MREQ为高电平,表示不需要存储器工作,反之,MREQ为低电平,选择存储芯片。
  • 合理选择存储芯片:ROM放系统程序、标准子程序和各类常数等,RAM为客户编程设置。

存储器的校验

原因:在计算机运行的过程中,由于种种原因致使数据在存储过程中可能出现差错,为了能及时发现并纠正错误,需要校验机制。

编码的最小距离

合法代码集{000,001,010,011,100,101,110,111},编码最小距离为1;合法代码集{000,111},编码最小距离为3

编码的纠错、参错能力与编码的最小距离有关。

公式:L - 1 = D + C(D >= C)

式中,L:编码的最小距离,D:检测错误的位数,C:纠正错误的位数。

如果L=3,即合法代码集为{000,111}, 由公式可得,D=C=1,即有1位检错能力和1位纠错能力。比如输出代码为100,我们会认为这是由代码000改变1位得来的(因为只有1位改变的几率要高于2位改变的几率),此时检测到1位错误,知道正确代码为000,因此具有1位纠错能力。

汉明码就是具有一位纠错能力的编码。

汉明码的组成
  • 汉明码采用奇偶校验。在代码中加入检测位之后,整个代码中1的个数是奇数,就是奇校验,是偶数,就是偶校验
  • 汉明码采用分组校验

举例:对代码00100011进行偶校验,因为代码中已经含有3个1,所以校验位为1,将校验位与数据代码结合,得到汉明码100100011,经过传输后,如果输出的汉明码中1的个数变为奇数了,那我们就知道9位中有1位发生了改变,但改变的是哪一位,并不知道,此时可以采用分组校验,把8位数据分为2组,每4位加一个校验码,此时的汉明码为1001000011,还可以继续分组。

  • 汉明码的分组是一种非划分方式。所谓的非划分,就是组和组之间是有交叉的,有些位只属于某个组,有些位属于某几个组。

检验位应该放在哪些位置?放在1,2,4,8,…

如何分组?第1组:XXXX1,右边第1位都是1;第2组,XXX1X,右边第2位都是1;第3组,XX1XX,右边第3位都是1;…

汉明码的三要素:

  • 需要增添k检测位,k如何计算?
    2^k >= n + k + 1, n为数据位数

  • 检测位位置?
    2^i(i = 0, 1, 2, 3,…)

  • 检测位取值,0还是1?
    与奇校验还是偶校验有关

例题:求0101按“偶校验”配置的汉明码

解:因为n = 4,根据公式2^k >= n + k + 1,得k = 3,共需要3位检测位,位置为1, 2, 4,因此汉明码为C1 C2 0 C3 1 0 1,又因为是偶校验,第一组的分组为XXXX1,所以包含的位数是1,3,5,7,第3位是0,第5位是1,第7位是1,1的个数是偶数,所以C1为0,同理可得,C2是1,C3是0,所以,0101的汉明码为0100101.

提高访存速度的措施

  • 采用高速器件
  • 采用层次结构 Cache—主存
  • 调整主存结构

调整主存结构有两种方式,单体多字系统和多体并行系统。

1.单体多字系统

程序和数据在内存中是连续存放的,因此CPU访存取出的信息也是连续的,因此,我们可以一次性取出多条指令,然后再逐条送往CPU,这样就增大了存储器的带宽,提高了单体存储器的工作速度。如果碰到跳转指令或者数据存放不连续,效果就不好了。

2.多体并行系统

采用多体模块组成的存储器,每个模块有相同的容量和速度,各模块各自有独立的地址寄存器、地址译码器、驱动电路和读写电路。并行工作即同时访问N个模块,同时启动,同时读出,完全并行的工作

还可以细分为高位交叉和低位交叉

(1)高位交叉

按顺序进行编址。地址的高位表示体号,低位表示体内的地址,在存放数据时,一个体存满后,再存入下一个体。

缺点很明显,容易发生某个存储体被频繁使用,而其他存储体空闲的状况。

(2)低位交叉

为了解决高位交叉的问题,我们采用各个存储体轮流便编址,地址的低位表示体号,高位表示体内地址。

辅助存储器

特点:不直接与CPU交换信息,构成主存—辅存层次

本片文章就分享到这了,有任何问题可以在下方评论。
更多关于内容可以移步我的博客,热爱生活,分享知识。

计算机组成原理之主存储器相关推荐

  1. 计算机组成原理实验主存储器,计算机组成原理实验课件--存储器讲解.ppt

    计算机组成原理实验课件--存储器讲解.ppt 1,实验三存储器实验,2,实验目的 理解计算机主存储器的功能.组成知识: 熟悉ROM芯片和RAM芯片在功能和使用方法等方面的相同和差异之处: 理解并熟悉通 ...

  2. 计算机组成原理实验主存储器,计算机组成原理实验课件--存储器.ppt

    <计算机组成原理实验课件--存储器.ppt>由会员分享,提供在线免费全文阅读可下载,此文档格式为ppt,更多相关<计算机组成原理实验课件--存储器.ppt>文档请在天天文库搜索 ...

  3. 计算机组成原理主存储器知识点,【考研】2020考研:计算机组成原理知识点主存储器与CPU的连接...

    免费申请学习规划 请选择在读年级 学前 小学 初中 高中 大学 留学 其他 已为29471位学员提供学习规划 *验证码 *短信验证码 {"text1":{"label&q ...

  4. 计算机组成原理之高速缓冲存储器(Cache)

    概述 问题的提出 由上一篇计算机组成原理之主存储器中的存储器分层结构图可知,CPU(寄存器)和主存(DRAM)之间存在速度的差异,由于主存的速度很慢,在CPU访存时,就会出现CPU的"空等& ...

  5. 计算机组成原理主存储器知识点,计算机组成原理(存储器).ppt

    计算机组成原理(存储器).ppt 计算机组成原理,主讲颜俊华 存储子系统,存储子系统,主要知识点 掌握存储器的分类.存储系统的层次结构 掌握存储单元.存储容量.地址线.数据线的关系3. 掌握用半导体存 ...

  6. 计算机组成原理_实验三:主存储器原理实验

    实 验 报 告 课程名称:计算机组成原理物理实验 实验项目:主存储器原理实验 实验仪器:数据通路板.控制信号板 一.(PC)→ R2 1. ( PC ) → BUS PC - BUS 2. BUS → ...

  7. (计算机组成原理)第三章存储系统-第三节1:主存储器和CPU的连接

    专栏目录首页:[专栏必读]王道考研408计算机组成原理万字笔记.题目题型总结.注意事项.目录导航和思维导图 文章目录 本节思维导图 一:单块存储芯片与CPU的连接 二:多块存储芯片与CPU的连接 (1 ...

  8. 计算机组成原理-第一章

    计算机组成原理第一章概述 一.计算机系统概述 1. 定义 2.分类 3.计算机系统的抽象层次 二.计算机系统的组成 1.计算机系统的硬件组成 1.1冯.诺依曼计算机(重点) 1.2现代计算机结构 1. ...

  9. 计算机组成原理读写周期波形图,第3章存储器层次结构-1讲述.ppt

    第3章存储器层次结构-1讲述 计算机组成原理 * 计算机组成原理 --存储器层次结构(1) 2016-3-18 几个基本概念 1.存储器:计算机系统中的记忆设备,用来存放程序和数据. 2.存储元:存储 ...

最新文章

  1. oracle rownum分页 出现重复数据
  2. 万亿级日志与行为数据存储查询技术剖析
  3. 第三部分:Android 应用程序接口指南---第二节:UI---第八章 Toast通知
  4. 理解分布式一致性:拜占庭容错与PBFT
  5. *【HDU - 6333】Problem B. Harvest of Apples (莫队,逆元,组合数学)(这样预处理正确吗?)
  6. pytorch 语义分割loss_关于pytorch语义分割二分类问题的两种做法
  7. 【Hadoop】HDFS三组件:NameNode、SecondaryNameNode和DataNode
  8. 如何将Groovy中的文件读入字符串?
  9. 一个类中域(field)的首字母不要大写
  10. Java入门基础第2天《java jdk下载与安装教程》
  11. python选择结构练习(六)
  12. HTML基本结构标签
  13. 白盒测试技术——语句覆盖、判定覆盖、条件覆盖
  14. Solana首个IDO平台Solstarter前景如何?
  15. android 虚拟基站和经纬度,android基于Gps 定位跟基站定位获取经纬度
  16. 百度搜索引擎结果网址参数键盘重复速度(rsv_sug3)
  17. [2019.7.31~2019.8.15]纪中集训游记
  18. ajax谷歌浏览器提示等待超时,调用谷歌浏览器爬虫,selenium webdriver等设置等待时间和超时时间...
  19. 大陆移动手机卡开通国际漫游(港澳台)
  20. 进程和守护进程的区别

热门文章

  1. SQL TIMESTAMP 时间日期比较语句
  2. 从微信的成功看移动AppUI设计的精髓
  3. NB-IoT、eMTC、LoRa三种制式该如何选择?
  4. Flutter:手把手教你进行BLE应用的开发-flutter_blue
  5. C语言中的void 和void 指针类型
  6. 【深度报道】被业内称作“骨灰级AI玩家”的科大讯飞推出多款产品惊艳亮相...
  7. 河南省第十届ACM赛题
  8. HDU 1051 Wooden Sticks 造木棍【贪心】
  9. 微信小程序详细图文讲解
  10. 定期备份web工程,压缩为.zip文件