存储系统
存储器分类
- 按存储介质:
(1)磁存储器
以磁性材料为存储介质,按磁化单元剩磁的不同磁化方向存储0和1.其体积大,存取速度慢,但单位容量成本最低。
(2)半导体存储器
用半导体器件组成的存储器,目前分为两大类:双极性存储器包括TTL型和ECL型,MOS存储器(金属氧化物半导体存储器)分为静态MOS存储器(SRAM)和动态MOS存储器(DRAM)。其体积小,存储速度快,但单位成本较高。
(3)光存储器
利用介质的光学特性读出数据,如CD-ROM,DVD-ROM都以刻痕的方式存储数据,利用盘面不同的反射率来读出数据。磁光盘则以激光加热辅助磁化的方式写入数据,利用光的偏振放方向不同来读出信息。其便于携带,成本低,但不易保存。 - 按存取方式分类:
(1)随机存储器
RAM可以按照地址随机读写数据存储单元,且存取访问时间与存取单元位置无关。
(2)顺序存储器
SAM指存储单元中的内容只能按照地址顺序访问,且访问速度与存储单元的位置有关。
(3)直接存储器
DAM指不用经过顺序搜索就可以在存储器中直接存取信息的存储器,其兼有RAM和SAM的访问特性,如磁盘存储器,在数据访问时间和目标扇区的距离有关。 - 按信息的可保存性分类:
(1)易失性存储器
指断电后所保存的信息会丢失的存储器。
(2)非易失性存储器
指断电后所保存的信息不会丢失的存储器。 - 按信息的可改写性分类:
(1)读写存储器
即能读出又能写入的存储器称为读写存储器。
(2)只读存储器
存储器中有些内容不允许被改变,只能读出其内容的存储器称为只读存储器。 - 按功能和存取速度分类:
(1)寄存器存储器
多个寄存器组成的存储器,如CPU内部的通用寄存器组,字长一般与计算机字长相同,主要用来存放地址,数据及运算的中间结果,速度与CPU匹配,容量很小。
(2)高速缓冲存储器
又称高速缓冲cache,隐藏在寄存器和主存之间的一个高速小容量存储器,用于存放CPU即将或经常使用的指令和数据。一般由静态RAM构成,用于缓冲CPU与慢速主存的性能差异,以提高访问速度。
(3)主存储器
主存是CPU除寄存器外唯一可以直接访问的存储器,用于存放指令和数据,CPU通过主存地址直接,随机的读写主存储器。
(4)外存储器
外存容量大,但存取速度较低。用于存放当前不参与运行的程序和数据,以及需要永久性保存的数据信息。
存储器技术指标
- 存储容量
存储器可以存储二进制信息总量称为存储总量,可采用比特位或字节表示
(1)位表示法:存储器中存储单元总数与存储字位数乘积表示。如1K*4表示该芯片有1K个单元(1K=1024),每个存储单元长度为4个二进制位。
(2)字节表示法:以存储器中单元总数表示(一个存储单元由8个二进制位组成,称为一个字节,用B表示),如128B表示该芯片有128个单元 - 存取速度
(1)存取时间:存储器的访问时间,指启动一次存储器操作到操作完成所经历的时间,DRAM读慢写快,闪存读快写慢。
(2)存取周期:连续启动两次访问操作之间最短操作间隔。
(3)存储器带宽:单位时间内存储器所能传输的信息量,与存取时长和一次传输的数据位有关。
半导体存储器
静态MOS存储器SRAM
- 1位存储体构成: 6个MOS管(2个工作管,2个功耗管,2个门控管)
- 利用互相耦合的MOS电路的导通截至状态存储数据
- 读出:行列同时选通,位线数据差分放大检出
- 写入:行列同时选通,数据从位线写入
- 特性:存储密度低,功耗大,成本高
- SRAM芯片:数据总线双向
动态MOS存储器
- 1位存储体构成:1个工作管+1个工作电容
- 利用工作电容是否带电荷表示数据
- 访问过程:预充、访问、信号检测、数据恢复、数据读/写
- 特性:行列分时选通,相比SRAM速度慢,电容会泄露丢失数据,需要定时刷新
- 特性:存储密度高,功耗低,价格便宜,速度慢
- 刷新:按行刷新,刷新地址由刷新控制器
- 最大刷新周期:信息存储到数据丢失之前的这段时间
- 集中刷新:集中安排时间刷新,存在死区,CPU长时间得不到响应
- 分散刷新:一个存储周期细分为CPU访内和刷新两部分,存储周期变慢
- 异步刷新:在最大刷新周期内每隔一段时间刷新一行
- DRAM芯片:行列地址复用,地址线减半,数据输入,输出分开,数据线倍增 ·
只读存储器
- ROM 只读存储器,利用开关电路存储数据
- PROM 可编程一次,利用熔丝或反向二极管存储数据
- EPROM 可擦除可编程,利用浮置栅存储数据
- EEPROM 电可擦除,在EPROM基础上增加控制栅极
- 闪存,和EEPROM类似
存储系统层次结构
存储系统层次结构利用程序局部性的原理,从系统级角度将速度,容量,成本各异的存储器结合到一起。典型的存储系统层次结构从上到下分别为寄存器,高速缓冲,主存,磁盘,磁带等。越上离CPU越近,访问速度越快,单位容量成本越高。
主存基本结构及数据存放
- 主存的内部结构由存储体加上一些外围电路(地址译码器,数据寄存器和读写控制电路)构成。
- 主存中数据存放
存储字长:主存的一个存储单元所存储的二进制位数。
数据字长:计算机一次能处理的二进制位数。- 地址访问模式
按照访问存储单元大小分为字节地址,半字地址,字地址。
- 地址访问模式
- 大端和小端方式
大端就是计算机低字节存储单元存放的是数据的最高字节;
小端就是计算机低字节存储单元存放的是数据的最低字节; - 数据的边界对齐
指按照数据类型大小进行边界对齐
主存组织及与CPU的连接
存储器的扩展
N=总存储容量/一片存储容量
- 位扩展:当存储芯片数据总线位宽小于CPU数据总线位宽时采用位扩展方式
- 字扩展:当存储芯片存储容量不满足存储器对存储容量要求时采用字扩展方式
- 字位同时扩展:当存储芯片的数据位宽和存储容量都不满足存储器的要求时采用字位同时扩展(先位扩展满足数据位要求,再字扩展满足存储总容量要求)
高速缓冲存储器(cache)
cache基本概念
- 为进一步提升CPU访问主存的性能,在CPU和主存之间加入了一个小容量的SRAM,即为cache
- 增加cache后,CPU不在直接访问主存,转而通过字节地址访问cache,如果数据在cache中称为数据命中(Hit),如果数据不在cache中,称为数据缺失(Miss);
数据命中(Hit)
- 如果数据在cache中,CPU直接调用cache中的数据,将命中时数据访问时间命中访问时间,该时间包括查找时间和cache访问时间。
数据缺失(Miss)
- 当数据不在cache中时,需要将缺失数据从主存中调用至cache后进行访问,Miss时的访问时间称为缺失补偿,该时间包括查找时间,主存访问时间和cache访问时间。
数据分块
- 为便于比较和快速查找,cache和主存均被分为若干个数据块,当数据缺失时,将需要访问的数据所在的块载入cache中;数据分块可充分利用空间局部性,但块的大小对cache有较大影响,过小无法充分利用空间局部性,过大将使得替换算法无法充分使用时间局部性。
- 分块后主存地址和cache地址均可分为块地址和块内偏移地址
程序局部性
- 指程序在执行时呈现出局部性规律,可以理解为在某一段时间中程序只执行程序的一部分,其所用到的数据和指令也只在某一块存储区域中,可分为时间局部性和空间局部性。
时间局部性
- 指程序访问一个存储位置时,该位置在以后某个时间可能还会被多次调用访问;典型如程序循环结构和调用函数的过程。
空间局部性
- 指程序一旦访问了某个存储单元,其附近的存储单元也将被访问;如指令中的数组,结构体等。
读写流程
- cache读流程:
- cache写流程: