计算机组成原理 存储器


清风明月
清风明月 2022-09-21 14:43:54 50480
分类专栏: 资讯

文章目录

1 概述

1.1 存储器分类

存储器是计算机系统中的记忆设备,用来存放程序和数据。

从某种意义而言,存储器的性能已经成为计算机系统的核心。

从不同的角度对存储器可作不同的分类。

1.1.1 按存储介质分类

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

存储介质主要有半导体期间、磁性材料和光盘等。

1.1.1.1 半导体存储器

现代半导体存储器都用超大规模集成电路工艺制成芯片

优点是体积小、功耗低、存取时间短。

缺点是当电源消失时,所存储的信息也随即丢失,它是一种易失性存储器。

半导体存储器又可按其材料的不同,分为双极型(TTL)半导体存储器MOS半导体存储器两种

前者具有高速的特点。

后者具有高集成度的特点,并且制造简单,成本低廉,功耗小。

故MOS半导体存储器被广泛应用。

1.1.1.2 磁表面存储器

磁表面存储器具有非易失性的特点。

1.1.1.3 磁芯存储器

不易失的永久记忆存储器。

1.1.1.4 光盘存储器

具有非易失的特点。

光盘具有记录密度高、耐用性好、可靠性高和可互换性强的特点。

按存储介质分类

1.1.2 按存取方式分类

1.1.2.1 随机存储器(Random Access Memory, RAM)

RAM是一种可读/写存储器

特点:存储器的任何一个存储单元的内容都可以随机存取,而且存取时间与存储单元的物理位置无关。

计算机系统中的主存都采用这种随机存储器。

由于存储信息的原理不同,RAM又分为静态RAM(以触发器原理寄存信息)和动态RAM(与电容充放电原理寄存信息)。

1.1.2.2 只读存储器(Read Only Memory, ROM)

ROM是能对其存储的内容读出,而不能对其重新写入的寄存器。

通常用它存放固定不变的程序、常数和汉字字库,甚至用于操作系统的固化。

它与随机存储器可共同作为主存的一部分,统一构成主存的地址域。

1.1.2.3 串行访问存储器

如果对存储单元进行读/写操作时,需按其物理位置的先后顺序寻找地址,则这种存储器称为串行访问存储器。

按存取方式分类

1.1.3 按在计算机中的作用分类

分为主存储器辅助存储器缓冲存储器

1.1.3.1 主存储器

主存储器(简称主存)的主要特点是它可以和CPU直接交换信息。

主存速度快、容量小、每位价格高。

1.1.3.2 辅助存储器

辅助存储器(简称辅存)是主存储器的后援存储器,用来存放当前暂时不用的程序和数据,它不能与CPU直接交换顺序。

辅存速度慢、容量大、每位价格低。

1.1.3.3 缓冲存储器

缓冲存储器(简称缓存)用在两个速度不同的部件之中,起到缓冲作用(例如CPU与主存之间)

按在计算机中的作用分类

1.2 存储器的层次结构

存储器有3个主要性能指标:速度容量每位价格(简称位价)

一般来说,速度越高,位价就越高;容量越大,位价就越低,而且容量越大,速度必越低。

存储器速度、容量和位价的关系

实际上,存储系统体系结构主要体现在缓存-主存和主存-辅存这两个层次结构上

存储系统体系结构

1.2.1 缓存-主存层次

缓存-主存层次主要解决CPU和主存速度不匹配的问题

从CPU角度来看,缓存-主存这一层次的速度接近于缓存,高于主存;其容量和位价却接近于主存,这就从速度和成本的矛盾中获得了理想的解决办法

1.2.2 主存-辅存层次

主存-辅存层次主要解决存储系统的容量问题

主存-辅存这一层次,从整体分析,其速度接近于主存,容量接近于辅存,平均为假也接近于低速、廉价的辅存位价,这有解决了速度、容量、成本这三者的矛盾

从主存-辅存这一层次的不断发展中,逐渐形成了虚拟存储系统

虚拟存储系统

2 主存储器

2.1 概述

2.1.1 主存储器的基本结构

主存的基本组成

2.1.2 主存和CPU的联系

主存和CPU的联系
当要从存储器读出某一信息字时

  1. 由CPU将该字的地址送到MAR,经地址总线送至主存,然后发出读命令
  2. 主存接到读命令后,完成读操作,将该单元的内容读至数据总线上
  3. CPU负责将该信息送至目标位置

