《计算机组成原理第7章存储系统课件.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理第7章存储系统课件.ppt(86页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第七章存储系统第七章存储系统7.17.1存储系统的层次结构存储系统的层次结构7.27.2高速缓冲存储器高速缓冲存储器7.37.3虚拟存储器虚拟存储器7.47.4相联存储器相联存储器7.57.5存储保护存储保护 第七章 存储系统 本章学习要点本章学习要点 熟练掌握存储系统的三级存储器结构熟练掌握存储系统的三级存储器结构 熟熟练练掌掌握握高高速速缓缓冲冲存存储储器器和和虚虚拟拟存存储储器器的的概概念念,设设置置高高速速缓缓冲冲存存储储器器和和虚虚拟拟存存储储器器的目的、理论依据和基本思想。的目的、理论依据和基本思想。熟熟练练掌掌握握高高速速缓缓冲冲存存储储器器和和虚虚拟拟存存储储器器的的基本结构、
2、地址映像原理,命中率的计算。基本结构、地址映像原理,命中率的计算。了解存储保护的原理了解存储保护的原理7.17.1存储系统的层次结构存储系统的层次结构计算机系统对存储器的要求是:容量大、速度快、计算机系统对存储器的要求是:容量大、速度快、成本低,但由于各类存储器各具其特点,即半导成本低,但由于各类存储器各具其特点,即半导体存储器速度快、成本较高;磁表面存储器容量体存储器速度快、成本较高;磁表面存储器容量大、成本低但速度慢,无法与大、成本低但速度慢,无法与CPUCPU高速处理信息的高速处理信息的能力相匹配。因此,在计算机系统中,通常采用能力相匹配。因此,在计算机系统中,通常采用三级存储器结构,即
3、使用高速缓冲存储器、主存三级存储器结构,即使用高速缓冲存储器、主存储器和外存储器组成的结构。储器和外存储器组成的结构。CPUCPU能直接访问的存能直接访问的存储器称为内存储器,它包括高速缓冲存储器和主储器称为内存储器,它包括高速缓冲存储器和主存储器;存储器;CPU CPU不能直接访问外存储器,外存储器不能直接访问外存储器,外存储器的信息必须调入内存储器后才能为的信息必须调入内存储器后才能为CPUCPU进行处理。进行处理。返回返回CacheCache主主存存辅辅存存三三级级存存储储层层次次如如图图所所示示。其其中中CacheCache容容量量最最小小,辅辅存存容容量量最最大大,各各层层次次中中存
4、存放放的的内内容容都都可可以以在在下下一一层层次次中中找找到到。这这种种多多层层次次结结构构已已成成为为现现代代计计算算机机的的典典型型存存储储结构。结构。外存平均访问时间外存平均访问时间msms级级硬盘硬盘910ms910ms光盘光盘80120ms80120ms内存平均访问时间内存平均访问时间nsns级级SRAM CacheSRAM Cache15ns15nsSDRAMSDRAM内存内存 715ns 715nsEDOEDO内存内存 6080ns 6080nsEPROMEPROM存储器存储器100400ns100400ns寄存器寄存器Cache主存储器主存储器辅助存储器辅助存储器(磁盘磁盘)大
5、容量存储器大容量存储器(磁带磁带)外存储器外存储器内存储器内存储器存存储储系系统统的的层层次次结结构构 7.27.2高速缓冲存储器高速缓冲存储器一、一、cache存储器工作原理存储器工作原理掌握要点:掌握要点:1 1程序访问的局部性程序访问的局部性在在一一个个较较短短的的时时间间间间隔隔内内,CPUCPU对对局局部部范范围围的的存存储储器器地地址址频频繁繁访访问问,而而对对此此地地址址范范围围之之外外的的地地址址访访问很少,这种现象称程序访问的局部性。问很少,这种现象称程序访问的局部性。2 2设立设立cachecache存储器的理论依据存储器的理论依据它它是是为为了了提提高高存存储储系系统统的
6、的存存取取速速度度而而设设立立的的,其其理论依据是理论依据是程序访问的局部性原理程序访问的局部性原理。返回返回图图7.1 Cache7.1 Cache和主存的地址格式和主存的地址格式6 6如何保持如何保持CacheCache与主存的一致性与主存的一致性CacheCache存储器中保存的字块是主存中相应字存储器中保存的字块是主存中相应字块的一个副本。如果程序执行过程中要对块的一个副本。如果程序执行过程中要对 该字块的某个单元进行写操作,就会遇到如该字块的某个单元进行写操作,就会遇到如何保持何保持CacheCache与主存的一致性问题。通常有与主存的一致性问题。通常有两种写入方式:两种写入方式:(
7、1 1)标志交换)标志交换(flag(flagswap)swap)方式或方式或“写回写回法法”。这种方式是暂时只向这种方式是暂时只向CacheCache存储器写入,并存储器写入,并用标志加以注明,直到经过修改的字块被从用标志加以注明,直到经过修改的字块被从CacheCache中替换出来时才一次写入主存。这种中替换出来时才一次写入主存。这种方式写操作速度快,但因在此以前,主存中方式写操作速度快,但因在此以前,主存中的字块未经随时修改而可能失效。的字块未经随时修改而可能失效。二、二、Cache Cache存储器的地址映像存储器的地址映像为了把信息放到为了把信息放到Cache存储器中,必须应存储器中
8、,必须应用某种函数把主存地址映像到用某种函数把主存地址映像到Cache,称,称作地址映像。在信息按照这种映像关系装作地址映像。在信息按照这种映像关系装入入Cache后,执行程序时,应将主存地址后,执行程序时,应将主存地址变换成变换成Cache地址,这个变换过程叫做地地址,这个变换过程叫做地址变换。址变换。1 1 直接地址映像方式直接地址映像方式在直接映像方式中,映像函数可定为:在直接映像方式中,映像函数可定为:j ji mod 2i mod 2c c其中,其中,j j是是CacheCache的字块号,的字块号,i i是主存的字块是主存的字块号。在这种映像方式中,主存的第号。在这种映像方式中,主
9、存的第0 0块,第块,第2 2c c块,第块,第2 2c c1 1块,块,只能映像到,只能映像到CacheCache的的第第0 0块,而主存的第块,而主存的第l l块,第块,第2 2c c1 1块,第块,第2 2c+1c+11 1块块,只能映像到,只能映像到CacheCache的第的第l l块。块。例例1:1:设主存容量设主存容量1MB1MB,高缓容量,高缓容量16KB16KB,块的大,块的大小为小为512512字节。字节。(1)Cache(1)Cache地址格式地址格式(2)(2)写出主存地址格式写出主存地址格式(3)(3)块表的容量为多大?块表的容量为多大?(4)(4)画出直接方式地址映像
10、及变换示意图画出直接方式地址映像及变换示意图(5)(5)主存地址为主存地址为CDE8FHCDE8FH的单元在的单元在cachecache中的什么中的什么位置?位置?【例题解答】【例题解答】(1)Cache(1)Cache容量容量16KB16KB,16KB=216KB=21414,所以,所以CacheCache地地址为址为1414位;块的大小为位;块的大小为512512字节,所以块内地字节,所以块内地址为址为9 9位,块地址为位,块地址为5 5位。位。CacheCache地址格式为:地址格式为:13 9 8 0 13 9 8 0 块地址块地址 块内地址块内地址(2)(2)主存容量主存容量1MB1
11、MB,1MB=21MB=22020,所以主存地址为,所以主存地址为2020位;位;块的大小为块的大小为512512字节,所以块内地址为字节,所以块内地址为9 9位,块地位,块地址为址为5 5位,块标记为位,块标记为6 6位。位。主存地址格式为:主存地址格式为:19 14 13 9 8 0 19 14 13 9 8 0 块标记块标记 块地址块地址 块内地址块内地址(3)Cache(3)Cache的每一块在块表中有一项,的每一块在块表中有一项,CacheCache的块地的块地址为址为5 5位,所以块表的单元数为位,所以块表的单元数为2 25 5;块表中存放的;块表中存放的是块标记,由于块标记为是块
12、标记,由于块标记为6 6位,所以块表的字长为位,所以块表的字长为6 6位。位。故块表的容量为:故块表的容量为:2 25 5字字66位。位。(5)(5)因为因为cachecache容量为容量为16KB=216KB=21414B B,块长为,块长为512B512B,所以,所以cachecache有有161024/512=32161024/512=32个块。个块。因为因为 CDE8F H=1100 CDE8F H=1100,11011101,11101110,10001000,11111111所以块号所以块号=1100=1100,11011101,111 111 块内地址块内地址=0=0,10001
13、000,11111111在直接映射方式下,主存中的第在直接映射方式下,主存中的第i i块映射到块映射到cachecache中第中第i mod 2i mod 25 5个块中;个块中;11001100,11011101,111 mod 32=01111111 mod 32=01111;所以,地址所以,地址CDE8FCDE8F的单元在的单元在cachecache中的地址中的地址为为0111101111,010001111010001111。直接映像的优点是实现简单。直接映像的优点是实现简单。直接映像方式的缺点是不够灵活,即主直接映像方式的缺点是不够灵活,即主存的存的2 2t t个字块只能对应唯一的个
14、字块只能对应唯一的CacheCache存储存储器字块,因此,即使器字块,因此,即使CacheCache存储器别的许存储器别的许多地址空着也不能占用。这使得多地址空着也不能占用。这使得CacheCache存存储空间得不到充分利用,并降低了命中储空间得不到充分利用,并降低了命中率。率。在上面的例在上面的例1 1中中(1)Cache(1)Cache容量容量16KB16KB,16KB=216KB=21414,所以,所以CacheCache地址为地址为1414位;块的大小为位;块的大小为512512字节,所以块字节,所以块内地址为内地址为9 9位,块地址为位,块地址为5 5位,共位,共3232个块。个块
15、。CacheCache地址格式为:地址格式为:13 9 8 0 13 9 8 0 块地址块地址 块内地址块内地址(2)(2)主存容量主存容量1MB1MB,1MB=21MB=22020,所以主存地址为,所以主存地址为2020位;块的大小为位;块的大小为512512字节,所以块内地址字节,所以块内地址为为9 9位,块地址为位,块地址为1111位,共位,共2 21111=2048=2048个块。个块。主存地址格式为:主存地址格式为:19 9 8 0 19 9 8 0 块标记块标记 块内地址块内地址 (3)Cache(3)Cache的的每每一一块块在在块块表表中中有有一一项项,CacheCache的的
16、块块地地址址为为5 5位位,所所以以块块表表的的单单元元数数为为2 25 5;块块表表中中存存放放的的是是块块标标记记,由由于于块块标记为标记为1111位,所以块表的字长为位,所以块表的字长为1111位。位。故块表的容量为:故块表的容量为:2 25 5字字1111位。位。全相联映像方式的优缺点全相联映像方式的优缺点地址映像:写入地址映像:写入CACHECACHE时,要将主存的全部时,要将主存的全部地址写入地址写入CACHECACHE的标志字段的标志字段地址变换:用读主存的整个地址去与地址变换:用读主存的整个地址去与CACHECACHE中的每一个单元的标志字段进行比较。中的每一个单元的标志字段进
17、行比较。优点:使用灵活、方便优点:使用灵活、方便缺点:比较地址字段必须与整个缺点:比较地址字段必须与整个CACHECACHE中每中每一个单元的标志字段都进行比较,所以线路一个单元的标志字段都进行比较,所以线路复杂,成本太高,难以实现,只是适用于容复杂,成本太高,难以实现,只是适用于容量小的量小的CACHECACHE。3.3.组相联地址映像方式组相联地址映像方式组相联映像方式是直接映像和全相联映像方组相联映像方式是直接映像和全相联映像方式的一种折衷方案。组相联映像式的一种折衷方案。组相联映像CacheCache组织组织如图如图7.57.5所示。它把所示。它把CacheCache字块分为字块分为2
18、c2c组,组,每组包含每组包含2 2r r个字块,于是有个字块,于是有c cccr r。那。那么,主存字块么,主存字块Mm(i)(0i2Mm(i)(0i2m m1)1)可以用下可以用下列映像函数映像到列映像函数映像到CacheCache字块字块Mc(j)Mc(j)(0j2(0j2c c1)1)上。上。j j(i mod 2(i mod 2 cc)2)2 r rk k 0k2 0k2 r r1 1k k是位于上列范围内的可选参数是位于上列范围内的可选参数(整数整数)。按。按这种映像方式,组间为直接映像,而组内的这种映像方式,组间为直接映像,而组内的字块为全相联映像方式。字块为全相联映像方式。例例
19、2 2:一个组相联映象:一个组相联映象CacheCache由由6464个存储块构个存储块构成,每组包含成,每组包含4 4个存储块。主存包含个存储块。主存包含40964096个个存储块,每块由存储块,每块由8 8字组成,每字为字组成,每字为3232位。存位。存储器按字节编址,访存地址为字地址。储器按字节编址,访存地址为字地址。(1)(1)写出主存地址位数和地址格式。写出主存地址位数和地址格式。(2)Cache(2)Cache地址位数和地址格式。地址位数和地址格式。(3)(3)画出组相联映像方式的示意图。画出组相联映像方式的示意图。(4)(4)主存地址主存地址18AB9H18AB9H映射到映射到C
20、acheCache的哪个字块的哪个字块?【相关知识】【相关知识】Cache Cache存储器的地址格式和组存储器的地址格式和组相联地址映像方式。相联地址映像方式。【例题解答】【例题解答】(2)Cache(2)Cache由由6464个存储块构成,每块由个存储块构成,每块由8 8字组成,每字组成,每字为字为3232位,存储器按字节编址,位,存储器按字节编址,所以所以CacheCache容量容量=648=648字字4B=24B=21111B B,所以,所以CacheCache的的地址总数为地址总数为1111位。位。每组包含每组包含4 4个存储块,所以组内块号为个存储块,所以组内块号为2 2位;位;C
21、acheCache有有64/4=1664/4=16个组,所以组号为个组,所以组号为4 4位。位。Cache Cache地址格式为:地址格式为:10 9 8 5 4 2 1 010 9 8 5 4 2 1 0组内块号组内块号 组号组号 块内字地址块内字地址 块内字节地址块内字节地址(1)(1)主存包含主存包含40964096个存储块,主存容量:个存储块,主存容量:40968 40968字字44字节字节=2=21717字节字节主存字块标记为主存字块标记为17-11=617-11=6位。位。主存地址格式为:主存地址格式为:16 11 10 9 8 5 4 2 1 016 11 10 9 8 5 4
22、2 1 0主存字块主存字块标记标记 组内块号组内块号 组号组号 块内字地址块内字地址 块内字节地址块内字节地址 (3)(3)组相联映像方式的示意图如图例组相联映像方式的示意图如图例2 2所示。所示。由于访存地址为字地址,所以块内字节地址无用,由于访存地址为字地址,所以块内字节地址无用,图中由主存高位地址和组内块号组成标记,分别图中由主存高位地址和组内块号组成标记,分别与由组号选中的组中的四个标记进行比较,比较与由组号选中的组中的四个标记进行比较,比较符合即可访问相应的字块。符合即可访问相应的字块。(4)(4)主存地址主存地址18AB9H=1 1000 10118AB9H=1 1000 1010
23、 0 1011011 10011 1001方法方法1 1:组号为组号为01010101,所以主存地址,所以主存地址18AB9H18AB9H可以映射到可以映射到CacheCache的第的第5 5组中的字块组中的字块2020、字块、字块2121、字块、字块2121或字或字块块2323。方法方法2 2:块内地址位块内地址位1 10011 1001;块号位块号位i=1 1000 i=1 1000 1010 1011010 101;设;设CacheCache的块号为的块号为j j,因为因为j=(i mod 2j=(i mod 24 4)2)22 2 k k 0k2 0k22 21 1所以所以 j=(1
24、1000 1010 101 mod 2 j=(1 1000 1010 101 mod 24 4)222 2 k=01012 k=010122 2 k=54 k=54 k k所以主存地址所以主存地址18AB9H18AB9H可以映射到可以映射到CacheCache的的第第5 5组中的字块组中的字块2020、字块、字块2121、字块、字块2222或字或字块块2323。在实际在实际CacheCache中用得最多的是直接映像中用得最多的是直接映像(r(r0)0),两,两路组相联映像路组相联映像(r(r1)1)和和4 4路组相联映像路组相联映像(r(r2)2)。如。如r r2 2,则,则0k30k3,所以
25、主存某一字块可映像到,所以主存某一字块可映像到CacheCache某组某组4 4个字块的任一字块中,这大大地增加个字块的任一字块中,这大大地增加了映像的灵活性,提高了命中率。了映像的灵活性,提高了命中率。组相联映像方式的性能与复杂性介于直接映像与组相联映像方式的性能与复杂性介于直接映像与全相联映像两种方式之间。当全相联映像两种方式之间。当r r0 0时,它就成为时,它就成为直接映像方式;当直接映像方式;当r rc c时,就是全相联映像方式。时,就是全相联映像方式。CacheCache的命中率除了与地址映像的方式有关外,还的命中率除了与地址映像的方式有关外,还与与CacheCache的容量有关。
26、的容量有关。CacheCache容量大,命中率高,容量大,命中率高,但达到一定容量后,命中率的提高就不明显了。但达到一定容量后,命中率的提高就不明显了。4 4 替换算法替换算法当新的主存字块需要调入当新的主存字块需要调入CacheCache存储器而它的可用位存储器而它的可用位置又已被占满;辅存的页需要调入主存而主存的页已置又已被占满;辅存的页需要调入主存而主存的页已被占满时,就产生替换问题。常用的替换算法有:先被占满时,就产生替换问题。常用的替换算法有:先进先出进先出(FIFO)(FIFO)算法和近期最少使用算法和近期最少使用(LRU)(LRU)算法。算法。FIFOFIFO算法总是把一组中最先
27、调入的块或页替换出去,算法总是把一组中最先调入的块或页替换出去,它不需要随时记录各个字块或页的使用情况,所以实它不需要随时记录各个字块或页的使用情况,所以实现容易、开销小。现容易、开销小。LRULRU算法是把一组中近期最少使用的字块或页替换出算法是把一组中近期最少使用的字块或页替换出去。这种替换算法需随时记录去。这种替换算法需随时记录CacheCache存储器中各个字存储器中各个字块或主存中的各页的使用情况,以便确定那个字块是块或主存中的各页的使用情况,以便确定那个字块是近期最少使用的字块。近期最少使用的字块。LRULRU替换算法的平均命中率比替换算法的平均命中率比FIFOFIFO要高,并且当
28、分组容量加大时,能提高要高,并且当分组容量加大时,能提高LRULRU替换替换算法的命中率。算法的命中率。见习题见习题7.107.107.37.3虚拟存储器虚拟存储器计算机系统对存储器的要求是:容量大、速度快、计算机系统对存储器的要求是:容量大、速度快、成本低,但由于各类存储器各具其特点,即半导成本低,但由于各类存储器各具其特点,即半导体存储器速度快、成本较高;磁表面存储器容量体存储器速度快、成本较高;磁表面存储器容量大、成本低但速度慢,无法与大、成本低但速度慢,无法与CPUCPU高速处理信息的高速处理信息的能力相匹配。因此,在计算机系统中,通常采用能力相匹配。因此,在计算机系统中,通常采用三级
29、存储器结构,即使用高速缓冲存储器、主存三级存储器结构,即使用高速缓冲存储器、主存储器和外存储器组成的结构。储器和外存储器组成的结构。CPUCPU能直接访问的存能直接访问的存储器称为内存储器,它包括高速缓冲存储器和主储器称为内存储器,它包括高速缓冲存储器和主存储器;存储器;CPU CPU不能直接访问外存储器,外存储器不能直接访问外存储器,外存储器的信息必须调入内存储器后才能为的信息必须调入内存储器后才能为CPUCPU进行处理。进行处理。返回返回一、一、虚拟存储器概述虚拟存储器概述1.1.什么是虚拟存储器什么是虚拟存储器虚拟存储技术是为了扩大主存的寻址空间而采用的。虚拟存虚拟存储技术是为了扩大主存
30、的寻址空间而采用的。虚拟存储器是建立在主存与辅存物理结构基础之上,由附加硬件装储器是建立在主存与辅存物理结构基础之上,由附加硬件装置以及操作系统存储管理软件组成的一种存储体系。它把主置以及操作系统存储管理软件组成的一种存储体系。它把主存和辅存的地址空间统一编址,形成一个庞大的存储空间,存和辅存的地址空间统一编址,形成一个庞大的存储空间,在这个大空间里,用户可自由编程,完全不必考虑程序在主在这个大空间里,用户可自由编程,完全不必考虑程序在主存中是否装得下,或者放在辅存的程序将来在主存中的实际存中是否装得下,或者放在辅存的程序将来在主存中的实际位置,编好的程序由计算机操作系统装入辅助存储器中,程位
31、置,编好的程序由计算机操作系统装入辅助存储器中,程序运行时,附加的辅助硬件机构和存储管理软件会把辅存的序运行时,附加的辅助硬件机构和存储管理软件会把辅存的程序一块块自动调入主存由程序一块块自动调入主存由CPUCPU执行或从主存调出,用户感执行或从主存调出,用户感觉到的不再是处处受主存容量限制的存储系统,而是一个容觉到的不再是处处受主存容量限制的存储系统,而是一个容量充分大的存储器。因为实质上量充分大的存储器。因为实质上CPUCPU仍只能执行调入主存的仍只能执行调入主存的程序,所以这样的存储体系称为程序,所以这样的存储体系称为“虚拟存储器虚拟存储器”。2.2.虚地址和实地址虚地址和实地址虚拟存储
32、器的辅存部分也能让用户像内存一样虚拟存储器的辅存部分也能让用户像内存一样使用,用户编程时指令地址允许涉及到辅存的使用,用户编程时指令地址允许涉及到辅存的空间范围,这种指令地址称为空间范围,这种指令地址称为“虚地址虚地址”(”(即虚即虚拟地址拟地址),或叫,或叫“逻辑地址逻辑地址”。虚地址对应的存储空间称为虚地址对应的存储空间称为“虚拟空间虚拟空间”,或,或叫叫“逻辑空间逻辑空间”。实际的主存储器单元的地址则称为实际的主存储器单元的地址则称为“实地址实地址”(即主存地址即主存地址),或叫,或叫“物理地址物理地址”。实地址对应的是实地址对应的是“主存空间主存空间”,也称物理空间。,也称物理空间。显
33、然,虚地址范围要比实地址大得多。显然,虚地址范围要比实地址大得多。3.3.主存主存辅存层次与主存辅存层次与主存CacheCache层次的比较层次的比较虚拟存储器和主存虚拟存储器和主存CacheCache存储器是两个不同存存储器是两个不同存储层次的存储体系。但在概念上有不少相同储层次的存储体系。但在概念上有不少相同之处:之处:它们都把程序划分为一个个信息块,运行时它们都把程序划分为一个个信息块,运行时都能自动地把信息块从慢速存储器向快速存都能自动地把信息块从慢速存储器向快速存储器调度,信息块的调度都采用一定的替换储器调度,信息块的调度都采用一定的替换策略,新的信息块将淘汰最不活跃的旧的信策略,新
34、的信息块将淘汰最不活跃的旧的信息块,以提高继续运行时的命中率,新调入息块,以提高继续运行时的命中率,新调入的信息块需遵守一定的映射关系变换地址后的信息块需遵守一定的映射关系变换地址后来确定其在存储器的位置。来确定其在存储器的位置。两个存储体系均以信息块作为存储层次之间基本两个存储体系均以信息块作为存储层次之间基本信息的传递单位,主存信息的传递单位,主存CacheCache存储器每次传递是存储器每次传递是定长的的信息块,长度只有几十字节,而虚拟存定长的的信息块,长度只有几十字节,而虚拟存储器信息块划分方案很多,有页、段等等,长度储器信息块划分方案很多,有页、段等等,长度均在几百字节至几百千字节左
35、右。均在几百字节至几百千字节左右。由主存与辅存组成的虚拟存储器和主存由主存与辅存组成的虚拟存储器和主存CacheCache存储存储器也有很多不同之处。主存器也有很多不同之处。主存CacheCache存储器采用与存储器采用与CPUCPU速度匹配的快速存储元件来弥补主存和速度匹配的快速存储元件来弥补主存和CPUCPU之之间的速度差距,而虚拟存储器虽然最大限度地减间的速度差距,而虚拟存储器虽然最大限度地减少了慢速辅存对少了慢速辅存对CPUCPU的影响,但它却弥补了主存的的影响,但它却弥补了主存的容量不足,具有容量大和程序编址方便的优点。容量不足,具有容量大和程序编址方便的优点。CPUCPU访问快速访
36、问快速CacheCache存储器的速度比访问慢存储器的速度比访问慢速主存快速主存快5 51010倍。虚拟存储器中主存的速倍。虚拟存储器中主存的速度要比辅存快度要比辅存快10010010001000倍以上。倍以上。主存主存CacheCache存储体系中存储体系中CPUCPU与与CacheCache和主存都和主存都建立了直接访问的通路,一旦在建立了直接访问的通路,一旦在CacheCache中命中命中,中,CPUCPU就直接访问就直接访问CacheCache,并同时向,并同时向CacheCache调度信息块,从而减少了调度信息块,从而减少了CPUCPU等待的时间,等待的时间,辅助存储器与辅助存储器与
37、CPUCPU之间没有直接通路,一旦之间没有直接通路,一旦在主存中不命中,则只能从辅存调度信息在主存中不命中,则只能从辅存调度信息块到主存,因为辅存的速度与块到主存,因为辅存的速度与CPUCPU的速度差的速度差距太大,调度需要毫秒级时间,因此,距太大,调度需要毫秒级时间,因此,CPUCPU一般将改换执行另一个程序,等到调度完一般将改换执行另一个程序,等到调度完成后再返回原程序继续工作。成后再返回原程序继续工作。主主存存CacheCache存存储储器器存存取取信信息息的的过过程程、地地址址变变换换和和替替换换策策略略全全部部用用硬硬件件实实现现,所所以对各类程序员均是透明的。以对各类程序员均是透明
38、的。主主辅辅层层次次的的虚虚拟拟存存储储器器基基本本上上由由操操作作系系统统的的存存储储管管理理软软件件辅辅助助一一些些硬硬件件进进行行信信息息块块的的划划分分和和主主辅辅存存之之间间的的调调度度,所所以以对对设设计计存存储储管管理理软软件件的的系系统统程程序序员员来来说说,它它是是不不透透明明的的,而而对对于于广广大大用用户户,因因为为虚虚拟拟存存储储器器提提供供了了庞庞大大的的逻逻辑辑空空间间可可以以任任意意使使用用,对对应应用用程程序序员员来来说说是是透透明的。明的。二、二、虚拟存储器的结构虚拟存储器的结构1.1.段式虚拟存储器段式虚拟存储器段是利用程序的模块化性质,按照程序的段是利用程
39、序的模块化性质,按照程序的逻辑结构划分成的多个相对独立的部分。逻辑结构划分成的多个相对独立的部分。例如,过程、子程序、数据表、阵列等。例如,过程、子程序、数据表、阵列等。段作为独立的逻辑单位可以被其他程序段段作为独立的逻辑单位可以被其他程序段调用,这样就形成段间连接,产生规模较调用,这样就形成段间连接,产生规模较大的程序。段式虚拟存储器一般用段表来大的程序。段式虚拟存储器一般用段表来指明各段在主存中的位置,如图指明各段在主存中的位置,如图7.127.12所示。所示。把把主主存存按按段段分分配配的的存存储储管管理理方方式式称称为为段段式式管管理理。段段式式管管理理系系统统的的优优点点是是段段的的
40、分分界界与与程程序序的的自自然然分分界界相相对对应应;段段的的逻逻辑辑独独立立性性使使它它易易于于编编译译、管管理理、修修改改和和保保护护,也也便便于于多多道道程程序序共共享享。其其缺缺点点是是容容易易在在段段间间留留下下许许多多空空余余的的零零碎碎存存储储空空间间不不好好利利用用,造造成浪费。成浪费。2.2.页式虚拟存储器页式虚拟存储器页式管理系统的信息传送单位是定长的页,主存的页式管理系统的信息传送单位是定长的页,主存的物理空间也被划分为等长的固定区域,称为页面。物理空间也被划分为等长的固定区域,称为页面。新页调入主存也很容易掌握,只要有空白页面就可。新页调入主存也很容易掌握,只要有空白页
41、面就可。可能造成浪费的是程序最后一页的零头,是不能利可能造成浪费的是程序最后一页的零头,是不能利用的页内空间,它比段式管理系统的空间浪费要小用的页内空间,它比段式管理系统的空间浪费要小得多。页式管理系统的缺点正好和段式管理系统相得多。页式管理系统的缺点正好和段式管理系统相反,由于页不是逻辑上独立的实体,所以处理、保反,由于页不是逻辑上独立的实体,所以处理、保护和共享都不及段式来得方便。护和共享都不及段式来得方便。页式管理示意图见图页式管理示意图见图7.13 7.13、图、图7.147.14、图、图7.157.15在页式虚拟存储系统中,把虚拟空间分成页,主存在页式虚拟存储系统中,把虚拟空间分成页
42、,主存空间也分成同样大小的页,称为实页或物理页,而空间也分成同样大小的页,称为实页或物理页,而把前者称为虚页或逻辑页。假设虚页号为把前者称为虚页或逻辑页。假设虚页号为0 0,1 1,2 2,m m,实页号为,实页号为0 0,l l,l l,显然有,显然有mlml。可把虚。可把虚拟地址分为两个字段,高位字段为虚页号,低位字拟地址分为两个字段,高位字段为虚页号,低位字段为页内字地址。段为页内字地址。虚拟地址到主存实地址的变换是由页表来实现的。虚拟地址到主存实地址的变换是由页表来实现的。在页表中,对应每一个虚存页号有一个表目,表目在页表中,对应每一个虚存页号有一个表目,表目内容至少要包含该虚页所在的
43、主存页面号,用它作内容至少要包含该虚页所在的主存页面号,用它作为主存地址的高字段;与虚拟地址的页内地址字段为主存地址的高字段;与虚拟地址的页内地址字段相拼接,就产生完整的实主存地址,据此访问主存。相拼接,就产生完整的实主存地址,据此访问主存。页式管理的地址变换见例页式管理的地址变换见例3 3。例例3 3:设主存容量:设主存容量64KB64KB,虚存容量,虚存容量1MB1MB,页面大小为页面大小为512B512B。(1)(1)写出主存地址格式写出主存地址格式(2)(2)写出虚拟地址格式写出虚拟地址格式(3)(3)页表的长度为多少?页表的长度为多少?(4)(4)画出虚实地址转换示意图画出虚实地址转
44、换示意图【相关知识】【相关知识】虚拟存储器的地址格式和虚拟存储器的地址格式和虚实地址转换过程。虚实地址转换过程。【例题解答】【例题解答】(1)(1)主存容量主存容量64KB64KB,64KB=264KB=21616,所以主存地址为,所以主存地址为1616位。位。主存地址格式为:主存地址格式为:15 9 8 0 15 9 8 0 物理页号物理页号(7(7位位)页内地址页内地址(9(9位位)(2)(2)虚存容量虚存容量1MB1MB,1MB=21MB=22020,所以虚存地址为,所以虚存地址为2020位。位。虚拟地址格式为:虚拟地址格式为:19 9 8 0 19 9 8 0 虚页面号虚页面号(11(
45、11位位)页内地址页内地址(9(9位位)(3)(3)每一个虚页面号在页表中有一项,所每一个虚页面号在页表中有一项,所以页表的长度为以页表的长度为 2 21111=2048=2048(4)(4)虚实地址转换示意图例虚实地址转换示意图例3 3所示:所示:3.3.段页式虚拟存储器段页式虚拟存储器在段页式虚拟存储器中,把程序按逻辑结构分段以在段页式虚拟存储器中,把程序按逻辑结构分段以后,再把每段分成固定大小的页。程序对主存的调后,再把每段分成固定大小的页。程序对主存的调入调出是按页面进行的,但它又可以按段实现共享入调出是按页面进行的,但它又可以按段实现共享和保护。和保护。因此,它可以兼取页式和段式系统
46、的优点。因此,它可以兼取页式和段式系统的优点。缺点是在地址映像过程中需要多次查表,在这种系缺点是在地址映像过程中需要多次查表,在这种系统中,虚拟地址转换成物理地址是通过一个段表和统中,虚拟地址转换成物理地址是通过一个段表和一组页表来进行定位的。段表中的每个表目对应一一组页表来进行定位的。段表中的每个表目对应一个段,每个表目有一个指向该段的页表的起始地址个段,每个表目有一个指向该段的页表的起始地址(页号页号)及该段的控制保护信息。由页表指明该段各及该段的控制保护信息。由页表指明该段各页在主存中的位置以及是否已装入、已修改等标志。页在主存中的位置以及是否已装入、已修改等标志。这样,虚拟地址应包括基
47、号这样,虚拟地址应包括基号D D、段号、段号S S、页、页号号P P、页内地址、页内地址d d。格式如下:。格式如下:现举例说明段页式地址变换过程。现举例说明段页式地址变换过程。假设实主存分成假设实主存分成3232个页面,有个页面,有A A,B B,C C三三道程序已经占用主存,如图道程序已经占用主存,如图7 716(a)16(a)中阴中阴影影(斜线斜线)部分所示。现在又有部分所示。现在又有D D道程序要道程序要进入,它有三段进入,它有三段(图图7 716(b)16(b),段内页号,段内页号分别为分别为0 0,1 1;0 0,1 1;0 0,1 1,2 2。如采用纯。如采用纯段式管理,虽然主存
48、空间总计空余相当于段式管理,虽然主存空间总计空余相当于8 8个页面,比个页面,比D D道程序所需空间道程序所需空间(相当于相当于7 7个个页面页面)要大,但因第二段所需空间相当于要大,但因第二段所需空间相当于3 3个页面,比任何空隙都大而无法进入。采个页面,比任何空隙都大而无法进入。采用段页式管理后则可调入,各段、页在主用段页式管理后则可调入,各段、页在主存位置如图存位置如图7 716(a)16(a)所示。所示。当当要要访访问问的的程程序序地地址址为为D D道道1 1段段0 0页页4 4单单元元时时,其其地地址址变变换换过过程程如如图图7 71717所所示示。首首先先根根据据基基号号D D取取
49、出出D D道道程程序序的的段段表表起起点点S SD D,加加上上段段号号1 1找找到到该该道道程程序序的的页页表表起起点点b b,再再加加上上页页号号0 0找找到到D D道道程程序序1 1段段0 0页页的的主主存存页页号号4 4,最最后后和和页页内内地地址址4 4拼拼接接成成该该虚虚拟拟地地址址对对应应的的实实主主存存地地址址(图图中中未未画画出出段段表表的的控控制制保保护信息护信息)。三、三、页式虚拟存储器工作全过程页式虚拟存储器工作全过程例例题题 某某虚虚拟拟存存储储器器系系统统采采用用页页式式内内存存管管理理,假假定定内内存存容容量量为为4个个页页面面,开开始始时时是是空空的的,页页面面
50、访访问问地地址址流流:1 8 1 7 8 2 7 2 1 8 3 8 2 1 3 1 7 1 3 7,使使用用LRU页页面面替替换换算算法法和和FIFO算法。算法。(假设开始时主存为空假设开始时主存为空)(1)设设主主存存容容量量为为3个个页页,两两替替换换算算法法各各自自的命中率是多少的命中率是多少?(2)当当主主存存容容量量增增加加到到4个个页页时时,两两替替换换算算法各自的命中率又是多少法各自的命中率又是多少?解:解:(1)主存页面为主存页面为3时的调页情况如下表。时的调页情况如下表。采采用用LRU算算法法的的命命中中率率为为92045,采采用用FIFO算算法法的的命命中中率率为为920