计算机组成与结构PPT课件(全)第7章存储系统.ppt

上传人:牧羊曲112 文档编号:6023907 上传时间:2023-09-15 格式:PPT 页数:86 大小:295KB
返回 下载 相关 举报
计算机组成与结构PPT课件(全)第7章存储系统.ppt_第1页
第1页 / 共86页
计算机组成与结构PPT课件(全)第7章存储系统.ppt_第2页
第2页 / 共86页
计算机组成与结构PPT课件(全)第7章存储系统.ppt_第3页
第3页 / 共86页
计算机组成与结构PPT课件(全)第7章存储系统.ppt_第4页
第4页 / 共86页
计算机组成与结构PPT课件(全)第7章存储系统.ppt_第5页
第5页 / 共86页
点击查看更多>>
资源描述

《计算机组成与结构PPT课件(全)第7章存储系统.ppt》由会员分享,可在线阅读,更多相关《计算机组成与结构PPT课件(全)第7章存储系统.ppt(86页珍藏版)》请在三一办公上搜索。

1、第7章 存储系统,7.1 存储系统的层次结构7.2 高速缓冲存储器(cache)7.3 虚拟存储器7.4 相联存储器7.5 存储保护习题,目前的计算机中,一般用半导体存储器作为主存储器(简称主存或内存),存放当前正在执行的程序和数据;而用磁盘、磁带、光盘作为外存储器或辅助存储器(简称外存或辅存),存放当前不在运行的大量程序和数据。半导体存储器可随机访问任一单元,而辅助存储器一般为串行访问存储器。读写该存储器内容时,需要顺序地一位一位地进行,访问指定信息所需时间与信息所在位置有关。,串行存储器又可分成顺序存取存储器和直接存取存储器。例如,磁带上的信息以顺序的方式存储在带上,读写时要待磁带移动到合

2、适位置后才能顺序读写,需要耗费较多时间,称为顺序存取存储器。而磁盘存储器对信息的存取包括两个操作:磁头直接移动到信息所在区域(磁道);从该磁道的合适位置开始顺序读写。比磁带要快得多,是直接存取存储器。,7.1 存储系统的层次结构衡量存储器有三个指标:容量、速度和价格位。一般来讲,速度高的存储器,每位价格也高,因此容量不能太大。早期计算机主存容量很小(如几K字节),程序与数据从辅存调入主存是由程序员自己安排的,程序员必须花费很大精力和时间把大程序预先分成块,确定好这些程序块在辅存中的位置和装入主存的地址,而且还要预先安排好程序运行时各块如何和何时调入调出。现代计算机主存储器容量已达几十M字节到几

3、百M字节,但是程序对存储容量的要求也提高了,因此仍存在存储空间的分配问题。,操作系统的形成和发展使得程序员有可能摆脱主、辅存之间的地址人工定位,通过软件、硬件结合,把主存和辅存统一成了一个整体,形成了一个存储层次。从整体看,其速度接近于主存的速度,其容量则接近于辅存的容量,而每位平均价格也接近于廉价的慢速的辅存平均价格。这种系统不断发展和完善,就逐步形成了现在广泛使用的虚拟存储系统。在系统中,应用程序员可用机器指令地址码对整个程序统一编址,如同程序员具有对应这个地址码宽度的全部虚存空间一样。该空间可以比主存实际空间大得多,以致可以存得下整个程序。,这种指令地址码称为虚地址(虚存地址、虚拟地址)

4、或逻辑地址,其对应的存储容量称为虚存容量或虚存空间;而把实际主存的地址称为物理地址或实(存)地址,其对应的存储容量称为主存容量、实存容量或实(主)存空间。当CPU用虚地址访问主存时,机器自动地把它经辅助软件、硬件变换成主存实地址。察看这个地址所对应的单元内容是否已经装入主存,如果在主存就进行访问,如果不在主存内就经辅助软件、硬件把它所在的那块程序和数据由辅存调入主存,而后进行访问。这些操作都不必由程序员来安排,也就是说,对应用程序员是透明的。,主-辅存层次满足了存储器的大容量和低成本需求。在速度方面,计算机的主存和CPU一直保持了大约一个数量级的差距。显然这个差距限制了CPU速度潜力的发挥。为

