第7章 存储系统.ppt
第7章 存储系统,7.1 存储系统的层次结构7.2 高速缓冲存储器(cache)7.3 虚拟存储器7.4 相联存储器7.5 存储保护,7.1 存储系统的层次结构,存储器是计算机的核心部件之一。其性能直接关系到整个计算机系统性能的高低。如何以合理的价格,设计出容量和速度满足计算机系统要求的存储器系统,始终是计算机体系结构设计中的关键问题之一。为了解决对存储器要求容量大,速度快,成本低三者之间的矛盾,较好的方法是采用存储层次,用多种存储器构成存储器的层次结构。,7.1 存储系统的层次结构,存储器层次概述把各种不同存储容量、不同存取速度、不同价格的存储器,组成层次结构,并通过管理软件和辅助硬件将不同性能的存储器组合成有机的整体,称为计算机的存储层次或存储体系。,7.1 存储系统的层次结构,7.1 存储系统的层次结构,一个完整的计算机存储系统一般分为两级:主存(内存)和辅存(外存);“主存辅存”层次的目的是为了弥补主存容量的不足。它是在主存外面增加一个容量更大、每位价格更低、但速度更慢的存储器(称为辅存,一般是硬盘)。它们依靠辅助软硬件的作用,构成一个整体。,7.1 存储系统的层次结构,主存储器主存处于被中央处理机CPU直接访问的位置,由随机存储器RAM和只读存储器ROM组成,能快速进行读写操作;存放计算机运行期间的大量程序和数据;存取速度较快,存储容量不大。,7.1 存储系统的层次结构,辅助存储器辅存速度允许慢些,因此价格较低;存放系统程序和大型数据文件及数据库;大量静止、待命的信息分布在辅存上,当需要辅存上的某些信息活跃起来时,它将由计算机专门的存储管理部件调入主存,然后才被CPU访问;存储容量大,位成本低。,7.1 存储系统的层次结构,主辅两级存储结构建立在存储器件分级且存储信息性质分级的基础上;主存容量因其价格受到限制,设立了大容量辅存解决了在尽可能低的价格下的容量问题;大容量的低速辅助存储器可以通过高速主存与CPU交换信息,不仅使计算机得到合理分配,而且CPU的高速效能仍能得到充分发挥;主辅两级存储结构较好地统一协调了容量、速度、价格三者之间的矛盾。,7.1 存储系统的层次结构,主存辅存存储层次,主、辅存之间采用操作系统自动定位技术,形成一个整体,速度接近于主存,容量是辅存,价格接近辅存。,7.1 存储系统的层次结构,二级存储系统:主存辅存缺点:并没有很好地针对CPU与主存速度的差异解决主存速度与CPU匹配问题,CPU高速效能得不到充分发挥。,7.1 存储系统的层次结构,如果改用速度更接近CPU的快速主存器件,则价格昂贵,要组成满足现代技术需求的又具有相当容量的主存,势必影响性能价格比而失去市场。因此,存储系统设计必须突破单一用主存和辅存简单的组合的二级存储系统,从系统结构上采取措施组成存储体系。,7.1 存储系统的层次结构,Cache主存存储层次,7.1 存储系统的层次结构,7.1 存储系统的层次结构,可将整个存储系统看成三级系统:高速缓存-主存(内存)-外存(辅存)也可看成两个二级系统:高速缓存-主存(一级)主存-外存(一级)注意:这两个二级存储系统各自的基本功能不相同:前者:提高CPU访问存储器的速度;后者:弥补主存容量的不足。,第7章 存储系统,7.1 存储系统的层次结构7.2 高速缓冲存储器(cache)7.3 虚拟存储器7.4 相联存储器7.5 存储保护,7.2 高速缓冲存储器(cache),目前,组成主存的DRAM存取速度一般落后于CPU的处理速度,CPU访问主存时不得不插入等待周期来适应主存的速度,致使系统整体下降。高速缓冲存储器Cache:是为解决CPU和DRAM之间的速度匹配而采用的一项重要技术;是发挥CPU高速高效的性能而设置的一种介于CPU和DRAM之间的高速小容量缓冲存储器;存取速度要比主存快,由高速的SRAM组成;全部功能由硬件实现,保证了其高速度。,7.2 高速缓冲存储器(cache),cache的工作机制cache基本原理地址映象(映射)与地址变换cache与主存数据的一致性替换策略高速缓冲器cache的构成,cache的工作机制,高速缓冲存储器cache的工作机制基于程序访问的局部性原则。一个运行程序的代码大都顺序存放在地址连续的存储器中,与程序相关的数据在存储器中也相对集中。程序运行时,尤其有循环程序段和子程序段时,在较短的时间区间内,常会对局部范围的存储器频繁访问,某存储单元被访问了,该单位可能会被再次访问,大多数存取又是在紧接着上次存取地址附近,而此范围之外的地址访问甚少。这种现象称程序访问的局部性。,cache的工作机制,根据局部性原理,可以在主存和CPU之间设置一个高速的容量相对较小的存储器,如果当前正在执行的程序和数据存放在这个存储器中,在程序运行时,不必从主存储器取指令和取数据,只需访问这个高速存储器,以提高程序运行速度。这个存储器称作高速缓冲存储器Cache。Cache由高速的SRAM组成,它的工作速度数倍于主存,全部功能由硬件实现,并且对程序员是透明的。,cache的工作机制,7.2 高速缓冲存储器(cache),cache的工作机制cache基本原理地址映象(映射)与地址变换cache与主存数据的一致性替换策略高速缓冲器cache的构成,cache基本原理,Cache结构设计必须解决的问题:如何存放,如何访问,如何替换,如何改写?数据块在Cache中存放在哪个位置?即定位问题(地址映象)。如果一个块存放在某一Cache中,怎样确定并找到该块,即寻址问题(地址变换)。不命中时将从主存储器中访问,并将该块调入Cache中,但是如果Cache中已无空闲空间,则势必将Cache中的某一块调出,但应调出那一块,即替换问题。在写访问时,写入Cache必须在适当的时候写回主存储器,何时写?写操作时采用什么策略保证两级存储器间的数据一致性。写操作失配时是否将访问块取入高层存储器。,cache基本原理,高速缓冲存储器包括:cache控制部件cache存储器,cache基本原理,cache控制部件包括:主存地址寄存器主存cache地址变换机构替换控制部件cache地址寄存器控制部件均由硬件组成,cache基本原理,cache存储器多采用与CPU相同类型的半导体集成电路制成的高速存储元件SRAM;存取速度比主存快且与CPU接近;整个cache存储器介于CPU和主存之间,直接接受CPU访问;CPU不仅与cache相接,而且与主存仍然保持通路。,cache基本原理,在主存cache存储体系中,所有的程序和数据都在主存中,cache存储器只存放主存一部分程序块和数据块的副本,这种以块为单位的存储方式是基于计算机程序的局部性。从程序局部性可知,cache中的程序块和数据块使CPU要访问的内容在大多数情况下已经在cache存储器里,CPU读写操作主要在CPU和cache之间进行。,cache基本原理,cache的命中任何时候都有一些主存块处在Cache中。CPU访问存储体系时首先访问cache,送出访问单元的地址由地址总线打入cache存储器的主存地址寄存器MA;主存cache地址变换机构从主存地址寄存器MA获取地址判断该单元内容是否已在cache中存放副本,如果副本已经在cache中了,称为命中;反之称不命中或命中失效。,cache基本原理,cache基本原理,cache的命中率命中率指CPU所要访问的信息在Cache中的比率;所要访问的信息不在Cache中的比率称为失效率。增加cache的目的,就是在性能上使主存的平均读出时间尽可能接近cache的读出时间。因此,cache的命中率应接近于1。由于程序访问的局部性,这是可能的。,cache基本原理,当命中时立即把访问地址变换成它在cache的地址,然后驱动cache存储体。当是读操作时,CPU从cache中直接读取信息;若是写操作,不但要把新内容写入cache存储器中,而且必须同时写入主存,使主存和cache内容同时修改,保证主存和副本内容一致,这种方法也叫直达法。,cache基本原理,有的机器考虑到当写入操作很频繁或者写入的是中间结果,每次写入主存很浪费时间,于是设计成每次只改写cache的内容并不立即修改主存中相应的单元,只有当cache中被写过的块要被新进入cache的信息块取代时才一次写回主存里,这种方法称回写法。,cache基本原理,如果CPU要访问的内容根本不在cache中,即“不命中”,那么CPU转去直接访问主存。若是读操作,CPU则从主存读取信息的同时,cache控制部件把该地址所在那块存储内容从主存一次调进cache存储器,以存储块为单位调入cache存储器可以提高下次访问的命中率。若是写操作,则处理就简单多了,很多计算机系统只向主存写入信息,不必同时把这个地址所在的存储内容再调入cache存储器中。,cache基本原理,直达法:优点:数据不会出现不一致缺点:对写操作没有高速缓存的作用回写法:优点:速度快缺点:存在数据不一致隐患,cache基本原理,对于共享一个主存的多处理机系统,因为处理机各自拥有cache存储器,所以必须采用写直达法将任何一个cache中修改的内容同时写入主存,保证其他cache向主存调用信息块时是修改过的而不是失效的信息。这点对于拥有多个处理机而共享一个主存的计算机系统特别重要。,7.2 高速缓冲存储器(cache),cache的工作机制cache基本原理地址映象(映射)与地址变换cache与主存数据的一致性替换策略高速缓冲器cache的构成,地址映象(映射)与地址变换,地址映象 把主存块按照某种规则(函数或方法)装入或定位到Cache中的过程称地址映象。地址变换信息按这种映象关系装入Cache后,执行程序时,将主存地址变换成 Cache地址的变换过程叫做地址变换。地址映象和变换密切相关。,地址映象(映射)与地址变换,使用Cache的动力在于它的高速,因此也要求这个地址变换过程尽可能地快,故此过程是以硬件完成的。这带来的另一好处是Cache的透明性,除了程序运行速度提高之外,用户包括系统软件编制人员,丝毫未感觉到Cache的存在。,地址映象(映射)与地址变换,在高速缓冲存储器中把Cache和主存机械等分为相同大小的块,每一块是由若干个字(或字节)组成。例:某机主存容量为1MB,划分为2048块,每块512B;Cache容量为8KB,划分为16块,每块512B。,地址映象(映射)与地址变换,由于Cache的块数远小于主存的块数,因此一个Cache不能唯一地、永久地只对应一个贮存块,在Cache中,每一块外加有一个标记,指明它是主存的哪一块的副本(拷贝)。,地址映象(映射)与地址变换,标记的有效位每个标记设置有一个有效位。机器加电启动时,Reset信号将所有标记的有效位置“0”,即无效。程序执行过程中,Cache不命中时,逐步将指令块或数据块从主存调入Cache中的某一块,并将这一块标记的有效位置“1”,当再次用到这一块中的指令或数据时,可直接从Cache中取指令或数据。,地址映象(映射)与地址变换,因刚加电时所有标记位都为“0”,开始执行程序时,命中率较低。另外Cache的命中率还与程序本身有关,即不同的程序,其命中率可能不同。,地址映象(映射)与地址变换,基本的地址映象方式:直接映象全相连映象组相连映象,地址映象(映射)与地址变换,直接映射方式这是一种多对一的映射关系,一个主存块只能映象到Cache的一个特定块位置上去。在这种映象方式中:主存的第0块,第16块,第32块,只能映象到Cache的第0块;而主存的第1块,第17块,第33块,只能映象到Cache的第1块;,地址映象(映射)与地址变换,直接映象,7位,地址映象(映射)与地址变换,直接映象的地址变换方法,地址映象(映射)与地址变换,优点:实现简单,只需利用主存地址按某些字段直接判断,即可确定所需字块是否已在Cache中。缺点:不够灵活,主存的多个字块只能对应唯一的Cache字块,因此,即使Cache别的地址空着也不能占用。Cache存储空间得不到充分利用,降低了命中率。,地址映象(映射)与地址变换,全相联映象方式,允许主存中的每一个字块映象到Cache的任何一个字块位置上,最灵活但成本最高的一种方式。,地址映象(映射)与地址变换,全相联映象的地址变换方法,地址映象(映射)与地址变换,全相联映象的地址变换方法的优缺点:优点:灵活,块冲突概率小。只有当Cache中全部装满后,才有可能出现块冲突;缺点:要作相联搜索,速度慢,代价高。,地址映象(映射)与地址变换,这只是一个理想的方案。两个原因使其实际上很少采用:标记位数从7位增加到11位,使Cache标记容量加大;访问Cache时,需要和Cache的全部标记进行“比较”才能判断出所访主存地址的内容是否已在Cache中。由于Cache速度要求高,通常由“按内容寻址”的相联存储器完成,所需硬件逻辑电路很多,以至于无法用于cache中。实际的Cache组织则是采取各种措施来减少所需比较的地址数目。,地址映象(映射)与地址变换,组相联映射方式组间全相联,组内直接映像直接映象和全相联映象方式的一种折衷方案。,地址映象(映射)与地址变换,注意:当Cache只有一个组并且每组16块时,此时为直接映像;当Cache有16组并且每组一个块时,则为全相联映像。,8位 3位 9 位,1位 3位 9 位,7.2 高速缓冲存储器(cache),cache的工作机制cache基本原理地址映象(映射)与地址变换cache与主存数据的一致性替换策略高速缓冲器cache的构成,cache与主存数据的一致性,cache中存放的是主存中部分信息的副本。为了保证CPU存取的数据准确无误,要求cache中每一个地址上的数据与主存中相应存储单元的数据保持完全相同,这种性质称cache与主存数据的一致性。写直达法和回写法是常见的保持数据一致性的算法。,cache与主存数据的一致性,cache与主存数据的不一致的情况:CPU从cache读入数据重新写入修改后的新数据时;主存数据修改。例如多处理机系统,其中一个cache内容修改后立即用写直达法写入主存又导致主存数据可能与其他cache的副本不一致。又例如,计算机的DMA访问直接修改了主存数据,也可能造成与cache数据的不一致性。,cache与主存数据的一致性,通常采用的处理办法有:主存监视法:利用硬件机构使cache控制器能监视所有设备对主存的操作或访问,凡对主存的写入也立即对cache中相应单元进行拷贝,从而保证数据的一致性设置“不可cache区”:即在主存中开辟一块存储区域,该区域数据不能调入cache,不受cache控制器管理,但其他设备进入的数据只能直接写入该区域。所以不会产生与cache中数据的不一致性。“不可cache区”可以通过BIOS设置程序来设置。,7.2 高速缓冲存储器(cache),cache的工作机制cache基本原理地址映象(映射)与地址变换cache与主存数据的一致性替换策略高速缓冲器cache的构成,替换策略,在主存cache存储体系工作过程中,主存和cache存储器之间信息以块为单位调度,信息块的长度取决于主存的结构设计,主存常设计成多体交叉存储结构。当信息块需要调入cache存储器而cache存储器中已经占满信息时,cache存储器的替换控制部件将按一定的替换策略淘汰cache中旧有的一块信息,被更新的旧信息块应该是下一段时间内估计是最少使用的,然后用新的信息块覆盖掉。,替换策略,常用的替换策略有两种:先进先出策略FIFO策略总是更换掉当前cache中最先进入的信息块这种方法控制简单,实现容易近期最少使用策略 LRU策略,替换策略,近期最少使用策略 LRU策略:遵循的规则是新信息块替代的是当前cache存储器中被使用次数最少的,即最不活跃的那块信息;使用LRU方法的cache存储器每一个字块都要附设一个计数器记录被使用的情况,每当cache中的一块信息被命中时,比命中块计数值低的信息块均加1,而命中块计数器清0;显然,这种技术方法各信息块的计数值总是不相同的。,替换策略,一旦不命中情况发生时,新信息块从主存调入cache存储器替换计数值最大的那片存储区,新信息块计数值为0,其余信息块计数均加1,保证了那些活跃的信息块经常被命中或最近被命中的信息块计数值要小,而近来越来越不活跃的信息块计数值越大;LRU策略是目前使用较多的一种策略,能够有效的提高命中率。,替换策略,无论FIFO策略还是LRU策略,其实最先被调入cache的信息块或最近最少使用的信息块都不能肯定是最近将绝不会使用,所以替换策略不能作为最合理最优秀的。但是研究表明,FIFO和LRU策略明显地提高了cache存储器的命中率,可以达到百分之九十左右,其中LRU策略的命中率比FIFO更高一些。,替换策略,Cache的命中率反映了CPU需要访问的数据在cache中能直接找到的概率。影响命中率的因素有:替换策略cache的结构因素包括cache高速缓冲存储器大小、传送块的大小若cache的存储容量越大,保存副本越多,命中率就越高访问程序和数据的局部性影响命中率的外部因素,7.2 高速缓冲存储器(cache),cache的工作机制cache基本原理地址映象(映射)与地址变换cache与主存数据的一致性替换策略高速缓冲器cache的构成,高速缓冲器cache的构成,由于CPU时钟频率非常高,与主存的DRAM速度相差很大,虽然cache的命中率达90至95以上,但是一旦出现cache未命中的情况,CPU要向DRAM存取时,性能将明显恶化。因此在目前的PC系统中CPU和主存之间设置了一级缓存(L1 cache)和二级缓存(L2 cache)。,高速缓冲器cache的构成,一级缓存L1 cache:直接做在CPU内部,也称内部cache;所用存储器件速度最快,与CPU匹配;但容量较小;Pentium之后的CPU内部采用了数据和指令双通道cache技术;容量在32KB至128KB或更大些。,高速缓冲器cache的构成,二级缓存L2 cache:是CPU和主存之间的缓存;速度可以比L1 cache低些;容量比L1 cache大一个数量级以上;开始时L2 cache做在PC机主板上,称外部cache;以后采用了更新的封装方式,把L2 cache和CPU芯片封装在一起,进一步提高了L2 cache的速度;L2 cache容量常见在512KB至1MB以上。,高速缓冲器cache的构成,采用高速缓冲存储器组成的主存cache存储体系CPU访问主存的操作百分之九十在高速缓存中进行;一方面大大缩短了CPU访问主存的等效时间,有效地提高了机器的运算速度;另一方面可以降低CPU对主存速度的要求,从而降低主存的造价,弥补了引入cache存储器后增加的成本,机器的性能价格比提高了;因此不仅在中大型机中,而且小、微型机也普遍引入这种存储层次结构。,第7章 存储系统,7.1 存储系统的层次结构7.2 高速缓冲存储器(cache)7.3 虚拟存储器7.4 相联存储器7.5 存储保护,7.3 虚拟存储器,虚拟存储器概述页式虚拟存储器段式虚拟存储器段页式虚拟存储器存储管理部件,虚拟存储器概述,虚拟存储器的提出1961年英国曼彻斯特大学Kilbrn等人提出;70年代广泛地应用于大中型计算机系统中,目前许多微型机也开始使用虚拟存储器;是进一步完善主存辅存存储层次,解决主存容量提出的。,虚拟存储器概述,什么是虚拟存储器虚拟存储器是建立在主存辅存物理结构的基础之上的,是由附加硬件装置及操作系统存储管理软件组成的一种存储体系;将主存和辅存的地址空间统一编址,形成一个庞大的存储空间;借助于磁盘等辅助存储器来扩大主存容量,使之为更大或更多的程序所使用;虚拟存储器可使主存的容量像辅存(磁盘)一样大;虚拟存储器中程序可以像访问主存一样访问外存。,虚拟存储器概述,虚似存储器的功能与特点虚拟存储器是“主存外存”层次;是一个逻辑模型,并不是一个实际的物理存储器;虚拟存储器解决了存储容量、存取速度和价格之间的矛盾,是管理存储设备的有效方法;使计算机的存取容量达到辅存的容量使计算机存储速度接近主存的速度使计算机整个存储系统的成本接近辅存的成本有了虚拟存储器,用户无需考虑所编程序在主存中是否放得下或放在什么位置等问题。,虚拟存储器概述,虚地址和实地址虚拟存储器的辅存部分能让用户像内存一样使用,用户编程时指令地址允许涉及辅存大小的空间范围,这种指令地址称为虚地址(虚拟地址、逻辑地址);实际的主存储器单元的地址则称为实地址(主存地址、物理地址);虚地址范围要比实地址大得多。,虚拟存储器概述,物理地址由CPU地址引脚送出,用于访问主存的地址。虚拟地址由编译程序生成的,是程序的逻辑地址,其地址空间的大小受到辅助存储器容量的限制。,虚拟存储器概述,虚拟存储器和cache存储器虚拟存储器和主存cache存储器是两个不同存储层次的存储体系。CPU-主存-辅存之间的关系CPU-Cache-主存之间的关系,虚拟存储器概述,虚拟存储器和cache存储器在概念上有不少相同之处:都把程序划分为一个个信息块;运行时都能自动地把信息块从慢速存储器向快速存储器调度;都是采用一定的地址变换映射方法和替换策略,从原理上看是相同的;都基于程序局部性原理。,虚拟存储器概述,虚拟存储器和cache存储器的不同之处:主要功能传送信息块长度访问速度虚拟存储器对未命中更加敏感对程序员是否透明,虚拟存储器概述,主要功能:cache存储器采用与CPU速度匹配的快速存储元件弥补了主存和CPU之间的速度差距;虚拟存储器虽然最大限度减少了慢速辅存对CPU的影响,但它的主要功能是用来弥补主存和辅存之间的容量差距,具有提供大容量和程序编址方便的优点。,虚拟存储器概述,传送信息块长度:cache存储器每次传送的信息块是定长的,只有几十字节;虚拟存储器信息块划分方案很多,有页、段等,长度均在几百至几百K字节左右。访问速度:CPU访问cache存储器的速度比访问慢速主存快510倍;虚拟存储器中的主存速度要比辅存缩短1001000倍以上。,虚拟存储器概述,虚拟存储器对未命中更加敏感:主存cache存储体系中CPU与cache和主存都建立了直接访问的通路,一旦不命中时,CPU直接访问主存并同时进行向cache调度信息块,从而减少了CPU等待的时间;辅助存储器与CPU之间没有直接通路,一旦在主存不命中时只能从辅存调块到主存。因为辅存的速度相对CPU差距太大,调度需要时间较长,因此CPU一般改换执行另一个程序,等到调度完成后返回原程序继续工作。,虚拟存储器概述,对程序员是否透明:Cache存储器存取信息的过程、地址变换和替换策略全部用硬件实现,所以对各类程序员是透明的。主辅层次的虚拟存储器基本上由操作系统的存储管理软件辅助一些硬件进行信息块的划分和主辅存直接的调度,所以对设计存储管理软件的系统程序员来说,它是不透明的,而对广大用户,因为虚拟存储器提供了庞大的逻辑空间可以任意使用,所以对应用程序员是透明的。,虚拟存储器的分类,虚存通过增设地址映象表机构来实现程序在主存中的定位。这种定位技术是把程序分割成若干个较小的段或页,用相应的映象表机构,来指明该程序的某段或某页是否已装入主存,若已装入主存,则应同时指明其在主存中所处的开始位置;若未装入主存,则应到辅存中去调段或页,并建立起程序空间和实存空间的地址映象关系。这样,程序执行时通过查映象表,将程序(虚)地址变成主存地址再访问主存。由于采用的存储映象算法不同,形成了多种不同的存储器管理方式的虚拟存储器,其中主要有段式、页式、段页式三种。,7.3 虚拟存储器,虚拟存储器概述页式虚拟存储器段式虚拟存储器段页式虚拟存储器存储管理部件,页式虚拟存储器,页式虚拟存储器是以页为信息传送单位的虚拟存储器。也就是说,在这种虚拟存储器中,不论是虚拟空间,还是主存空间都被分成大小相等的页,称为页面。,页式虚拟存储器,以固定大小的页面为单位,页式虚拟存储器,逻辑页:虚存空间,虚拟地址分为两个字段:高位字段为逻辑页号低位字段为页内行地址物理页:主存空间,主存地址也分为两个字段:高位字段为物理页号低位字段为页内行地址页面大小都是相等的,所以页内行地址(位数)是相等的。,页式虚拟存储器,页式虚拟存储器,CPU访问主存时送出的是程序虚地址,计算机必须判断该地址的存储内容是否已在主存里,如果不在的话,则需要将所在页的内容按存储管理软件的规定调入指定的主存页后才能被CPU执行;如果在的话,则需找出主存在哪一页。为此,通常需要建立一张虚地址页号与实地址页号的对照表,记录程序的虚页面调入主存时被安排在主存中的位置,这张表叫页表。,页式虚拟存储器,页表,页式虚拟存储器,页表内按虚页号顺序排列,页表的长度等于该程序虚页数。每一虚页的状况占据页表中一个存储字,叫页表信息字。,页式虚拟存储器,页表信息字主要内容有:“装入位”:是1时表示该页面内容已经从辅存调入主存,页面有效;0则相反,页面无效,主存中尚未调入这一页。“修改位”:记录虚页内容在主存中是否修改过,如果修改过,则在这页主存被新页覆盖时要把修改的内容写回到虚存去。“替换控制位”:与替换策略有关,可以用作计数位,记录这页在主存被CPU调用的历史,反映这页在主存的活跃程度。“实页号”:指示管理软件将该虚页分配在主存的位置实地址页号。,页式虚拟存储器,每个程序都有一张页表存放在主存,每张页表都有一个页表起始地址。程序投入运行时,由存储管理软件把这个程序的页表起始地址读到页表基址寄存器。CPU送来的是程序虚地址,必须首先进行虚实地址的变换工作。,页式虚拟存储器,页式虚拟存储器,基地址寄存器内容和地址虚页号拼接成页表索引地址,页表索引地址是该虚页的页表信息字在页表的地址,根据页表索引地址就读到页表信息字。检测页表信息字装入位的状态,装入位若等于1,表示页面有效,虚页内容已经存储在主存里,就进行的操作,将信息字中的实页号取出作为实地址的高位地址,而虚地址的页内地址部分作为实地址的低位地址,两者拼接完成完整的实地址,CPU以此实地址访问主存。如果检测到装入位是0状态,说明对应的虚页还没有调入主存,于是计算机采取措施启动输入输出系统,把虚地址指示的一页内容从辅存调入实存空间再提供CPU访问。,页式虚拟存储器,页表在主存中的地址由页表寄存器指出,页式虚拟存储器,页式管理的优缺点优点主存储器的利用率比较高;页面的起点和终点地址是固定的,方便造页表,新页调入主存也很容易掌握;地址变换的速度快,页表项简单,查找速度快;对磁盘的管理比较容易。,页式虚拟存储器,缺点程序的模块化性能不好;由于页长度固定,程序不可能正好是页面的整数倍,因此最后一页的零头无法利用而造成浪费;页式管理在存储空间较大时,由于页表过大,效率降低;页表很长,需要占用很大的存储空间。,页式虚拟存储器,注意:虚页内容若没有调入主存,则计算机启动输入输出系统,把虚地址指示的一页内容从辅存调入主存,再提供CPU访问。虚地址和辅存地址不是一回事,程序员按虚存空间编址,虚地址由虚页号和页内地址组成;辅存实际地址以磁盘为例,地址由磁盘机号、磁头号、柱面号、块号、块内地址组成。因此从辅存调页时还需要虚存地址空间到辅存地址的变换。这个变换也可以采用类似前述页表的方式,称外页表。,页式虚拟存储器,例:一个有30位程序地址空间,页面容量为1KB,主存的容量为8MB的存储系统,问:虚页号字段有多少位?页表将有多少行?页表的每一行有多少位?页表的容量有多少字节?解:230B/1KB=220,虚页号字段有20位;页表的长度为220=1M行。主存的容量为8MB=223B,主存中页框架的数量有223/210=213个。页表中主存页号字段是13位长,加上其它信息将超过16位。设页表的每一项为16位,页表的容量为1M2=2MB。,页式虚拟存储器,例:一个虚拟存储器有8个页面,页面大小为1024字,内存有4个页面框架。页表的内容为:虚页号 实页号03112-3-425-607-对应于虚拟地址4098的主存地址是什么?解:40981024=4.2,所以虚页号为4,页内地址为2。从表中查得实页号为2,实际主存地址为21024+2=2050。,7.3 虚拟存储器,虚拟存储器概述页式虚拟存储器段式虚拟存储器段页式虚拟存储器存储管理部件,段式虚拟存储器,现在程序编址大都采用模块化设计方法,一个复杂的程序按其逻辑功能分解成一系列相互关联且功能独立的简单模块,一个程序的执行过程即是从一个功能模块转到另一个功能模块执行的过程。段式虚拟存储器存储空间不是机械地按固定长度的页划分,而是随程序的逻辑结构而定,每一段即是一个程序过程模块或一个子程序或一个数组、一张表格等,程序员把所需的段连接起来就组成一个完整的程序。显然每一段长度不相等。,段式虚拟存储器,程序在虚拟空间编址,段地址装入主存的任意位置。段虚地址向实地址的映像关系需要有一张段表指示。段表放在主存,主要内容有段号、段起点、装入位、段长等。,段式虚拟存储器,段号是程序分段的序号,也是段功能名称的代号,一般有其程序上的逻辑含义。相邻段并非一定是顺序执行的段号。段起点指明该段将在实存空间的起始位置。装入位的含义与页表相同,当1时表示此段已装入主存,0表示尚未装入。段长指出段程序模块的长度以便到实存选择合适的定位空间。此外,段表同样由存储管理软件设置,地址变换时从段表取到段的实存起始地址,再与原虚存中段内地址部分相结合形成主存的实地址。,段式虚拟存储器,段式虚拟存储器虚实地址转换,段式虚拟存储器,段式虚拟存储器的优缺点:优点:因段与程序功能模块相对应,模块可以独立编址,使得大程序编址可以多人分段并行工作,它比不分段页从头到尾的编程方法要节省很多时间;程序可以分段调试,目标明确思路清晰,容易检查错误;段修改、增删时对其他段不产生影响;程序按逻辑功能分段,各有段名、便于程序段公用且按段调度可以提高命中率。,段式虚拟存储器,缺点:由于段虚拟存储器每段占据的存储空间较大,且长度各不相等,所以虚页调往主存时,主存空间的分配工作比较复杂,段与段之间的存储空间常常不好利用而造成浪费;段表中地址字段和段长字段较长,降低查表速度。,7.3 虚拟存储器,虚拟存储器概述页式虚拟存储器段式虚拟存储器段页式虚拟存储器存储管理部件,段页式存储器,在段式、页式虚拟存储器的基础上,设计人员推出段页式虚拟存储器结构。段页式虚拟存储器是段式虚拟存储器和页式虚拟存储器的结合;它把程序按逻辑单位分段以后,再把每段分成固定大小的页;程序对主存的调入调出是按页面进行的,但它又可以按段实现共享和保护,兼备页式和段式的优点,是一种较好的虚拟存储体系结构;缺点是在映象过程中需要多次查表,速度较慢。,段页式存储器,如果有多个用户在机器上运行,称为多道程序。多道程序的每一道需要一个基号,由它指明该道程序的段表起始地址。虚拟地址格式如下:段页式虚存在程序地址向实际主存地址变换时,首先要查段表,然后查页表。,7.3 虚拟存储器,虚拟存储器概述页式虚拟存储器段式虚拟存储器段页式虚拟存储器存储管理部件,存储器管理部件,计算机系统存储管理软件通过建立页表、段表自动完成地址变换和对存储空间的动态分配。为协调存储体系与众多外部设备及CPU的信息交换过程、保护存储器内部信息的安全和完整性,还需要配合复杂的存储管理部件来实现这些功能。,第7章 存储系统,7.1 存储系统的层次结构7.2 高速缓冲存储器(cache)7.3 虚拟存储器7.4 相联存储器7.5 存储保护,7.4 相联存储器,associative memory:不是按照地址访问的存储器,而是按所存数据字的全部或部分内容进行查找(或检索)的存储器。相联存储器除了应用于虚拟存储器与cache中以外,还经常用于数据库与知识库中按关键字进行检索。从按地址访问的存储器中检索出某一单元,平均约进行m/2次操作(m为存储单元数),而在相联存储器中仅需要进行一次检索操作,因此大大提高了处理速度。近年来相联存储器用于一些新型的并行处理和人工智能系统结构中。例如,在语音识别、图像处理、数据流计算机、Prolog机中都有采用相联存储器的例子。,第7章 存储系统,7.1 存储系统的层次结构7.2 高速缓冲存储器(cache)7.3 虚拟存储器7.4 相联存储器7.5 存储保护,7.5 存储保护,由于多个用户对主存的共享,就有多个用户程序和系统软件存于主存中。为使系统能正常工作,要防止由于一个用户程序出错而破坏其他用户的程序和系统软件,还要防止一个用户程序不合法地访问不是分配给它的主存区域。为此,系统应提供存储保护。存储保护主要包括两个方面:存储区域保护访问方式保护,7.5 存储保护,存储区域保护页表保护:在作虚拟的段和页转换成线性地址空间前,对段号和页号进行检查,确认是否超出范围,若是则提示错误信息。键保护:操作系统为主存的每个页面分配一个键(Key),每个用户进程的实存页面的键相同存储键。用户进程也被OS赋予一个Key访问键,当数据要写入主存时,访问键与存储键进行比较,相符则能访问,否则拒绝访问。环保护:把线性的物理空间转换成环,然后分成多个控制保护级别。用户程序运行前有OS赋予不同的级别号,从而实现对不同区域的保护。,7.5 存储保护,访问方式保护访问方式的分类:读(R)、写(W)、执行(E)保护:通过硬件或OS对指定保护区域的R、W、E分别进行控制,从而达到保护存储区域的目的。,小结,P259:7.17.27.10,至第八章,返回,