第四章存储器系统_第1页
第四章存储器系统_第2页
第四章存储器系统_第3页
第四章存储器系统_第4页
第四章存储器系统_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一讲: 第四章 存储器系统回 顾:微型计算机系统的硬件组成,存储器在微机系统中的功能和作用。本讲重点:微机存储器系统的基本概况,存储器的分类,内部存储器的系统结构,动、静态读写存储器RAM的基本存储单元与芯片。讲授内容:4.1概述存储器是计算机中的记忆部件,用来存储程序和数据,是计算机的基本组成部分。人们把计算机之所以称为电脑,就是因为计算机中的存储器具有存储能力,能实现程序存储、程序控制,使计算机能自动高速地进行各种复杂运算。 在计算机所有组成部件中,惟有存储器种类最多,原因就在于各种存储部件具有不同的存储特点,到目前为止,还没有找到一种在性能(速度)、容量、价格上都能满足需要的存储器件,

2、所以,现在计算机的存储部件是由各种性能的存储器件构成的存储器系统,综合满足存储需要。所以要了解存储器系统的性能,必须从每种存储器部件研究开始。4.1.1 存储器分类及特点存储器种类很多,每种具有各自不同的存储特点。1按构成存储器的器件和存储介质分类可分为:磁芯存储器、半导体存储器、光电存储器、磁膜、磁泡和其它磁表面存储器以及光盘存储器等。2按存取方式分类可将存储器分为随机存取存储器、只读存储器两种形式。(1) 随机存储器RAM(Random Access Memory)又称读写存储器,指能够通过指令随机地、个别地对其中各个单元进行读/写操作的一类存储器,随机存储器读写快慢与信息存储位置无关。

3、按照存放信息原理的不同,随机存储器又可分为静态和动态两种。静态RAM即SRAM,是以双稳态元件作为基本的存储单元来保存信息的,因此,其保存的信息在不断电的情况下,是不会被自动破坏的;而动态RAM(DRAM)是靠电容的充、放电原理来存放信息的,由于保存在电容上的电荷,会随着时间而泄露,因而会使得这种器件中存放的信息丢失,必须定时进行刷新。(2)只读存储器ROM (Read-Only Memory)在微机系统的在线运行过程中,只能对其进行读操作,而不能进行写操作的一类存储器。ROM通常用来存放固定不变的程序、汉字字型库、字符及图形符号等。随着半导体技术的发展,只读存储器也出现了不同的种类,如可编程

4、的只读存储器PROM(Programmable ROM),可擦除的可编程的只读存储器EPROM(Erasible Programmable ROM)和EEPROM(Electric Erasible Programmable ROM)以及掩膜型只读存储器MROM(Masked ROM)等,近年来发展起来的快擦型存储器(F1ash Memory)具有EEPROM的特点。3按在微机系统中位置分类 分为主存储器(内存)、辅助存储器(外存)、缓冲存储器等。主存储器又称为系统的主存或者内存,位于系统主机的内部,CPU可以直接对其中的单元进行读/写操作;辅存存储器又称外存,位于系统主机的外部,CPU对其进

5、行的存/取操作,必须通过内存才能进行;缓冲存储器位于主存与CPU之间,其存取速度非常快,但存储容量更小,可用来解决存取速度与存储容量之间的矛盾,提高整个系统的运行速度。 另外,还可根据所存信息是否容易丢失,而把存储器分成易失性存储器和非易失性存储器。如半导体存储器(DRAM,SRAM),停电后信息会丢失,属易失性;而磁带和磁盘等磁表面存储器,属非易失性存储器。存储器分类表如下所示(P87): 双极型半导体存储器 随机存储器(RAM) MOS存储器(静态、动态) 主存储器 可编程只读存储器PROM 只读存储器(ROM) 可擦除可编程只读存储器EPROM,EEPROM 掩膜型只读存储器MROM快擦

6、型存储器存储器 磁盘(软盘、硬盘、盘组)存储器 辅助存储器 磁带存储器 光盘存储器 缓冲存储器图4-1 存储器分类图4.1.2 存储器的组成结构一般情况下,一个存储器系统由以下几部分组成。1基本存储单元一个基本存储单元可以存放一位二进制信息,其内部具有两个稳定的且相互对立的状态,并能够在外部对其状态进行识别和改变。不同类型的基本存储单元,决定了由其所组成的存储器件的类型不同。2存储体一个基本存储单元只能保存一位二进制信息,若要存放M×N个二进制信息,就需要用M×N个基本存储单元,它们按一定的规则排列起来,由这些基本存储单元所构成的阵列称为存储体或存储矩阵。3地址译码器由于存

7、储器系统是由许多存储单元构成的,每个存储单元一般存放8位二进制信息,为了加以区分,我们必须首先为这些存储单元编号,即分配给这些存储单元不同的地址。地址译码器的作用就是用来接受CPU送来的地址信号并对它进行译码,选择与此地址码相对应的存储单元,以便对该单元进行读写操作。4片选与读写控制电路片选信号用以实现芯片的选择。对于一个芯片来讲,只有当片选信号有效时,才能对其进行读写操作。片选信号一般由地址译码器的输出及一些控制信号来形成,而读/写控制电路则用来控制对芯片的读/写操作。5I/O电路I/O电路位于系统数据总线与被选中的存储单元之间,用来控制信息的读出与写入,必要时,还可包含对I/O信号的驱动及