若要向主存存入一个信息字

  1. CPU将该字所在主存单元的地址经MAR送到地址总线,并将信息字送入MDR
  2. CPU向主存发出写命令
  3. 主存接到写命令后,便将数据线上的信息写入到对应地址线指出的主存单元中

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

主存各存储单元的空间位置是由单元地址号来表示的

而地址总线是用来指出存储单元地址号的,根据该地址可读出或写入一个存储字

不同的机器存储字长也不同

常用8位二进制数表示一个字节

通常计算机系统即可按字寻址,也可按字节寻址

存储单元地址的分配

字节

16位的字

  1. 字由地址连续的字节组成
  2. 最小的地址为字的地址
  3. 地址最好为一个字所含字节数的倍数

2.1.4 主存的技术指标

主存的主要技术指标是存储容量存储速度

2.1.4.1 存储容量

存储容量是指主存能存放二进制代码的总位数,即

存 储 容 量 = 存 储 单 元 个 数 × 存 储 字 长 存储容量 = 存储单元个数 \times 存储字长 =×

它的容量也可用字节总数来表示,即

存 储 容 量 = 存 储 单 元 个 数 × 存 储 字 长 ÷ 8 存储容量 = 存储单元个数 \times 存储字长 \div 8 =×÷8

2.1.4.2 存储速度

存储速度是由存取时间和存取周期来表示的

存取时间又称为存储器的访问时间(Memory Access Time),是指启动一次存储器操作(读或写)到完成该操作所需的全部时间。

存取时间分读出时间和写入时间两种

存取周期(Memory Cycle Time)是指存储器进行连续两次独立的存储器操作所需的最小间隔时间

通常存取周期大于存取时间

2.1.4.3 存储器带宽

与存取周期密切相关的指标为存储器带宽,它表示单位时间内存储器存取的信息量,单位可用 字/秒 或 字节/秒 或 位/秒 表示

为提高存储器的带宽,可以采用以下措施:

  1. 缩短存取周期
  2. 增加存储字长,使每个存取周期可读/写更多的二进制位数
  3. 增加存储体

主存的技术指标

2.2 半导体存储芯片简介

2.2.1 半导体存储芯片的基本结构

半导体存储芯片

2.2.1.1 译码驱动

译码驱动能把地址总线送来的地址信号翻译成对应存储单元的选择信号,该信号在读/写电路的配合下完成对被选中单元的读/写操作

2.2.1.2 读/写电路

读/写电路包括读出放大器和写入电路,用来完成读/写操作。

2.2.1.3 存储芯片

存储芯片通过地址总线、数据总线和控制总线与外部相连

2.2.1.4 地址线

地址线是单向输入的,其位数与芯片容量有关

2.2.1.5 数据线

数据线是双向的,其位数与芯片可读出或写入的数据位数有关。数据线的位数与芯片容量有关

地址线和控制线的位数共同反映存储芯片的容量

芯片容量

2.2.1.6 控制线

控制线主要有读/写控制线与片选线两种

控制线

读写控制线用来决定芯片进行读/写操作,片选线用来选择存储芯片

控制线

2.2.2 半导体存储芯片的译码驱动方式

半导体存储芯片的译码驱动方式有两种:线选法和重合法

2.2.2.1 线选法

线选法
用一根字选择线(字线),直接选中一个存储单元的各位(如一个字节)。

这种方式结构较简单,但只适用于容量不大的存储芯片

2.2.2.2 重合法

重合法
只需要64根选择线(X、Y两个方向各32根),便可选择 32 × 32 32 \times 32 32×32矩阵中的任一位

由于被选单元是由X、Y两个方向的地址线决定的,故称为重合法

2.3 随机存取存储器

随机存取存储器按其存储信息的原理不同,可分为静态RAM和动态RAM两大类

2.3.1 静态RAM(Static RAM,SRAM)

2.3.1.1 静态RAM基本单元电路

存储器中用寄存“0”和“1”代码的电路称为存储器的基本单元电路

静态RAM基本电路

2.3.1.2 静态RAM芯片举例

Intel 2114 芯片

Intel 2114 芯片

2.3.1.3 静态RAM读/写时序

读操作
读时序

写操作
写时序

2.3.2 动态RAM(Dynamic RAM,DRAM)

2.3.2.1 动态RAM的基本单元电路

