第九章存储器结构_第1页
第九章存储器结构_第2页
第九章存储器结构_第3页
第九章存储器结构_第4页
第九章存储器结构_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、湖南大学计算机与通信学院1第第9 9章章 存储器结构存储器结构9.1 存储器的层次结构存储器的层次结构9.2 Cache存储器存储器9.3 虚拟存储器虚拟存储器9.4 基本基本Cache和虚拟存储器的扩展和虚拟存储器的扩展9.5 实例:实例:Pentium/Windows个人计算机个人计算机 上的内存管理上的内存管理湖南大学计算机与通信学院29.1 存储器的层次结构存储器的层次结构图图9.1 一般的存储器层次一般的存储器层次物理内存物理内存:由动态:由动态RAM组成。组成。Cache存储器存储器:由静态:由静态RAM构成,比构成,比DRAM快得多,但也快得多,但也 昂贵的多。昂贵的多。Cach

2、e是物理内存的部分副本。是物理内存的部分副本。虚拟存储器虚拟存储器:空间比物理内存大得多逻辑空间。虚拟管理器:空间比物理内存大得多逻辑空间。虚拟管理器 通过在物理内存和一个存储介质之间调度来达通过在物理内存和一个存储介质之间调度来达 到访问的目的。到访问的目的。湖南大学计算机与通信学院3哈佛结构:哈佛结构: 计算机存储系统的计算机存储系统的Cache层次中,每一级层次中,每一级Cache包含两个单独的包含两个单独的Cache存储器,其中存储器,其中 一个是指令一个是指令Cache,一个是数据,一个是数据Cache。9.2 Cache存储器存储器 大部分计算机在大部分计算机在CPUCPU和物理内

3、存之间包含一个较和物理内存之间包含一个较小容量的小容量的CacheCache存储器,而不是使用存储器,而不是使用CacheCache存储存储器构建计算机的整个存储系统。目标是在合理器构建计算机的整个存储系统。目标是在合理的价格下减少处理器的内存访问时间。的价格下减少处理器的内存访问时间。湖南大学计算机与通信学院49.2.1 相联存储器相联存储器一般存储器:接收一个地址,访问该地址中的一般存储器:接收一个地址,访问该地址中的 数据。数据。相联存储器:并行搜索所有单元,标记那些与相联存储器:并行搜索所有单元,标记那些与 特定数据特定数据 匹配的单元,然后连续匹配的单元,然后连续 读出匹配的数据值。

4、读出匹配的数据值。湖南大学计算机与通信学院5 考虑一个由考虑一个由8 8个个字单元组成的字单元组成的简单的相联存简单的相联存储器,每个单储器,每个单元有元有16 16 位,如位,如图图9.29.2所示。所示。 除数据位外,除数据位外,每单元都有一每单元都有一个额外的标记个额外的标记位位V V。(数据有。(数据有效位,为效位,为1 1说明说明这个单元数据这个单元数据有效,为有效,为0 0说明说明数据无效数据无效 )图图9.2 相联存储器的相联存储器的内部组织结构内部组织结构湖南大学计算机与通信学院6为了从相联存储器中读出一个值,为了从相联存储器中读出一个值,CPU必必须给出两个值,即要被匹配的数

5、据值、以须给出两个值,即要被匹配的数据值、以及哪些位需要检查。第一个值是及哪些位需要检查。第一个值是参数参数或或数数据据,第二个值是,第二个值是屏蔽位屏蔽位或或关键位关键位 如果满足如下的公式,则匹配就会发生如果满足如下的公式,则匹配就会发生15,0() )1jji jijkDMV湖南大学计算机与通信学院71.1. 屏蔽寄存器中值为屏蔽寄存器中值为1 1的每一位,单元中的值与数的每一位,单元中的值与数据寄存器中的值都相同据寄存器中的值都相同2.2. 单元的有效位被设置为单元的有效位被设置为1 1;例如例如( (参考图参考图9.2)9.2):屏蔽寄存器屏蔽寄存器K K 1111 0000 000