8、放大处理功能。6集电极开路或三态输出缓冲器为了扩充存储器系统的容量,常常需要将几片RAM芯片的数据线并联使用或与双向的数据线相连,这就要用到集电极开路或三态输出缓冲器。7其它外围电路对不同类型的存储器系统,有时,还专门需要一些特殊的外围电路,如动态RAM中的预充电及刷新操作控制电路等,这也是存储器系统的重要组成部分。4.1.3 存储器的操作存储器的操作主要由CPU控制完成,CPU对存储器的操作分为读操作和写操作。对于动态存储器DRAM还有刷新操作。读操作:CPU发出要访问存储单元的地址码和读控制信号,把选中单元的数据取出来通过系统总线的数据线读到CPU内寄存器的过程。写操作:CPU发出要访问存

9、储单元的地址码、写控制信号和要写入的数据,通过系统总线把要写入的数据写到选中单元中去的过程。刷新操作:对于动态存储器DRAM,由于电容放电现象,需要定期把其内容读出再写入的过程。4.2 存储器系统存储器元件种类繁多,每种都有各自的特点,由于但到目前为止还没找到一个在”速度、性能、价格“三方面都能满足人类不同需要的存储器,所以,为了满足人类不同需要,就将这些存储器组织起来,综合发挥各自性能,这就构成了存储器系统。存储器系统由将两个或两个以上速度、容量和价格各不相同的存储器用硬件、软件或软硬件相结合的方法组织起来,充分发挥各存储器在速度、容量、成本上的不同优势,而从总体上满足我们对存储器的大容量、

10、快速、低成本的要求。4.2.1 存储器系统的组成计算机中存储器系统的构成见图4-2.寄存器堆高速缓存主存储器联机外存储器脱机外存储器快慢小大容量速度CPU内核图4-2 存储器系统层次结构图计算机多级存储体系中,主要有2级:“Cache主存”存储器级和“主存-辅助存储器”构成的虚拟存储器级。4.2.1 存储器系统的特点 系统的存储速度接近最快的存储器; 容量接近最大的存储器。 整个系统性能提高很大,价格增加不多,系统性能价格比很高。4.3 高速缓冲存储器Cache4.3.1 问题的提出微机系统中的内部存储器通常采用动态RAM构成,具有价格低,容量大的特点,但由于动态RAM采用MOS管电容的充放电

11、原理来表示与存储信息,其存取速度相对于CPU的信息处理速度来说较低。这就导致了两者速度的不匹配,也就是说,慢速的存储器限制了高速CPU的性能,影响了微机系统的运行速度,并限制了计算机性能的进一步发挥和提高。高速缓冲存储器就是在这种情况下产生的。4.3.2 存储器访问的局部性微机系统进行信息处理的过程就是执行程序的过程,这时,CPU需要频繁地与内存进行数据交换,包括取指令代码及数据的读写操作。通过对大量典型程序的运行情况分析结果表明,在一个较短的时间内,取指令代码的操作往往集中在存储器逻辑地址空间的很小范围内(因为在多数情况下,指令是顺序执行的,因此指令代码地址的分布就是连续的,再加上循环程序段

12、和子程序段都需要重复执行多次,因此对这些局部存储单元的访问就自然具有时间上集中分布的倾向);数据读写操作的这种集中性倾向虽不如取指令代码那么明显,但对数组的存储和访问以及工作单元的选择也可以使存储器单元相对集中。这种对局部范围的存储器单元的防问比较频繁,而对此范围以外的存储单元访问相对甚少的现象,称为程序访问的局部性。4.3.3 “Cache-主存”存储结构及其实现为了解决存储器系统的容量、存取速度及单位成本之间的矛盾,可以采用Cache-主存存储结构,即在主存和CPU之间设置高速缓冲存储器Cache,把正在执行的指令代码单元附近的一部分指令代码或数据从主存装入Cache中,供CPU在一段时间

13、内使用,由于存储器访问的局部性,在一定容量Cache的条件下,我们可以做到使CPU大部分取指令代码及进行数据读写的操作都只要通过访问Cache,而不是访问主存而实现。由于Cache的读写速度几乎能够与CPU匹配,所以“Cache-主存”存储结构使微机系统的存取速度可以大大提高;另外,Cache的容量相对主存来说并不是太大,所以整个存储器系统的成本并没有上升很多。采用了Cache-主存存储结构以后,整个存储器系统的容量及单位成本能够主存相当,而存取速度可以与Cache的读写速度相当,这就很好地解决了存储器系统的上述三个方面性能之间的矛盾。图4-3 Cache-主存结构示意图如图4-3所示,在主存

