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

下载本文档

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

文档简介

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.4 虚拟存储器4.4.1 “主存-辅存”层次结构操作系统的形成和发展使得程序员尽可能摆脱主、辅存之间的地址定位,同时形成了支持这些功能的“辅助硬件”,通过软件、硬件结合,把主存和辅存统一成了一个整体,如图4-10所示。这时,由“主存-辅存”形成了一个存储层次,即存储系统。“主存-辅存”层次解决了存储器的大容量要求和低成本之间的矛盾,从整体看,其速度接近于主

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

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

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

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

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

39、“主存-辅存”之间的调度,所以对设计存储管理软件的系统程序员来说,它是不透明的,而对广大用户,因为虚拟存储路提供了庞大的逻辑空间可以任意使用,所以对应用程序员是透明的。445 虚拟存储器的几种实现方法按虚拟存储器信息块的划分方案不同,虚拟存储器的实现,可以分为页式虚拟存储器、段式虚拟存储器、段页式虚拟存储器等集中形式,其中,段页式虚拟存储器综合了段式和页式结构的优点,是一种较好的虚拟存储器信息块的划分方案,也是目前大中型计算机系统中普遍采用的一种方式。45 存储器芯片的扩展及其与系统总线的连接4.5.1 存储器芯片的扩展及其与系统总线的连接微机系统的规模、应用场合不同,对存储器系统的容量、类型

40、的要求也必不相同,一般情况下,需要用不同类型,不同规格的存储器芯片,通过适当的硬件连接,来构成所需要的存储器系统,这就是本节所需要讨论的内容。一、 存储器芯片与CPU的连接在微型系统中,CPU对存储器进行读写操作,首先要由地址总线给出地址信号,选择要进行读/写操作的存储单元,然后通过控制总线发出相应的读/写控制信号,最后才能在数据总线上进行数据交换。所以,存储器芯片与CPU之间的连接,实质上就是其与系统总线的连接,包括: 地址线的连接; 数据线的连接; 控制线的连接;在连接中要考虑的问题有以下几个方面:1CPU总线的负载能力在设计CPU芯片时,一般考虑其输出线的直流负载能力,为带一个TTL负载

41、。现在的存储器一般都为MOS电路,直流负载很小,主要的负载是电容负载,故在小型系统中,CPU是可以直接与存储器相连的,而较大的系统中,若CPU的负载能力不能满足要求,可以(就要考虑CPU能否带得动,需要时就要加上缓冲器,)由缓冲器的输出再带负载。2CPU的时序和存储器的存取速度之间的配合问题CPU在取指和存储器读或写操作时,是有固定时序的,用户要根据这些来确定对存储器存取速度的要求,或在存储器已经确定的情况下,考虑是否需要Tw周期,以及如何实现。3存储器的地址分配和片选问题内存通常分为RAM和ROM两大部分,而RAM又分为系统区(即机器的监控程序或操作系统占用的区域)和用户区,用户区又要分成数

42、据区和程序区,ROM的分配也类似,所以内存的地址分配是一个重要的问题。另外,目前生产的存储器芯片,单片的容量仍然是有限的,通常总是要由许多片才能组成一个存储器,这里就有一个如何产生片选信号的问题。4控制信号的连接CPU在与存储器交换信息时,通常有以下几个控制信号(对8088/8086来说):/M(IO/),,以及WAIT信号。这些信号如何与存储器要求的控制信号相连,以实现所需的控制功能。二、 存储器芯片的扩展存储器芯片扩展的方法有以下两种:1存储器芯片的位扩充适用场合:存储器芯片的容量满足存储器系统的要求,但其字长小于存储器系统的要求。例1 用1K×4的2114芯片构成lK×

43、;8的存储器系统。分析: 由于每个芯片的容量为1K,故满足存储器系统的容量要求。但由于每个芯片只能提供4位数据,故需用2片这样的芯片,它们分别提供4位数据至系统的数据总线,以满足存储器系统的字长要求。设计要点:l 将每个芯片的10位地址线按引脚名称一一并联,按次序逐根接至系统地址总线的低10位。l 数据线则按芯片编号连接,1号芯片的4位数据线依次接至系统数据总线的D0-D3,2号芯片的4位数据线依次接至系统数据总线的D4-D7。l 两个芯片的端并在一起后接至系统控制总线的存储器写信号(如CPU为8086/8088,也可由和M或IO/的组合来承担)。l 引脚也分别并联后接至地址译码器的输出,而地

44、址译码器的输入则由系统地址总线的高位来承担。具体连线见图4-11。当存储器工作时,系统根据高位地址的译码同时选中两个芯片,而地址码的低位也同时到达每一个芯片,从而选中它们的同一个单元。在读/写信号的作用下,两个芯片的数据同时读出,送上系统数据总线,产生一个字节的输出,或者同时将来自数据总线上的字节数据写入存储器。图4-11 用2114组成1K×8的存储器连线根据硬件连线图,我们还可以进一步分析出该存储器的地址分配范围如下:(假设只考虑16位地址) 地 址 码 芯 片 的 地 址 范 围A15 . A12 A11 A10 A9 . A0 × × 0 0 0 0 0

45、0 0 0 H : : : : × × 0 0 1 1 0 3 F F H×表示可以任选值,在这里我们均选0。这种扩展存储器的方法就称为位扩展,它可以适用于多种芯片,如可以用8片2164A组成一个64K×8的存储器等。2存储器芯片的字扩充适用场合:存储器芯片的字长符合存储器系统的要求,但其容量太小。例2 用2K×8的2716存储器芯片组成8K×8的存储器系统。分析:由于每个芯片的字长为8位,故满足存储器系统的字长要求。但由于每个芯片只能提供2K个存储单元,故需用4片这样的芯片,以满足存储器系统的容量要求。设计要点:同位扩充方式相似。l

46、 先将每个芯片的11位地址线按引脚名称一一并联,然后按次序逐根接至系统地址总线的低11位。l 将每个芯片的8位数据线依次接至系统数据总线的D0-D7。l 两个芯片的端并在一起后接至系统控制总线的存储器读信号(这样连接的原因同位扩充方式),l 它们的引脚分别接至地址译码器的不同输出,地址译码器的输入则由系统地址总线的高位来承担。连线见图4-17。 图4-12 用2716组成8K×8的存储器连线当存储器工作时,根据高位地址的不同,系统通过译码器分别选中不同的芯片,低位地址码则同时到达每一个芯片,选中它们的相应单元。在读信号的作用下,选中芯片的数据被读出,送上系统数据总线,产生一个字节的输

47、出。同样,根据硬件连线图,我们也可以进一步分析出该存储器的地址分配范围如下表:(假设只考虑16位地址) 地 址 码 芯片的地址范围 对应芯片 A15 . A13 A12 A11 A10 A9 . A0 × × 0 0 0 0 0 0 0 0 0 H : : 2716-1 × × 0 0 1 1 1 0 7 F F H × × 0 1 0 0 0 0 8 0 0 H : : 2716-2 × × 0 1 1 1 1 0 F F F H × × 1 0 0 0 0 1 0 0 0 H : : 2716-3 × × 1 0 1 1 1 1 7 F F

温馨提示

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

评论

0/150

提交评论