871王道 - 计算机组成原理 - 学习笔记 ——第3章 存储系统
1.存储器的基本概念
1.1.存储器的分类
1.1.1.按作用分类(层次结构)
1)主存储器:容量小、存取速度较快,每位价格较高
2)辅存储器:容量大、存取速度较慢,单位成本低
3)cache:容量小、存取速度很快,价格高
1
(默写图)多级存储器结构 - 下
(默写图) 三级存系统的层次结构及其构成 - 上
三层存储系统:
- 高速缓冲存储器(Cache):可直接被CPU读写
- 主存储器(主存):内存,可直接被CPU读写
- 辅助存储器(辅存):外存
存储器层次结构的重要思想: 上一层的存储器作为第一层存储器的高速缓存。
ps. 上一层中的内容都只是下一层中的内容的副本,例如 Cache中的内容只是主存中的内容的一部分、主存中的内容只是辅存中的内容的一部分。
层次结构主要体现:
1. cache——主存层次:
①解决主存和CPU速度不匹配的问题。
②cache和主存的数据交换:由硬件自动完成,对所有程序员透明。
2. 主存——辅存层次:
①解决主存容量不够的问题,实现虚拟存储。
②主存和辅存的数据交换:由硬件+操作系统共同完成,对应用程序员透明(因为是硬件工程师完成的)。
③辅存中的数据只有调入主存后才能被CPU访问。
分层的目的: 解决速度、容量、成本三者之间的矛盾。
1.1.2.按存取方式分类
-
随机存储器(RAM):Random,Random Access Memory,“随机存储”:CPU对存储器的任何一个存储单位中的内容随机存取,且存取时间和存储单元的物理位置无关。
RAM的全名为随机存取记忆体,中文名是易失性存储器,作用是临时存储介质。
RAM都是易失性存储器吗?
4个特点:
1)支持读/写操作
2)随机抽取(最重要的特性),存取时间与物理位置无关
3)主存/cache使用该存储器RAM
cache:SRAM,主存:DRAM
4)易失:指的是断电后存储的信息会消失。
分类:
①静态随机存储器(SRAM):
②动态随机存储器(DRAM):
——————啊
————啊
——啊
—啊 突然觉得自己是个RAM,关机(睡一觉)就清零了
-——啊
————啊 如需保存数据,就必须把它们写入到一个长期的存储器中(例如硬盘)
——————啊
- 只读存储器(ROM):只能随机读出(随机存储),不能写入。非易失性存储器,断电不丢失。
5个特点:
1)只支持随机读出,而不支持写入
2)一旦写入就固定不变
3)可与RAM共同作为主存的一部分,统一构成主存的地址域
4)常用于存放固定不变的程序(常数和汉字字库)
5)非易失性
ROM和RAM都是随机存储器
CD-ROM!=ROM,CD-ROM是串行存储器,不属于只读存储器。
- 串行访问存储器(SAM、DAM):按照物理位置的先后顺序寻址。
1)支持读/写操作
2)需要按照物理地址先后寻址
3)分类:
①顺序存取存储器(SAM):磁带
②直接存取存储器(DAM):光盘、磁盘
注意:光盘(CD-ROM,只读型光盘存储器,不属于只读存储器ROM!) 、磁盘(磁盘上的磁道)
- 相联存储器(CAM):按 内容或地址 进行寻址(按照内容指定方式和地址指定方式 相结合 搜索地址),如 块表。基本原理:将存储单元所存内容的某一部分作为检索项(即关键字项)去检索存储器。
ROM和RAM都是采用随机存取方式(✔)
1.1.3.按信息的可更改性
- 读写存储器(RM):Read/whrite Memory,可读可写(内存、Cache)
- 只读存储器(ROM):Read Only Memory,只能读不能写(BIOS)
1.1.4.按信息的可保存性
-
易失性存储器:断电后,存储信息即消失的存储器。如 RAM。开机时,主存、Cache所用信息从辅存调入。
-
非易失性存储器:断电后信息仍然保存的存储器。如 ROM、磁表面存储器、光存储器
-
破坏性读出:信息读出后,原存储信息被破坏。如 DRAM芯片
-
非破坏性读出:信息读出后,原存储信息不被破坏。如 SRAM芯片、磁盘、光盘。
1.1.5按存储介质分类
- 磁 表面/芯 存储器:磁盘、磁带
- 半导体存储器:MOS、双极存储器
- 光存储器:光盘
1.2.存储器的性能指标
回顾:
- ◉ 存储体 -> n个存储单元 -> m个存储元件 (一个数字0/1)
- 0110…0 这一串二进制代码:存储字
- 这一串二进制代码的位数:存储字长(eg.8位)
公式解读:
存储容量 = 存储字数 x 字长
- 注意断句:存储字 数,存储字の数 = 一个存储体有多少个字 = 存储单元的数量
存储容量 = 存储字数 x 字长
=存储单元数量 x 存储字长【记这个好】
= 如图 :“行数” x “一行有几个”
- 存储容量:存储字数 x 字长(MDR位数)(如1M * 8位)
- 存储速度
①存取时间:启动一次存储器操作到完成该操作的时间。
②存取周期:存储进行连续两次独立的操作所需的最小间隔时间 / 存储器进行一次完整读写所需的全部时间。
③存储器带宽(数据传输率):单位时间内存储器存取的信息量。
= 数据宽度(存储字长,MDR位数) / 存取周期
恢复时间:任何一种存储器读写之后总要一段时间来恢复内部状态,是一个复原时间。
存取周期 != 存取时间
2.主存储器
2.1.主存储器的基本组成
回顾 MDR、MAR:
MAR位数和存储器单元个数对应,MAR10=>2^10个存储单元
模拟:CPU的读写过程
想要从主存中读出一个信息字:
1)CPU把这个字的地址送到“MAR”里
2)通过“地址总线”送到主存
3)CPU发出一个“读”命令
4)主存接到读命令之后,根据“读”命令和“地址”去读出信息
5)读出信息,将信息通过“数据总线”送到“MDR”
6)CPU决定数据的下一步去向……
想要从主存中写出一个信息字:
——写什么?写在哪?
1)CPU把想写入的地址 送到“MAR”,通过“地址总线”送到主存
2)CPU把想写入的信息字的内容 送到“MDR”,通过“数据总线”送到主存
3)CPU发出一个“写”命令
4)主存把对应的东西写在对应的地址里
2.1.1基本半导体元件及原理
译码器驱动:
译码器的作用:把地址总线送来的地址信号 翻译成存储矩阵中对应的存储单元 的选择信号。
地址线:单向输入!m根
数据线:双向输入!n根
◉ 出考题
=> 芯片容量 = 2^(m*n)
读/写控制线:
作用:控制芯片进行读或写操作
特点:共用一根/分用两根
片选线:
作用:选择存储芯片(∵半导体存储器由许多芯片构成)
特点:一根/两根
对高分无要求的同学,↓电路可以不用掌握
- MOS管(作为通电开关):半导体,通过向其输入电压控制其开关。
-
电容(储存电荷,即存储二进制0/1):
存储电压,低电压时为0,高电压时为1当MOS管接通时,电容内的电压通过该电路传出的电压表示二进制的0/1。 -
行单位:多个存储元连接后,可以一次读写多个二进制数据。红线连接MOS管,当给红线电压时,该线所连接的MOS管都会被导通,则电容就会从绿线导出,通过检测绿线就可以知道整行存储元存储的二进制信息。
①存储单元:由一整行存储元构成
②存储体:由多个存储单元构成
③存储字:一次能够读出的二进制
④存储字长:一次能够读出的二进制的位数
2.1.2存储器芯片的基本原理
-
MAR的位数决定存储单元的个数,译码器根据CPU通过地址总线给MAR送来的地址(一个地址对应一条输出线),控制相应地址(存储单元)的字选线(红线)高电平,然后通过数据线(绿线)读出该地址的数据,送入MDR中,最后通过数据总线将数据输出
-
控制电路的作用是只有当前操作的电流稳定时,才进行下一步操作
-
片选线:控制是否对该存储单元进行操作(引脚一根)
读控制线/写控制线:该操作是读数据还是写数据(当读写合并时,引脚1根;分开时,引脚2根) -
总容量 = 存储单元个数 * 存储字长
8K * 8位:存储单元个数为8K个,存储字长为8bit,即 2 ^ 13 * 8 bit
64K * 16位:存储单元个数为64K个,存储字长为16bit,即 2 ^ 16 * 16 bit
2.1.3寻址
1.一行为一个存储字,字长为4B,总容量为1KB,则共有256个字,即256行
2.按字节寻址:一个字节对应一个地址,分为1K个单元,每个单元1B(需要10根地址线)
3.按字寻址:一个字对应一个地址,分为256个单元,每个单元4B
4.按半字寻址:半个字对应一个地址,分为512个单元,每个单元2B
4.按双字寻址:两个字对应一个地址,分为128个单元,每个单元8B
2.2 随机存取存储器:SRAM芯片和DRAM芯片
“存储元”:存放一个二进制位的物理器件。它是存储器最基本的构件。
地址码相同的“存储元” ——> 一个存储单元 ——>存储体
(默写图)SRAM和DRAM各自的特点 对比
相同点: 都是易失性存储器/随机存储,临时存储介质(断电后信息消失=不断电信息就不消失)。
区分:易失性 VS. 破坏性读出
1)
2)破坏性读出:
读电容正负:释放一个试探电路,相当于拿试纸去吸化学试剂,破坏了。静态随机存储器相当于肉眼看正负。
Static,静态
Dynamic,动态
2.2.1 静态随机存储器(SRAM)
-
存储元【核心区别】:双稳态触发器(六晶体管MOS)
所以是非破坏性读出(维持原状,不需要再生/重写)。
-
用于:主存
2.2.1 动态随机存储器(DRAM)
- 存储元:栅极电容(一个MOS管)
由电容实现:通过电容充放电实现0/1状态的写入
破坏性读出,读出后需要再生/重写,所以存取速度慢。
因为只用一个MOS管,所以体积小、复杂度低、集成度高。 - 用于:Cache
- 刷新:
DRAM需要刷新,而SRAM不需要