14、和CPU之间增加了一个容量相对较小的双极型静态RAM作为高速缓冲存储器Cache,为了实现Cache与主存之间的数据交换,系统中还相应地增加了辅助的硬件电路。管理这两级存储器的部件为Cache控制器,CPU与主存之间的数据传输必须由Cache控制器控制进行,Cache控制器将来自CPU的数据读写请求,转向Cache存储器,如果数据在Cache中,则CPU对Cache进行读写操作,称为一次命中。命中时,CPU从Cache中读(写)数据。由于Cache速度与CPU速度相匹配,因此不需要插入等待状态,故CPU处于零等待状态,也就是说也就是说CPU与Cache达到了同步;若数据不在Cache中,则CP

15、U对主存操作,称为一次失败。失败时,CPU必须在其总线周期中插入等待周期TW。图4-4 Cache存储系统基本结构在主存Cache存储体系中,所有的程序代码和数据仍然都存放在主存中,Cache存储器只是在系统运行过程中,动态地存放了主存中的一部分程序块和数据块的副本,这是一种以块为单位的存储方式。块的大小称为“块长”,块长一般取一个主存周期所能调出的信息长度。 假设主存的地址码为n位,则其共有2n个单元,将主存分块(block),每块有B个字节,则一共可以分成2n/B块。Cache也由同样大小的块组成,由于其容量小,所以块的数目小得多,也就是说,主存中只有一小部分块的内容可存放在Cache中。

16、在Cache中,每一块外加有一个标记,指明它是主存中哪一块的副本,所以该标记的内容相当于主存中块的编号。假定主存地址为nMb位,其中M称为主存的块地址,而b则称为主存的块内地址,即:主存的块数为2,块内字节数为2b;同样,假定Cache地址n十b位,其中N称为Cache块地址,而b为Cache的块内地址,即Cache的块数为2N,块内字节数为2b,通常使主存与Cache的块内地址码数量相同,即bb,即Cache的块内字节数与主存的块内字节数相同。 当CPU发出读请求时,将主存地址位(或位中的一部分)与Cache某块的标记相比较,根据其比较结果是否相等而区分出两种情况:当比较结果相等时,说明需要

17、的数据已在Cache中,那么直接访问Cache就行了,在CPU与Cache之间,通常一次传送一个字;当比较结果不相等时,说明需要的数据尚未调入Cache,那么就要把该数据所在的整个字块从主存一次调进来。4.3.4 Cache-主存存储结构的命中率命中率指CPU所要访问的信息在Cache中的比率,相应地将所要访问的信息不在Cache中的比率称为失效率。Cache的命中率除了与Cache的容量有关外,还与地址映象的方式有关。 目前,Cache存储器容量主要有256KB和512KB等。这些大容量的Cache存储器,使CPU访问Cache的命中率高达90至99,大大提高了CPU访问数据的速度,提高了系

18、统的性能。 4.3.5 两级Cache-主存存储结构CPU内部的Cache与主机板上的Cache就形成两级Cache结构。CPU工作时,首先在第一级Cache(微处理器内的Cache)中查找数据,如果找不到,则在第二级Cache(主机板上的Cache)中查找,若数据在第二级Cache中,Cache控制器在传输据的同时,修改第一级Cache;如果数据既不在第一级Cache也不在第二级Cache中,Cache控制器则从主存中获取数据,同时将数据提供给CPU并修改两级Cache。两级Cache结构,提高了命中率,加快了处理速度,使CPU对Cache的操作命中率高达98以上。图4-4给出了主板上Cac

19、he存储器系统的基本结构。 4.3.6 Cache的基本操作1读操作当CPU发出读操作命令时,要根据它产生的主存地址分两种情形:一种是需要的数据已在Cache存储器中,那么只需直接访问Cache存储器,从对应单元中读取信息到数据总线;另一种是所需要的数据尚未装入Cache存储器,CPU在从主存读取信息的同时,由Cache替换部件把该地址所在的那块存储内容从主存拷贝到Cache中。Cache存储器中保存的字块是主存相应字块的副本。2写操作当CPU发出写操作命令时,也要根据它产生的主存地址分两种情形:其一,命中时,不但要把新的内容写入Cache存储器中,必须同时写入主存,使主存和Cache内容同时

20、修改,保证主存和副本内容一致,这种方法称写直达法或称通过式写(Write-through,简称通写法)。其二,未命中时,许多微机系统只向主存写入信息,而不必同时把这个地址单元所在的主存中的整块内容调入Cache存储器。4.3.7 地址映象及其方式我们知道,主存与Cache之间的信息交换,是以数据块的形式来进行的,为了把信息从主存调入Cache,必须应用某种函数把主存块映象到Cache块,称作地址映象。当信息按这种映象关系装入Cache后,系统在执行程序时,应将主存地址变换为Cache地址,这个变换过程叫做地址变换(由于Cache的存储空间较小,因此,Cache中的一个存储块要与主存中的若干个存

21、储块相对应,即若干个主存块将映象到同一个Cache块)。根据不同的地址对应方法,地址映象的方式通常有直接映象、全相联映象和组相联映象三种。1直接映象每个主存块映象到Cache中的一个指定块的方式称为直接映象。在直接映象方式下,主存中某一特定存储块只可调入Cache中的一个指定位置,如果主存中另一个存储块也要调入该位置,则将发生冲突。地址映象的方法:将主存块地址对Cache的块号取模,即可得到Cache中的块地址,这相当于将主存的空间按Cache的大小进行分区,每区内相同的块号映象到Cache中相同的块的位置。一般来说,如果Cache被分成2N块,主存被分成同样大小的2M块, 则主存与Cache

