2024.06.04~2024.06.05:计算机组成原理学习笔记
不是很在状态,不知道怎么形容,短短四十分钟的视频,我足足看了快两个小时才进入学习模式,哈哈哈
第7节 存储器概述
7.1 存储器分类
7.1.1 按存取方式分类
- 随机存取存储器:按地址访问存储单元,计算机可以通过数据的地址快速访问随机存取存储器中的任何一个存储单元。
图书馆按照图书编号找书
-
- RAM、ROM
- 顺序存取存储器:按顺序存放和读出,存取时间取决于信息存放的位置,以记录块为单位编址
磁带听音乐
-
- 磁带存储器
- 直接存取存储器:同时兼有随机访问和顺序访问的特点,可直接选取所需信息所在区域,然后按顺序方式存取。
用软件听音乐时,可以随机选歌,但是找某句歌词只能顺序播放歌曲
-
- 磁盘存储器(在磁盘中获取信息的时候,我们往往先锁定信息所在的扇区,然后对扇区进行顺序访问,寻找我们想要的信息)
- 相联存储器: 按内容检索到存储位置进行读写
用搜索引擎查资料时,不能确定目标地址,但可以通过关键词来检索
-
- 快表(虚拟存储器学习会接触)
7.1.2 按信息的可更改性分类
- 读写存储器RAM:信息可以读出和写入
- 只读存储器ROM:信息一旦确定,通常情况下只读不写,但有些情况也可以写入
7.1.3 按断电后信息的可保存性分类
- 非易失性存储器:信息可以一直保存,不需电源维持
-
- ROM,磁表面存储器,光存储器
- 易失性存储器:在电源关闭时信息自动丢失
-
- RAM,cache
7.1.4 按功能分类
- 高速缓冲存储器
高速缓冲存储器也就是cache,它用来存主存经常需要的一些信息。
- 主存储器
主存和内存是同一个东西,任何东西想要运行或者读写,都必须放置在主存上,才能进行这些操作。
- 辅助存储器
- 海量后备存储器
用不到的信息,我们就会把他们放到辅存或者海量后备存储器
7.2 主存储器的组成和基本操作
7.2.1 按字节编址的64位计算机
介绍了按什么什么编址以及存储单元它能代表什么含义
主存储器的核心部件是存储矩阵,存储矩阵是由存储单元构成的,每一个存储单元都对应有存储单元的地址,存储单元内部就放有我们所需要的数据或者程序。
一个存储单元里面会放很多个二进制位,这些二进制位的位数就叫做存储字长。这些二进制位组成的串就叫做存储字。一个一个的单位就叫做存储元件。
一个字节编一个地址就叫做按字节编址。
牢记:按字节编址==存储字长为8位==一个存储单元中有8个二进制位。存储字长是由编址方式决定的。
此处有疑点
7.2.2 读操作
1.CPU将被访问单元的地址送到MAR(地址寄存器)中
理解:我要读一个单元,我首先要知道那个单元的地址是多少,所以CPU会将地址送到MAR中。
2.通过地址线将MAR中的主存地址送入主存中的地址寄存器
理解:我想要读什么,我需要把我想读单元的地址告诉主存
3.地址进入地址译码器进行译码,选中相应存储单元,同时CPU将读写信号通过控制线送入主存的读写控制电路。
地址译码器是将传入的这个地址翻译成直接指向存储单元的这条路,也就是在告诉你怎么去抵达这个存储单元
理解:控制读写信号,告诉主存,我是要读还是要写
4.主存读出选中单元的内容送至数据线。
5.内容经过数据线送入MDR。
可以发现我们是从MAR开始去传这个地址,同时又要有读写控制信号告诉主存我干嘛,最后读出的数据,会通过数据线返回CPU,进入MDR中。
CPU是整个过程的指挥官,大脑,是我想要读,最终整个数据就要回给我
- MDR宽度(地址寄存器能放多少位)==数据线宽度
- MAR宽度= =地址线宽度
- 什么是64位计算机?机器字长为64位,即CPU一次能处理的数据宽度是64位。
- 按字节编址的64位计算机:由于按字节编址,一个地址只能取出8位,因此一次读操作需要重复刚才的过程8次(这里需要补充)
突发传送/猝发传送
7.2.3 写操作
1.CPU将被访问单元的地址送到MAR中,同时将要写的信息送到MDR中
2.通过地址线将MAR中的主存地址送入主存中的地址寄存器
3.地址进入地址译码器进行译码,选中相应的存储单元,同时CPU将要读写信号通过控制线送入主存的读写控制电路
4.在读写控制电路的控制下,经过数据线将信息写入选中的单元。
7.2.4 总结(看题干!!!)
大部分计算机是遵循以下整个准则的
- MDR宽度==数据线宽度
- MAR宽度==地址线宽度
- 机器字长==CPU进行一次整数运算所能处理的二进制数据的位数(衡量计算机的计算能力)
- 存储字长==一个存储单元中存储字的长度
存储字长和编址是息息相关的
- 按字节编址 == 存储字长为8位 == 8位编一个地址
- 按字编址 == 存储字长为机器字长 == 机器字长编一个地址
-
- 也就是机器字长和存储字长是一致的
特殊情况
- 也存在机器字长和数据线宽度不一致的情况,但是不管机器字长和数据线宽度是怎样的关系,MDR和数据线的宽度始终是一致的
- 一般情况下,题目会设置数据线宽度存储字长MDR宽度,方便计算,但实际情况是数据线宽度==MDR宽度>=存储字长
7.3 存储周期
- 存储器进行一次读/写操作需要的全部时间
- 存储器进行连续读写操作所允许的最短间隔时间
- 存储周期由两部分组成
-
- 真正读/写操作 + 稳定恢复(由于芯片的物理特性,需要稳定恢复,才能进行下一次读/写)
- 一个存储(存取)周期除了进行读写操作,还要等待一段稳定恢复时间才能进行下一次访问。
7.4 存储器的层次化结构
从下往上:存取时间更短
从上往下:存储容量更大
- 寄存器
- 高速缓存(cache)
- 主存储器(RAM和ROM)
- 辅助存储器(硬盘)
- 海量后备存储器(磁盘库、光盘库)
数据一般只在相邻两层之间复制传送
传送的单位是一个定长的块,在不同的两层之间定长块大小也是不同的,因此需要确定定长块的大小,并且在相邻两层之间建立块映射关系
7.5 随机存取存储器(图书馆编号取书)
之前学习到的RAM和ROM,他们两个都属于随机存取存储器
7.5.1 静态随机存取存储器SRAM
(1)SRAM芯片特点
- 集成度低,是易失存储器
集成度低:单位大小的里面可以容纳的元件数目是比较少的
易失:电源拔掉,信息容易消失,对于易失性的容器,我们需要时常刷新
- 由六晶体管MOS组成,性质不稳定,不需要刷新
- 不会因为读操作而使状态改变,故无须读后再生
- 适合做高速小容量的半导体存储器,如cache
(2)SRAM芯片组成
存储芯片内部
存储矩阵
- 存储体(存储矩阵):存储单元的集合,由X选线(行选线)和Y选线(列选线)来选择所需单元,不同位平面的相同行、列上的位被同时读写
- 地址译码器:用来将地址转换为译码输出线上的高电平,以便驱动相应的读写电路(接收地址,然后指向所需单元)
- 驱动器:驱动器可以提供足够的电流,确保信号能够准确到达目的地
- I/O控制电路:用以控制被选中的单元的读写
- 片选控制信号CS(带横杠):单个的芯片容量太小,往往按照特定方式连接成一个完整的存储器,在访问某个存储字时,必须被选中该字所在的芯片,而其他芯片不被选中,地址选择时片选控制信号会选中要访问的存储字所在芯片。
加横杠代表低电平有效
- 读写控制信号WE(带横杠):根据CPU给出的是读命令还是写命令,控制被选中的存储单元进行读或者写
7.5.2 动态随机存取存取器DRAM
- 集成度高
- 易失性存储器,读操作会破坏状态,读后必须刷新
- 电容易漏电,不读也要定时刷新
- 适合做慢速大容量的半导体存储器,如主存
存储芯片内部
行地址和列地址共享同一组地址线
- 地址复用技术:行地址和列地址通过相同的地址线分先后两次输入所需的地址线减半‘
如何去控制同样一组地址线什么时候传行,什么时候传列
- RAS(加横杠):行通选信号,控制地址线传行地址
- CAS(加横杠):列通选信号,控制地址线传列地址
- WE(加横杠):为读写控制信号,低电平时为写操作
- OE(加横杠):为输出使能驱动引脚,低电平有效,高电平断开输出
DRAM是一个易失性存储器,为了保持这个信息维持原样,因此需要刷新
刷新计数器
- 按行进行,一次刷新一行所有元素
- 刷新时只给各芯片送行地址和RAS信号,一行中的所有元素被读出
- 刷新不需要外部提供地址信息,这是一个内部自动操作
- 刷新计数器可以自动生成行地址
- 刷新计数器的位数与(复用后的)地址线个数相同
刷新周期
- 对某一行进行相邻两次刷新的时间间隔
集中刷新:整个刷新间隔内,前一段时间用于正常读写,后一段时间停止读写,集中逐行进行刷新。
只是示意图,读/写操作时间不一定就比逐行刷新时间长
分散刷新:对每行存储单元的刷新分散到每个存取周期进行,将一个存储周期分为两段,前一段用于正常读写操作,后一段用于刷新操作。
刷新时间与读/写操作时间相同,存储周期变为原来的两倍
异步刷新:将一个刷新周期分配给所有行,使得在一个刷新周期内每一行都必须刷新一次,且仅被刷新一次。
相邻两行之间的刷新间隔t==刷新周期/行数
7.5.3 只读存储器ROM
信息一旦确定,通常情况下只读不写,但有些情况下也可以写入
- 掩模式只读存储器MROM
-
- 制造商可写入、一旦写入无法改变
- 一次可编程只读存储器PROM
-
- 允许用户写入、一旦写入无法改变
- 可编程可擦除只读存储器EPROM
-
- 可写入、可改写但次数有限
- Flash存储器
-
- 可写入、可擦除
- 固态硬盘SSD
-
- 可写入、可擦除