4计算机系统结构(第四讲).ppt
《4计算机系统结构(第四讲).ppt》由会员分享,可在线阅读,更多相关《4计算机系统结构(第四讲).ppt(93页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机系统结构(第四讲)厦门大学计算机科学系 陆达2004年10月18日第三章 存储系统3.2 虚拟存储器1961年,Kilbrn提出虚拟存储器,虚拟存储系统,虚拟存储体系基本工作原理,地址映象和变换方法,页面替换算法,加速地址变换速度的方法3.2.1 虚拟存储器工作原理页式虚拟存储器页(page)图3.16:虚拟存储器中的地址组成实页(主存储器的页)主存地址A=实页号p+页内偏移d虚页(虚拟存储器的页)虚地址Av=用户号U+虚页号P+页内偏移D图3.17:页式虚拟存储器工作原理变换成功(命中)变换失败(未命中)内部地址变换:虚页号P=实页号p外部地址变换:虚页号P=磁盘实地址页面替换算法(当
2、主存储器中没有空页时)3.2.2 地址的映象与变换虚拟地址空间、主存地址空间、辅存地址空间地址映象:把虚拟地址空间映象到主存地址空间,即将用户用虚拟地址编写的程序按照某种规则装入到主存储器中地址变换:在程序被装入主存储器后,在实际运行时,把多用户虚地址变换成主存实地址(内部地址变换)或磁盘存储器地址(外部地址变换)3.2.2.1 段式虚拟存储器图3.18:地址映象 段表:包括段号(或段名)、段长、起始地址等图3.19:地址变换 段表基址寄存器堆 装入位、访问方式、修改标志字段段式虚拟存储器的主要优点:段式虚拟存储器的主要优点:1 1)、程序的模块化性能好)、程序的模块化性能好 2 2)、便于程
3、序和数据的共享)、便于程序和数据的共享 3 3)、程序的动态链接和调度比较容易)、程序的动态链接和调度比较容易 4 4)、便于实现信息保护)、便于实现信息保护段式虚拟存储器的主要缺点:段式虚拟存储器的主要缺点:1 1)、地址变换所化的时间比较长)、地址变换所化的时间比较长 2 2)、主存储器的利用率往往比较低)、主存储器的利用率往往比较低 3 3)、对辅存(磁盘存储器)的管理比较困难)、对辅存(磁盘存储器)的管理比较困难3.2.2.2 页式虚拟存储器页(页(pagepage):):1page=0.5KB1page=0.5KB的整倍数的整倍数=1=1KBKB16KB16KB虚页、实页虚页、实页地
4、址映象:从虚页号到实页号的地址变换(图地址映象:从虚页号到实页号的地址变换(图3.203.20)页表页表=页号页号+主存页号主存页号地址变换:将用户程序的虚拟地址变换成主存实地址(图地址变换:将用户程序的虚拟地址变换成主存实地址(图3.213.21)多用户虚地址多用户虚地址A Av v=用户号用户号U+U+虚页号虚页号P+P+页内偏移页内偏移D D 主存实地址主存实地址A=A=实页号实页号p+p+页内偏移页内偏移d d 页表基址寄存器堆页表基址寄存器堆 基址寄存器的内容基址寄存器的内容=页表起始地址页表起始地址 装入位、修改位、各种标志信息装入位、修改位、各种标志信息 页式虚拟存储器的主要优点
5、:页式虚拟存储器的主要优点:1 1)、主存储器的利用率比较高)、主存储器的利用率比较高 2 2)、页表相对比较简单)、页表相对比较简单 3 3)、地址映象和变换的速度比较快)、地址映象和变换的速度比较快 4 4)、对辅存(磁盘存储器)的管理比较容易)、对辅存(磁盘存储器)的管理比较容易页式虚拟存储器的主要缺点:页式虚拟存储器的主要缺点:1 1)、程序的模块化性能不好)、程序的模块化性能不好 2 2)、页表很长)、页表很长 虚拟存储空间虚拟存储空间=4=4GBGB、1 1页页=1=1KBKB 页表的容量页表的容量=4=4MM存储字(存储字(4 4GB/1KBGB/1KB)=4M*4B=16MB
6、=4M*4B=16MB3.2.2.3 段页式虚拟存储器综合段式虚拟存储器在程序模块化方面的优点和页式虚拟存储器在管理主存和辅存物理空间方面的优点基本思想是:对用户用来编写程序的虚拟存储空间采用分段的方法管理,而对主存储器的物理空间采用分页的方法管理地址映象:图3.22 段表=页表长度+页表地址 页表=主存的实页号地址变换:图地址变换:图3.233.23 多用户虚地址多用户虚地址Av=Av=用户号用户号U+U+段号段号S+S+虚页号虚页号P+P+页页内偏移内偏移D D 主存地址主存地址A=A=实页号实页号p+p+页内偏移页内偏移d d 段表基址寄存器堆、段表、页表段表基址寄存器堆、段表、页表IB
7、M 370/168IBM 370/168、MulticsMultics、Amdahl470V/6Amdahl470V/6等采用段等采用段页式虚拟存储器页式虚拟存储器段页式虚拟存储器的缺点:要从主存储器中访问段页式虚拟存储器的缺点:要从主存储器中访问一个数据,需要查二次表,访问主存储器三次一个数据,需要查二次表,访问主存储器三次3.2.2.4 外部地址变换当发生页面失效时(未命中),必须进行外部地当发生页面失效时(未命中),必须进行外部地址变换址变换外部地址变换:虚地址外部地址变换:虚地址 =辅存的实地址辅存的实地址页面失效属于异常故障,保存和恢复故障点的现页面失效属于异常故障,保存和恢复故障点
8、的现场的方法有三个:场的方法有三个:(1 1)、采用硬件的缓冲寄存器)、采用硬件的缓冲寄存器 (2 2)、只保存部分现场(如)、只保存部分现场(如PCPC、PSWPSW等)等)(3 3)、采用指令预判技术)、采用指令预判技术磁盘存储器的地址=磁盘号+柱面号+磁头号+块号(图3.24)图3.25:外部地址变换,通常用软件实现 外页表=磁盘实地址+装入位多级页表技术(见3.2.3小节)外页表与内页表合并成一个页表3.2.3 加快内部地址变换的方法造成虚拟存储器速度降低的主要原因:造成虚拟存储器速度降低的主要原因:(1 1)、要访问主存储器,必须先查段表或页表或段页表)、要访问主存储器,必须先查段表
9、或页表或段页表 (2 2)、页表或段表的容量超过一个页面时,需采用多级页)、页表或段表的容量超过一个页面时,需采用多级页表技术,从而又增加了查页表(段表)的次数表技术,从而又增加了查页表(段表)的次数多级页表技术:多级页表技术:g g:页表的级数页表的级数 N Nv v:虚拟存储空间的大小虚拟存储空间的大小 N Np p:页面的大小页面的大小 N Nd d:页表存储字的大小页表存储字的大小 例如:例如:N Nv v=4Gb=4Gb、N Np p=1KB=1KB、N Nd d=4B=4B g=3 g=3 第一级页表:第一级页表:1 1个页面,个页面,6464个存储字(个存储字(64*464*4B
10、=256B1KBB=256B-CacheCache地址变换部件完成地址变换部件完成B B变换成变换成b b变换成功,称为变换成功,称为CacheCache命中命中变换不成功,产生变换不成功,产生CacheCache失效信息失效信息将被访问字在内的一整块都从主存储器中读出来将被访问字在内的一整块都从主存储器中读出来(利用程序的局部性特点,提高(利用程序的局部性特点,提高CacheCache的命中率)的命中率)3.3.2 地址映象与变换算法什么是Cache的地址映象?什么是Cache的地址变换?以“块”为单位进行调度需要考虑的因素:(1)、地址变换的硬件是否容易实现?(2)、地址变换的速度是否快?
11、(3)、主存空间的利用率是否高?(4)、发生块冲突的概率如何?3.3.2.1 全相联映象及其变换全相联映象方式是指主存中的任意一块可以映象到Cache中的任意一块的位置上。图3.39:全相联映象方式 Cb=Mb图3.40:全相联映象方式的地址变换主存地址=块号B+块内地址WCache地址=块号b+块内地址w目录表=主存块号B+Cache块号b+有效位Cache命中Cache没有命中(Cache失效)全相联映象方式的优点:块的冲突率最小,Cache的利用率也最高全相联映象方式的缺点:需要一个相联访问速度快、容量为Cb的相联存储器,其代价很高;相联比较所花费的时间将影响Cache的访问速度3.3.
12、2.2 直接映象及其变换直接映象方式:主存中一块只能映象到直接映象方式:主存中一块只能映象到CacheCache的一个特定的一个特定的块中。的块中。b=B mod b=B mod C Cb b B B:主存的块号主存的块号 b b:CacheCache的块号的块号 C Cb b:CacheCache的块容量(个数)的块容量(个数)图图3.413.41:直接相联映象方式:直接相联映象方式 MMb b=C Cb b*M*Me e MMb b:主存的块容量(个数)主存的块容量(个数)C Cb b:CacheCache的块容量(个数)的块容量(个数)MMe e:主存的区容量(个数)主存的区容量(个数)
13、图图3.423.42:直接相联地址变换:直接相联地址变换 主存地址主存地址=区号区号E+E+块号块号B+B+块内地址块内地址WW Cache Cache地址地址=块号块号b+b+块内地址块内地址w w 区表存储器区表存储器=区号区号E E(按地址访问)按地址访问)+有效位有效位四种情况:四种情况:(1 1)、区号比较结果相等、有效位为)、区号比较结果相等、有效位为“1”1”:CacheCache命中命中 (2 2)、区号比较结果相等、有效位为)、区号比较结果相等、有效位为“0”0”:CacheCache没有命中;没有命中;CacheCache中的这一块已经作废中的这一块已经作废 (3 3)、区
14、号比较结果不相等、有效位为)、区号比较结果不相等、有效位为“0”0”:CacheCache没有命中;没有命中;CacheCache的这一块是空的的这一块是空的 (4 4)、区号比较结果不相等、有效位为)、区号比较结果不相等、有效位为“1”1”:CacheCache没有命中;原来在没有命中;原来在CacheCache中存放的那一中存放的那一块是有用的块是有用的图3.43:将区号存储器与Cache合并成一个存储器直接相联映象方式的优点:硬件实现很简单,不需要采用相联访问的存储器,访问速度也比较快直接相联映象方式的缺点:块的冲突率比较高。3.3.2.3 组相联映象及其变换介于全相联和直接相联之间的一
15、种折中方案介于全相联和直接相联之间的一种折中方案图图3.443.44:组相联映象方式:组相联映象方式CacheCache:C Cb b=C=Cg g*G Gb b C Cb b:CacheCache总的块容量(个数)总的块容量(个数)C Cg g:CacheCache的组容量(个数)的组容量(个数)G Gb b:CacheCache每一组的块容量(个数)每一组的块容量(个数)主存储器:主存储器:MMb b=G Gb b*C*Cg g*M*Me e M Mb b:主存储器总的块容量(个数)主存储器总的块容量(个数)G Gb b:CacheCache每一组的块容量(个数)每一组的块容量(个数)C
16、Cg g:CacheCache的组容量(个数)的组容量(个数)MMe e:主存储器的区容量(个数)主存储器的区容量(个数)图图3.453.45:组相联映象方式的地址变换:组相联映象方式的地址变换 主存地址主存地址=区号区号E+E+组号组号G+G+组内块号组内块号B+B+块内地址块内地址WW Cache Cache地址地址=组号组号g+g+组内块号组内块号b+b+块内地址块内地址w w 快表存储器快表存储器=(区号(区号E E,组内块号组内块号B B)+组内块号组内块号b b (采用按地址访问和按相联访问两种方式)采用按地址访问和按相联访问两种方式)图图3.463.46:采用多个相等比较器代替相
17、联访问,以:采用多个相等比较器代替相联访问,以加快查表的速度加快查表的速度当一个块内的字数不多时,可以把块表与当一个块内的字数不多时,可以把块表与CacheCache合合并成一个存储器。即用并成一个存储器。即用CacheCache中的数据字代替块表中的数据字代替块表中的块号中的块号b b字段(参见字段(参见P178P178的图的图3.433.43)组相联映象方式与直接映象方式相比:Cache中块的利用率能够大幅度提高,Cache块的失效率能够明显降低,块的冲突概率大大降低。但是,实现的难度和造价要高。组相联映象方式与全相联映象方式相比:实现起来容易,Cache的命中率与全相联映象方式很接近。当
18、Gb=1(Cache每一组的块容量(个数)时,就成了直接映象方式当Cg=1(Cache的组容量(个数)时,就成了全相联映象方式可以通过选择Gb和Cg,来优化Cache的性能(包括块冲突率、块的失效率、查表的速度、实现的复杂性和成本等)Gb越大,块的冲突概率和Cache的失效率就越低,但查表的速度就越慢,实现的成本也就高表3.5:典型机器的Cache分组情况 (C Cb b=C=Cg g*G Gb b)3.3.2.4 位选择组相联映象及其变换图图3.473.47:位选择组相联映象方式:位选择组相联映象方式 (主存不再分组)(主存不再分组)CacheCache:C Cb b=C=Cg g*G Gb
19、 b C Cb b:CacheCache总的块容量总的块容量 C Cg g:CacheCache的组容量的组容量 G Gb b:CacheCache每个组的块容量每个组的块容量 主存储器:主存储器:MMb b=C=Cg g*M*Me e M Mb b:主存总的块容量主存总的块容量 C Cg g:主存每个区的块容量主存每个区的块容量 MMe e:主存的区容量主存的区容量 主存中的块与Cache中的组之间是直接映象关系;而主存中的块与Cache中组内部的各个块之间是全相联映象方式在组相联映象方式中,主存中的一个组与Cache中的一个组之间是多个块到多个块的映象在位选择组相联映象方式中,主存中的一个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机系统 结构 第四
限制150内