22、中块的对应关系如图4-5所示。直接映象函数可定义为:ji mod 2N 其中j是Cache中的块号;i是主存中的块号。在这种映象方式中,主存的第0块,第2N块,第2N+l块,只能映象到Cache的第0块,而主存的第1块,第2N十l块,第2N+1十1块,只能映象到Cache的第1块,依次类推。例如,一个Cache的大小为2K字,每个块为16字,这样Cache中共有128个块。假设主存的容量是256K字,则共有16384个块。主存的地址码将有18位。在直接映象方式下,主存中的第1128块映象到Cache中的第1128块,第129块则映象到Cache中的第1块,第130块映象到Cache中的第2块,

23、依次类推。直接映象函数的优点是实现简单,缺点是不够灵活,尤其是当程序往返访问两个相互冲突的块中的数据时,Cache的命中率将急剧下降。2全相联映象如图4-5所示,它允许主存中的每一个字块映象到Cache存储器的任何一个字块位置上,也允许从确实已被占满的Cache存储器中替换出任何一个旧字块当访问一个块中的数据时,块地址要与Cache块表中的所有地址标记进行比较以确定是否命中。在数据块调入时,存在着一个比较复杂的替换策略问题,即决定将数据块调入Cache中什么位置,将Cache中哪一块数据调出到主存。全相联方法块冲突的概率低,Cache的利用率高,是一种最理想的解决方案,但全相联Cache中块表

24、查找的速度慢,由于Cache的速度要求高,因此全部比较和替换策略都要用硬件实现,控制复杂,实现起来也比较困难。图4-5直接映像示意图图4-6全相联映像示意图3组相联映象组相联映象方式是全相联映象和直接映象的一种折衷方案。这种方法将存储空间分成若干组,各组之间是直接映象,而组内各块之间则是全相联映象。如图4-7所示,在组相联映象方式下,主存中存储块的数据可调入Cache中一个指定组内的任意块中。它是上述两种映象方式的一般形式,如果组的大小为1时就变成了直接映象;如果组的大小为整个Cache的大小时就变成了全相联映象。图4-7组相联映像示意图例如,把Cache子块分成2C组,每组包含2R个字块,那

25、么,主存字块MM(i)(0i2M-1)可以用下列映象函数映象到Cache字块MN(j)( 0j2N-1)上:j(i mod 2C)×2R十k ( 0k2R-1)例如, 设C3位,R1位,考虑主存字块15可映象到Cache的哪一个字块中。根据公式,可得:j (i mod 2C)×2R十k (15 mod 23)×21十k 7×2十k 14十k 又:0k2R-121-11 即: k0或1代入后得j14(k0)或15(k1)。所以主存模块15可映象到Cache字块14或15,在第7组。同样可计算出主存字块17可映象到Cache的第0块或第1块,在第1组。 组相

26、联映象方法在判断块命中以及替换算法上都要比全相联映象方法简单,块冲突的概率比直接映象方法的低,其命中率介于直接映象和全相联映象方法之间。4.3.8 替换策略主存与Cache之间的信息交换,是以存储块的形式来进行的,主存的块长与Cache的块长相同,但由于Cache的存储空间较小,主存的存储空间较大,因此,Cache中的一个存储块要与主存中的若干个存储块相对应,若在调入主存中一个存储块时,Cache中相应的位置已被其它存储块占有,则必须去掉个旧的字块,让位于一个新的字块。这称为替换策略或替换算法。常用的两种替换策略是:先进先出(FIFO) 策略和近期最少使用(LRU) 策略。1先进先出(FIFO

27、) 策略FIFO(First In First Out)策略总是把一组中最先调入Cache存储器的字块替换出去,它不需要随时记录各个字块的使用情况,所以实现容易,开销小。2近期最少使用(LRU) 策略LRU(Least Recently Used) 策略是把一组中近期最少使用的字块替换出去,这种替换策略需随时记录Cache存储器中各个字块的使用情况,以便确定哪个字块是近期最少使用的字块。LRU替换策略的平均命中率比FIFO要高,并且当分组容量加大时,能提高该替换策略的命中率。 图4-9LRU算法替换登记表LRU实现方法是:把组中各块的使用情况记录在一张表上(如图4-9所示),并把最近使用过的块

28、放在表的最上面,设组内有8个信息块,其地址编号为0,1,7。当要求替换时,首先更新7号信息块的内容;如要访问7号信息块,则将7写到表的顶部,其它号向下顺移。接着访问5号信息块,如果此时命中,不需要替换,也要将5移到表的顶部,其它号向下顺移。6号数据块是以后要首先被替换的,。 LRU策略的另一种实现方法是:对Cache存储器中的每一个字块都附设一个计数器,记录其被使用的情况。每当Cache中的一块信息被命中时,比命中块计数值低的信息块的计数器均加1,而命中块的计数器则清0。显然,采用这种计数方法,各信息块的计数值总是不相同的。一旦不命中的情况发生时,新信息块就要从主存调入Cache存储器,以替换

29、计数值最大的那片存储区。这时,新信息块的计数值为0,而其余信息块的计数值均加1,从而保证了那些活跃的信息块(即经常被命中或最近被命中的信息块)的计数值要小,而近来越不活跃的信息块的计数值越大。这样,系统就可以根据信息块的计数值来决定先替换谁。4.3.9 PIII中采用的Cache技术为了提高CPU访问存储器的速度,在486和Pentium机中都设计了一定容量的数据Cache和指令Cache(L1),并且还可以使用处理器外部的第二级Cache(L2)。Pentium Pro在片内第一级Cache的设计方案中,也分别设置了指令Cache与数据Cache,指令Cache的容量为8kB,采用2路组相联

30、映像方式。数据Cache的容量也为8kB,但采用4路组相联映像方式。它采用了内嵌式或称捆绑式L2 Cache,大小为256kB或512kB。此时的L2已经用线路直接连到CPU上,益处之一就是减少了对急剧增多L1 Cache的需求。L2 Cache还能与CPU同步运行,即当L1 Cache不命中时,立刻访问L2 Cache,不产生附加延迟。PentiumII是Pentium Pro的改进型,同样有2级Cache,L1为32kB(指令和数据Cache各16kB)是Pentium Pro的两倍,L2为512kB。 Pentium II与Pentium Pro在L2 Cache 的不同是由于制作成本的

31、原因。此时,L2 Cache已不在内嵌芯片上,而是与CPU通过专用64位高速缓存总线相联,与其它元器件共同被组装在同一基板上,即“单边接触盒”上。PentiumIII也是基于Pentium Pro结构为核心,它具有32kB非锁定L1 Cache和512kB非锁定L2 Cache。L2可扩充到12MB,具有更合理的内存管理,可以有效地对大于L2缓存的数据块进行处理,使CPU、Cache和主存存取更趋合理,提高了系统整体性能。在执行视频回放和访问大型数据库时,高效率的高速缓存管理使PIII避免了对L2 Cache的不必要的存取。由于消除了缓冲失败,多媒体和其它对时间敏感的操作性能更高了。对于可缓存

32、的内容,PIII通过预先读取期望的数据到高速缓存里来提高速度,这一特色提高了高速缓存的命中率,减少了存取时间。 为进一步发挥Cache的作用,改进内存性能并使之与CPU发展同步来维护系统平衡,一些制造CPU的厂家增加了控制缓存的指令。Intel公司也在PentiumIII处理器中新增加了70条3D及多媒体的SSE指令集,其中有很重要的一组指令是缓存控制指令。AMD公司在K6-2和K6-3中的3DNow多媒体指令中,也有从L1数据Cache中预取最新数据的数据预取指令(Prefetch)。 PentiumIII处理器有两类缓存控制指令。一类是数据据预存取(Prefetch)指令,能够增加从主存到

33、缓存的数据流;另一类是内存流优化处理(Memory Streaming)指令,能够增加从处理器到主存的数据流。这两类指令都赋予了应用开发人员对缓存内容更大的控制能力,使他们能够控制缓存操作以满足其应用的需求,同时也提高了Cache的效率。4.6 虚拟存储器一、 主存-辅存层次结构操作系统的形成和发展使得程序员尽可能摆脱主、辅存之间的地址定位,同时形成了支持这些功能的“辅助硬件”,通过软件、硬件结合,把主存和辅存统一成了一个整体,如图4-27所示。这时,由主存-辅存形成了一个存储层次,即存储系统。主存-辅存层次解决了存储器的大容量要求和低成本之间的矛盾,从整体看,其速度接近于主存的速度,其容量则

34、接近于辅存的容量,而每位平均价格也接近于廉价的慢速的辅存平均价格。这种系统不断发展和完善,就逐步形成了现在广泛使用的虚拟存储系统。 图4-27主存辅存层次结构 二、什么叫虚拟存储器(Virtal Memory)当CPU输出地址码的位数较多,而实际主存容量较小的情况下,微机系统可以将一部分辅存当作主存来使用的机制,就是虚拟存储器系统。虚拟存储器是建立在主存-辅存物理结构基础之上,由附加硬件装置及操作系统存储管理软件组成的一种存储体系,它将主存和辅存的地址空间统一编址,形成一个庞大的存储空间。在这个大空间里,用户自由编程,完全不必考虑程序在主存是否装得下,或者放在辅存的程序将来在主存中的实际位置。

