计算机组成原理<五>——存储系统(一)

简介: 计算机组成原理<五>——存储系统

存储系统基本概念


存储器的层次结构


image.png

image.png

我们平时玩的王者荣耀,抖音是放在辅存里面的,但是要是运行需要把辅存中的数据调入到CPU,而辅存的速度又太慢,只能先将其调入到主存,然后再被CPU访问。

但是主存的速度还是不够快,我们引入了Cache,把经常使用的,例如:微信里的视频功能,存入到Cache中,一旦使用直接被CPU访问,加快速度.这就是Cache的主要作用,主要是缓解CPU和主存之间的速度矛盾

主存---辅存:实现虚拟存储系统,解决了主存容量不够的问题

Cache--辅存:解决了主存与CPU速度不匹配的问题

存储器的分类


层次

image.png

image.png

存储介质

存储器的功能:存放二进制信息

1.半导体存储器(主存,Cache):以半导体器件存储信息

2.磁表面存储器(磁盘,磁带):以磁性材料存储信息

3.光存储器:以光介质存储信息

存取方式

随机存取存储器:读写任何一个存储单元所需时间都相同,与存储单元所在的物理位置无关.

顺序存取存储器:读写一个存储单元所需要时间取决于存储单元所在的物理位置

直接存取存储器:既有随机存取特性,也有顺序存取特性。先直接选取信息所在区域,然后按顺序方式存取

相联存储器:即可以按内容访问的存储器,可以按照内容检索到存储位置进行读写,"快表就是一种相联存储器

顺序,直接存取存储器,称为串行访问存储器,读写某个存储单元所需时间与存储单元的物理位置有关.

信息的可更改性:

读写存储器:即可读,也可写(如:磁盘,内存,Cache)

只读存储器:只能读,不能写

信息的可保存性

断电后,存储信息消失的存储器--易失性存储器(主存,Cache)

断电后,存储信息依然保持的存储器--非易失性存储器(磁盘,光盘)

信息读出后,原存储信息被破坏--破坏性读出(如DRAM芯片)

信息读出后,原存储信息不被破坏--非破坏性读出(如SRAM芯片)

存储器的性能指标


1.存储容量;存储字数*字长(前面讲过,此处不做过多赘述)

2.单位成本:每位价格=总成本/总容量

3.存储速度:数据传输率=数据的宽度/存储周期(数据的宽度:存储字长,存储周期=存取时间+恢复时间)

主存储器的基本组成


基本的半导体元件及原理


image.png

image.png

读出:WMOS管:可理解为一种电控开关,输入电压达到某个阈值时,MOS管就可以接通,MOS就是一个典型的半导体元件;电容的下面是接地的,当电容上下存在明显电压差,就会产生电浮,计算机中用二进制1表示,MOS管中电压达到某个阈值时,就会接通,将1传入到另一边


写入:再导线的右端加一个电压,用二进制1表示,然后MOS管接通,1进来,电容就会存在电压差,接下来断开MOS管,这样电容里的电荷就跑不出去了.

然后我们将多个存储元连在一起,我们就一次性可以读出或写入多个二进制数据;我们称为存储单元.将多个存储单元称为存储体;

image.png

存储器芯片的基本原理


image.png

n位地址->2^n个存储单元;

总容量=存储单元个数*存储字长=2^3*8bit=2^3*1Byte=8B

译码器:根据地址寄存器给出的n位地址,转换成某一条选通线的高电平信号;

如图MAR:3位地址->2^3个存储单元;

接下来我们继续完善存储器的构成,我们需要增加控制电路

image.png

由于我们使用电信号传入,难免有不稳定的时候,当MAR里面的电信号稳定之前,控制电路是不会让其进入的,只有稳定时候才会打开译码器的开关,让译码器来翻译这个地址;当数据输出的时候,只有当MDR稳定的时候才会执行.

image.png

CS:芯片选择信号(上面有个线,不会打,可以看图中)

CE:芯片使能信号

这样就完成了一个完整构造的存储芯片;

image.png

n位地址->2^n个存储单元;

总容量=存储单元个数*存储字长=2^3*8bit=2^3*1Byte=8B

8*8的存储芯片

常见的描述:8K*8位,即2^13*8bit;8K*1位,即2^13*1bit;64K*16位,即2^16*16bit

寻址


image.png

网络异常,图片无法展示
|
现在计算机当中通常是按字节编制寻址的.每个小矩阵是8bit也就是1B;

这个存储矩阵总容量为1KB;

按字节寻址,1K个单元,每个单元1B;1K个单元,说明地址线有10根,2^10=1K

