《计算机组成原理第三章存储系统(四)课件.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理第三章存储系统(四)课件.ppt(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、3.5 Cache 3.5 Cache 存储器存储器3.5.1 Cache 3.5.1 Cache 基本原理基本原理一、一、Cache Cache的工作机制的工作机制 Cache Cache的工作机制基于的工作机制基于程序访问的局部性程序访问的局部性原则,即,一个运行程序的代码大都顺序存原则,即,一个运行程序的代码大都顺序存放在地址连续的存储器中,与程序相关的数放在地址连续的存储器中,与程序相关的数据在存储器中也相对集中。所以程序运行时,据在存储器中也相对集中。所以程序运行时,尤其有循环程序段和子程序段时,在较短时尤其有循环程序段和子程序段时,在较短时间区间内,常会对局部范围的存储器频繁访间区
2、间内,常会对局部范围的存储器频繁访问,而此范围之外的地址访问甚少。这种现问,而此范围之外的地址访问甚少。这种现象称为象称为程序访问的局部性程序访问的局部性。把局部范围的主存内容从主存放到一个把局部范围的主存内容从主存放到一个高速小容量存储器中,使高速小容量存储器中,使CPUCPU在这一段时间在这一段时间内直接访问它,以减少或不去访问慢速的内直接访问它,以减少或不去访问慢速的DRAM DRAM,程序运行速度将明显提高。,程序运行速度将明显提高。3.5 Cache 3.5 Cache 存储器存储器3.5.1 Cache 3.5.1 Cache 基本原理基本原理二、二、CacheCache存储器的构
3、成存储器的构成 了解了解cachecache的构成及工作原理必须首先了的构成及工作原理必须首先了解解“块块”的概念:(页,行)的概念:(页,行)Cache Cache存储器中,把存储器中,把cachecache和主存各分成若和主存各分成若干块(干块(blockblock,block frameblock frame)。)。主存与主存与cachecache中块的数目不同但块的大小相中块的数目不同但块的大小相等。等。块的大小通常以在主存的一个读块的大小通常以在主存的一个读/写周期中写周期中能访问的数据长度为限,常为几十字节。能访问的数据长度为限,常为几十字节。CacheCache存储器构成如下图所
4、示:存储器构成如下图所示:主主存存主主存存地地址址寄寄存存器器MARMAR主存主存cachecache地址变换地址变换机构机构CacheCache地址地址寄存器寄存器CARCARCacheCache存储器存储器替换控制部件替换控制部件C CP PU U不不命命中中命命中中单字宽单字宽多多字字宽宽地址总线地址总线数据总线数据总线CacheCache存储器构成图,虚框内为存储器构成图,虚框内为cachecache的控制部分的控制部分CacheCache存储器存储器=cache=cache存储器存储器+cache+cache控制器控制器三、三、CacheCache的命中率的命中率h=Nc/h=Nc/
5、(Nc+NmNc+Nm)教材教材P.106 P.106(3.43.4)其中,其中,NcNc表示在一个程序执行期间表示在一个程序执行期间cachecache完成存取的总次数,完成存取的总次数,Nm Nm表示在一个程序执行期间主存表示在一个程序执行期间主存完成存取的总次数,完成存取的总次数,h h即为即为命中率命中率。另外的与另外的与h h有关的两个公式有关的两个公式:设:设t tc c表示命中表示命中时的时的cachecache访问时间,访问时间,t tmm表示未命中时的表示未命中时的主存访问时间,主存访问时间,1-h1-h表示未命中率,则表示未命中率,则cache/cache/主存系统的平均访
6、问时间主存系统的平均访问时间t ta a为:为:t ta a=ht=htc c+(1-h1-h)t tm m (3.5)3.5)v再设再设r=tm/tcr=tm/tc表示主存慢于表示主存慢于cachecache的倍率,的倍率,e e表表示访问效率,示访问效率,则有:则有:e=tc/ta=tc/htc+e=tc/ta=tc/htc+(1-h1-h)tm=1/h+tm=1/h+(1-1-h h)r r v例(例(P.107P.107例例5 5):):CPUCPU执行一段程序时,执行一段程序时,cachecache完成存取的次数完成存取的次数19001900次,主存完成存取次,主存完成存取的次数为的
7、次数为100100次,已知次,已知cachecache的存取周期为的存取周期为50ns50ns,主存存取周期为,主存存取周期为250ns250ns,求,求cache/cache/主存主存系统的效率和平均访问时间。系统的效率和平均访问时间。v解:解:h=Nc/h=Nc/(Nc+NmNc+Nm)=1900/=1900/(1900+1001900+100)=0.=0.9595v r=tm/tc=250ns/50ns=5 r=tm/tc=250ns/50ns=5v e=1/r+(1-r)h=1/5+(1-5)X0.95=83.3%e=1/r+(1-r)h=1/5+(1-5)X0.95=83.3%v t
8、a=tc/e=50ns/0.833=60ns ta=tc/e=50ns/0.833=60nsv主存主存cachecache地址映射(地址映射(mappingmapping):把存放):把存放在主存中的程序按某种规则装入在主存中的程序按某种规则装入cachecache中,并中,并依此建立主存地址与依此建立主存地址与cachecache地址的对应关系。地址的对应关系。v主存主存cachecache地址变换:程序运行时,根据地地址变换:程序运行时,根据地址映射把主存地址即址映射把主存地址即MARMAR内容变换成内容变换成cachecache地地址即址即CARCAR内容。内容。v以上两个概念紧密相关而
9、又不同。以上两个概念紧密相关而又不同。v常用的三种地址映射方式及对应的地址变换常用的三种地址映射方式及对应的地址变换方法:方法:一、全相联映射及其地址变换一、全相联映射及其地址变换 1 1、全相联映射、全相联映射3.5.2 3.5.2 主存与主存与cachecache的地址映射(映象)和地的地址映射(映象)和地址变换址变换主存中任一个块能够映射到主存中任一个块能够映射到cachecache中任一块的位中任一块的位置(置(fully associative mappingfully associative mapping)。)。00 00块块000000块块主存主存例:设例:设cachecach
10、e块数块数Cb=4Cb=4,主存块数,主存块数Mb=8Mb=8,主存主存cachecache的全相联映射关系如下:的全相联映射关系如下:01 01块块 10 10块块 1 1 1 1块块001 001 块块010 010 块块011 011 块块 100100块块101 101 块块110 110 块块111 111 块块cachecache 2 2、全相联映射方式的地址变换、全相联映射方式的地址变换(1 1)全相联映射方式下的主存地址与)全相联映射方式下的主存地址与cachecache地地址形式址形式 主存地址主存地址主存块号主存块号+块内地址;块内地址;Cache Cache地址形式地址形
11、式cachecache块号块号+块内地址。块内地址。用用CAMCAM构成构成目录表目录表,该表由,该表由CbCb个字(等于个字(等于cachecache的块数)组成;的块数)组成;Cb Cb个字中,每一字由主存块号个字中,每一字由主存块号B B、cachecache块号块号b b构成构成(2 2)地址变换)地址变换 由由MARMAR内容即主存地址变换出内容即主存地址变换出CARCAR内容即内容即cachecache地址的过程如下:地址的过程如下:主主 存存 块块 号号 B B块内地址块内地址WWCacheCache块号块号b b块内地址块内地址ww主主 存存 块块 号号 B BCacheCac
12、he块号块号b bB Bb b相联相联比较比较命中命中不命中不命中访问主存访问主存MARMARCARCAR目录表:目录表:共共CbCb个字个字全相联映射的地址变换过程全相联映射的地址变换过程用用CAMCAM构成构成v3 3、全相联映射的特点、全相联映射的特点v(1 1)块的冲突率最小,)块的冲突率最小,cachecache利用率高;利用率高;v(2 2)代价较高()代价较高(CAMCAM),相联比较的),相联比较的时间较长,影响时间较长,影响cachecache的速度。小容量适的速度。小容量适用。用。v二、直接映射及地址变换二、直接映射及地址变换v1 1、直接映射、直接映射v首先将主存首先将主
13、存按按cachecache的大小分区的大小分区,然后各,然后各个区仍与个区仍与cachecache一样分成块:各区内的块一样分成块:各区内的块数、块长均同数、块长均同cachecache。v映射的规则是:主存各区中相同序号的映射的规则是:主存各区中相同序号的块只能映射到块只能映射到cachecache中相应序号的块中。中相应序号的块中。0000块块主存主存cachecacheMARMAR内容即主存地址形式为:内容即主存地址形式为:区号区号E+E+块号块号B+B+块内地址块内地址WWCARCAR内容即内容即cachecache地址仍是:地址仍是:块号块号b+b+块内地址块内地址ww0101块块1
14、010块块11 11 块块0 00000块块0 001 01 块块0 010 10 块块0 011 11 块块1 100 00 块块1 101 01 块块1 1 10 10 块块1 111 11 块块0 0区区1 1区区直接映射(直接映射(direct mappingdirect mapping)2 2、直接直接映射的地址变换映射的地址变换块号块号B B区号区号E EMARMAR块号块号b b块内地址块内地址wwCARCAR选择信号选择信号送送CPUCPU相等相等不等不等访问主存访问主存区号区号E E数据数据D0D0数据数据D1D1数据数据Dw-1Dw-1E ED0D0D1D1Dw-1Dw-1
15、cachecache块内地址块内地址WW比较比较1/w1/w多路选择器多路选择器3 3、直接映射的特点:、直接映射的特点:(1 1)硬件实现简单,访问速度较快;)硬件实现简单,访问速度较快;(2 2)CacheCache的空间利用率低,常有块冲突,命的空间利用率低,常有块冲突,命中率也低。中率也低。三、组相联映射及其地址变换三、组相联映射及其地址变换1 1、组相联映射(、组相联映射(set associative mappingset associative mapping)v主存先按主存先按cachecache大小分成若干个区;大小分成若干个区;主存与主存与cachecache的各区内再分成
16、大小相等的组的各区内再分成大小相等的组;各组再;各组再分成大小相等的块。分成大小相等的块。v组间采用直接映射组间采用直接映射:主存不同区中同序号的:主存不同区中同序号的组只能映射到组只能映射到cachecache中同序号的组。中同序号的组。v组内各块采用全相联映射组内各块采用全相联映射:一个组内各个块:一个组内各个块可映射到可映射到cachecache中对应组中的任一块的位置。中对应组中的任一块的位置。v组相联映射的地址形式组相联映射的地址形式vMARMAR内容即主存地址形式:区号内容即主存地址形式:区号E+E+组号组号G+G+组内块号组内块号B+B+块内地址块内地址WWvCARCAR内容即内
17、容即cachecache地址形式:组号地址形式:组号g+g+组内块号组内块号b+b+块内地址块内地址wwv用用CAMCAM构成构成“块表块表”,CacheCache中有几组就有中有几组就有几个块表,每个块表中的行数等于每组中块几个块表,每个块表中的行数等于每组中块的个数。的个数。v组相联映射图:组相联映射图:0 00 0块块0 01 1块块 1 11 1 块块1 11 11 1 块块1 11 10 0块块1 10 01 1块块1 10 00 0块块0 01 11 1 块块0 01 10 0块块0 00 01 1块块0 00 00 0块块1 10 0块块0 0组组1 1组组0 0组组1 1组组0
18、 0区区1 1区区1 1组组0 0组组组相联映射图组相联映射图cachecache主存主存2 2、组相联映射的地址变换:、组相联映射的地址变换:区号区号E E组号组号G G组内块号组内块号B B块内地址块内地址WWMARMAR组号组号g g组内块号组内块号b b块内地址块内地址wwCARCAR相联相联比较比较相等相等不命中不命中访问主存访问主存(命中)(命中)区号区号E E 组内块号组内块号B B组内块号组内块号b b块表:块表:每组每组一个,行数一个,行数等于组内分等于组内分块时块的个块时块的个数。每行记数。每行记录了主存某录了主存某块送入块送入cachecache时原在主存时原在主存的区号
19、、组的区号、组内块号及放内块号及放入入cachecache中的中的组内块号。组内块号。块表块表用用CAMCAM构成构成作业:作业:请比较全相联与组相联地址变换中的请比较全相联与组相联地址变换中的目录表目录表与与块表块表主主 存存 块块 号号 B B块内地址块内地址WWCacheCache块号块号b b块内地址块内地址ww主主 存存 块块 号号 B BCacheCache块号块号b bB Bb b相联相联比较比较命中命中不命中不命中访问主存访问主存MARMARCARCAR目录表:目录表:共共CbCb个字个字全相联映射的地址变换过程全相联映射的地址变换过程用用CAMCAM构成构成直接直接映射的地址
20、变换映射的地址变换块号块号B B区号区号E EMARMAR块号块号b b块内地址块内地址wwCARCAR选择信号选择信号送送CPUCPU相等相等不等不等访问主存访问主存区号区号E E数据数据D0D0数据数据D1D1数据数据Dw-1Dw-1E ED0D0D1D1Dw-1Dw-1cachecache块内地址块内地址WW比较比较1/w1/w多路选择器多路选择器v3 3、组相联映射的特点:、组相联映射的特点:v避免了全相联方式分配页面(块)时的大量避免了全相联方式分配页面(块)时的大量计算,也减少了直接映射方式下块的冲突。计算,也减少了直接映射方式下块的冲突。提高了存储体系的效率,因此使用广泛。提高了
21、存储体系的效率,因此使用广泛。v关于关于“N“N路组相联路组相联”的概念。的概念。v例:一台计算机的主存容量为例:一台计算机的主存容量为1MB1MB,字长,字长3232位,直接映射的位,直接映射的CacheCache容量为容量为512512字。试设计字。试设计主存地址格式(设该机为字节寻址方式)。主存地址格式(设该机为字节寻址方式)。v(1 1)Cache Cache块长为块长为1 1字;字;v(2 2)Cache Cache块长为块长为8 8字。字。v解答:主存地址位数为解答:主存地址位数为2020位,位,CacheCache地址位地址位数为数为11 11位。位。v主存按主存按CacheCa
22、che大小分区。其中分区个数:大小分区。其中分区个数:v1MB/5121MB/512字字=1MB/2KB=2=1MB/2KB=29 9个分区个分区区号区号区内块号区内块号块内地址块内地址直接映射方式下主存的地址格式为:直接映射方式下主存的地址格式为:CacheCache的地址格式为:的地址格式为:块号块号块内地址块内地址由上可知区号始终为由上可知区号始终为9 9位;位;19 019 010 010 019 1119 11(1 1)CacheCache块长为块长为1 1字,每区有字,每区有512512块,块号块,块号9 9位;位;1 01 0(2 2)CacheCache块长为块长为8 8字,每
23、区有字,每区有6464块,块号块,块号6 6位;位;10 210 21 01 010 510 5 4 04 010 510 5 4 04 0区号区号区内块号区内块号块内字地址块内字地址 字节地址字节地址10 210 2v3.5.3 3.5.3 替换策略替换策略v替换:主存替换:主存cachecache地址变换中一旦发生不命地址变换中一旦发生不命中,即需将主存中一个新的块调入中,即需将主存中一个新的块调入cachecache;而;而一般情况此时一般情况此时cachecache中相应位置的块中已经装中相应位置的块中已经装满数据,需找出一个不常用的块将其放入主满数据,需找出一个不常用的块将其放入主存
24、或丢弃,空出来的存或丢弃,空出来的cachecache位置放新调入的块,位置放新调入的块,此为替换。此为替换。v替换算法:也叫替换策略。指按映射方式等替换算法:也叫替换策略。指按映射方式等决定如何进行相应的调入与调出块的操作。决定如何进行相应的调入与调出块的操作。v常用替换算法常用替换算法(均以硬件实现,以保证速(均以硬件实现,以保证速度):度):vLFU-Least Frequently UsedLFU-Least Frequently UsedvLRU-Least Recently UsedLRU-Least Recently UsedvFIFO-First In First OutFIF
25、O-First In First Outv高高主层次及主主层次及主辅层次均有替换问题。辅层次均有替换问题。P.126P.126习题习题1414略,有兴趣可参略,有兴趣可参P.120P.120例例7 7做此题。做此题。3.5.4 Cache3.5.4 Cache的写操作策略的写操作策略如何保证如何保证cachecache内容与主存中内容与主存中“原本原本”内容相一致(只有内容相一致(只有“写写”操作才有的问题)。操作才有的问题)。v常见的写操作策略有两种:常见的写操作策略有两种:v1 1、全写法、写直达法(、全写法、写直达法(Write ThroughWrite Through):):命中时,不
26、仅写命中时,不仅写cachecache,也同时写入主存。,也同时写入主存。v2 2、回写法、写回法(、回写法、写回法(Write BackWrite Back):命中时,):命中时,只改写只改写cachecache的内容,而并不立即修改主存中的内容,而并不立即修改主存中相应单元的内容,只有在被改写过的块将被相应单元的内容,只有在被改写过的块将被替换出去时才一次写回主存。替换出去时才一次写回主存。v二者优缺点比较。二者优缺点比较。v3 3、写一次法、写一次法 奔腾奔腾PCPC机的机的cachecache中,中,L1L1级数据级数据cachecache采用的是采用的是写一次法,写一次法,L2L2级
27、级cachecache采用的是写回法。采用的是写回法。3.6 3.6 虚拟存储器虚拟存储器v3.6.1 3.6.1 虚拟存储器的基本概念虚拟存储器的基本概念v一、什么叫一、什么叫虚拟存储器(虚拟存储器(Virtual MemoryVirtual Memory)v虚拟存储器是建立在主存虚拟存储器是建立在主存辅存物理结构的辅存物理结构的基础之上,由附加的硬件装置及操作系统存基础之上,由附加的硬件装置及操作系统存储管理软件组成的一种存储体系。它将主存储管理软件组成的一种存储体系。它将主存和辅存的物理空间统一编址,形成一个庞大和辅存的物理空间统一编址,形成一个庞大的存储空间,用户可在其中自由编程,感到
28、的存储空间,用户可在其中自由编程,感到的不再是处处受主存容量限制的存储系统。的不再是处处受主存容量限制的存储系统。但是,实质上但是,实质上CPUCPU仍只能执行调入主存的程仍只能执行调入主存的程序,所以称这种存储体系为虚拟存储器。序,所以称这种存储体系为虚拟存储器。3.6 3.6 虚拟存储器虚拟存储器v3.6.1 3.6.1 虚拟存储器的基本概念虚拟存储器的基本概念v二、虚地址和实地址(二、虚地址和实地址(VAVA:Virtual AddressVirtual Address,PAPA:Physical AddressPhysical Address)v引入虚拟存储器后用户编程时使用的指令地引
29、入虚拟存储器后用户编程时使用的指令地址叫做虚地址(逻辑地址),该地址允许涉址叫做虚地址(逻辑地址),该地址允许涉及的空间范围叫做及的空间范围叫做虚存空间(逻辑空间)虚存空间(逻辑空间)。v实际的主存单元地址叫做实地址(物理地址、实际的主存单元地址叫做实地址(物理地址、主存地址),对应的空间叫做主存地址),对应的空间叫做实存空间(物实存空间(物理空间、主存空间)理空间、主存空间)。v虚虚-实地址的变换。实地址的变换。三、虚拟存储器与三、虚拟存储器与cachecache存储器比较认识存储器比较认识v是两个不同层次的存储体系。是两个不同层次的存储体系。v两者在概念上有许多共同之处:两者在概念上有许多
30、共同之处:1 1、程序划分为信息块;、程序划分为信息块;2 2、程序运行时,信息块自动从慢速存储、程序运行时,信息块自动从慢速存储器向快速存储器调度;器向快速存储器调度;3 3、块的调出都采用一定的替换策略;、块的调出都采用一定的替换策略;4 4、新块的调入按一定的映射关系确定调、新块的调入按一定的映射关系确定调入的位置。入的位置。v两者也有许多不同之处:两者也有许多不同之处:1 1、作用不同:、作用不同:CacheCache存储器采用与存储器采用与CPUCPU速度相匹配的快速存速度相匹配的快速存储元件弥补了主存和储元件弥补了主存和CPUCPU之间的速度差距;之间的速度差距;而虚存的主要功能是
31、用来弥补主存和辅存之而虚存的主要功能是用来弥补主存和辅存之间的容量差距;间的容量差距;2 2、块长不同:、块长不同:两个存储体系均以信息块作为存储层次之间信两个存储体系均以信息块作为存储层次之间信息传送的单位,但息传送的单位,但cachecache与主存每次传送的信与主存每次传送的信息块定长,常为几十个字节;而主存和辅存息块定长,常为几十个字节;而主存和辅存之间即虚拟信息块的划分却有多种方案:页、之间即虚拟信息块的划分却有多种方案:页、段等,块长通常为几百段等,块长通常为几百几百几百K K字节;字节;3 3、层次间速度比不同:、层次间速度比不同:CPUCPU访问访问cachecache比访问慢
32、速主存快比访问慢速主存快510510倍;而倍;而虚存中主存速度比辅存快虚存中主存速度比辅存快10010001001000倍;倍;4 4、数据通路不同:、数据通路不同:主存主存cachecache体系中,体系中,CPUCPU与二者都有直接的通与二者都有直接的通路;而虚存中辅存与路;而虚存中辅存与CPUCPU之间无直接通路之间无直接通路(辅存向主存调块时间为(辅存向主存调块时间为msms级);级);5 5、透明程度不同:、透明程度不同:CacheCache存储器存取信息、地址变换和替换策略存储器存取信息、地址变换和替换策略全部用硬件实现,因而对各类程序员透明;全部用硬件实现,因而对各类程序员透明;
33、虚存基本由操作系统的存储管理软件辅助一虚存基本由操作系统的存储管理软件辅助一些硬件进行块的划分及主些硬件进行块的划分及主-辅间调度,所以对辅间调度,所以对设计系统软件的程序员不透明。设计系统软件的程序员不透明。3.6 3.6 虚拟存储器虚拟存储器3.6.1 3.6.1 虚拟存储器的基本概念虚拟存储器的基本概念v3.6.2 3.6.2 页式虚拟存储器页式虚拟存储器v 以页为基本信息传送单位的虚存以页为基本信息传送单位的虚存v一、页的划分及页式虚存的虚、实地址形式一、页的划分及页式虚存的虚、实地址形式v将主存和虚存空间分成大小相等的页,一页将主存和虚存空间分成大小相等的页,一页为为512512几几
34、K K字节。字节。v EX EX:主存容量:主存容量64K64K,地址,地址1616位,一页长位,一页长2K2K字字节,共节,共3232页。其地址空间图及虚、实地址形页。其地址空间图及虚、实地址形式如下:式如下:vEXEX:主存容量:主存容量64K64K,地址,地址1616位,一页长位,一页长2K2K字字节,共节,共3232页。页。00000 0000000000000000 0000000000000000 1 1 1 1 1 1 1 1 1 1100000 1 1 1 1 1 1 1 1 1 110000 1 000000000000000 1 000000000000000 1 1 1
35、1 1 1 1 1 1 1 110000 1 1 1 1 1 1 1 1 1 1 11000 10 00000000000000 10 00000000000000 10 1 1 1 1 1 1 1 1 1 11000 10 1 1 1 1 1 1 1 1 1 11000 1 1 00000000000000 1 1 000000000001 1 1 10 1 1 1 1 1 1 1 1 11 11 1 1 10 1 1 1 1 1 1 1 1 11 11 1 1 1 1 000000000001 1 1 1 1 000000000001 1 1 1 1 1 1 1 1 1 1 1 1 1 1
36、 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1主存空间主存空间第第0 0页页第第1 1页页第第2 2页页第第3131页页2K2K实地址实地址实地址形式:实地址形式:实页号实页号 页内地址页内地址类似有虚地址形式:类似有虚地址形式:虚页号虚页号 页内地址页内地址2K2K2K2K2K2Kv3.6.23.6.2页式虚拟存储器页式虚拟存储器v二、页表(二、页表(Page TablePage Table)v存储管理软件根据主存情况为每个运行程序存储管理软件根据主存情况为每个运行程序建立一个记录该程序的虚页调入主存时被安建立一个记录该程序的虚页调入主存时被安排在主存哪个实页位置,即虚页
37、号与实页号排在主存哪个实页位置,即虚页号与实页号的对照表。的对照表。v页表放在内存固定区域,页表项按虚页号排页表放在内存固定区域,页表项按虚页号排列。列。v例:程序例:程序A A有有4 4个虚页,其页表及虚、实空间个虚页,其页表及虚、实空间定位如下:定位如下:0 0虚页虚页装装入入位位修修改改位位替换替换控制控制位位其其他他实页号实页号1 13 38 84 40 0页页程程序序A A虚存空间虚存空间1 1页页3 3页页4 4页页8 8页页实存空间实存空间页表区中程序页表区中程序A A的页表的页表1 1 虚页虚页2 2虚页虚页3 3虚页虚页1 1页页2 2页页3 3页页三、虚三、虚实地址变换:程
38、序开始运行时,操作实地址变换:程序开始运行时,操作系统的存管软件把该程序的页表起始地址置入系统的存管软件把该程序的页表起始地址置入页表基地址寄存器。变换过程:页表基地址寄存器。变换过程:页表始地址页表始地址页表基地址寄存器页表基地址寄存器虚页号虚页号页内地址页内地址实页号实页号变换后的实地址变换后的实地址页表索引地址页表索引地址内存中的内存中的 页表区页表区来自来自CPUCPU的虚地址的虚地址EXEX:已知页式虚存中,某程序一条指令的虚地:已知页式虚存中,某程序一条指令的虚地址是址是0000 0111 11111 000000000 0111 11111 00000,该程序页表起始地址,该程序
39、页表起始地址为为00110011,页面大小为,页面大小为1K1K,下列内存单元末,下列内存单元末4 4位位状态(实页号)如下表:状态(实页号)如下表:指出该指令虚地址变换后的实地址。指出该指令虚地址变换后的实地址。1100 11111 00000 1100 11111 00000 内存区内存区000100010011001111001100007H007H300H300H307H307HP.125126P.125126习题习题9 9、CPUCPU执行一段程序时,执行一段程序时,cachecache完成存取的次完成存取的次数为数为24202420次,主存完成存取的次数为次,主存完成存取的次数为8
40、080次,次,已知已知cachecache存储周期为存储周期为40ns40ns,主存存储周期为,主存存储周期为240ns240ns,求,求cache/cache/主存系统的效率和平均访问主存系统的效率和平均访问时间。时间。解:解:Nc=2420Nc=2420次,次,Nm=80 Nm=80次次 h=Nc/h=Nc/(Nc+NmNc+Nm)=96.8%=96.8%Tc=40ns,Tm=240ns,r=Tm/Tc=6 Tc=40ns,Tm=240ns,r=Tm/Tc=6 cache/cache/主存系统效率为:主存系统效率为:e=1/(r+(1-e=1/(r+(1-r)h)86.2%r)h)86.2
41、%平均访问时间为:平均访问时间为:Ta=Tc/e=40ns/0.86246.4nsTa=Tc/e=40ns/0.86246.4nsP.125126P.125126习题习题1010、已知、已知cachecache存储周期存储周期40ns40ns,主存存储周期,主存存储周期200ns200ns,cache/cache/主存系统平均访问时间为主存系统平均访问时间为50ns50ns,求,求cachecache的命中率是多少?的命中率是多少?解:解:Tc=40nsTc=40ns,Tm=200nsTm=200ns,Ta=50nsTa=50ns Ta=hTc+Ta=hTc+(1-h1-h)TmTm Ta=h
42、Tc+Tm-hTm=Tm-Ta=hTc+Tm-hTm=Tm-(Tm-TcTm-Tc)h h h=h=(Tm-TaTm-Ta)/(Tm-TcTm-Tc)=(200-200-5050)/(200-40200-40)=150/160=93.75%=150/160=93.75%v11 11、主存容量为、主存容量为4MB4MB,虚存容量为,虚存容量为1GB1GB,则虚,则虚拟地址和物理地址各为多少位?如页面大小拟地址和物理地址各为多少位?如页面大小为为4KB4KB,则页表长度是多少?,则页表长度是多少?v解:主存解:主存4MB4MB,实地址为,实地址为2222位;位;v虚存虚存1GB1GB,虚地址为,虚
43、地址为3030位;位;v页面大小页面大小4KB4KB,页内地址,页内地址1212位。位。v所以虚页号占所以虚页号占30-12=1830-12=18位,即共有位,即共有256K256K个虚个虚页,页表长度也即页表项有页,页表长度也即页表项有256K256K个。个。v 12 12、假设可供用户程序使用的主存容量为、假设可供用户程序使用的主存容量为200KB200KB,而某用户的程序和数据所占的主存,而某用户的程序和数据所占的主存容量超过容量超过200KB200KB,但小于逻辑地址所表示的,但小于逻辑地址所表示的范围。请问:具有虚存和不具有虚存对用户范围。请问:具有虚存和不具有虚存对用户有何影响?有
44、何影响?v1212、解答(仅供参考):、解答(仅供参考):v(1 1)虚存仿佛扩大了整个主存的容量,)虚存仿佛扩大了整个主存的容量,用户可以使用远远大于主存的空间;对用户可以使用远远大于主存的空间;对于无虚存的主于无虚存的主辅结构,用户只能使用辅结构,用户只能使用主存或更确切地说是操作系统分配给他主存或更确切地说是操作系统分配给他的那部分主存;的那部分主存;v(2 2)用虚存,访存要作虚)用虚存,访存要作虚实地址的实地址的变换,无虚存则不用进行地址变换,但变换,无虚存则不用进行地址变换,但这件事不需一般用户关心;这件事不需一般用户关心;v(3 3)有虚存的存储空间分配是操作系)有虚存的存储空间
45、分配是操作系统完成的,而无虚存的主统完成的,而无虚存的主辅结构,空辅结构,空间的使用由应用程序进行。间的使用由应用程序进行。v1212、解答(续):、解答(续):所以,虚存必须是建立在主所以,虚存必须是建立在主辅结构上,辅结构上,但一般的主但一般的主辅结构并不就是虚存。虚辅结构并不就是虚存。虚存本质上是这样一种技术:在主存本质上是这样一种技术:在主辅结辅结构的基础上,利用管理技术将实际存在构的基础上,利用管理技术将实际存在的容量较小的主存虚构(模拟)成(让的容量较小的主存虚构(模拟)成(让用户感觉有)一个容量相当大的存储空用户感觉有)一个容量相当大的存储空间,使之能运行大于主存容量的程序。间,
46、使之能运行大于主存容量的程序。v1515、从下列有关存储器的描述中,选择、从下列有关存储器的描述中,选择出正确的答案:出正确的答案:v A A、多体交叉存储主要解决扩充容量问、多体交叉存储主要解决扩充容量问题。题。vB B、访问存储器的请求是由、访问存储器的请求是由CPUCPU发出的。发出的。vC C、cachecache与主存统一编址,即主存空间与主存统一编址,即主存空间的某一部分属于的某一部分属于cachecache。vD D、cachecache的功能全由硬件实现。的功能全由硬件实现。v1616、从下列有关存储器的描述中,选择出正、从下列有关存储器的描述中,选择出正确的答案:确的答案:v
47、A A、在虚拟存储器中,外存和主存以相同的方、在虚拟存储器中,外存和主存以相同的方式工作,因此允许程序员用比主存大得多的式工作,因此允许程序员用比主存大得多的外存空间编程。外存空间编程。vB B、在虚拟存储器中,逻辑地址转换成物理地、在虚拟存储器中,逻辑地址转换成物理地址是由硬件实现的,仅在页面失效时才由操址是由硬件实现的,仅在页面失效时才由操作系统将被访问页面从外存调到内存,必要作系统将被访问页面从外存调到内存,必要时还要先把被淘汰的页面内容写入外存。时还要先把被淘汰的页面内容写入外存。vC C、存储保护的目的是:在多用户环境中,既、存储保护的目的是:在多用户环境中,既要防止一个用户程序出错而破坏系统软件或要防止一个用户程序出错而破坏系统软件或其他用户程序,又要防止一个用户访问不是其他用户程序,又要防止一个用户访问不是分配给他的主存区,以达到数据安全和保密分配给他的主存区,以达到数据安全和保密的要求。的要求。