35、编好的程序由计算机操作系统装入辅助存储器,程序运行时,附加的辅助硬件机构和存储管理软件会把辅存的程序一块块自动调入主存由CPU执行,或从主存调出。用户感觉到的不再是处处受主存容量限制的存储系统,而是好象具有一个容量充分大的存储器。三、 虚地址和实地址的基本概念及其相互关系 虚地址:虚拟存储器的辅存部分也能让用户象内存一样使用,用户编程时指令地址允许涉及辅存大小的空间范围,这种指令地址称为“虚地址”(即虚拟地址)或叫“逻辑地址”,虚地址对应的存储空间称为“虚存空间”或叫“逻辑空间”。实地址:实际的主存储器单元的地址则称为“实地址”(即主存地址)或叫“物理地址”,实地址对应的是“主存空间”,亦称物

36、理空间。 虚拟存储器的用户程序以虚地址编址并存放在辅存里,程序运行时,CPU以虚地址访问主存,由辅助硬件找出虚地址和物理地址的对应关系,判断由这个虚地址指示的存储单元的内容是否已装入主存,如果在主存,CPU就直接执行已在主存的程序;如果不在主存,就要进行辅存内容向主存的调度,这种调度同样以程序块为单位进行。计算机系统存储管理软件和相应的硬件把欲访问单元所在的程序块从辅存调入主存,且把程序虚地址变换成实地址,然后再由CPU访问主存。四、虚拟存储器和Cache的异同点虚拟存储器和主存-Cache存储器是两个不同存储层次的存储体系。在概念上两者有不少相同之处:但由主存-辅存组成的虚拟存储器和主存-C

37、ache存储器亦有很多不同之处:1 Cache存储器采用与CPU速度匹配的快速存储元件弥补了主存和CPU之间的速度差距,而虚拟存储器虽然最大限度地减少了慢速辅存对CPU的影响,但它的主要功能是用来弥补主存和辅存之间的容量差距,具有提供大容量和程序编址方便的优点。2 两个存储体系均以信息块作为存储层次之间基本信息的传送单位,Cache存储器每次传送的信息块是定长的,只有几十字节,而虚拟存储器信息块划分方案很多,有页、段等等,长度均在几百几百K字节左右。3 CPU访问快速Cache存储器的速度比访问慢速主存快510倍。虚拟存储器中主存的速度要比辅存缩短1001000倍以上。4 主存-Cache存储

38、体系中CPU与Cache和主存都建立了直接访问的通道一旦不命中时,CFU就直接访问主存并同时向Cache调度信息块,从而减少了CPU等待的时间。而辅助存储器与CPU之间没有直接通路,一旦在主存不命中时,只能从辅存调块到主存。因为辅存的速度相对CPU的差距太大,调度需要毫秒级时间,因此,CPU一般改换执行另一个程序,等到调度完成后才返回原程序继续工作。5 Cache存储器存取信息的过程、地址变换和替换策略全部用硬件实现,对程序员均是透明的。而主存-辅存层次的虚拟存储器基本上是由操作系统的存储管理软件并辅助一些硬件来进行信息块的划分和主存-辅存之间的调度,所以对设计存储管理软件的系统程序员来说,它

39、是不透明的,而对广大用户,因为虚拟存储路提供了庞大的逻辑空间可以任意使用,所以对应用程序员是透明的。五、 虚拟存储器的几种实现方法按虚拟存储器信息块的划分方案不同,虚拟存储器的实现,可以分为页式虚拟存储器、段式虚拟存储器、段页式虚拟存储器等集中形式,其中,段页式虚拟存储器综合了段式和页式结构的优点,是一种较好的虚拟存储器信息块的划分方案,也是目前大中型计算机系统中普遍采用的一种方式。有关这一部分内容,我们就不再一一为大家介绍了,有兴趣的同学可以看一看书上的相关内容。2种以上在速度、容量、价格不同的存储部件组成,一、 静态RAM1基本存储单元静态RAM的基本存储单元是由两个增强型的NM0S反相器

40、交叉耦合而成的触发器,每个基本的存储单元由六个MOS管构成,所以,静态存储电路又称为六管静态存储电路。图4-1(a)为六管静态存储单元的原理示意图。其中T1、T2为控制管,T3、T4为负载管。这个电路具有两个相对的稳态状态,若Tl管截止则A“l”(高电平),它使T2管开启,于是B“0”(低电平),而B“0”又进一步保证了T1管的截止。所以,这种状态在没有外触发的条件下是稳定不变的。同样,T1管导通即A“0”(低电平),T2管截止即B“1”(高电平)的状态也是稳定的。因此,可以用这个电路的两个相对稳定的状态来分别表示逻辑“1”和逻辑“0”。当把触发器作为存储电路时,就要使其能够接收外界来的触发控

41、制信号,用以读出或改变该存储单元的状态,这样就形成了如图4-l(b)所示的六管基本存储电路。其中T5、T6为门控管。(a) 六管静态存储单元的原理示意图 (b) 六管基本存储电路 图4-1 六管静态存储单元 当X译码输出线为高电平时,T5、T6管导通,A、B端就分别与位线D0及相连;若相应的Y译码输出也是高电平,则T7、T8管(它们是一列公用的,不属于某一个存储单元)也是导通的,于是D0及 (这是存储单元内部的位线)就与输入/输出电路的I/O线及线相通。写入操作:写入信号自I/O线及线输入,如要写入“1”,则I/O线为高电平而线为低电平,它们通过T7、T8管和T5、T6管分别与A端和B端相连,