按字寻址:256个单元,每个单元4B;

按半字寻址:512个单元,每个单元2B;

按双字寻址:128个单元,每个单元8B;

DRAM和SRAM


存储元件不同导致的特性差异


Dynamic Random Access Memory 即动态RAM

Static      Random Access Memory 即静态RAM

DRAM用于主存,SRAM用于Cache

DRAM芯片:使用栅极电容存储信息

SRAM芯片:使用双稳定触发器存储信息

核心区别:存储元不一样

栅极电容V.S.双稳态触发器

栅极电容

image.png

读出1:MOS管接通,电容放电,数据线上产生电流

读出电容后,也就是电容放电信息被破坏,是破坏性读出.读出后应有重写操作,也称"再生"

因此读写速度慢

读出0:MOS管接通后,数据线上无电流;

因为只有一个存储元制造成本更低一点,集成度高,功耗低

双稳态触发器

image.png

1:A高B低; 0:A低B高

读出数据,触发器状态保持稳定,是非破坏性读出,无需重写,因此读写速度快;

每个存储元制造成本更高,集成度低,功耗大

对比DRAM和SRAM

类型特点 SRAM(静态RAM) DRAM(动态RAM)
存储信息 触发器 电容
破坏性读出
读出后需要重写? 不用 需要
运行速度
集成度
发热量
存储成本
易失/非易失性存储器? 易失 易失(断电后信息消失)
需要刷新? 不需要

需要(分散,集中,异步)

"刷新"由存储器独立完成,不需要CPU控制

送行列地址 同时送

分两次送(地址线复用技术)

导致地址线,地址引脚减半

用作Cache 用作主存

栅极电容:电容内的电荷只能维持2ms.即便不断电,2ms后信息也会消失;也就是2ms之内必须刷新一次(给电容充电)

双稳态触发器:只要不断电,触发器的状态就不会发生改变

DRAM的刷新


DRAM的刷新

1.多久需要刷新一次?刷新周期:一般为2ms

2.每次刷新多少存储单元?以行为单位,每次刷新一行存储单元

为什么要用行列地址?

减少选通线的数量;像2^8=256根选通线,可以排成2^4+2^4=32根选通线;

3.如何刷新:有硬件支持,读出一行的信息后重新写入,占用1个读/写周期

4.在什么时刻刷新?

image.png

DRAM的地址线复用技术


为了让地址线变的更少和更简单,我们采用DRAM的地址线复用技术,

行,列地址分两次送,可使地址线更少,芯片引脚更少

image.png

只读存储器ROM


RAM芯片——易失性,断电之后数据消失

ROM芯片------非易失性,断电之后数据不会丢失

MROM--掩模式只读存储器

厂家按照客户需求,在芯片生产过程中直接写入信息,之后任何人不可重写(只能读出),可靠性高,灵活性差,生产周期长,只适合批量定制.

PROM--可编程只读存储器

用户可用专门的PROM写入器写入信息,写一次之后就不可更改

EPROM--可擦除可编程只读存储器

允许用户写入信息,之后用某种方法擦除数据,可进行多次重写。

UVEPROM--用紫外线照射8-20分钟,擦除所有信息

EEPROM--可用"电擦除"的方式,擦除特定的字

Flash Memory--闪速存储器(U盘,SD卡就是闪存)

在EEPROM基础上发展而来,断电后能保存信息,且可进行多次快速擦除重写

SSD--固态硬盘

由控制单元+存储单元(Flash芯片)构成,与闪速存储器的核心区别在于控制单元不一样,但存储介质都类似,可进行多次快速擦除重写.SSD速度快,功耗低,价格高。目前个人电脑上常用SSD取代传统的机械硬盘

计算机内的重要ROM

image.png

CPU的任务:就是到主存中取指令并执行指令;


RAM:断电后,RAM内的数据全部丢失;


例如计算机关机后,主存里数据会全部丢失,CPU需要读取开机等指令,但是RAM数据全部丢失,所以需要从主板上的BIOS芯片(ROM)读取开机所需要的指令(BIOS芯片(ROM)存储了"自举装入程序"负责引导装入操作系统(开机)).

注:我们常说"内存条"就是"主存"但事实上,主板上的ROM芯片也是"主存"的一部分

逻辑上,主存由RAM+ROM组成,且二者统一编址.

image.png

存储器与CPU的连接


单块存储芯片与CPU的连接


image.png

这个是8*8位的存储芯片;如果我们想要扩展主存字数怎么办?假如数据总线宽度>存储芯片字长怎么办?

