《4计算机系统结构(第四讲).ppt》由会员分享,可在线阅读,更多相关《4计算机系统结构(第四讲).ppt(93页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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中的一个组之间是多个块到多个块的映象在位选择组相联映象方式中,主存中的一个
20、块到Cache中一个组之间是一个块到多个块的映象图3.48:位选择组相联地址变换的一种实现方式 主存地址=区号E+区内块号B+块内地址W Cache地址=组号g+组内块号b+块内地址w 块表=(区号E+块号b+有效位e)+(区号E+块号b+有效位e)(共Gb个)3.3.2.5 段相联映象及其变换段相联映象方式:组内采用直接映象方式,而组间改用全相联映象方式是组相联映象方式的一种变形,也是介于全相联和直接相联二种映象方式之间的一种折中方案图3.49:段相联映象方式 Cache:Cb=Sb*Cs Cb:Cache总的块容量 Cs:Cache的段容量 Sb:Cache每个段的块容量 主存储器:Mb=
21、Sb*Ms Mb:主存总的块容量 Ms:主存的段容量 Sb:主存每个段的块容量图3.50:段相联地址变换方式 主存地址=段号S+段内块号B+块内地址W Cache地址=段号s+段内块号b+块内地址w 段表=主存段号S+Cache段号s+有效位段相联映象方式的优点:段表比较简单,实现的成本相对比较低 块的冲突概率和Cache的失效率与Cache的段容量Cs有关段相联映象方式的缺点:当发生段失效,要把本段内各个块原来已经与主存建立起来的许多映象关系全部撤消例子:256KB的Cache:8个段、每段2048块、每块16B(8*2048*16B=256KB)3.3.3 Cache替换算法及其实现什么是
22、什么是CacheCache替换算法?替换算法?直接映象方式:不需要替换算法直接映象方式:不需要替换算法全相联映象方式:替换算法最复杂全相联映象方式:替换算法最复杂组相联映象方式组相联映象方式/位选择组相联映象方式:位选择组相联映象方式:需要从需要从CacheCache同一组内的几个块中选择一块替换同一组内的几个块中选择一块替换出去出去虚拟存储器:采用全相联映象方式,替换算法用虚拟存储器:采用全相联映象方式,替换算法用软件实现软件实现CacheCache:替换算法用硬件实现替换算法用硬件实现常用的常用的CacheCache替换:随机法、轮换法、替换:随机法、轮换法、LFULFU算法、算法、比较对
23、法、堆栈法比较对法、堆栈法3.3.3.1 轮换法及其实现用于组相联映象方式两种实现方法:(1)、每块一个计数器(2)、每组一个计数器1、每块一个计数器在块表中,增加设置一个替换计数器字段,计数在块表中,增加设置一个替换计数器字段,计数器字段的长度与器字段的长度与CacheCache地址中的组内块号字段的长地址中的组内块号字段的长度相同度相同替换规则:替换规则:(1 1)、被装入或被替换的块,它所属的计数器清)、被装入或被替换的块,它所属的计数器清为为“0”0”,同组的其他块所属的计数器都加,同组的其他块所属的计数器都加“1”1”(2 2)、需要替换时,在同组中选择计数器的值最)、需要替换时,在
24、同组中选择计数器的值最大的块作为被替换的块大的块作为被替换的块例子:例子:Solar-16/65Solar-16/65,位选择组相联映象方式,每位选择组相联映象方式,每组的块容量组的块容量=4=4,2 2位计数器(表位计数器(表3.63.6)2、每组一个计数器只为每个组设置一个计数器替换规则:本组有替换时,计数器加“1”,计数器的值就是要被替换出去的块号轮换法的优点:实现比较简单,能够利用历史上的块地址流情况,把最先装入的块作为被替换的块轮换法的缺点:也没有能够利用程序的局部性特点3.3.3.2 LFU算法及其实现LFU算法既利用了历史上Cache中块地址流的调度情况,又正确反映了程序的局部性
25、特点在块表中为每一块设置一个计数器替换规则:替换规则:(1 1)、)、被装入或被替换的块,它所属的计数器清被装入或被替换的块,它所属的计数器清为为“0”0”,同组的其他块所属的计数器都加,同组的其他块所属的计数器都加“1”1”(2 2)、命中的块,其对应的计数器清为)、命中的块,其对应的计数器清为“0”0”,同组中其他所有计数器中,凡是计数器的值小于同组中其他所有计数器中,凡是计数器的值小于命中块所属计数器原来值,都加命中块所属计数器原来值,都加“1”1”,其他计数,其他计数器不变器不变 (3 3)、)、需要替换时,在同组的所有计数器中选择需要替换时,在同组的所有计数器中选择计数器最大(一般为
26、全计数器最大(一般为全1 1)的计数器,它所对应的)的计数器,它所对应的块就是要被替换的块块就是要被替换的块例子:例子:IBM370/165IBM370/165,每组每组=4=4块,计数器块,计数器=2=2位位(表(表3.73.7)LFULFU算法的命中率比较高,算法的命中率比较高,LFULFU算法是一种堆栈型算法是一种堆栈型算法算法3.3.3.3 比较对法也是一种也是一种LFULFU算法,它不用计数器来实现,而采算法,它不用计数器来实现,而采用硬联逻辑实现用硬联逻辑实现LFULFU算法:将同一组内的各个块按照被访问过的算法:将同一组内的各个块按照被访问过的时间顺序排序,从而找出最久没有被访问
27、过的块时间顺序排序,从而找出最久没有被访问过的块T TAB AB :B B块比块比A A块更久没有被访问过块更久没有被访问过 :A A块比块比B B块更久没有被访问过块更久没有被访问过C C块最久没有被访问过:块最久没有被访问过:A A、B B、C C;B B、A A、C C 图图 3.513.51:每组:每组3 3个块的比较对法个块的比较对法表表3.83.8:每组块容量与所需触发器、与门及与门输:每组块容量与所需触发器、与门及与门输入端个数的关系入端个数的关系当每组块容量很多时,要采用分级的办法来实现当每组块容量很多时,要采用分级的办法来实现例子:例子:IBM 3033 IBM 3033,每
28、组每组=16=16块,分块,分3 3级,第级,第1 1级级=4=4、第、第2 2级级=2=2、第、第3 3级级=2=2 共需共需6+1*4+1*2*4=186+1*4+1*2*4=18个触发器(个触发器(120120个触发器)个触发器)例子:例子:IBM 370/168 IBM 370/168,每组每组=8=8块,分块,分2 2级,第级,第1 1级级=4=4、第、第2 2级级=2=2 共需共需6+1*4=106+1*4=10个触发器(个触发器(2828个触发器)个触发器)比较对法的优点:块失效率比较低,工作速度比比较对法的优点:块失效率比较低,工作速度比较高较高比较对法的缺点:硬件实现相对比较
29、复杂比较对法的缺点:硬件实现相对比较复杂3.3.3.4 堆栈法用栈顶至栈底的先后次序来记录用栈顶至栈底的先后次序来记录CacheCache同一组内的同一组内的各个块被访问的先后次序。栈顶是最近被访问过各个块被访问的先后次序。栈顶是最近被访问过的块,栈底是最久没有被访问过的块。的块,栈底是最久没有被访问过的块。(图(图3.523.52)堆栈法的管理规则:堆栈法的管理规则:(1 1)、把本次访问的块号与堆栈中保存的所有块)、把本次访问的块号与堆栈中保存的所有块号进行相联比较。如果发现有相等的,则号进行相联比较。如果发现有相等的,则CacheCache命命中;中;(2 2)、如果相联比较没有发现相等
30、的,则)、如果相联比较没有发现相等的,则CacheCache块失效。块失效。图3.53:用硬件实现堆栈法的逻辑图 Cache采用组相联映象方式,每组块容量=4堆栈法的优点:一是失效率低,采用的是LRU算法;二是硬件实现相对比较简单。堆栈法的缺点:速度比较低,因为它需要进行相联比较堆栈法所用触发器的个数=Gb*log2Gb对于Cache的替换算法,主要解决好以下三个问题:(1)、记录每次访问Cache的块号(2)、管理好所记录的Cache块号(3)、根据记录和管理的结果,采用时序逻辑判断哪个块号是将要被替换出去的块号3.3.4 Cache的性能分析Cache的加速比Cache系统的一致性问题3.
31、3.4.1 Cache系统的加速比T=HT=H T Tc c+(1-H)+(1-H)T Tmm加速比加速比S SP P=T=Tmm/T=f/T=f(H H,T Tmm/T Tc c)图图3.543.54:加速比:加速比S SP P与命中率与命中率H H的关系的关系 S SP P的最大值为的最大值为T Tmm/T Tc c影响影响CacheCache命中率命中率H H的几个主要因素:的几个主要因素:(1 1)、程序在执行过程中的地址流分布情况)、程序在执行过程中的地址流分布情况(2 2)、)、CacheCache的替换算法的替换算法(3 3)、)、CacheCache的容量的容量(4 4)、块的
32、大小,分组的数目)、块的大小,分组的数目(5 5)、)、CacheCache的预取算法(的预取算法(3.3.4.33.3.4.3)1、Cache命中率与容量的关系图3.55:Cache命中率H与容量S的关系H=1-S-0.52、Cache命中率与块大小的关系图3.56:Cache命中率与块大小的关系当块大小非常大时,进入Cache中的许多数据可能根本用不上。而且,随着块大小的增加,程序时间局限性的作用就会逐渐减弱。最后,当块大小等于整个Cache的容量时,命中率将趋近于零3、Cache命中率与组数的关系随着组数的增加,Cache的命中率要降低。当分组的数目增加时,主存中的某一块可以映象到Cac
33、he中的块数就将减少,从而导致命中率的下降3.3.4.2 Cache的一致性问题造成造成CacheCache与主存的不一致问题的原因:与主存的不一致问题的原因:(1 1)、图)、图3.57(3.57(a)a)(2 2)、)、图图3.57(3.57(b)b)两种两种CacheCache更新算法:更新算法:(1 1)、写直达法()、写直达法(WTWT:Write-throughWrite-through),),写通过写通过法:法:CPUCPU在执行写操作时,必须把数据同时写入在执行写操作时,必须把数据同时写入CacheCache和主存和主存(2 2)、写回法()、写回法(WBWB:Write-ba
34、ckWrite-back),),抵触修改法:抵触修改法:CPUCPU在执行写操作时,被写数据只写入在执行写操作时,被写数据只写入CacheCache,不不写入主存。仅当需要替换时,才把已经修改过的写入主存。仅当需要替换时,才把已经修改过的CacheCache块写回到主存块写回到主存写回法和写直达法的优缺点:写回法和写直达法的优缺点:(1 1)、可靠性:写直达法优于写回法)、可靠性:写直达法优于写回法(2 2)、与主存的通信量:写回法小于写直达法)、与主存的通信量:写回法小于写直达法 “不按写分配法不按写分配法”“按写分配法按写分配法”(3 3)、控制的复杂性:写直达法比写回法简单)、控制的复杂
35、性:写直达法比写回法简单 写回法要在块表中为每一块设置一个修改位写回法要在块表中为每一块设置一个修改位(4 4)、硬件实现的代价:写回法要比写直达法好)、硬件实现的代价:写回法要比写直达法好 在写直达法中,通常要采用一个高速小容量的在写直达法中,通常要采用一个高速小容量的缓冲存储器缓冲存储器在多处理机中,解决在多处理机中,解决CacheCache与主存的不一致性的方与主存的不一致性的方法:法:(1 1)、共享)、共享CacheCache法法(2 2)、作废法)、作废法 作废其他处理机的作废其他处理机的CacheCache(3 3)、)、播写法播写法 采用广播的方法采用广播的方法(4 4)、目录
36、表法)、目录表法 中心目录表、分布目录表中心目录表、分布目录表(5 5)、共享数据不存放在)、共享数据不存放在CacheCache中中很多单处理机都采用写回法;几乎所有的多处理很多单处理机都采用写回法;几乎所有的多处理机都采用写直达法机都采用写直达法3.3.4.3 Cache的预取算法预取能够大幅度提高预取能够大幅度提高CacheCache的命中率的命中率预取算法有:预取算法有:(1 1)、按需取)、按需取(2 2)、恒预取)、恒预取(3 3)、不命中预取)、不命中预取在考虑预取算法的效果时,不仅要看命中率的提在考虑预取算法的效果时,不仅要看命中率的提高,也要看高,也要看CacheCache与
37、主存之间通信量的增加,要综与主存之间通信量的增加,要综合起来考虑合起来考虑3.4 三级存储系统在程序员看来,只有一个存储器,这个存储器采在程序员看来,只有一个存储器,这个存储器采用与主存储器完全相同的按地址随机访问的方式用与主存储器完全相同的按地址随机访问的方式工作,它的等效访问速度接近于工作,它的等效访问速度接近于CacheCache的访问周期的访问周期,等效存储容量是虚拟地址空间的容量,等效存储容量是虚拟地址空间的容量存储器系统的几种做法:存储器系统的几种做法:(1 1)、两个存储系统组织方式(物理地址)、两个存储系统组织方式(物理地址CacheCache)图图3.58 3.58:“Cac
38、he-Cache-主存主存”,“主存主存-磁盘磁盘”(2 2)、一个存储系统组织方式(虚拟地址)、一个存储系统组织方式(虚拟地址CacheCache)图图3.593.59:“Cache-Cache-主存主存-磁盘磁盘”(3 3)、全)、全CacheCache系统系统 “Cache-Cache-磁盘磁盘”(3.4.23.4.2)3.4.1 虚拟地址Cache“Cache-主存-磁盘”采用直接用虚拟地址访问Cache方法图3.60:一种虚拟地址Cache的地址变换过程 快表:P159(图3.27)块表:P183(图3.48)3.4.2 全Cache技术“Cache-磁盘”All-Cache存储系统:等效访问周期与Cache很接近,等效存储容量就是虚拟地址空间的容量图3.61:多处理机系统中的全Cache存储系统磁盘阵列、闪烁存储器第三章习题P202:3.1P206:3.17 3.18谢 谢!