42、使A=“1”,B=“0”,即强迫T2管导通,Tl管截止,相当于把输入电荷存储于Tl和T2管的栅级。当输入信号及地址选择信号消失之后,T5、T6、T7、T8都截止。由于存储单元有电源及负载管,可以不断地向栅极补充电荷,依靠两个反相器的交叉控制,只要不掉电,就能保持写入的信息“1”,而不用再生(刷新)。若要写入“0”,则线为低电乎而I/O线为高电平,使Tl管导通,T 2管截止即A=“0”,B=“1”。读操作:只要某一单元被选中,相应的T5、T6、T7、T8均导通,A点与B点分别通过T5、T6管与D0及相通,D0及又进一步通过T7、T8管与I/O及线相通,即将单元的状态传送到I/O及线上。由此可见,

43、这种存储电路的读出过程是非破坏性的,即信息在读出之后,原存储电路的状态不变。2静态RAM存储器芯片Intel 2114Intel 2114是一种1K×4的静态RAM存储器芯片,其最基本的存储单元就是如上所述的六管存储电路,其它的典型芯片有Ietel 6116/6264/62256等。(1)芯片的内部结构如图4-2所示,它包括下列几个主要组成部分:图4-2 Intel2114静态存储器芯片的内部结构框图 存储矩阵:Intel2114内部共有4096个存储电路,排成64×64的短阵形式; 地址译码器:输入为10根线,采用两级译码方式,其中6根用于行译码,4根用于列译码; I/O

44、控制电路:分为输入数据控制电路和列IO电路,用于对信息的输入输出进行缓冲和控制; 片选及读写控制电路:用于实现对芯片的选择及读写控制。(2)Intel 2114的外部结构Intel2114RAM存储器芯片为双列直插式集成电路芯片,共有18个引脚,引脚图如图4-3所示,各引脚的功能如下: A0-A9:10根地址信号输入引脚。 : 读写控制信号输入引脚,当为低电 平时,使输入三态门导通,信息由数据总线通过输入数据控制电路写入被选中的存储单元;反之从所选中的存储单元读出信息送到数据总线。 I/O1I/O4 :4根数据输入输出信号引脚, 图4-3 Intel 2114引脚图 : 低电平有效,通常接地址

45、译码器的输出端。 +5V: 电源。 GND:地。二、 动态RAM 1动态RAM基本存储单元 静态RAM的基本存储单元是一个RS触发器,因此,其状态是稳定的,但由于每个基本存储单元需由6个MOS管构成,就大大地限制了RAM芯片的集成度。如图4-4所示,就是一个动态RAM的基本存储单元,它由一个MOS管T1和位于其栅极上的分布电容c构成。当栅极电容C上充有电荷时,表示该存储单元保存信息“1”。反之,当栅极电容上没有电荷时,表示该单元保存信息“0”。由于栅极电容上的充电与放电是两个对立的状态,因此,它可以作为一种基本的存储单元。图4-4 单管动态存储单元写操作:字选择线为高电平,T1管导通,写信号通

46、过位线存入电容C中;读操作:字选择线仍为高电平,存储在电容C上的电荷,通过T1输出到数据线上,通过读出放大器,即可得到所保存的信息。刷新:动态RAM存储单元实质上是依靠T1管栅极电容的充放电原理来保存信息的。时间一长,电容上所保存的电荷就会泄漏,造成了信息的丢失。因此,在动态RAM的使用过程中,必须及时地向保存“1”的那些存储单元补充电荷,以维持信息的存在。这一过程,就称为动态存储器的刷新操作。2动态RAM存储器芯片Intel 2164AIntel2164A是一种64K×1的动态RAM存储器芯片,它的基本存储单元就是采用单管存储电路,其它的典型芯片有Ietel 21256/21464

47、等。(1)Intel 2164A的内部结构如图4-5所示,其主要组成部分如下:图4-5 Intel 2164A内部结构 存储体:64K×1的存储体由4个128×128的存储阵列构成; 地址锁存器:由于Intel 2164A采用双译码方式,故其16位地址信息要分两次送入芯片内部。但由于封装的限制,这16位地址信息必须通过同一组引脚分两次接收,因此,在芯片内部有一个能保存8位地址信息的地址锁存器; 数据输入缓冲器: 用以暂存输入的数据; 数据输出缓冲器: 用以暂存要输出的数据; 1/4I/O门电路:由行、列地址信号的最高位控制,能从相应的4个存储矩阵中选择一个进行输入输出操作;