5、了弥合这个差距,必须进一步从计算机系统结构上去研究。设置高速缓冲存储器(cache)是解决存取速度的重要方法。在CPU和主存中间设置高速缓冲存储器,构成高速缓存(cache)-主存层次,要求cache在速度上能跟得上CPU的要求。cache-主存间的地址映像和调度吸取了比它较早出现的主-辅存存储层次的技术,不同的是因其速度要求高,不是由软、硬件结合而完全由硬件来实现。,从CPU的角度看,cache-主存层次的速度接近于cache,容量与每位价格则接近于主存。因此,解决了速度与成本之间的矛盾。以上叙述了主存-辅存和cache-主存这两种存储层次。现代大多数计算机同时采用这两种存储层次,构成cac

6、he-主存-辅存三级存储层次如图7.1所示。其中cache容量最小,辅存容量最大,各层次中存放的内容都可以在下一层次中找到。这种多层次结构已成为现代计算机的典型存储结构。,图7.1 三层次存储系统,7.2 高速缓冲存储器(cache)7.2.1 cache存储器工作原理 在一个较短的时间间隔内,地址往往集中在存储器逻辑地址空间的很小范围内。程序地址的分布本来就是连续的,再加上循环程序段和子程序段要重复执行多次,因此,对程序地址的访问就自然地具有相对集中的倾向。数据分布的这种集中倾向不如指令明显,但对数组的存储和访问以及工作单元的选择都可以使存储器地址相对集中。这种对局部范围的存储器地址频繁访问

7、,而对此范围以外的地址则访问甚少的现象就称为程序访问的局部性。,根据局部性原理,可以在主存和CPU之间设置一个高速的容量相对较小的存储器,如果当前正在执行的程序和数据存放在这个存储器中,当程序运行时,不必从主存储器取指令和取数据,而访问这个高速存储器即可,所以提高了程序运行速度,这个存储器称作高速缓冲存储器(cache)。cache存储器介于CPU和主存之间,它的工作速度数倍于主存,全部功能由硬件实现,并且对程序员是透明的。图7.2表示cache的基本结构。,图7.2 cache的基本结构,cache的容量和块的大小是影响cache的效率的重要因素。通常用“命中率”来测量cache的效率。命中

8、率指CPU所要访问的信息在cache中的比率,而将所要访问的信息不在cache中的比率称为失效率。一般来说,cache的存储容量比主存的容量小得多,但不能太小,太小会使命中率太低;也没有必要过大,过大不仅会增加成本,而且当容量超过一定值后,命中率随容量的增加将不会有明显地增长。但随着芯片价格的下降,cache的容量还是不断增大,已由几十K发展到几百K字节,甚至达到几M字节。,在从主存读出新的字块调入cache存储器时,如果遇到cache存储器中相应的位置已被其他字块占有,那么就必须去掉一个旧的字块,让位于一个新的字块。这种替换应该遵循一定的规则,最好能使被替换的字块是下一段时间内估计最少使用的

9、。这些规则称为替换策略或替换算法,由替换部件加以实现。,cache存储器中保存的字块是主存中相应字块的一个副本。如果程序执行过程中要对该字块的某个单元进行写操作,就会遇到如何保持cache与主存的一致性问题。通常有两种写入方式:一种方式是暂时只向cache存储器写入,并用标志加以注明,直到经过修改的字块被从cache中替换出来时才一次写入主存;第二种方式是每次写入cache存储器时也同时写入主存,使cache和主存保持一致。前一种方式称为标志交换(flag-swap)方式。只有写标志“置位”的字块才有必要最后从cache存储器一次写回主存,所以又称其为“写回法”。,这种方式写操作速度快,但因在

10、此以前,主存中的字块未经随时修改而可能失效。后一种方式称为通过式写(write-through),又称写直达法。这种方式实现简单,且能随时保持主存数据的正确性。但是,有可能要增加多次不必要的向主存的写入。假如向cache存储器某一单元写入多少次,也要向主存相应单元写入多少次。另有一种写操作方法是:当被修改的单元根本就不在cache存储器时,写操作直接对主存进行,而不写入cache存储器。,为了说明标记是否有效,每个标记至少还应设置一个有效位,当机器刚加电启动时,总机的reset信号或执行程序将所有标记的有效位置“0”,使标记无效。在程序执行过程中,当cache不命中时逐步将指令块或数据块从主存