6、0 00001111 0000 0000 0000数据寄存器数据寄存器D D 1010 XXXX XXXX XXXX1010 XXXX XXXX XXXX数数 据据 位位M M 1010 1101 0000 01111010 1101 0000 0111执行执行 0000 XXXX XXXX XXXX0000 XXXX XXXX XXXX执行执行 1111 XXXX XXXX XXXX1111 XXXX XXXX XXXX执行执行 1111 1111 1111 11111111 1111 1111 1111DM()DM()kDM湖南大学计算机与通信学院8Vi始终为始终为1,所以最终结果为:,所

7、以最终结果为:1111 1111 1111 1111 找到一个匹配找到一个匹配因此该数据位因此该数据位M对应的匹配寄存器的一个对应的匹配寄存器的一个单元设置为单元设置为1湖南大学计算机与通信学院9将数据写回相联存储器将数据写回相联存储器CPU把数据送到数据寄存把数据送到数据寄存器并发出写信号。相联存器并发出写信号。相联存储器检查所有单元的有效储器检查所有单元的有效位,并找到有效位为位,并找到有效位为0的一的一个单元,如果找到,把数个单元,如果找到,把数据存到这个单元,同时将据存到这个单元,同时将有效位设为有效位设为1。如果没有找。如果没有找到,必须采用到,必须采用替换算法替换算法清清除一个单元

8、来保存数据。除一个单元来保存数据。 常见的替换算法常见的替换算法l FIFOl LRUl RANDOM湖南大学计算机与通信学院109.2.2 相联映象的相联映象的Cache存储器存储器图图 9.3 相对简单相对简单CPU的相联的相联Cache64K的的8位内存位内存16642K 湖南大学计算机与通信学院11图图9.3中:中:l 每一个单元中的前每一个单元中的前16位由内存地址构成,可以位由内存地址构成,可以寻址到寻址到64K的地址空间。的地址空间。l 后后8位描述的是存储在该物理内存地址中的数据。位描述的是存储在该物理内存地址中的数据。l 屏蔽寄存器只需设置一次。在上图中可以设成屏蔽寄存器只需

9、设置一次。在上图中可以设成1111 1111 1111 1111 0000 0000湖南大学计算机与通信学院12作用于数据行或数据块的相联存储器作用于数据行或数据块的相联存储器l存储器在每个单元存储存储器在每个单元存储4个字节的数据。个字节的数据。(如图(如图9.4)l同一个单元的同一个单元的4个数据具有相同的高位地个数据具有相同的高位地址,即高址,即高14位相同。位相同。l比图比图9.3中的相联存储器采用了更多的位中的相联存储器采用了更多的位数数 (46位位 vs 24位)。位)。湖南大学计算机与通信学院13图图 9.4 相对简单相对简单CPU中,行大小中,行大小 为为4字节的相联字节的相联

10、Cache湖南大学计算机与通信学院14优点:优点: 利用了利用了访问的局部性原理访问的局部性原理:当内存单元:当内存单元X中的中的指令被访问时,下一条被执行的指令非常有可指令被访问时,下一条被执行的指令非常有可能就在内存单元能就在内存单元X+1中。中。 例如:例如:当访问地址当访问地址0单元的时候,整个块(单元的时候,整个块(0,1,2,3)的值都被从物理内存读入)的值都被从物理内存读入Cache。 当当CPU下次要执行在内存单元下次要执行在内存单元1、2、3中的指中的指令时,它们已在令时,它们已在cache中即能被访问,而不必中即能被访问,而不必从较慢的物理内存中读取。从较慢的物理内存中读取

11、。湖南大学计算机与通信学院15 不仅指令具有访问的局部性,数据同样不仅指令具有访问的局部性,数据同样也具有访问的局部性也具有访问的局部性 如编译器通常将一列数组元素安排到相如编译器通常将一列数组元素安排到相邻的内存单元中,以方便处理器顺序访邻的内存单元中,以方便处理器顺序访问数据值。问数据值。 湖南大学计算机与通信学院169.2.3 直接映象的直接映象的Cache存储器存储器一种利用标准的一种利用标准的SRAM、廉价的、廉价的Cache映射方案映射方案物理内存物理内存Cache深度为深度为1k64k x 8位位xxxx xx11 1111 111111 1111 1111湖南大学计算机与通信学

12、院17l 索引索引Cache地址的低十位,用来选择地址的低十位,用来选择Cache的一个特定单元的一个特定单元l 标签标签原始地址中不是索引的那些高位。原始地址中不是索引的那些高位。直接映象的直接映象的Cache存储器一个单元包括(图存储器一个单元包括(图9.5):标签标签数据数据有效值有效值湖南大学计算机与通信学院18图图9.5 相对简单相对简单CPU的直接映象的直接映象Cache湖南大学计算机与通信学院19另外一种直接映像另外一种直接映像Cache存储器存储器图图9.6:相对简单的相对简单的CPU中,中,行大小为行大小为4字节的直接映字节的直接映像像Cache湖南大学计算机与通信学院20直

13、接映像的直接映像的Cache存储器存储器 优点:优点:价格低价格低容量大容量大 缺点:缺点: 灵活性差灵活性差 如前所述,物理内存中如前所述,物理内存中任何形式为任何形式为xxxx xx11 1111 1111的地址都只能的地址都只能映射到映射到Cache中地址为中地址为11 1111 1111的单元中的单元中湖南大学计算机与通信学院21JUMP 1000HJUMP 0000H考虑下面的代码:考虑下面的代码:0000 0000 0000 0000(0000H):JUMP 1000H0001 0000 0000 0000(1000H):JUMP 0000H直接映象直接映象Cache地址地址00

14、0000 0000湖南大学计算机与通信学院22 第一条指令被取出放入第一条指令被取出放入cache中。基于低中。基于低10位地址位,位地址位,它被映射到它被映射到cache单元单元00 0000 0000。标识域被设置。标识域被设置为地址位中的为地址位中的6个高位,即个高位,即00 0000。现在,它被执。现在,它被执行,行,CPU在单元在单元1000H中取指令,它的低中取指令,它的低10位也为位也为00 0000,因此,它被取出并装入,因此,它被取出并装入cache中,并且设中,并且设置标识值为置标识值为00 0100,覆盖以前的值。,覆盖以前的值。JUMP跳转反跳转反过来执行到单元过来执行

15、到单元0000H,这样,尽管其他,这样,尽管其他cache单元单元全都可用,但这两条指令仍会不断的彼此覆盖。全都可用,但这两条指令仍会不断的彼此覆盖。湖南大学计算机与通信学院239.2.4 组相联映像的组相联映像的cache存储器存储器特点特点l 灵活性增强灵活性增强减少由直接映像带来的覆盖数据的问题减少由直接映像带来的覆盖数据的问题l 采用比较便宜的采用比较便宜的SRAMN路组相联:路组相联:每个单元能够包含每个单元能够包含N个字节或字个字节或字直接映像的直接映像的cache可以看作是一个一路可以看作是一个一路组相联映像组相联映像cache存储器存储器湖南大学计算机与通信学院24考察大小为考

16、察大小为1k的的2路组相联路组相联cache(如图(如图9.7)l 该该cache有有1k个数据入口,每个单元个数据入口,每个单元2个数据值,因此有个数据值,因此有512个单元个单元l 用用9个地址位选择个地址位选择cache单元,剩下的单元,剩下的7位说明标签值位说明标签值l 计数值用来纪录数据什么时候被访问过了计数值用来纪录数据什么时候被访问过了图图9.7 相对简单相对简单CPU的的2路组相联路组相联cache湖南大学计算机与通信学院25JUMP 1000HJUMP 0000H重新考虑下面的代码:重新考虑下面的代码:0000 0000 0000 0000(0000H):JUMP 1000H

17、0001 0000 0000 0000(1000H):JUMP 0000H组相联映象组相联映象cache地址地址00 0000 0000湖南大学计算机与通信学院26 用在用在9.2.3的代码例子中,的代码例子中,cache就不会覆盖就不会覆盖任一条指令。任一条指令。JUMP 1000H这条指令将会被这条指令将会被取出存入取出存入cache单元单元0的一路中。然后,指令的一路中。然后,指令0000H将会被取出放入同一单元的另一路中。将会被取出放入同一单元的另一路中。从这可以看出,指令都从从这可以看出,指令都从cache取出并被连取出并被连续的执行。续的执行。湖南大学计算机与通信学院27一种采用数

18、据行的组相联一种采用数据行的组相联cache图图9.8 相对简单相对简单CPU中具有中具有4字节数据行的字节数据行的2路组相联路组相联cache湖南大学计算机与通信学院289.2.5 在在cache中替换数据中替换数据问题的引出:计算机开始执行一个程序。它问题的引出:计算机开始执行一个程序。它从内存中取指令和数据,同时从内存中取指令和数据,同时将这些值载入将这些值载入cache。当。当cache为为空或很少被占用时,会工作的空或很少被占用时,会工作的很好。但是,最终计算机会要很好。但是,最终计算机会要将数据移入到已占用的将数据移入到已占用的cache单单元。此时,将哪个数据移出元。此时,将哪个

19、数据移出cache,以及此数据如何在保存,以及此数据如何在保存到物理内存,这一问题就变得到物理内存,这一问题就变得至关重要至关重要 湖南大学计算机与通信学院29替换策略:替换策略:1. FIFO 先进先出原则先进先出原则2. LRU 近期最少使用原则近期最少使用原则3. 随机策略随机策略湖南大学计算机与通信学院301.FIFO 先进先出策略先进先出策略l 按顺序填充相联存储器,当按顺序填充相联存储器,当cache占满时返回最顶单元,用新数据占满时返回最顶单元,用新数据替换原有数据替换原有数据l 只要一个寄存器就能实现只要一个寄存器就能实现该寄存器保存下一个要被替换的该寄存器保存下一个要被替换的

20、单元的指针单元的指针l 性能较好性能较好湖南大学计算机与通信学院312. LRU 近期最少使用策略近期最少使用策略l 跟踪单元的访问顺序,用新的数跟踪单元的访问顺序,用新的数据替换近期最少使用的数据据替换近期最少使用的数据l 每个每个cache单元需要一个计数器单元需要一个计数器最近访问的数据,将相应的计数最近访问的数据,将相应的计数器置为器置为0;其余的计数器依次加;其余的计数器依次加1l 性能好性能好湖南大学计算机与通信学院32例:在一个例:在一个4路组相联路组相联cache单元中应用单元中应用LRU策略策略T D C V T D C V T D C V T D C VC c2 1B b1

21、 1A a0 1-01.Cache单元的当前状态单元的当前状态2.CPU访问访问DT D C V T D C V T D C V T D C VC c3 1B b2 1A a1 1D d0 1湖南大学计算机与通信学院333.CPU访问访问ET D C V T D C V T D C V T D C VE e0 1B b3 1A a2 1D d1 14.CPU访问访问AT D C V T D C V T D C V T D C VE e1 1B b3 1A a0 1D d2 1湖南大学计算机与通信学院343.RANDOM 随机策略随机策略l 随机的选择一个单元给新的数据随机的选择一个单元给新的数

22、据使用使用l 性能较好,与性能较好,与FIFO策略差不多策略差不多湖南大学计算机与通信学院359.2.6 写数据到写数据到cachel 写直达法写直达法每次信息从每次信息从CPU写入写入cache单元单元中时,也要写回相应的物理内存中时,也要写回相应的物理内存单元中单元中 l 回写法回写法写入写入cache中的值并不总是被写中的值并不总是被写回物理内存。仅在数据被移出回物理内存。仅在数据被移出cache时写回物理内存一次时写回物理内存一次 湖南大学计算机与通信学院36处理写失效问题处理写失效问题l 按写分配法按写分配法把单元装入把单元装入cache,然后使用写,然后使用写直达法或写回法把数据写

23、到直达法或写回法把数据写到cache l 不按写分配法不按写分配法直接更新物理内存中的值,而直接更新物理内存中的值,而不把值写回不把值写回cache 湖南大学计算机与通信学院379.2.7 cache的性能的性能评判性能的标准评判性能的标准lCache命中命中要访问的数据已在要访问的数据已在cache中中lCache失效失效要访问的数据不在要访问的数据不在cache中中湖南大学计算机与通信学院38命中率:命中率:指由指由cache(而不是物理内存)(而不是物理内存) 提供服务的访存百分比提供服务的访存百分比 平均访问时间:平均访问时间:是是cache访问时间访问时间Tc和内和内 存访问时间存访

24、问时间Tp的加权平均,权的加权平均,权 值是值是hTm=h Tc+(1-h) Tp 失效率:失效率:指由物理内存(而不是指由物理内存(而不是cache ) 提供服务的访存百分比提供服务的访存百分比 湖南大学计算机与通信学院39表表9.19.1h hTm(Tm(单位单位ns)ns)0 060600.10.155550.20.250500.30.345450.40.440400.50.535350.60.630300.70.725250.80.820200.90.915151 11010Tc=10nsTp=60ns结论:增加命中率结论:增加命中率能够减少平均访问能够减少平均访问时间时间湖南大学计算

25、机与通信学院40 现在来考虑前面所讨论过的各种映射策略是现在来考虑前面所讨论过的各种映射策略是如何计算命中率和平均访问时间的。如何计算命中率和平均访问时间的。 假定一台计算机含有假定一台计算机含有8字节的相联字节的相联cache,或,或者直接映射者直接映射cache,或者,或者2路组相联路组相联cache。CPU访问下列单元序列,每个值的下标是其物理内存访问下列单元序列,每个值的下标是其物理内存地址的低地址的低3位。位。A0 B0 C2 A0 D1 B0 E4 F5 A0 C2 D1 B0 G3 C2 H7 I6 A0 B0 现在我们来确定在三种不同现在我们来确定在三种不同cache配置下的配

26、置下的命中率和平均访问时间,还是假设命中率和平均访问时间,还是假设TC10ns,TP60ns。 湖南大学计算机与通信学院41 首先考虑相联首先考虑相联cache,它初始化为空,使用,它初始化为空,使用FIFO的替换策略。的替换策略。 在在18次访问中,有次访问中,有7次命中,命中率为次命中,命中率为h0.389,平均访问时间为平均访问时间为TM40.56ns。 表表9.2 相联相联cache的执行轨迹的执行轨迹 湖南大学计算机与通信学院42 直接映射直接映射cache的结果如表的结果如表9.3所示,所示,有有3次命中,次命中,其命中率其命中率h0.167,平均访问时间,平均访问时间TM50.6

27、7ns。 表表9.3 直接映射直接映射cache的执行轨迹的执行轨迹 Data ABCADBEFACDBGCHIAB 0ABBAABBBAAABBBBBAB C 1 DDDDDDDDDDDDDD A 2 CCCCCCCCCCCCCCCC C 3 GGGGGG H 4 EEEEEEEEEEEE E 5 FFFFFFFFFFF 6 | 7 HHHH Hit? 湖南大学计算机与通信学院43 最后,最后,2路组相联路组相联cache的结果如表的结果如表9.4所示,使所示,使用了用了LRU替换策略和计数值。该替换策略和计数值。该cache有有7次命中,次命中,其命中率其命中率h0.389,平均访问时间,

28、平均访问时间TM40.56ns。 DataABCADBEFACDBGCHIAB 0C 0 A -0A -1B -0A -1B -0A -0B -1A -0B -1A -1B -0E -0B -1E -0B -1E -1A -0E -1A -0B -0A -1B -0A -1B -0A -1B -0A -1B -0A -1B -0A -1B -1A -0B -0A -0A 1C 1 D -0D -0D -0D -1F -0D -1F -0D -1F -0D -0F -1D -0F -1D -0F -1D -0F -1D -0F -1D -0F -1D -0F -1D -0F -1H 2E 2 C

29、 -0C -0C -0C -0C -0C -0C -0C -0C -0C -0C -0C -0C -0C -01 -0C -01 -0C -01 -0 33 G-0G-0G-1H -0G-1H -0G-1H -0G-1H -0Hit? 表表9.4 2路组相联路组相联cache的执行轨迹的执行轨迹 E-1湖南大学计算机与通信学院44 现在,考虑这个同样的系统,但这次有现在,考虑这个同样的系统,但这次有2字字节的数据行。组成相关行的数据对有节的数据行。组成相关行的数据对有A和和J,B和和D,C和和G,E和和F,I和和H。使用上例相同的替换。使用上例相同的替换策略(相联策略(相联cache采用采用F

30、IFO,组相联采用,组相联采用LRU),),相同的访问时间(相同的访问时间(TC10ns,TP60ns),我),我们来重新计算们来重新计算cache的性能。相联、直接和的性能。相联、直接和2路组路组相联相联cache的执行轨迹分别如表的执行轨迹分别如表9.5、9.6和和9.7所所示。示。 湖南大学计算机与通信学院45表9.5 2字节行大小的相联cache的执行轨迹 DataABCADBEFACDBGCHIAB AAAAAAAAAAAAAA| CJJJJJJJJJJJJJJJHHHH A BBBBBBBBBBBBBBBAA C DDDDDDDDDDDDDDDJJ H CCCCCCCCCCCCCC

31、CB E GGGGGGGGGGGGGGGD EEEEEEEEEEEE FFFFFFFFFFFFHit? 相联cache的h0.611,TM29.44ns湖南大学计算机与通信学院46表9.6 2字节行大小的直接映射cache的执行轨迹 Data ABCADBEFACDBGCHIAB 0ABBABBBBAABBBBBBAB C 1JDDJDDDDJJDDDDDDJD A 2 CCCCCCCCCCCCCCCC C 3 GGGGGGGGGGGGGGGG H 4 EEEEEEEEEEEE E 5 FFFFFFFFFFFF 6 I| 7 HHHH Hit? 直接映射cache的h0.389,TM40.56

32、ns湖南大学计算机与通信学院47表9.7 2字节行大小的2路组相联cache的执行轨迹 2路组相联cache的h0.611,TM29.44nsDataABCADBEFACDBGCHIAB 0C 1A 0C 1H 2E 3 2 3A-0J-0A-1J-1A-1J-1A-0J-0A-1J-1A-1J-1E-0F-0E-0F-0E-1F-1E-1F-1B-0D-0B-0D-0B-0D-0B-0D-0B-0D-0B-0D-0B-1D-1B-0D-0B-0D-0B-0D-0B-1D-1B-0D-0B-0D-0B-1D-1B-1D-1A-0J-0A-0J-0A-1J-1A-1J-1A-1J-1A-1J-1

33、A-1J-1A-1J-1A-0J-0A-1J-1C-0G-0C-0G-0C-0G-0C-0G-0C-0G-0C-0G-0C-0G-0C-0G-0C-0G-0C-0G-0C-0G-0C-0G-0C-1G-1C-1G-1C-1G-1C-1G-1I-0H-0I-0H-0I-0H-0I-0H-0Hit?湖南大学计算机与通信学院489.3 虚拟存储器虚拟存储器l 存储管理单元存储管理单元在物理内存和较慢的在物理内存和较慢的存储设备存储设备间移动数据间移动数据l 虚拟存储器的主要实现方法:分页和分段虚拟存储器的主要实现方法:分页和分段交换磁交换磁盘盘交换文交换文件件湖南大学计算机与通信学院499.3.1

34、分页分页页面页面:在分页技术中,整个逻辑地址空在分页技术中,整个逻辑地址空间被划分为连续的块叫做页面间被划分为连续的块叫做页面页面的特点:页面的特点:1. 每个页尺寸相同每个页尺寸相同2. 页面不可重叠,每个逻辑地址确切地页面不可重叠,每个逻辑地址确切地属于某个页面属于某个页面湖南大学计算机与通信学院503. 一个页面或者包含程序指令或者一个页面或者包含程序指令或者包含数据,不能同时包含两者包含数据,不能同时包含两者4. 可能导致可能导致内部碎片内部碎片问题问题内部碎片:内部碎片:假设假设MMU实现的页式实现的页式存储器中每个页面大小为存储器中每个页面大小为4K,一,一个个4K+1大小的程序需

35、要大小的程序需要MMU分分配两个存储器页面,尽管它的第配两个存储器页面,尽管它的第二个页面只用了二个页面只用了4K单元的一个单单元的一个单元,这就是所谓的内存碎片元,这就是所谓的内存碎片湖南大学计算机与通信学院51图图9.10 相对简单相对简单CPU一种可能的内存配置一种可能的内存配置 它具有它具有64k的逻辑地址空间,的逻辑地址空间,16k的物理内存,页面大小的物理内存,页面大小4k湖南大学计算机与通信学院52分页系统必须解决的问题:分页系统必须解决的问题:1. 何时将某页移入内存?何时将某页移入内存?2. CPU如何在物理内存找到数据,尤如何在物理内存找到数据,尤其逻辑地址和物理地址不一至

36、的情其逻辑地址和物理地址不一至的情况下?况下?3. 当所有页框都装有页面,而当所有页框都装有页面,而CPU需需要访问的数据不在这些页面怎么办?要访问的数据不在这些页面怎么办?湖南大学计算机与通信学院53存储管理单元处理上述所有问题存储管理单元处理上述所有问题l 完成逻辑地址到物理地址的转换完成逻辑地址到物理地址的转换l 产生产生缺页故障缺页故障,将数据从页面装入到物理,将数据从页面装入到物理内存内存l 产生产生请求页请求页,把新的请求页移入到物理内,把新的请求页移入到物理内存存湖南大学计算机与通信学院54图图9.11 存储器层次结构中的存储器层次结构中的MMU配置配置湖南大学计算机与通信学院5

37、5在处理器需要访问数据,在处理器需要访问数据,MMU将数据从将数据从逻辑地址装入物理地址的整个处理过程逻辑地址装入物理地址的整个处理过程中,中,CPU没有访问物理单元的任何信息没有访问物理单元的任何信息例:指令例:指令 LDAC 4324H如何理解?如何理解?答案:答案:1. 把数据从逻辑地址把数据从逻辑地址4234H装入累加器装入累加器 2. 将逻辑单元将逻辑单元4234H的数据装入累加器,此数的数据装入累加器,此数据实际存储在物理单元据实际存储在物理单元3234H中中系统更倾向解释成系统更倾向解释成1湖南大学计算机与通信学院56页表页表的概念的概念MMU用页表来跟踪哪一页存储在哪个帧中用页

38、表来跟踪哪一页存储在哪个帧中 页表的组成页表的组成(如图(如图9.12):):1. 帧指示域帧指示域(frame)2. 有效位有效位(valid)3. 计数值(计数值(count,有些页表不需要),有些页表不需要)4. 脏位脏位(dirty)湖南大学计算机与通信学院57 图图9.12 (a)页表,()页表,(b)对应的物理内存)对应的物理内存 l 相对简单相对简单CPU的的页表,有页表,有16K的的物理内存,页面物理内存,页面大小为大小为4K。l 页表包含了页表包含了16个个单元,每一单元单元,每一单元对应逻辑地址空对应逻辑地址空间的一个页面,间的一个页面,它包含一个它包含一个2bit的域,表

39、明了该的域,表明了该逻辑页存储在哪逻辑页存储在哪一个帧中一个帧中l 每一单元还包含每一单元还包含一个有效位一个有效位 0页,对应于逻辑地页,对应于逻辑地址址0000H1FFFH,存储在存储在1号帧中,物号帧中,物理地址为理地址为1000H1FFFH 湖南大学计算机与通信学院58MMU中逻辑地址到物理地址的转换中逻辑地址到物理地址的转换l MMU将逻辑地址看作两个部分将逻辑地址看作两个部分页页和和偏移量偏移量例:考虑例:考虑LDAC 4234H,MMC如何将逻辑如何将逻辑 地址地址4234H转换成物理地址(如图转换成物理地址(如图9.13)湖南大学计算机与通信学院59图图9.13 用页表将逻辑地

40、址转换成物理地址用页表将逻辑地址转换成物理地址l 高高4位逻辑位逻辑地址表明地址表明页号,剩页号,剩下的下的12位位为偏移量为偏移量 l 四个高位四个高位为为0100 l 帧号帧号11表表明页被映明页被映射到射到3号帧号帧l 此值与此值与12位的偏移位的偏移量拼接,量拼接,生成物理生成物理地址地址11 0010 0011 0100湖南大学计算机与通信学院60图图9.13所示的所示的MMU并并没有没有很好的转换地址很好的转换地址 ?因为因为从页表中读帧号会有一个延时,并从页表中读帧号会有一个延时,并且由于取出相邻的指令,系统可能连续且由于取出相邻的指令,系统可能连续的成百上千次的读这一相同的值的

41、成百上千次的读这一相同的值 变换旁视缓冲器变换旁视缓冲器可以解决上述问题(图可以解决上述问题(图9.14),其功能跟页表一样,可产生帧值,),其功能跟页表一样,可产生帧值,但它更快,这样就提高了性能但它更快,这样就提高了性能湖南大学计算机与通信学院61图图9.14 使用使用TLB转换逻辑地址到物理地址转换逻辑地址到物理地址l 注意注意TLB没没有必要包含有必要包含计数位或者计数位或者脏位,因为脏位,因为这些信息仍这些信息仍然保存在页然保存在页表中。表中。l TLB中的每中的每一个地址入一个地址入口包含在页口包含在页表中,但反表中,但反过来不成立过来不成立 湖南大学计算机与通信学院62例:考虑一

42、台含有相对简单例:考虑一台含有相对简单CPU,相同内存,相同内存配置的计算机。它必须取、翻译和执行下配置的计算机。它必须取、翻译和执行下列程序列程序 (如表(如表9.8)0000H: LDAC 4234H0003H: STAC 4235H0006H: JUMP 1000H1000-1063H: (100 register instructions) 1064H: JUMP 2000H2000H-2031H: (50 register instructions) 2032H: JUMP 0100H0100H-01C7H: (200 register instructions) 01C8H: JU

43、MP 3000H3000H-3063H: (100 register instructions) 3064H: JUMP 0000H 4234H: 27H(data value)湖南大学计算机与通信学院63 Page TableAdress 0000H 0003H 0006H 1000H-1064H2000H-2032H0100H-01C8H3000H-3064H0000HPageFVCD FVCD FVCD FVCD FVCD FVCD FVCD FVCD 001100110011001100120011001100110 12100211021202130-0- 2310031103120

44、3130 311001120 4 110011011111112111311131-0-2100表表9.8 使用使用LRU替换算法的部分页表和替换算法的部分页表和TLB值值 TLBPFVPFVPFVPFVPFVPFVPFVPFV 001 001 001 001 001 001 001 001 411 411 411 411 411 411 311 311 -0 -0 -0 121 121 121 121 421 -0 -0 -0 -0 231 231 231 231湖南大学计算机与通信学院64 Page TableAdress0000H0003H-0006H1000H-1064H2000H-2

45、032H0100H-01C8H3000H-3064H0000HPageFVDFVDFVDFVDFVDFVDFVD 0010010010010010-0-110 1210210210210-0- 2310310310310 3010010 4 110111111111111111210表表9.9使用使用FIFO替换算法的部分页表和替换算法的部分页表和TLB值值PFVPFVPFVPFVPFVPFVPFV 001 001 001 001 001 301301 411 411 411 411 411 411 011 -0 -0 121 121 121 121 421 -0 -0 -0 231 231

46、231 231湖南大学计算机与通信学院659.3.1 分段分段分段分段:在分段技术中,程序被划分为几在分段技术中,程序被划分为几段,每段为一个自包含的单元段,每段为一个自包含的单元分段的特点:分段的特点:1. 每个段大小可以变化每个段大小可以变化2. 分段存在分段存在外部碎片外部碎片问题问题湖南大学计算机与通信学院66外部碎片:外部碎片:内存驻留有内存驻留有3个段,另有个段,另有8K自由自由空间。而这空间。而这8K空间被划分开了,于是不移空间被划分开了,于是不移动或撤除某个当前载入段的话,大小超过动或撤除某个当前载入段的话,大小超过3K的段已无法装入内存(如图的段已无法装入内存(如图9.16)

47、图图9.16由于分段引起的物理内存外部碎片由于分段引起的物理内存外部碎片湖南大学计算机与通信学院67分段机制中逻辑地址到物理地址的转换分段机制中逻辑地址到物理地址的转换 图图9.15 分段机制中逻辑地址到物理地址的转换分段机制中逻辑地址到物理地址的转换逻辑地址被剖分为段号和偏移量 湖南大学计算机与通信学院68l 段号输入到段表中,如果段已被装入内段号输入到段表中,如果段已被装入内存,输出段的起始地址和段大小存,输出段的起始地址和段大小l 如果段不在物理内存中,就产生一个缺如果段不在物理内存中,就产生一个缺段,段,MMU装入新段到内存中装入新段到内存中 l 偏移量与段大小进行比较,如果前者大偏移量与段大小进行比较,如果前者大于后者,或者相等,说明所访问单元不于后者,或者相等,说明所访问单元不在段内,就产生一个错误在段内,就产生一个错误 l 如果偏移量有效,则与段地址的起始值如果偏移量有效,则与段地址的起始值相加,形成一个正确的物理内存地址相加,形成一个正确的物理内存地址 湖南大学计算机与通信学院69分段机制中的一个严重缺陷分段机

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论