常见的动态RAM的基本单元电路有三管式和单管式两种

它们的共同特点都是靠电容存储电荷的原理来寄存信息

电容上的电荷一般只能维持1~2ms,为此必须在2ms内对其所有存储单元恢复一次原状态,这个过程称为再生或刷新

它与静态RAM相比,具有集成度更高、功耗更低等特点

2.3.2.2 动态RAM芯片举例

三管动态RAM芯片

三管动态RAM

Intel 1103 芯片

1103

单管动态RAM芯片

单管动态RAM芯片

Intel 4116 芯片

4116

2.3.2.3 动态RAM时序

读时序

动态RAM读时序
写时序

动态RAM写时序

2.3.2.4 动态RAM的刷新

刷新的过程实质上是先将原存信息读出,再由刷新放大器形成原信息并重新写入的再生过程

必须采用定时刷新的方法,在一定时间内,对动态RAM的全部基本单元电路必作一次刷新,一般取2ms,这个时间称为刷新周期,又称再生周期

2.3.2.4.1 集中刷新

集中刷新是在规定的一个刷新周期内,对存储单元集中一段时间逐行进行刷新,此刻必须停止读/写操作

集中刷新

不能进行读/写操作的时间称为“死时间”,又称访问“死区”,所占比率称为死时间率

2.3.2.4.2 分散刷新

分散刷新是指对每行存储单元的刷新分散到每个存储周期内完成

分散刷新
没有死时间,但存储周期长了,整个系统速度降低了

2.3.2.4.3 异步刷新

异步刷新是前两种方式的结合,它即可缩短“死时间”,又充分利用最大刷新间隔为2ms的特点

异步刷新
将刷新安排在指令译码阶段,不会出现 “死区”

2.3.3 动态RAM与静态RAM的比较

比较

2.4 只读存储器

2.4.1 MROM(不可编程)

MROM

2.4.2 PROM(一次性编程)

PROM

2.4.3 EPROM(多次性编程)

EPROM

2.4.4 EEPROM(电可擦除)

2.4.5 Flash Memory

2.5 存储器与CPU的连接

2.5.1 存储容量的扩展

2.5.1.1 位扩展

位扩展是指增加存储字长

位扩展

2.5.1.2 字扩展

字扩展是指增加存储器字的数量

字扩展

2.5.1.3 字、位扩展

字、位扩展是指既增加存储字的数量,又增加存储字长

字、位扩展

2.5.2 存储器与CPU的连接

2.5.2.1 地址线的连接

存储芯片的容量不同,其地址线数也不同,CPU的地址线数往往比存储芯片的地址线数多。

通常总是将CPU地址线与存储芯片的地址线相连。

CPU的高位或在存储芯片扩充时用,或做其他用途,如片选信号等。

2.5.2.2 数据线的连接

CPU的数据线数与存储芯片的数据线数也不一定相等。

此时,必须对存储芯片扩位,使其数据位数与CPU的数据线数相等

2.5.2.3 读/写命令线的连接

CPU读/写命令线一般可直接与存储芯片的读/写控制端相连,通常为高电平为读,低电平为写

2.5.2.4 片选线的连接

存储器由许多存储芯片组成,哪一片被选中完全取决于该存储芯片的片选控制端CS能否接收到来自CPU的片选有效信号

2.5.2.5 合理选择存储芯片

存储芯片类型(RAM或ROM)和数量的选择

2.6 存储器的校验

2.6.1 编码的最小距离

由编码纠错理论得知,任何一种编码是否具有检测能力和纠错能力,都与编码的最小距离有关。

所谓编码最小距离,是指在一种编码系统中,任意两组合法代码之间的最少二进制位数的差异。

根据纠错理论得

L − 1 = D + C , D ≥ C L - 1 = D + C, D \ge C L1=D+C,DC

即编码最小距离L越大,则其检测错误的位数D越大,纠正错误的位数C也越大,且纠错能力恒小于等于检错能力。

2.6.2 汉明码的组成

设欲检测的二进制代码为n位,为使其具有纠错能力,需增添k位检测位,组成 n + k 位的代码。

为了能准确地对错误定位以及指出代码没错,新增添的检测位数 k应满足:

2 k ≥ n + k + 1 2^k \ge n + k + 1 2kn+k+1

检测位的位置 2 i ( i = 0 , 1 , 2 , 3 , ⋯   ) 2^i ( i = 0,1,2 ,3 ,\cdots ) 2i(i=0123)

检测位的取值与该位所在的检测“小组” 中承担的奇偶校验任务有关

各检测位承担的检测小组为

检测小组

独占

2.6.3 汉明码的纠错过程

对传送后的汉明码形成新的检验位 P i ( i = 1 , 2 , 4 , 8 ) P_i (i = 1, 2, 4, 8) Pi(i=1,2,4,8),根据 P i P_i Pi的状态,便可直接指出错误的位置。

其位数与增添的检测位有关

汉明码纠错
汉明码常常被用在纠错一位的场合,若欲实现检错两位,实用时还得在增添一位检验位

2.7 提高访存速度的措施

2.7.1 单体多字系统

单体多字系统

2.7.2 多体并行系统

采用多体模块组成的存储器。

每个模块有相同的容量和存取速度,各自拥有独立的模块。

它们能并行工作,又能够交叉工作

2.7.2.1 交叉编址

2.7.2.1.1 高位交叉

顺序编址,各个体并行工作

高位交叉

2.7.2.1.2 低位交叉

各个体轮流编址

低位交叉

可以在不改变每个模块存取周期的前提下,提高存储器的带宽

2.7.2.1.3 存储控制部件

在某一时刻,决定主存究竟与哪个部件交换信息必须由**存储器控制部件(简称存控)**来承担

存控具有合理安排各部件请求访问的顺序以及控制主存读/写操作的功能

存控

2.7.3 高性能存储芯片

2.7.3.1 SDRAM(同步DRAM)

在系统时钟的控制下进行读出和写入

CPU 无须等待

2.7.3.2 RDRAM

由 Rambus 开发,主要解决存储器带宽问题

2.7.3.3 带Cache的DRAM(CDRAM)

在 DRAM 的芯片内集成了一个由SRAM组成的Cache,有利于猝发式读取

3 高速缓冲存储器

3.1 概述

3.1.1 问题的提出

问题的提出
Cache的出现使CPU可以不直接访问主存,而与高速Cache交换信息

3.1.2 Cache的工作原理

3.1.2.1 主存和缓存的编址

编址
主存和缓存按块存储

块的大小相同

B 为块长

3.1.2.2 命中与未命中

缓存共有 C 块,主存共有 M 块,M >> C(M远远大于C)

命中:

主存块 调入 缓存,主存块与缓存块 建立 了对应关系

标记记录 与某缓存块建立了对应关系的 主存块号

未命中:

主存块 未调入 缓存

主存块与缓存块 未建立 对应关系

3.1.2.3 Cache的命中率

CPU 欲访问的信息在 Cache 中的 比率

命中率 与 Cache 的 容量块长 有关

一般每块可取 4 ~ 8 个字

块长取一个存取周期内从主存调出的信息长度

3.1.2.4 Cache –主存系统的效率

效率 e命中率 有关

e = 访 问 C a c h e 的 时 间 平 均 访 问 时 间 × 100 % e = \frac{访问 Cache 的时间}{平均访问时间} \times 100 \% e=访访Cache×100%

设 Cache 命中率 为 h,访问 Cache 的时间为 t c t_c tc,访问 主存 的时间为 t m t_m tm

e = t c h × t c + ( 1 − h ) × t m × 100 % e = \frac{t_c}{h \times t_c + (1 - h) \times t_m} \times 100 \% e=h×tc+(1h)×tmtc×100%

3.1.3 Cache的基本结构

Cache基本结构

3.1.3.1 Cache存储体

3.1.3.2 地址映射变换机构

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=9117
赞同 0
评论 0 条
清风明月L0
粉丝 0 发表 13 + 关注 私信
上周热门
如何使用 StarRocks 管理和优化数据湖中的数据?  2672
【软件正版化】软件正版化工作要点  2637
统信UOS试玩黑神话:悟空  2532
信刻光盘安全隔离与信息交换系统  2216
镜舟科技与中启乘数科技达成战略合作,共筑数据服务新生态  1092
grub引导程序无法找到指定设备和分区  743
WPS City Talk · 校招西安站来了!  15
看到某国的寻呼机炸了,就问你用某水果手机发抖不?  14
金山办公2024算法挑战赛 | 报名截止日期更新  14
有在找工作的IT人吗?  13
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

加入交流群

请使用微信扫一扫!