3.存储系统

发布于 2024-07-07  151 次阅读


3.存储系统

3.1存储器概述

3.1.1 存储器分类

按在计算机中的作用(层次)分类

  1. 主存储器:简称主存,也称为内存储器(内存),存放计算机运行期间的程序和数据,CPU可以直接随机地对其进行访问,也可以和高速缓冲存储器(cache)及辅助存储器交换数据。其特点是:容量小,存取速度快,价格贵
  2. 辅助存储器:简称辅存外存,用来存放暂时不用的程序和数据,以及一些需要永久保存的信息。辅存的内容需要调入主存才能够被CPU访问。其特点是:容量大,存取速度慢,成本低.
  3. 高速缓冲存储器:简称cache位于主存和辅助之间。用来存放当前CPU经常使用的指令和数据,以便CPU能高速地访问它们。Cache的存取速度可与CPU的速度相匹配,但存储容量小,价格高。现代计算机通常将它们制作在CPU中。

按存储介质分类

​ 按照存储介质,存储器可分为磁表面存储器(磁盘、磁带)磁芯存储器半导体存储器(MOS型存储器、双极型存储器)光存储器(光盘)

按存取方式分类

  1. 随机存储器(RAM):存储器的任何一个存储单元都可以随机存取,而且存取时间与存储单元的物理位置无关。优点是:读/写方便、使用灵活,主要作用主存或高速缓冲存储器。

  2. 只读存储器(ROM):存储器的内容只能随机读出而不能写入。信息一旦写入存储器就固定不变,即使断电,内容也不会丢失。因此,通常它存放固定不变的程序、常数和汉字字库等。它与随机存储器可共同作为主存的一部分,统一主存的地址域。

    由ROM派生的存储器也包含可反复重写的类型,ROM和RAM的存取方式均为随机存取。广义上的只读存储器已可以通过电擦除等方式进行写入,但仍保留了断电内容保留、随机读取特性,但其写入速度比读取速度慢得多。

  3. 串行访问存储器:对存储单元进行读/写操作时,需按其物理位置的先后顺序寻址,包括顺序存取存储器(如磁带)和直接存取存储器(如磁盘、光盘)

​ 顺序存取存储器的内容只能按某种顺序存取,存取时间的长短与信息在存储体上的物理位置有关,其特点是存取速度慢。直接存T取存储器既不像RAM那样随机地访问任何一个存储单元,又不像顺序存取存储器那样完全按顺序存取,而是介于两者之间。存取信息时通常先寻找整个存储器中的某个小区域(如磁盘上的磁道),再在小区域内按顺序查找。

按信息的可保存性分类

​ 断电后,存储信息即消失的存储器,称为易失性存储器,如RAM。断电后信息仍然保持的存储器,称为非易失性存储器,如ROM、磁表面存储器和光存储器

​ 若某个存储单元所存储的信息被读出时,原存储信息被破坏,则称为破坏性读出,若读出时,被读单元原存储信息不被破坏,则称为非破坏性读出。具有破坏性都城性能的存储器,每次读出操作后,必须紧接一个再生操作,以便恢复被破坏的信息。

3.1.2 存储器的性能指标

​ 存储器的三个主要性能指标:存储容量、单位成本和存储速度。这三个指标相互制约,设计存储器系统所追求的目标就是大容量、低成本和高速度

  1. 存储容量=存储字数×存储字长(如1M×8位)。单位换算:1B(Byte,字节)=8b(bit,位)。

    存储字数表示存储器的地址空间大小,字长表示一次存取操作的数据量。

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

  3. 存储速度:数据传输速率(每秒传送信息的位数)=数据的宽度/存取周期。

    1. 存取时间(Ta):存取时间指从启动一次存储器操作到完成该操作所经历的时间,分为读出时间和写入时间。
    2. 存取周期(Tm):存取周期是指存储器进行一次完整的读/写操作所需的全部时间,即连续两次独立访问存储器操作(读或写操作)之间所需的最小时间间隔。
    3. 主存带宽(Bm):也称数据传输速率,表示每秒从主存进出信息的最大数量,单位为字/秒、字节/秒或位/秒(b/s)。

    存取时间不等于存取周期,通常存取周期大于存取时间,是因为对任何一种存储器,在读/写操作之后,总要有一段恢复内部状态的复原时间。对于破坏性读出的存储器,存取周期往往比存取时间大的多,甚至可以达到Tm=2Ta,因为存储器中的信息读出后需要马上进行再生。