11、调入cache中的某一块,并将这一块标记中的有效位置“1”,当再次用到这一块中的指令或数据时,肯定命中,可直接从cache中取指或取数。从这里也可看到,刚加电后所有标记位都为“0”,因此开始执行程序时,命中率较低。另外cache的命中率还与程序本身有关,即不同的程序,其命中率可能不同。,具有cache的存储器,其平均存取时间计算如下:设cache的存取时间为tc,命中率为h,主存的存取时间为tM,则平均存取时间=htc+(1-h)(tc+tM)。,7.2.2 cache存储器组织 1.地址映像为了把信息放到cache存储器中,必须应用某种函数把主存地址映像到cache,称作地址映像。在信息按照

12、这种映像关系装入cache后,执行程序时,应将主存地址变换成cache地址,这个变换过程叫做地址变换。地址的映像和变换是密切相关的。假设主存储器空间被分为Mm(0),Mm(1),Mm(i),Mm(2m-1)共2m个块,字块大小为2b个字;cache存储空间被分为Mc(0),Mc(1),Mc(j),Mc(2c-1)共2c个同样大小的块。,(1)直接映像在直接映像方式中,主存和cache中字块的对应关系如图7.3所示。直接映像函数可定义为:j=i mod 2c其中,j是cache的字块号,i是主存的字块号。在这种映像方式中,主存的第0块,第2c块,第2c+1块,只能映像到cache的第0块,而主存

13、的第1块,第2c+1块,第2c+1+1块,只能映像到cache的第1块。直接映像的优点是实现简单,只需利用主存地址按某些字段直接判断,即可确定所需字块是否已在cache存储器中。,图7.3 直接映像cache组织,(2)全相联映像全相联映像方式是最灵活但成本最高的一种方式,如图7.4所示。图7.4 全相联映像cache组织,(3)组相联映像组相联映像方式是直接映像和全相联映像方式的一种折衷方案。组相联映像cache组织如图7.5所示。组相联映像方式的性能与复杂性介于直接映像与全相联映像两种方式之间。当r=0时,它就成为直接映像方式;当r=c时,就是全相联映像方式。cache的命中率除了与地址映

14、像的方式有关外,还与cache的容量有关。cache容量大,命中率高,但达到一定容量后,命中率的提高就不明显了。,图7.5 组相联映像cache组织,2.替换算法当新的主存字块需要调入cache存储器而它的可用位置又已被占满时,就产生替换算法问题。先介绍两种替换算法:先进先出(FIFO)算法和近期最少使用(LRU)算法。FIFO算法总是把一组中最先调入cache存储器的字块替换出去,它不需要随时记录各个字块的使用情况,所以实现容易,开销小。,LRU算法是把一组中近期最少使用的字块替换出去。这种替换算法需随时记录cache存储器中各个字块的使用情况,以便确定那个字块是近期最少使用的字块。LRU替

15、换算法的平均命中率比FIFO要高,并且当分组容量加大时,能提高LRU替换算法的命中率。LRU是最常使用的一种算法。其设计思想是把组中各块的使用情况记录在一张表上(如图7.6所示)。另外还有一种随机替换法(RAND),这种算法不考虑使用情况,在组内随机选择一块来替换。其性能比根据使用情况的替换算法要差些。,图7.6 LRU算法替换登记表,7.2.3 cache存储器举例今以Intel 82385 cache控制器为例来作进一步说明。与80386微处理器相匹配的主存-cache存储系统是由82385 cache控制器来实现地址映像和变换的。可全部映像80386的32位地址提供的4G(千兆)字节的地

16、址空间,使CPU几乎无任何等待地读出数据,命中率可高达99%。82385片内只含有cache控制器,cache数据保存在片外的SRAM中。82385提供了两种地址映像方式:直接映像和两路组相联映像。,当采用直接映像方式时,80386的地址总线分配如图7.7所示。图7.7 80386地址总线字段分配(直接映像方式),直接映像cache组织如图7.8所示。图7.8 82385直接映像cache组织,在两路组相联映像方式下,80386地址总线分配和cache组织分别如图7.9和图7.10所示。图7.9 80386地址总线字段分配(两路组相联方式),图7.10 两路组相联cache组织,Intel 8

17、2385还有监听功能,其作用解释如下:现代计算机以存储器为中心,除了CPU访存以外,输入输出(I/O)设备也可直接访问存储器,而cache中的数据又要与主存储器相应单元的内容保持一致(相同),因此需要对地址进行监听。假如某一I/O设备直接向存储器传送数据(写入存储器),而且其提供的地址中的数据在cache中有副本(即该地址与cache中相应单元的标记相符,且标记的有效位为“1”),此时如不进行处理,会造成cache数据与存储器数据的不一致性。,为简化操作,通常采取将cache相应单元的标记有效位清“0”的办法,这样当CPU再访问(读)该单元时,将产生不命中信号,而到存储器去取数,这样可保证CP

18、U所取数据的正确性。图7.11是引入cache后的计算机框图,CPU与cache之间通过内部高速总线传送地址、数据和控制信号,CPU通过cache与系统总线联系。当系统中存在多个CPU时,监听功能更显得必要。,图7.11 具有cache的计算机框图,7.2.4 多层次cache存储器 1.指令cache和数据cache计算机开始实现cache时,是将指令和数据存放在同一cache中的。后来随着计算机技术的发展和处理速度的加快,存取数据的操作经常会与取指令的操作发生冲突,从而延迟了指令的读取。发展的趋势是将指令cache和数据cache分开而成为两个相互独立的cache。,在给定cache总容量

19、的情况下,单一cache可以有较高的利用率。因为在执行不同程序时,cache中指令和数据所占的比例是不同的,在单一cache中,指令和数据的空间可以自动调剂,而分开的指令cache和数据cache则不具有这一优点。但在超标量等新型计算机结构中,为了照顾速度,还是采用将指令cache和数据cache分开的方案。,2.多层次cache结构当芯片集成度提高后,可以将更多的电路集成在一个微处理器芯片中,于是近年来新设计的快速微处理芯片都将cache集成在片内,片内cache的读取速度要比片外cache快得多。Pentium微处理器的逻辑结构如图6.49所示,片内包含有8KB数据cache和8KB指令c

20、ache。cache行的长度为32B,采取两路组相联组织。数据cache有两个端口,分别与两个ALU交换数据,每个端口传送32位数据,也可组合成64位数据,与浮点部件接口相连,传送浮点数。数据cache采取“写回”策略,即仅当cache中的数据要调出,且被修改过,才需要写回主存。,指令cache只读不写,其控制比数据cache简单。片内cache的容量受芯片集成度的限制,一般在几十KB以内,因此命中率比大容量cache低。于是推出了二级cache方案:其中第一级cache(L1)在处理器芯片内部;第二级cache(L2)在片外,其容量可从几十KB到几百KB,采用SRAM存储器,两级cache之

21、间一般有专用总线相连。Pentium微处理器支持片外的第二级cache,其容量为256KB或512KB。也是采用两路组相连方案。,3.cache的一致性问题由于数据cache有写入操作,且有多种写入方案,为了提高计算机处理速度,在每次写入时,并不同时修改L1,L2和主存储器的内容,造成了数据的不一致,这就是要解决的cache一致性问题。程序是不允许修改的,因此使用指令cache不存在cache一致性问题。Pentium处理器支持“修改排它共享无效”(modified/exclusive/shared/invalid,简称MESI)协议。它原是为多处理器系统的cache一致性设计的,但也适用于单

22、处理机的二级cache系统。数据cache的每一行包含两个状态位,每一cache行处于4种状态之一,各状态的意义如下:,(1)修改(Modified,简称M)本cache行中的数据已被修改(与主存的内容不同),仅在本cache中的数据是正确的。(2)排它(Exclusive,简称E)本cache行中的数据与主存中的数据相同,但不存在于其他cache中。(3)共享(Shared,简称S)本cache行中的数据与主存中的数据相同,且可存在于其他cache中。(4)无效(Invalid,简称I)本cache行中的数据无效。,当处理器加电或总清(reset)时,所有cache行都处于无效状态。当新数据