虽然现在的MAR和MDR都画在存储器中,但现在的计算机MAR,MDR通常集成在CPU内部。存储芯片内只需一个普通的寄存器(暂存输入,输出数据)

现在的计算机

image.png

存储芯片的输入输出信号

image.png

片选信号:低电平有效(CS或CE)上面上划线;高电平有效(CS或CE)

读/写控制线:低电平有效(WE或WR)上面有上划线,高电平有效(WE或WR)

增加主存的存储字长---位扩展

image.png

8K就是2^13次方,所以我们要用13根地址线,A0-A12,WE代表write Enable不带上面的线,说明


当这个信号是高电平的时候,此时往里面写数据;CS上面没有画横线,直接给他接上高电平;


此时我们主存只有一块存储芯片,每一次只能读或写一位数据,所以此时主存的存储字长只有1bite,数据总线并没有被充分的利用;为了解决这个问题,我们给主存再加上相同型号的一个存储芯片;

image.png

接下来我们使用同样的方法,最终就可以得到:

image.png

8片8K*1位的存储芯片->1个8K*8位的存储器,容量8KB;

增加主存的存储字数--字扩展

image.png

按照上面的说法,连接后,发现A13,A14,A15这三根线会浪费掉,再仔细观察上面这个图给这两个芯片都是高电平1,他们都在工作,会导致数据总线D0-D7的冲突,那么如何解决这个问题囊?关键在于片选线的应用,当A13为1,A14为0时第一个芯片工作,第二个芯片不工作,反之则第二个工作,但是A13,A14不能同时为1,0;


这种方法称为线选法:A14,A133只能为01或10n条线->n个选片信号;


接下来对线选法进行优化,给A13接一个非门处理;

image.png

那么第一个芯片最低地址:100 0000 0000 0000;最高地址:11 1111 1111 1111;


第二芯片最低地址:00 0000 0000 0000;最高地址:01 1111 1111 1111


上面的我们称为1-2译码器;其实之前我们接触过更复杂的译码器,译码器片选法:n条线->2^n个片选信号;


我们接下来再看一个2-4译码器

image.png

按照同样的方法,把A15也接上,就是3-8译码器

既然有字扩展,位扩展,那么有没有两种结合

主存容量扩展--字位同时扩展

image.png

关于译码器知识的补充


image.png

网络异常,图片无法展示
|
这里我们给出3-8译码器,有三个输入端,八个输出端,译码器Y0-Y7只会有一条线是高电平,那么这个译码器就可以和高电平有效存储芯片配合使用;

那么我们来看译码器的另一种画法,译码器的右边画一个小圆,低电平有效;

image.png

那我们来看一种更复杂的情况

image.png

注:CPU可使用译码器的使能端控制片选信号的生效时间

网络异常,图片无法展示
|

相关文章
|
6月前
|
算法 内存技术
计算机组成原理:存储系统【二】
计算机组成原理:存储系统【二】
|
6月前
|
存储 固态存储 算法
计算机组成原理:存储系统【四】
计算机组成原理:存储系统【四】
|
6月前
|
存储 芯片 内存技术
计算机组成原理:存储系统【三】
计算机组成原理:存储系统【三】
|
6月前
|
存储 芯片 内存技术
计算机组成原理:存储系统【一】
计算机组成原理:存储系统【一】
|
6月前
|
存储 算法 固态存储
【计算机组成原理】存储系统
【计算机组成原理】存储系统
2342 0
【计算机组成原理】存储系统
|
1月前
|
缓存
计算机组成原理的缓存
计算机组成原理中缓存的效率计算、缓存命中率的确定以及Cache与主存地址映射的三种方式:直接映射、全相联映射和组相联映射。
35 1
|
6月前
|
存储
计算机存储系统
【1月更文挑战第5天】计算机存储系统。
70 3
|
存储 缓存
计算机组成原理(3)存储器
3.1.概述 3.1.1.定义 存储器,用于存储数据和程序。存储器中,以二进制的方式存储数据和程序,存储器由N个存储单元构成,存储单元由N个存储电路组成,这N个存储电路用来保存一个N位二进制数。每个存储单元的编号称为==地址==,存储器中能存放的数据的总位数(byte)称为存储容量,常用单位,KB、MB、GB…..
556 0
|
存储 缓存 固态存储
408计算机组成原理学习笔记——存储系统(一)
408计算机组成原理学习笔记——存储系统
869 2
408计算机组成原理学习笔记——存储系统(一)
|
存储 算法 程序员
408计算机组成原理学习笔记——存储系统(三)
408计算机组成原理学习笔记——存储系统
423 1
408计算机组成原理学习笔记——存储系统(三)