48、 行、列时钟缓冲器:用以协调行、列地址的选通信号; 写允许时钟缓冲器:用以控制芯片的数据传送方向; 128读出放大器:与4个128×128存储阵列相对应,共有4个128读出放大器,它们能接收由行地址选通的4×128个存储单元的信息,经放大后,再写回原存储单元,是实现刷新操作的重要部分; 1/128行、列译码器: 分别用来接收7位的行、列地址,经译码后,从128×128个存储单元中选择一个确定的存储单元,以便对其进行读/写操作。(2)Intel 2164A的外部结构Intel 2164A是具有16个引脚的双列直插式集成电路芯片,其引脚安排如图4-6所示。 A0A7:

49、地址信号的输入引脚,用来分时接收CPU送来的8位行、列地址; :行地址选通信号输入引脚,低电平有效,兼作芯片选择信号。当为低电平时,表明芯片当前接收的是行地址; :列地址选通信号输入引脚,低电平有效,表明当前正在接收的是列地址(此时应保持为低电平); : 写允许控制信号输入引脚,当其为低电平时,执行写操作;否则,执行读操作。 DIN:数据输入引脚; DOUT:数据输出引脚; 图4-6 Intel 2164A引脚 VDD:十5V电源引脚; Css:地; N/C:未用引脚。(3)Intel 2164A的工作方式与时序 读操作在对Intel 2164A的读操作过程中,它要接收来自CPU的地址信号,经

50、译码选中相应的存储单元后,把其中保存的一位信息通过DOUT数据输出引脚送至系统数据总线。Intel 2164A的读操作时序如图4-7所示。从时序图中可以看出,读周期是由行地址选通信号有效开始的,要求行地址要先于信号有效,并且必须在有效后再维持一段时间。同样,为了保证列地址的可靠锁存,列地址也应领先于列地址锁存信号有效,且列地址也必须在有效后再保持一段时间。要从指定的单元中读取信息,必须在有效后,使也有效。由于从有效起到指定单元的信息读出送到数据总线上需要一定的时间,因此,存储单元中信息读出的时间就与开始有效的时刻有关。图4-7 Intel 2164A读操作的时序存储单元中信息的读写,取决于控制

51、信号。为实现读出操作,要求控制信号无效,且必须在有效前变为高电平。 写操作在Intel 2164A的写操作过程中,它同样通过地址总线接收CPU发来的行、列地址信号,选中相应的存储单元后,把CPU通过数据总线发来的数据信息,保存到相应的存储单元中去。Intel2164A的写操作时序如图4-8所示。图4-8 Intel 2164A写操作的时序 读-修改-写操作这种操作的性质类似于读操作与写操作的组合,但它并不是简单地由两个单独的读周期与写周期组合起来,而是在和同时有效的情况下,由信号控制,先实现读出,待修改之后,再实现写入。其操作时序如图4-9所示。 刷新操作Intel 2164A内部有4

52、5;128个读出放大器,在进行刷新操作时,芯片只接收从地址总线上发来的行地址(其中RA7不起作用),由RA0RA6共七根行地址线在四个存储矩阵中各选中一行,共4×128个单元,分别将其中所保存的信息输出到4×128个读出放大器中,经放大后,再写回到原单元,即可实现512个单元的刷新操作。这样,经过128个刷新周期就可完成整个存储体的刷新。图4-9 Intel 2164A读-修改-写操作的时序图4-10 Intel 2164A唯有效刷新操作的时序数据输出数据输出具有三态缓冲器,它由控制,当为高电平时,输出Dout呈高阻抗状态,在各种操作时的输出状态有所不同。页模式操作在这种方

53、式下,维持行地址不变(不变),由连续的脉冲对不同的列地址进行锁存,并读出不同列的信息,而脉冲的宽度有一个最大的上限值。在页模式操作时,可以实现存储器读、写以及读-修改-写等操作。有关上述时序图中参数的具体值,请参考有关的技术手册。习题与思考:1试说明存储器系统的主要性能指标。2存储器的哪一部分用来存储程序指令及像常数和查找表一类的固定不变的信息?哪一部 分用来存储经常改变的数据?3术语“非易失性存储器”是什么意思?PROM和EPROM分别代表什么意思?4微型计算机中常用的存储器有哪些类型?它们各有何特点?分别适用于哪些场合?5试比较静态RAM和动态RAM的优缺点,并说明有何种方法可解决掉电时动

54、态RAM第二讲: 4.3 只读存储器ROM回 顾:微型计算机存储器系统的分类及读/写存储器RAM。本讲重点:只读存储器ROM及其基本存储单元与芯片。讲授内容:4.3 只读存储器ROM指在微机系统的在线运行过程中,只能对其进行读操作,而不能进行写操作的一类存储器,在不断发展变化的过程中,ROM器件也产生了掩模ROM、PROM、EPROM、EEPROM等各种不同类型。一、掩模ROM如图4-11所示,是一个简单的4×4位的MOS ROM存储阵列,采用单译码方式。这时,有两位地址输入,经译码后,输出四条字选择线,每条字选择线选中一个字,此时位线的输出即为这个字的每一位。 此时,若有管子与其相连(如位线1和位线4),则相应的MOS管就导通,这些位线的输出就是低电表 平,表示逻辑“0”;而没有管 图4-11 简单的4×4位的MOS ROM存储阵列子与其相连的位线(如位线2和位线3)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论