3.1.3 多级层次的存储系统

​ 为了解决存储系统大容量、高速度和低成本这三个制约的矛盾,在计算机系统中,通常采用多级存储器结构,从上至下分别为:Cache,主存,磁盘,(磁带、光盘)。位价越来越低,速度越来越慢,容量越来越大,CPU访问的频度也越来越低。实际上,存储系统层次结构主要体现在Cache-主存层和主存-辅存层。在存储体系中,Cache、主存能与CPU直接交换信息,辅存则要通过主存与CPU交换信息;主存与CPU、Cache、辅存都能交换信息。

​ 存储器层次结构的主要思想是上一层的存储器作为低一层存储器的高速缓存。当CPU要从存储器中存取数据时,先访问Cache,若不在Cache中,则访问主存,若不在主存中,则访问磁盘,此时,操作数从磁盘读出送到主存,然后从主存送到Cache。从CPU的角度看,Cache-主存层的速度接近于Cache,容量和价位却接近于主存。从主存-辅存层分析,其速度接近于主存,容量和价位却接近于辅存。这就解决了速度、容量、成本这三者之间的矛盾。

​ Cache-主存层主要解决CPU和主存速度不匹配的问题,主存和Cache之间的数据调动是由硬件自动完成的,对所有程序员均是透明的。主存-辅存层主要解决存储系统的容量问题,主存和辅存之间的数据调动是由硬件和存储系统共同完成的对应用程序员是透明的

​ 在主存-辅助层的不断发展中,逐渐形成了虚拟存储系统,在这个系统中程序员编程的地址范围与虚拟存储器的地址空间相对应,编程时可用的地址空间远大于主存空间。

3.2 主存储器

3.2.1 SRAM和DRAM芯片

​ 半导体存储器分为随机存储器(RAM)和只读存储器(ROM)。RAM又分为静态随机存储器(SRAM),和动态随机存储器(DRAM),主存储器主要由DRAM实现,靠近处理器的那一层(cache)则由SRAM实现。都是易失性存储器,ROM是非易失性存储器

DRAM芯片:使用栅极电容存储信息。电容放电信息被破坏,是破坏性读出。读出后应有重写操作,也称“再生”。速度更慢。每个单元制造成本更低,集成度高,功耗低。

SRAM芯片:使用双稳态触发器存储信息。读出数据,触发器状态保持稳定,是非破坏性读出,无需重写速度更快。每个存储元制造成本更高,集成度低,功耗大。

​ Dynamic Radom Access Memory Static Rodom Access Memory

类型特点 DRAM(动态RAM) SRAM(静态RAM)
存储信息 电容 (双稳态)触发器
破坏性读出 ×
读出后是否需要重写 ×
运行速度
集成度
发热量
存储成本
易失/非易失性存储器? 易失(断电后信息消失) 易失(断电后信息消失)
是否需要刷新 需要 不需要
送行列地址 分两次送 同时送

​ 常用作主存 常用作Cache

DRAM的刷新

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

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

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

4.在什么时刻刷新? 例如DRAM内部结构排列成128×128的形式,读/写周期0.5us

2ms共2ms/0.5us=4000个周期

思路一:每次读完一行都刷新一行 思路二:2ms内集中安排时间全部刷新 思路三:2ms内每行刷新一次即可

​ 系统的存取周期变为1us 系统的存取周期还是0.5us 2ms内需要刷新128次

​ 前0.5us用于正常读写 有一段专门的时间用于刷新 则只需每隔2ms/128=15.6us 一次

​ 后0.5us用于刷新某行 这段时间无法访问存储器,称为访存“死区“ 每15.6us内有0.5us的”死时间“

分散刷新 集中刷新 异步刷新

3.2.2 只读存储器(ROM)

MROM(Mask Read-Only Memory)--掩模式只读存储器

​ 厂家按照客户的需求,在芯片生产的过程中直接写入信息,之后任何人不可重写(只能读出)

​ 可靠性高、灵活性差、生产周期长、只适合批量定制

PROM(Programmable Read-Only Memory) --可编程只读存储器

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

EPROM(Erasable Programmable Read-Only Memory)--可擦除可编程只读存储器

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

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

EEPROM(也常记为$$E^2$$​​PROM,第一个E是Electrically)--可用”电擦除“的方式,擦除特定的字

Flash Memory --闪速存储器(U盘、SD卡等)

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

​ 注意:闪存需要先擦除后写入,所以写的速度比读的速度慢

SSD(Solid State Drives)--固态硬盘

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