三、存储系统(存储器层次结构)
文章目录
- 三、存储系统(存储器层次结构)
- 1.存储器的分类
- 1.1按在计算机中的作用(层次)
- ❗多级存储结构(==层次化结构==)
- 1.2按存储介质
- 1.3按存取方式
- 1.4按信息的可更改性
- 1.5按信息的可保存性
- 2.存储器的性能指标
- 3.主存储器的基本组成
- 3.1半导体元件原理
- 3.2存储芯片基本原理
- 3.3如何实现不同的寻址方式
MDR定义:全称 memory data register,主存数据寄存器,MDR用来保存要被写入地址单元或者从地址单元读入的数据。
MAR定义:全称memory address register,主存地址寄存器,MAR用来保存数据被传输到的位置的地址或者数据来源位置的地址。
MAR、MDR虽然逻辑上是存储器,但是是集成在CPU上的
1.存储器的分类
1.1按在计算机中的作用(层次)
-
高速缓冲存储器
简称Cache,位于主存和CPU之间,用来存放正在执行的程序段和数据,以便CPU能高速地使用它们。Cache的存取速度可与CPU的速度相匹配,但存储容量小、价格高。目前的高档计算机通常将它们制作在CPU中。
-
主存储器
简称主存,又称内存储器(内存),用来存放计算机运行期间所需的大量程序和数据,CPU可直接随机地对其进行访问,也可以和高速缓冲存储器(Cache)及辅助存储器交换数据。其特点是容量较小、存取速度较快、每位价格较高。
-
辅助存储器
简称辅存,又称外存储器(外存),是主存的后援存储器,用来存放当前暂时不用的程序和数据,以及一些需要永久性保存的信息,它不能与CPU直接交换信息。其特点是容量极大、存取速度较慢、单位成本低。
❗多级存储结构(层次化结构)
看完整章再看会更透彻。
存储系统层次结构主要体现在Cache-主存层次和主存-辅存层次。
- Cache-主存层次:解决CPU与主存速度不匹配的问题。
- 主存-辅存层次:解决存储系统的容量问题(主存容量不够)。
在存储体系中,Cache、主存能与CPU直接交换信息,辅存则要通过主存与CPU交换信息;主存与CPU、Cache、辅存都能交换信息。
主存与Cache之间的信息调度功能全部由硬件自动完成。而主存与辅存层次的调度目前广泛采用虚拟存储技术实现。
存储器层次结构的主要思想是:上一层的存储器作为低一层存储器的高速缓存。也即Cache(或主存)中的内容只是主存(或辅存)中内容的一部分。
从CPU角度看,Cache-主存层次速度接近于Cache,容量和价位却接近于主存。
从主存-辅存层次分析,其速度接近于主存,容量和价位却接近于辅存。
主存和Cache之间的数据调动是由硬件自动完成的,对所有程序员均是透明的;而主存和辅存之间的数据调动则是由硬件和OS共同完成的,对应用程序员是透明的。
在主存-辅存这一层次的不断发展中,逐渐形成了虚拟存储系统,在这个系统中程序员编程的地址范围与虚拟存储器的地址空间相对应。 对具有虚存的计算机系统而言,编程时可用的地址空间远大于主存空间。
1.2按存储介质
- 磁表面存储器(外存硬盘,磁盘、磁带)、磁心存储器,
- 半导体存储器(RAM,ROM,cache、MOS型存储器、双极型存储器),
- 光存储器(光盘)。
1.3按存取方式
-
随机存储器(RAM,random access memory)
存储器的任何一个存储单元的内容都可以随机存取,而且存取时间与存储单元的物理位置无关。
主要用作主存或高速缓冲存储器。
RAM又分为:
- 静态RAM(SRAM以触发器原理寄存信息);
- 动态RAM(DRAM以电容充电原理寄存信息)。
-
顺序存取存储器(SAM,sequential access memory)
顺序存取存储器的内容只能按某种顺序存取,读写一个存储单元所需时间取决于存储单元所在的物理位置。
如磁带。
-
直接存取存储器(DAM,direct access memory)
既有随机存取特性,也有顺序存取特性。存取信息时通常先寻找整个存储器中的某个小区域(如磁盘上的磁道),再在小区域内顺序方式查找。
如机械硬盘。
速度:RAM>DAM>SAM
以上的都是串行访问存储器。
- 串行访问存储器
对存储单元进行读写操作时,需按其物理位置的先后顺序寻址,包括顺序存取存储器SAM(如磁带)与直接存取存储器DAM(如磁盘)。
- 相联存储器(Associative Memory),即可以按内容访问的在储器(CAM,ContentAddressed Mamory)可以按照内容检索到存楮位置进行读写,“快表”就是一种相联存储器。
1.4按信息的可更改性
- 读写存储器(Read/Write Memory)
即可读、也可写。
如:磁盘、RAM,Cache。
- 只读存储器(ROM,Read Only Memory)
只能读,不能写。信息一旦写入存储器就固定不变,即使断电,内容也不会丢失。
通常用它存放固定不变的程序、常数和汉字字库,甚至用于OS的固化。它与随机存储器可共同作为主存的一部分,统一构成主存的地址域。
如:实体音乐专辑通常采用CD-ROM,实体电影采用蓝光光碟,BIOS通常写在ROM中。
由ROM派生出的存储器也包含可反复重写的类型,广义上的ROM已可通过电擦等方式进行写入,但其写入速度比读取速度慢得多。
1.5按信息的可保存性
- 易失性存储器
断电后,存储信息即消失的存储器,称为易失性存储器(RAM,即主存、cache)。
- 非易失性存储器
断电后信息仍然保持的存储器,称为非易失性存(ROM,磁表面存储器、光存储器)。
- 破坏性读出
若某个存储单元所存储的信息被读出时,原存储信息被破坏,则称为破坏性读出(如DRAM芯片,读出数据之后要重写)。
具有破坏性读出性能的存储器,每次读出操作后,必须紧接一个再生的操作,以便恢复被破坏的信息。
- 非破坏性读出
若读出时,被读单元原存储信息不被破坏,则称为非破坏性读出(如SRAM芯片,ROM,磁盘,光盘)。
2.存储器的性能指标
通常把存放一个二进制位的物理器件称为存储元,它是存储器的最基本的构件。地址码相同的多个存储元构成一个存储单元。若干存储单元的集合构成存储体。当对某个基本单元电路进行读/写操作时,必须被行、列地址共同选中。
存储器有3个主要性能指标,即存储容量、单位成本、存储速度。
位:比特bit(0/1)
字节byte, 就是简写为b:1Byte = 8Bit
1KB =210B
8KB =210 * 23 = 213B
1MB =210 KB = 220B
-
存储容量
存储容量 = 存储单元个数 × 存储字长 如: 1 M × 8 位 存储容量=存储单元个数×存储字长\\ 如:1M × 8位 存储容量=存储单元个数×存储字长如:1M×8位
MDR位数反应 存储字长。 -
单位成本(每位价格)
每位价格 = 总成本 总容量 每位价格=\frac{总成本}{总容量} 每位价格=总容量总成本 -
存储速度(数据传输率,主存带宽)
数据传输率 = 数据的宽度 存储周期 存储周期 = 存取时间 + 恢复时间 数据传输率=\frac{数据的宽度}{存储周期}\\ 存储周期=存取时间+恢复时间 数据传输率=存储周期数据的宽度存储周期=存取时间+恢复时间- 存取时间(Ta):存取时间又称存储器的访问时间(Memory Access Time),是指从启动一次存储器操作到完成该操作所经历的时间,分为读出时间和写入时间。(读出时间是指从主存接收到有效地址开始到数据稳定为止的时间,写入时间是指从主存接收到有效地址开始到数据写入被写单元为止的时间)
- 存取周期(Tm):存取周期又称读写周期或访问周期。它是指存储器进行一次完整的读写操作所需的全部时间,即连续两次独立访问存储器操作(读或写操作)之间所需的最小时间间隔 (存取周期=存取时间+恢复时间)
- 主存带宽(Bm):主存带宽又称数据传输率,表示每秒从主存进出信息的最大数量,单位为字/秒、字节/秒(B/s)、位/秒(b/s)。
存取时间不等于存储周期,通常存储周期大于存取时间。这是因为对任何一种存储器,在读写操作之后,总要有一段恢复内部状态的复原时间。对于破坏性读出的存储器,存取周期往往比存取时间大得多,因为存储器中的信息读出后需要马上进行再生。
3.主存储器的基本组成
3.1半导体元件原理
MOS管:可理解为一种电控开关,输入电压达到某个阈值时,MOS管就可以接通,如果达不到电压,那么就是绝缘体不导电。
电容:当输入电压,那么就产生电压差,给电容充电,存储电荷。
当多个存储元结合一起,那么就构成存储单元。
存储元 → 存储单元 → 存储体
3.2存储芯片基本原理
下面是栅极电容工作原理:
当MAR稳定之后,控制电路才打开译码器的开关,让译码器翻译地址,再控制MDR输出数据。
读写控制线2根或1根
地址线:n 个地址线可以片选译码出 2n 个存储单元。
如果采用地址复用技术时,通过行通选和列通选分行、列两次传送地址信号,因此地址线减半n/2。
数据线:一个储单元存放m位数据通过m根数据线传输。
数据总线带宽 = 存储字长
总容量 = 存储单元个数 × 存储字长
例如:8KB × 8位
8KB:213B个存储单元
8位:每个存储单元包含8个存储元(存储元件你)
封装为下面:
3.3如何实现不同的寻址方式
主存各存储单元的空间位置是由单元地址号来表示的,而地址总线是用来指出存储单元地址号的,根据该地址可读出或写入一个存储字。
通常计算机系统既可按字寻址,也可按字节寻址。按什么寻址就是按照什么大小寻址。
当寻址时,就把每一行开头的地址作为字地址。在下面一行中存放数据又分为大端、小端。
有两种不同的地址指定方式:大端方式与小端方式。
大端方式:指令中给出的地址是操作数最高有效字节所在的地址。
小端方式:指令中给出的地址是操作数最低有效字节所在的地址。