23、写入无效行时,数据从主存取出,并同时存入L1和L2,此时cache行处于共享状态。写入操作的一般过程描述如下:当处理器发出写入数据到存储器的命令时,首先查询cache是否命中,如命中,则根据cache行的状态进行相应的写入数据操作,并修改(或保留)原状态位。L1和L2都设置有4种状态位,但处理方法不完全相同,情况比较复杂。,7.3 虚拟存储器7.3.1 代数化简法虚拟存储器指的是“主存辅存”层次,它能使计算机具有辅存的容量,接近于主存的速度和辅存的每位成本。使得程序员可以按比主存大得多的空间来编制程序,即按虚存空间编址。当然,主存实际容量的大小是会影响到系统的工作效率,如果程序过大而主存容量过

24、小,则程序运行速度会明显下降。1.主存辅存层次与cache主存层次的比较这两种存储层次有许多相似之处,但也有着重要的区别。,首先,主存cache存储器的访问“时间比”较小;每次传送的基本信息单元(字块)也比较小。而辅存主存的访问“时间比”就要大得多,每次传送的基本信息单元(段或页面)也很大。从原理角度看,主存辅存层次和cache主存层次有很多相似之处。它们采用的地址变换及映像方法和替换策略,从原理上看是相同的。虚拟存储系统所采取的映像方式同样有全相联映像、组相联映像和直接映像等,替换算法也多采用LRU算法。实际上,这些替换算法和地址映像方式最早应用于虚拟存储系统中,后来才发展到cache系统中

25、。,2.主存辅存层次信息传送单位和存储管理主存辅存层次的信息传送单位可采用几种不同的方案:段、页或段页。段是利用程序的模块化性质,按照程序的逻辑结构划分成的多个相对独立部分。段作为独立的逻辑单位可以被其他程序段调用,这样就形成段间连接,产生规模较大的程序。一般用段表来指明各段在主存中的位置,如图7.12所示。每段都有它的名称(用户名称或数据结构名或段号)、段起点、段长等。段表本身也是主存储器的一个可再定位段。,图7.12 段式管理,主存按段分配的存储管理方式称为段式管理。其优点是段的分界与程序的自然分界相对应;段的逻辑独立性使它易于编译、管理、修改和保护,也便于多道程序共享。其缺点是容易在段间

26、留下许多空余的零碎存储空间不好利用,造成浪费。页式管理系统的信息传送单位是定长的页,主存的物理空间也被划分为等长的固定区域,称为页面。新页调入主存也很容易掌握,只要有空白页面就可。可能造成浪费的是程序最后一页的零头,它比段式管理系统的空间浪费要小得多。页式管理系统的缺点正好和段式管理系统相反,由于页不是逻辑上独立的实体,所以处理、保护和共享都不及段式来得方便。,图7.13表示某个程序有5页(逻辑页号04),各页分别装入主存不连续的页面位置,用页表记录逻辑页号及其所对应的实主存页号,页表是由操作系统建立的。图7.13中逻辑页号0,1,3已分配实主存空间,所以装入位为1。段式和页式存储管理各有其优

27、缺点,可以采用段和页结合的段页式存储管理系统。程序按模块分段,段内再分页,出入主存仍以页为信息传送单位,用段表和页表(每段一个页表)进行两级管理。,图7.13 页式管理,7.3.2 页式虚拟存储器 在页式虚拟存储系统中,把虚拟空间分成页,主存空间也分成同样大小的页,称为实页或物理页,而把前者称为虚页或逻辑页。假设虚页号为0,1,2,m,实页号为0,1,l,显然有ml。由于页的大小都取2的整数幂个字,所以,页的起点都落在低位字段为零的地址上。可把虚拟地址分为两个字段,高位字段为虚页号,低位字段为页内字地址。,虚拟地址到主存实地址的变换是由页表来实现的。在页表中,对应每一个虚存页号有一个表目,表目

