第5章存储系统和结构存储系统的组成5.1主存储器的组织5.2半导体随机存储器和只读存储器5.3主存储器的链接与控制5.4提高主存读写速度的技术5.5多体交叉存储技术5.6高速缓冲存储器5.7虚拟存储器5.85.1存储系统的组成5.1.1存储器分类5.1.2存储系统层次结构5.1.1存储器分类随着计算机系统结构和存储技术的发展,存储器的种类日益繁多,根据不同的特征可对存储器进行分类。1.按存储器在计算机系统中的作用分类(1)高速缓冲存储器(2)主存储器(3)辅助存储器2.按存取方式分类(1)随机存取存储器(RandomAccessMemory,RAM)(2)只读存储器(ReadOnlyMemory,ROM)(3)顺序存取存储器(SequentialAccessMenory,SAM)(4)直接存取存储器(DirectAccessMemory,DAM)3.按存储介质分类(1)磁芯存储器(2)半导体存储器(3)磁表面存储器(4)光存储器4.按信息的可保存性分类5.1.2存储系统层次结构为了解决存储容量、存取速度和价格之间的矛盾,通常把各种不同存储容量、不同存储速度的存储器,按一定的体系结构组织起来,形成一个统一整体的存储系统。多级存储器层次如图5-1所示。从CPU的角度来看,n种不同的存储器(M1~Mn)在逻辑上是一个整体。其中:M1速度最快、容量最小、位价格最高;Mn速度最慢、容量最大、位价格最低。整个存储系统具有接近于M1中,次常用的在M2中,最少使用的在Mn中。图5-1多级存储层次由高速缓冲存储器、主存储器、辅助存储器构成的三级存储系统可以分为两个层次,其中高速缓存和主存之间称为Cache-主存存储层次(Cache存储系统),如图5-2(a)所示;主存和辅存间称为主存-辅存存储层次(虚拟存储系统),如图5-2(b)所示。(a)(b)图5-2两种存储层次CPUM1M2Mn存储层次…CPUCache主存辅助硬件CPU主存辅存辅助软硬件Cache存储系统是为解决主存速度不足而提出来的。在Cache和主存之间,增加辅助硬件,让他们构成一个整体。从CPU看,速度接近Cache的速度,容量是主存的容量,每位价格接近于主存的价格。由于Cache存储系统全部用硬件来调度,因此它对系统程序员和应用程序员都是透明的。虚拟存储系统是为解决主存容量不足而提出来的。在主存和辅存之间,增加辅助的软硬件,让他们构成一个整体。从CPU看,速度接近主存的速度,容量是虚拟的地址空间,每位价格接近于辅存的价格。由于虚拟存储系统需要通过操作系统来调度,因此对系统程序员是不透明的,但对应用程序员是透明的。5.2主存储器的组织5.2.1主存储器的基本结构5.2.2主存储器的存储单元5.2.3主存储器的主要技术指标5.2.4数据在主存中的存放5.2.1主存储器的基本结构主存通常由存储体、地址译码(addessdecoding)驱动电路、IO和读写电路组成,其组成框图如图5-3所示。存储体是主存储体的核心,程序和数据都存放在存储体中。地址译码驱动电路实际上包含译码器和驱动器两部分。译码器将地址总线输入的地址码转换成与之对应的译码输出线上的有效电平,以表示选中了某一存储单元,然后由驱动器提供驱动电流与驱动相应的读写电路,完成对被选中存储单元的读写操作。I/O和读写电路包括读出放大器、写入电路和读写控制电路,用以完成被选中存储单元中各位的读出和写入操作。主存的读写操作是在控制器的控制下进行的,只有接收到来自控制器的读写命令或写允许信号后,才能实现正确的读写操作。存储体地址线数据线读/写控制线I/O地址译码驱动和读写电路图5-3主存的组成框图5.2.2主存储器的存储单元位是二进制的最基本单位,也是存储器存储信息的最小单位。一个二进制数由若干位组成,当这个二进制数作为一个整体存入或取出时,这个数称为存储字。存放存储字或存储字节的主存空间称为存储单元或主存单元,大量存储单元的集合构成一个存储体,为了区别存储体中的各个存储单元,必须将它们逐一编号。存储单元的编号称为地址,地址和存储单元之间有一对一的对应关系,就像一座大楼的每个房间都有房间号一样。一个存储单元可能存放一个字,也可能存放一个字节,这是由计算机的结构确定的。对于字节编址的计算机,最小寻址单位是一个字节,相邻的存储单元地址指向相邻的存储字节;对于字编址的计算机,最小寻址单位是一个字,相邻的存储单元地址指向相邻的存储字。所以,存储单元是CPU对主存可访问操作的最小存储单位。例如,IBM370机是字长为32位的计算机,主存按字节编址,每一个存储字包含4个单独编址的存储字节,其地址安排如图5-4(a)所示。它被称为大端(big-endian)方案,即字地址等于最高有效字节地址,且字地址总是等于4的整数倍,正好用地址码的最末两位来区分同一个字的4个字节。PDP-11机是字长为16位的计算机,主存也按字节编址,每一个存储包含2个单独编址的存储字节,其地址安排如图5-4(b)所示。它被称为小端(little-endian)方案,即字地址等于最低有效字节地址,且字地址总是等于2的整数倍,正好用地址码的最末一位来区分同一字的两个字节。从图5-4可以看出,大端方案从最高有效字节向最低有效字节进行字节地址编号,小端方案从最低有效字节向最高有效字节进行字节地址编号。(a)(b)图5-4字节编址计算机的地址安排方案00144889101156723字地址字节地址004412235字地址字节地址5.2.3主存储器的主要技术指标1.存储容量对于字节编址的计算机,以字节数来表示存储容量;对于字编址的计算机,以字数与其字长的乘积来表示存储容量。如某计算机的主存容量为64K×16,表示它有64K个存储单元,每个存储单元的字长为16位,若改用字节数表示,则可记为128K字节(128K)。2.存取速度主存的存取速度通常由存取时间Ta存取周期Tm和主存带宽Bm等参数来描述。(1)存取时间Ta存取时间又称为访问时间或读写时间,它是指从启动一次存储器操作到完成该操作所经历的时间。例如:读出时间是指从CPU向主存发出有效地址和读命令开始,直到将被选单元的内容读出为止所用的时间;写入时间是指从CPU向主存发出有效地址和写命令开始,直到信息写入被选中单元为止所用的时间。显然Ta越小,存取速度越快。(2)存取周期Tm存取周期由可称作读写周期、访问周期,是指主存进行一次完整的读写操作所需的全部时间,即连续两次访问存储器操作之间所需要的最短时间。显然,一般情况下,TTam。这是因为对于任何一种存储器,在读写操作之后,总要有一段恢复内部状态的复原时间。对于破坏性读出的RAM,存取周期往往比存取时间要大得多,甚至可以达到TTam2,这是因为存储器中的信息读出后需要马上进行重写(再生)。(3)主存带宽Bm与存取周期密切相关的指标是主存的带宽,它又称为数据传输率,表示每秒从主存进出信息的最大数量,单位为字每秒或字节每秒或位每秒。目前,主存提供信息的速度还跟不上CPU处理指令和数据的速度,所以,主存的带宽是改善计算机系统瓶颈的一个关键因素。为了提高主存的带宽,可以采取的措施有:•缩短存取周期。•增加存储字长。•增加存储体。3.可靠性可靠性是指在规定时间内,存储器无故障读写的概率。通常,用平均故障时间(MeanTimeBetweenFailures,MTBF)来衡量可靠性。MTBF越长,说明存储器的可靠性越高。4.功耗功耗是一个不可忽略的问题,它反映了存储器件耗电的多少,同时也反映了其发热的程度。通常希望功耗要小,这对存储器件的工作稳定性有好处。大多数半导体存储器的工作功耗与维持功耗是不同的,后者大大地小于前者。5.2.4数据在主存中的存放目前大多数存储器采用字节编址,数据在主存中有3种不同存放方法,如图5-5所示。设存储字长为64位(8个字节),即一个存取周期最多能够从主存读或写64位数据。图5-5所示中最左边一列字地址(16进制),字地址的最末3个二进制位必定为000。假设不同,读写的数据有4种不同长度,它们分别是字节(8位)、半字(16位)、单字(32位)和双字(64位)。(a)(b)(c)图5-5字节编址的主存储器的各种存放方法图5-5(a)是一种浪费存储器资源的存放方法,4种不同长度的数据一个紧接着上一个存放。这种数据存放方式的优点是不浪费宝贵的主存资源。但存在的主要问题有两个:一是除了访问一个字节以外,当要访问一个双字、一个单字或一个半字时都有可能需要花费两个存取周期,因为从图5-5(a)中可以看出,一个双字、一个单字或一个半字都有可能跨越两个存储字存放,这使存储器的工作速度降低了一半;二是存储器的读写控制比较复杂。为了克服上述两个缺点,出现了图5-5(b)所示的另一种数据存放方法。这种存放方法规定,无论要存放的是字节、半字、单字或双字,都必须从一个存储字的起始位置开始存放(在图5-5(b)中最左边放起),而多余的部分浪费不用。这种数据存放方法的优点是:无论访问一个字节、一个半字、一个单字或一个双字都可以在一个存储周期内完成,读写数据的控制比较简单。但它的主要缺点是浪费了宝贵的存储器资源,如果双字、单字、半字、字节4种不同长度的数据出现的概率相同的话,那么主存的实际利用率只有约50%,即有一半的存储空间被浪费。综合前两种数据存放方法的优缺点,出现了如图5-5(c)所示的折中方案。图5-5(c)所示的存放方法规定,双字数据的起始地址的最末3个二进制位必须为000(8的整倍数),单字数据的起始地址的最末两位必须为00(4的整倍数),半字数据的起始地址的最末一位必须为0(偶数)。这种方式能够保证无论访问双字、单字、半字或字节,都能在一个存取周期内完成,尽管存储器资源仍然有浪费,但是比图5-5(b)所示的存放方法要好得多。这种存放方法被称为边界对齐的数据存放方法。5.3半导体随机存储器和只读存储器5.3.1RAM记忆单元电路5.3.2动态RAM的刷新5.3.3RAM芯片分析5.3.4半导体只读存储器5.3.5半导体存储器的封装5.3.1RAM记忆单元电路通常把存放一个二进制位的物理器件称为记忆单元,它是存储器的最基本构件,地址码相同的多个记忆单元构成一个存储单元。记忆单元可以由各种材料制成,但最常见的由MOS电路组成。RAM又可分为静态RAM(StaticRAM,SRAM)和动态RAM(DynamicRAM,DRAM)两种。1.6管SRAM记忆单元电路2.4管DRAM记忆单元电路3.单管DRAM记忆单元电路5.3.2动态RAM的刷新1.刷新间隔前面已经说过,为了维持DRAM记忆单元的存储信息,每隔一定时间必须刷新。那么每隔多少时间进行一次刷新操作呢?这主要是根据栅极电容上电荷的泄放速度来决定的。一般选定的最大刷新间隔为2ms或4ms甚至更大,也就是说,应在规定的时间内,将全部存储体刷新一遍。注意:刷新和重写(再生)是两个完全不同的概念,切不可加以混淆。重写是随机的,某个存储单元只有在破坏性读出之后才需要重写。而刷新是定时的,即使许多记忆单元长期未被访问,若不及时补充电荷的话,信息也会丢失。重写一般是按存储单元进行的,而刷新通常以存储体矩阵中的一行为单位进行的。2.刷新方式常见的刷新方式有集中式、分散式和异步式3种。(1)集中刷新方式在允许的最大刷新间隔(如2ms)内,按照存储芯片容量的大小集中安排若干个刷新周期,刷新时停止读写操作。刷新时间=存储矩阵行数×刷新周期这里刷新周期是指刷新一行所需要的时间,由于刷新过程就是“假读”的过程,所以刷新周期就等于存取周期。例如,对具有1024个记忆单元(排列成32×32的存储矩阵)的存储芯片进行刷新,刷新是按行进行的,且每刷新一行占用一个存取周期,所以共需32上周期以完成全部记忆单元的刷新。假设存取周期为500ns(0.5μs),则在2ms内共可以安排4000个存取周期,从0~3697个周期内进行读写操作或保持,而从3968~3999最后32个周期集中安排刷新操作,如图5-9所示。集中