<>一.概述

<>1.存储器的分类

<>1.1 按照存储介质分类

<>1.2 按照访存周期是否均等

<>1.3 按照访问类型分类(下面俩个如果是半导体类型的那他就是随机的)

<>1.4 按照在计算机系统中的作用分类

<>2.存储器的层次结构

速度从上到下,逐渐加快
容量从上到下,逐渐变大
价格/位从上到下,逐渐变低

实现原理——局部性原理:
(1)时间局部性:现在正在访问的信息可能马上还会被访问到
(2)空间局部性:现在正在访问的信息,与之相邻的信息可能马上也会被访问到

<>二.主存储器

<>1.主存储器的技术指标

<>1.1 存储容量

存储容量=存储单元个数 ✖ 存储字长
为了便于相互比较,现在习惯上把存储字长转换为Byte(8位)的倍数

<>1.2 速度

存取时间:启动一次操作到完成该操作的时间,仅与器件本身有关
存储周期:在系统中,存储器进行俩次连续独立操作的最小间隔时间

<>1.3 带宽(单位时间内存储器完成的最大数据传输位数)

是一个速率值,单位时间通常取 1s

<>2.半导体存储器的基本组成

<>2.1 译码驱动方式

(1)线性译码
特点:控制简单、速度快、但地址空间较小
(2)多重译码
特点:控制复杂、地址空间大

<>2.2半导体存储芯片

<>2.3 静态RAM(SRAM)

特点:存储一位二进制数需要6个三极管(触发器工作原理) 速度快、控制简单、容量小

<>2.3.1 静态RAM存储元结构

T 1 、 T 2 T_{1}、T_{2} T1​、T2​:触发
T 3 、 T 4 T_{3}、T_{4} T3​、T4​:负载
T 5 、 T 6 T_{5}、T_{6} T5​、T6​:门控(只有门控打开,才能与外部联通)

<>2.3.2 静态RAM基本电路

<>2.3.3 静态RAM的读操作

<>2.3.3 静态RAM的写操作(左边反相、右边原相)

<>2.3.4 静态RAM芯片举例——Intel2114

<>2.3 动态RAM(DRAM)

特点:存储一位二进制数仅需要1个三极管(靠三极管的极间电容存储数据) 速度略慢、控制复杂、需要刷新和重写操作、容量大

<>2.3.1 动态RAM三管

<>2.3.1 动态RAM单管

<>2.3.1 动态RAM的刷新(刷新的时候需要2根选择线同时有效)

所有的刷新操作都是按行进行的,刷新时选中某一行让他的读写选择线同时有效。
对于以下这个案例,只需要32次操作

<>2.3.2 动态RAM的刷新方式

<>2.3.2.1 集中刷新(有死时间)

<>2.3.2.2 分散刷新(无死时间,但刷新间隔少了很多)

<>2.4 动态RAM和静态RAM对比

<>2.4 只读存储器(ROM)

<>2.4.1 掩膜ROM(芯片生产后,内部数据无法更改,典型意义的ROM)

掩膜一个元器件,读出存储元数据为0。不淹膜,读出存储元数据为1

<>2.4.1 可编程ROM(PROM)

<>2.4.2 可擦除PROM(EPROM)(可多次操作)

电压是Vcc时,门开,高电压。电压换到Vpp时,浮动栅阻碍,门关,变成低电压。

<>2.4.3 电可擦PROM(EEPROM)

操作过程不需要紫外线,直接用特定电流。擦除更方便,但读写速度变慢。

<>2.4.4 闪存(高速的电可擦电路)

可以理解为一种快速的EEPROM,即闪存存储器,我们用的U盘就是这样的

<>2.5主存储器

<>2.5.1 存储容量的扩展

主存多由DRAM芯片构成(通常为多片)
(1)拓展链接:拓展数据
例:用芯片2114(1K✖4),构成1K✖8的存储器
解:1K:需要10根地址线 8:需要8根数据线
2114只能提供4位,所以我们需要俩个芯片。

(俩个芯片,1个提供低4位,一个提供高4位)
为了让他们同时操作,需要一个片选同时选中俩个。为了让他们同时读写,读写信号同时连接俩个芯片。

(2)扩字连接(扩展地址)

由于俩个芯片在地址线上不能完全一样,所以要加一个非门

(3)既需要扩字又需要扩位
将8个芯片分成4组,用2-4译码器,依次选择00、01、10、11来控制哪一组工作

<>2.5.1 存储芯片与CPU的连接

例一:

由于6000H-67FFH有11位变化,所以选 2 11 = 2 K 2^{11}=2K 211=2K,8根数据线1个就够了
由于6800H-6BFFH有10位变化,所以选 2 10 = 1 K 2^{10}=1K 210=1K,8根数据线要用2个

以上总共俩组芯片,前面的高位地址只有一位在变化。 A 11 A_{11} A11​在变化,肯定在选,再选相邻的 A 12 、 A 13
A_{12}、A_{13}A12​、A13​作为3-8译码器的片选端C、B、A。则溢出的译码线为:100、101
则用剩下的 A 14 置 一 , 用 A 15 置 0 A_{14}置一,用A_{15}置0 A14​置一,用A15​置0
剩下的就 A 10 A_{10} A10​对于1K的RAM没有被用,可以让 A 10 与 A 15 A_{10}与A_{15} A10​与A15​
共同控制,构成与门

例二:

高三位是:101=5
原因:Y5接地或故障

<>2.6存储器的校验

<>2.6.1 编码的最小距离

任意俩组合法代码之间二进制之间的差异

L 最 小 码 距 − 1 = D 校 错 位 数 + C 纠 错 位 数 ( D ≥ C ) L_{最小码距}-1=D_{校错位数}+C_{纠错位数}
(D≥C)L最小码距​−1=D校错位数​+C纠错位数​(D≥C)

由上面的公式,如果最小码距为1则既不能纠错也不能检错
如果想校错,L至少为2。如果想纠错,L至少为3。

<>2.6.2 奇偶校验码

在我们添加完一位之后,最小码距变为2.可以校验1位出错,但不能纠错。

<>2.6.3 汉明码

汉明码的组成需要添加k位检测位,且满足下列公式
2 k = n 数 码 的 位 数 + k 增 添 的 位 数 + 1 2^{k}=n_{数码的位数}+k_{增添的位数}+1 2k=n数码的位数​+k增添
的位数​+1

如果经过判断,发现 C 1 对 , C 2 和 C 4 C_{1}对,C_{2}和C_{4} C1​对,C2​和C4​
出错。则一定是他们共有的那一位出错,即第6位

<>2.7 提高方寸速度的措施

<>2.7.1 单体多字

只有一个存储体,但是能提供多个存储字。利用了访存的局部性原理,实际上是一种增加存储器带宽的方法。
存储体速度慢,所以要把他放到速度更快的数据寄存器里面。

<>2.7.2 多体并行系统——高位交叉(体内连续)

高位片选存储体,地位选择体内地址。

例如可以把CPU的访存放在0体,把IO放在3体,各个体并行工作互不干扰即可提高访存速度。

<>2.7.3 多体并行系统——低位交叉(体内连续)

第一个数需要一个存储周期,其余只需要间隔1/4周期得到。
必须连续访存才能提高速度,否则不行。

<>2.7.4 存储器控制部件

一般来说,IO优先级大于CPU,写操作优先级大于读操作。
但也要具体情况具体分析

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信