28、内容至少要包含该虚页所在的主存页面地址(页面号),用它作为实(主)存地址的高字段;与虚拟地址的字地址字段相拼接,就产生完整的实主存地址,据此访问主存。页式管理的地址变换如图7.14所示。,图7.14 页式虚拟存储器结构,通常,在页表的表项中还包括装入位(有效位)、修改位、替换控制位及其他保护位等组成的控制字。如装入位为“1”,表示该虚页已从辅存调入主存;如装入位为“0”,则表示对应的虚页尚未调入主存,如访问该页就要产生页面失效中断,启动输入输出子系统,根据外页表项目中查得的辅存地址,由磁盘等辅存中读出新的页到主存中来。修改位指出主存页面中的内容是否被修改过,替换时是否要写回辅存。替换控制位指出

29、需替换的页等。,假设页表是保存在(或已调入)主存储器中,那么,在访问存储器时,首先要查页表,即使页面命中,也得先访问一次主存去查页表,再访问主存才能取得数据,这就相当于主存速度降低了一倍。如果页面失效,要进行页面替换,页面修改,访问主存次数就更多了。因此,把页表的最活动部分存放在快速存储器中组成快表,这是减少时间开销的一种方法。此外,在一些影响工作速度的关键部分引入了硬件支持。例如,采用按内容查找的相联存储器并行查找,也是可供选择的技术途径。一种经快表与慢表实现内部地址变换的方式如图7.15所示。,图7.15 使用快表和慢表实现虚实地址变换,7.3.3 段页式虚拟存储器在段页式虚拟存储器中,把

30、程序按逻辑结构分段以后,再把每段分成固定大小的页。程序对主存的调入调出是按页面进行的,但它又可以按段实现共享和保护。因此,它可以兼取页式和段式系统的优点。它的缺点是在地址映像过程中需要多次查表,在这种系统中,虚拟地址转换成物理地址是通过一个段表和一组页表来进行定位的。段表中的每个表目对应一个段,每个表目有一个指向该段的页表的起始地址(页号)及该段的控制保护信息。由页表指明该段各页在主存中的位置以及是否已装入、已修改等标志。,如果有多个用户在机器上运行,称为多道程序,多道程序的每一道(每个用户)需要一个基号(用户标志号),可由它指明该道程序的段表起点(存放在基址寄存器中)。这样,虚拟地址应包括基

31、号D、段号S、页号P、页内地址d。格式如下:基号D 段号S 页号P 页内地址d现举例说明段页式地址变换过程。如图7.16所示。当要访问的程序地址为D道1段0页4单元时,其地址变换过程如图7.17所示。,图7.16 段页式存储举例,图7.17 段页式虚拟存储器地址变换,7.3.4 虚拟存储器工作的全过程 对虚拟存储器来说,程序员按虚存储空间编制程序,在直接寻址方式下由机器指令的地址码给出地址。这个地址码就是虚地址,可由虚页号及页内地址组成,如下所示:虚地址 虚页号Nv 页内地址Nr这个虚地址实际上不是辅存的实地址,而是辅存的逻辑地址。,因此,在虚拟存储器中还应有虚拟地址到辅存实地址的变换。辅存一

32、般按信息块编址,而不是按字编址,若使一个块的大小等于一个虚页面的大小,这样就只需把虚页号变换到Nvd即可完成虚地址到辅存实地址的变换。为此,可采用页表的方式,把由Nv变换成Nvd的表称为外页表,而把Nv变换到主存页号的表称为内页表。虚拟存储器的工作全过程如图7.18所示。,图7.18 多用户虚拟存储器工作过程,7.3.5 Pentium处理机的虚拟存储器 Pentium存储器的地址转换过程(从虚拟地址到物理地址)如图7.19所示。Pentium存储器结构有很大灵活性,根据其段表和页表是否设置可以有4种组合情况。(1)无段表和无页表的存储器。非虚拟存储器其逻辑地址即为物理地址,可减少复杂性,在高

33、性能的控制机中经常被采用。(2)无段表和有页表的存储器。页式虚拟存储器,此时存储器的管理和保护是通过页面转换实现的。(3)有段表和无页表的存储器。段式虚拟存储器。(4)有段表和有页表的存储器。段页式虚拟存储器。,图7.19 Pentium存储器地址转换过程,7.3.6 存储管理部件(MMU)现代计算机一般都有辅助存储器,但具有辅存的存储系统不一定是虚拟存储系统。虚拟存储系统有两大特点:(1)允许用户用比主存空间大得多的空间来访问主存。(2)每次访存都要进行虚实地址的转换。为了实现逻辑地址到物理地址的转换,并在页面失效时(即被访问的页面不在主存)进入操作系统环境,设置了由硬件实现的存储管理部件M

