您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 湖南大学计算机与通信学院
1第九章存储层次9.1存储器的层次结构9.2Cache存储器9.3虚拟存储器9.4基本Cache和虚拟存储器的扩展9.5实例:Pentium/Windows个人计算机上的内存管理同济大学软件学院29.1存储器的层次结构图9.1一般的存储器层次物理内存:由动态RAM组成。Cache存储器:由静态RAM构成,比DRAM快得多,但也昂贵的多。Cache是物理内存的部分副本。虚拟存储器:空间比物理内存大得多的逻辑空间。39.2Cache存储器目标:弥补主存速度的不足9.2.1相联存储器◆一般存储器接收一个地址,访问该地址中的数据。◆相联存储器:按内容访问的存储器。并行搜索所有单元,标记那些与特定数据匹配的单元,然后连续读出匹配的数据值。41.相联存储器的内部组织结构52.读数据CPU必须给出两个值:◆第一个值:要被匹配的数据值(参数或数据)◆第二个值:哪些位需要检查(屏蔽位或关键位)如果满足如下的公式,则匹配就会发生15'',0(())1jjijijkDMV6例如(参考图9.2):屏蔽寄存器K1111000000000000数据寄存器D1010XXXXXXXXXXXX数据位M1010110100000111执行0000XXXXXXXXXXXX执行1111XXXXXXXXXXXX执行1111111111111111DM'()DM''(()kDM73.将数据写回相联存储器CPU把数据送到数据寄存器并发出写信号。相联存储器检查所有单元的有效位,并找到有效位为0的一个单元,如果找到,把数据存到这个单元,同时将有效位设为1。如果没有找到,必须采用替换算法清除一个单元来保存数据。8常见的替换算法•FIFO•LRU•RANDOM9.2.2相联映象的Cache存储器964K8位内存16642K10◆作用于数据行或数据块的相联存储器119.2.3直接映象的Cache存储器一种利用标准的SRAM、廉价的Cache映射方案。12◆索引Cache地址的低位,用来选择Cache的一个特定单元。◆标识原始地址中不是索引的那些高位。设M=2m,则当表示为二进制数时,j实际上就是i的低m位:m位ji:i:主存地址j:Cache地址13◆Cache容量:1K14◆相对简单的CPU中,块大小为4字节的直接映像Cache159.2.4组相联映像的cache存储器16◆考察大小为1k的2路组相联cache该cache有1k个数据入口,每个单元2个数据值,因此有512个单元用9个地址位选择cache单元,剩下的7位说明标识值计数值用来纪录数据什么时候被访问过了组数17◆相对简单CPU中具有4字节数据行的2路组相联cache189.2.5在cache中替换数据问题的引出:当cache已满时,又有新数据要调入cache,需将哪个数据移出cache。1.FIFO先进先出原则2.LRU近期最少使用原则3.随机策略19例:在一个4路组相联cache单元中应用LRU策略TDCVTDCVTDCVTDCVCc21Bb11Aa01---01.Cache单元的当前状态2.CPU访问DCc31Bb21Aa11Dd013.CPU访问E4.CPU访问AEe01Bb31Aa21Dd11Ee11Bb31Aa01Dd21209.2.6写数据到cache写直达法每次信息从CPU写入cache单元中时,也要写回相应的物理内存单元中回写法写入cache中的值并不总是被写回物理内存。仅在数据被移出cache时写回物理内存。21处理写失效问题按写分配法把单元装入cache,然后使用写直达法或写回法把数据写到cache不按写分配法直接更新物理内存中的值,而不把值写回Cache。229.2.7cache的性能1.评判性能的标准◆命中率与失效率Cache命中率:CPU访问Cache时,在Cache中找到数据的概率。Cache失效率:CPU访问Cache时,在Cache中找不到数据的概率。◆平均访问时间Tm=hTc+(1-h)Tp23表9.1hTm(单位ns)0600.1550.2500.3450.4400.5350.6300.7250.8200.915110Tc=10nsTp=60ns结论:增加命中率能够减少平均访问时间242.如何计算命中率和平均访问时间?例:CPU访问下列顺序单元:每一个值的下标是由物理内存地址的低3位来描述的。A0B0C2A0D1B0E4F5A0C2D1B0G3C2H7I6A0B0现在我们确定在三种不同cache配置下的命中率和平均访问时间。假设:Tc=10nsTp=60ns25◆8字节相联cache初始化为空,使用FIFO的替换策略。访问:18次命中:7次命中率:h=0.389平均访问时间:Tm=40.56ns26◆直接映射cacheDataABCADBEFACDBGCHIAB0ABBAABBBAAABBBBBABC1DDDDDDDDDDDDDDA2CCCCCCCCCCCCCCCCC3GGGGGGH4EEEEEEEEEEEEE5FFFFFFFFFFF6|||7HHHHHit?√√√命中率:h=0.167平均访问时间:Tm=50.67ns27◆8字节的2路组相联cacheCache使用LRU替换策略。命中率:h=0.389平均访问时间:Tm=40.56ns28考虑这个同样的系统。有2字节的数据行组成相关行的数据对;A和J;B和D;C和G;E和F;I和H使用相同的替换策略(相联cache采用FIFO,组相联采用LRU)相同的访问时间(Tc=10ns,Tp=60ns)29DataABCADBEFACDBGCHIABAAAAAAAAAAAAAA||||CJJJJJJJJJJJJJJJHHHHABBBBBBBBBBBBBBBAACDDDDDDDDDDDDDDDJJHCCCCCCCCCCCCCCCBEGGGGGGGGGGGGGGGDEEEEEEEEEEEEFFFFFFFFFFFFHit?√√√√√√√√√√√相联cache:命中率h=0.611平均访问时间Tm=29.44ns30DataABCADBEFACDBGCHIAB0ABBABBBBAABBBBBBABC1JDDJDDDDJJDDDDDDJDA2CCCCCCCCCCCCCCCCC3GGGGGGGGGGGGGGGGH4EEEEEEEEEEEEE5FFFFFFFFFFFF6|||7HHHHHit?√√√√√√√直接映射cache:h=0.389Tm=40.56ns319.3虚拟存储器存储管理单元在物理内存和较慢的存储设备间移动数据虚拟存储器的主要实现方法:分页和分段交换磁盘交换文件329.3.1分页页面:在分页技术中,整个逻辑地址空间被划分为连续的块叫做页面页面的特点:1.每个页尺寸相同2.页面不可重叠,每个逻辑地址确切地属于某个页面333.一个页面或者包含程序指令或者包含数据,不能同时包含两者4.可能导致内部碎片问题内部碎片:假设MMU实现的页式存储器中每个页面大小为4K,一个4K+1大小的程序需要MMU分配两个存储器页面,尽管它的第二个页面只用了4K单元的一个单元,这就是所谓的内存碎片34图9.10相对简单CPU一种可能的内存配置它具有64k的逻辑地址空间,16k的物理内存,页面大小4k35分页系统必须解决的问题:1.何时将某页移入内存?2.CPU如何在物理内存找到数据,尤其逻辑地址和物理地址不一至的情况下?3.当所有页框都装有页面,而CPU需要访问的数据不在这些页面怎么办?36存储管理单元处理上述所有问题完成逻辑地址到物理地址的转换产生缺页故障,将数据从页面装入到物理内存产生请求页,把新的请求页移入到物理内存37图9.11存储器层次结构中的MMU配置38在处理器需要访问数据,MMU将数据从逻辑地址装入物理地址的整个处理过程中,CPU没有访问物理单元的任何信息例:指令LDAC4324H如何理解?答案:1.把数据从逻辑地址4234H装入累加器2.将逻辑单元4234H的数据装入累加器,此数据实际存储在物理单元3234H中系统更倾向解释成139页表的概念MMU用页表来跟踪哪一页存储在哪个帧中页表的组成(如图9.12):1.帧指示域(frame)2.有效位(valid)3.计数值(count,有些页表不需要)4.脏位(dirty)40图9.12(a)为页表,(b)为对应的物理内存相对简单CPU的页表,有16K的物理内存,页面大小为4K。页表包含了16个单元,每一单元对应逻辑地址空间的一个页面,它包含一个2bit的域,表明了该逻辑页存储在哪一个页框中每一单元还包含一个有效位0页,对应于逻辑地址0000H~1FFFH,存储在1号页框中,物理地址为1000H~1FFFH41MMU中逻辑地址到物理地址的转换MMU将逻辑地址看作两个部分页和偏移量例:考虑LDAC4234H,MMC如何将逻辑地址4234H转换成物理地址(如图9.13)42图9.13用页表将逻辑地址转换成物理地址高4位逻辑地址表明页号,剩下的12位为偏移量四个高位为0100页框号11表明页被映射到页框3此值与12位的偏移量拼接,生成物理地址1100100011010043图9.13所示的MMU并没有很好的转换地址?因为从页表中读页框号会有一个延时,并且由于取出相邻的指令,系统可能连续的成百上千次的读这一相同的值变换旁视缓冲器可以解决上述问题(图9.14),其功能跟页表一样,可产生帧值,但它更快,这样就提高了性能44图9.14使用TLB转换逻辑地址到物理地址注意TLB没有必要包含计数位或者脏位,因为这些信息仍然保存在页表中。TLB中的每一个地址入口包含在页表中,但反过来不成立45例:考虑一台含有相对简单CPU,相同内存配置的计算机。它必须取、翻译和执行下列程序(如表9.8)0000H:LDAC4234H0003H:STAC4235H0006H:JUMP1000H1000-1063H:(100registerinstructions)1064H:JUMP2000H2000H-2031H:(50registerinstructions)2032H:JUMP0100H0100H-01C7H:(200registerinstructions)01C8H:JUMP3000H3000H-3063H:(100registerinstructions)3064H:JUMP0000H4234H:27H(datavalue)46PageTableAdress0000H0003H0006H1000H-1064H2000H-2032H0100H-01C8H3000H-3064H0000HPageFVCDFVCDFVCDFVCDFVCDFVCDFVCDFVCD00110011001100110012001100110011012100211021202130-0--231003110312031303110011204110011011111112111311131-0--2100表9.8使用LRU替换算法的部分页表和TLB值TLBPFVPFVPFVPFVPFVPFVPFVPFV001001001001001001001001411411411411411411311311---0---0---0121121121121421---0---0---0---023123123123147PageTableAdress0000H0003H-0006H1000H-1064H2000H-2032H0100H-01C8H3000H-3064H0000HPageFVDFVDFVDFVDFVDFVDFVD0010010010010010--0-1101210210210210--0-231031031031030100104110111111111111111210表9.9使用FIFO替换算法的部分页表和TLB值PFVPFVPFVPFVPFVPFVPFV001001001001001301301411411411411411411011---0---
本文标题:湖南大学计算机与通信学院
链接地址:https://www.777doc.com/doc-317375 .html