34、MU,而整个虚拟存储器的管理是由MMU部件与操作系统共同完成的。,7.4 相联存储器在cache和虚拟存储器中,已经用到按内容寻址的相联存储器,在这里将讨论相联存储器的基本概念。相联存储器不按地址访问存储器,而按所存数据字的全部内容或部分内容进行查找(或检索)。例如,在虚拟存储器中,将虚地址的虚页号与相联存储器中所有行的虚页号进行比较,若有内容相等的行,则将其相应的实页号取出,这是按数据字的部分内容进行检索的例子。相联存储器的基本组成如图7.20所示。,图7.20 相联存储器框图,假如某高校学生入学考试总成绩已存入相联存储器如图7.21所示。今要求列出“总分”在560分600分范围内的考生名单

35、。这可以用二次查找完成。为了进行检索,还要求相联存储器能进行各种比较操作(相等、不等、小于、大于、求最大值和最小值等)。比较操作是并行进行的,即CR中的关键字段与存储器的所有W个字的相应字段同时进行比较。,图7.21 相联存储器检索举例,相联存储器除了应用于虚拟存储器与cache中以外,还经常用于数据库与知识库中按关键字进行检索。从按地址访问的存储器中检索出某一单元,平均约进行m/2次操作(m为存储单元数),而在相联存储器中仅需要进行一次检索操作,因此大大提高了处理速度。近年来相联存储器用于一些新型的并行处理和人工智能系统结构中。例如,在语音识别、图像处理、数据流计算机、Prolog机中都有采

36、用相联存储器的例子。,7.5 存储保护由于多个用户对主存的共享,就有多个用户程序和系统软件存于主存中。为使系统能正常工作,要防止由于一个用户程序出错而破坏其他用户的程序和系统软件,还要防止一个用户程序不合法地访问不是分配给它的主存区域。为此,系统应提供存储保护。存储保护主要包括两个方面:存储区域保护和访问方式的保护。1.存储区域保护,对于不是虚拟存储器的主存系统可采用界限寄存器方式。由系统软件经特权指令设置上、下界寄存器为每个程序划定存储区域,禁止越界访问。界限寄存器方式只适用于每个用户占用一个或几个连续的主存区域;在虚拟存储系统中,由于一个用户程序的各页能离散地分布于主存中,不能使用这种保护

37、方式,所以,通常采用页表保护和键保护等方式。,(1)页表保护每个程序都有自己的页表和段表,段表和页表本身都有自己的保护功能。无论地址如何出错,也只能影响到相应的几个主存页面。这种段表、页表保护是在没形成主存地址前的保护。但若在地址变换过程中出现错误,形成了错误主存地址,那么这种保护是无效的。因此,还需要其他保护方式。键方式是其中一种成功的方式。,(2)键方式键保护方式的基本思想是为主存的每一页配一个键,称为存储键,它相当于一把“锁”。它是由操作系统赋予的。每个用户的实存页面的键都相同。为了打开这个锁,必须有钥匙,称为访问键。访问键赋予每道程序,保存在该道程序的状态寄存器中。当数据要写入主存的某

38、一页时,访问键要与存储键相比较。若两键相符,则允许访问该页,否则拒绝访问。,(3)环保护方式以上两种保护方式都是保护别的程序区域不受破坏,而正在运行的程序本身则受不到保护。环状保护方式则可以做到对正在执行的程序本身进行保护。如图7.22所示。,图7.22 环保护方式,2.访问方式保护对主存信息的使用可以有三种方式:读(R)、写(W)和执行(E),“执行”指作为指令来用。所以,相应的访问方式保护就有R,W,E三种以及由这三种方式形成的逻辑组合。访问方式保护可以和上述区域保护结合起来使用。例如,在界限寄存器中加一位访问方式位;采用环式保护和页式保护时将访问方式位放在页表和段表中,使得同一环内或同一

39、段内的各页可以有不同的访问方式,从而增强了保护的灵活性。以上所讲的存储保护都是由硬件实现的。,为了有效地实现存储保护,还应该对计算机中某些寄存器的设置进行限制。大多数计算机在执行程序时把工作状态分成两种,一种是执行操作系统或管理程序时所处的状态,称为特权状态或管态;另一种是执行用户程序时所处的状态称为目态。为了防止因程序员编程出错而影响整个系统的工作,在机器中设置了一些特权指令(规定特权指令只有操作系统等系统程序才能使用,如在用户程序中出现特权指令),则在执行到该指令时立即中止程序的执行并发出中断。,习题7.1 计算机存储系统分哪几个层次?每一层次主要采用什么存储介质?其存储容量和存取速度的相

40、对值如何变化?7.2 在计算机中,主存与辅存的工作方式有什么主要差别?7.3 设某流水线计算机有一个指令和数据合一的cache,已知cache的读写时间为10ns,主存的读写时间为100ns,取指的命中率为98%,数据的命中率为95%,在执行程序时,约有1/5指令需要存取一个操作数,为简化起见,假设指令流水线在任何时候都不阻塞。问设置cache后,与无cache比较,计算机的运算速度可提高多少倍?,7.4 接上题,如果采用哈佛结构(分开的指令cache和数据cache),运算速度可提高多少倍?7.5 设某计算机的cache采用4路组相联映像,已知cache容量为16KB,主存容量为2MB,每个

41、字块有8个字,每个字有32位。请回答:(1)主存地址多少位(按字节编址),各字段如何划分(各需多少位)?(2)设cache起始为空,CPU从主存单元0,1,100。依次读出101个字(主存一次读出一个字),并重复按此次序数读11次,问命中率为多少?若cache速度是主存的5倍,问采用cache与无cache比较速度提高多少倍?,7.6 设某计算机采用直接映像cache,已知容量为4096B。(1)若CPU依次从主存单元0,1,99和4096,4097,4195交替取指令,循环执行10次,问命中率为多少?(2)如cache存取时间为10ns,主存存取时间为100ns,cache命中率为95%,求

42、平均存取时间。7.7 设可供用户使用的主存容量为100KB,而某用户的程序和数据所占的主存容量超过100KB,但小于逻辑地址所表示的范围。问具有虚存与不具有虚存对用户有何影响?,7.8 主存储器容量为4MB,虚存容量为1GB(1109B),虚拟地址和物理地址各为多少位?根据寻址方式计算出来的有效地址是虚拟地址还是物理地址?如果页面大小为4kB,页表长度是多少?7.9 设某虚存有如下快表放在相联存储器中,其容量为8个存储单元。问:按如下三个虚拟地址访问主存,主存的实际地址码各是多少?(设地址均为16进制),页号 页内地址1 15 03242 7 0128 3 48 0516,7.10 某程序对页

43、面要求的序列为P3P4P2P6P4P3P7P4P3P6P3P4P8P4P6。(1)设主存容量为3个页面,求FIFO和LRU替换算法时各自的命中率(假设开始时主存为空)。(2)当主存容量增加到4个页面时,两替换算法各自的命中率又是多少?7.11 cache主存层次和主存辅存层次,在软件配合工作方面有何不同?7.12 在同样面积的芯片中,相联存储的存储容量要比RAM小,其原因何在?,7.13 下面是有关存储保护的描述。请从本题最后列出的供选择答案中选择应填入()处的正确答案:为了保护系统软件不被破坏以及在多道程序环境下,防止一个用户破坏另一用户的程序而采取下列措施:(1)不准在用户程序中使用“设置系统状态”等指令。此类指令是(A)指令。(2)在段式管理存储器中设置(B)寄存器,防止用户访问不是分配给这个用户的存储区域。(3)在环保护的主存中,把系统程序和用户程序按其允许访问存储区的范围分层;假如规定内层级别高,那么系统程序应在(C),用户程序应在(D)。内层(E)访问外层的存储区。,(4)为了保护数据及程序不被破坏,在页式管理存储器中,可在页表内设置R(读)、W(写)及F位。(F)位为1,表示该页内存放的是程序代码。供选择的答案:A,B:特权;特殊;上、下界;系统。C,D:内层;外层;内层或外层。E:允许;不允许。F:M(标志);P(保护);E(执行);E(有效)。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号