1 / 76

第 9 章 存储器结构

第 9 章 存储器结构. 9.1 存储器的层次结构 9.2 Cache 存储器 9.3 虚拟存储器 9.4 基本 Cache 和虚拟存储器的扩展 9.5 实例: Pentium/Windows 个人计算机 上的内存管理. 9.1 存储器的层次结构. 图 9.1 一般的存储器层次. 物理内存 :由动态 RAM 组成。 Cache 存储器 :由静态 RAM 构成,比 DRAM 快得多,但也 昂贵的多。 Cache 是物理内存的部分副本。

marvin
Download Presentation

第 9 章 存储器结构

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第9章 存储器结构 9.1 存储器的层次结构 9.2 Cache存储器 9.3 虚拟存储器 9.4 基本Cache和虚拟存储器的扩展 9.5 实例:Pentium/Windows个人计算机 上的内存管理 湖南大学计算机与通信学院

  2. 9.1 存储器的层次结构 图9.1 一般的存储器层次 物理内存:由动态RAM组成。 Cache存储器:由静态RAM构成,比DRAM快得多,但也 昂贵的多。Cache是物理内存的部分副本。 虚拟存储器:空间比物理内存大得多逻辑空间。虚拟管理器 通过在物理内存和一个存储介质之间调度来达 到访问的目的。 湖南大学计算机与通信学院

  3. 9.2 Cache存储器 大部分计算机在CPU和物理内存之间包含一个较小容量的Cache存储器,而不是使用Cache存储器构建计算机的整个存储系统。目标是在合理的价格下减少处理器的内存访问时间。 • 哈佛结构: 计算机存储系统的Cache层次中,每一级Cache包含两个单独的Cache存储器,其中 一个是指令Cache,一个是数据Cache。 湖南大学计算机与通信学院

  4. 9.2.1 相联存储器 一般存储器:接收一个地址,访问该地址中的 数据。 相联存储器:并行搜索所有单元,标记那些与 特定数据 匹配的单元,然后连续 读出匹配的数据值。 湖南大学计算机与通信学院

  5. 图9.2 相联存储器的内部组织结构 • 考虑一个由8个字单元组成的简单的相联存储器,每个单元有16 位,如图9.2所示。 • 除数据位外,每单元都有一个额外的标记位V。(数据有效位,为1说明这个单元数据有效,为0说明数据无效 ) 湖南大学计算机与通信学院

  6. 为了从相联存储器中读出一个值,CPU必 须给出两个值,即要被匹配的数据值、以 及哪些位需要检查。第一个值是参数或数 据,第二个值是屏蔽位或关键位 如果满足如下的公式,则匹配就会发生 湖南大学计算机与通信学院

  7. 屏蔽寄存器中值为1的每一位,单元中的值与数据寄存器中的值都相同屏蔽寄存器中值为1的每一位,单元中的值与数据寄存器中的值都相同 • 单元的有效位被设置为1; 例如(参考图9.2): 屏蔽寄存器K  1111 0000 0000 0000 数据寄存器D  1010 XXXX XXXX XXXX 数 据 位M  1010 1101 0000 0111 执行 0000 XXXX XXXX XXXX 执行 1111 XXXX XXXX XXXX 执行 1111 1111 1111 1111 湖南大学计算机与通信学院

  8. Vi始终为1,所以最终结果为: 1111 1111 1111 1111 找到一个匹配 因此该数据位M对应的匹配寄存器的一个 单元设置为1 湖南大学计算机与通信学院

  9. 将数据写回相联存储器 CPU把数据送到数据寄存器并发出写信号。相联存储器检查所有单元的有效位,并找到有效位为0的一个单元,如果找到,把数据存到这个单元,同时将有效位设为1。如果没有找到,必须采用替换算法清除一个单元来保存数据。 常见的替换算法 FIFO LRU RANDOM 湖南大学计算机与通信学院

  10. 9.2.2 相联映象的Cache存储器 图 9.3 相对简单CPU的相联Cache 64K的8位内存 湖南大学计算机与通信学院

  11. 图9.3中: • 每一个单元中的前16位由内存地址构成,可以寻址到64K的地址空间。 • 后8位描述的是存储在该物理内存地址中的数据。 • 屏蔽寄存器只需设置一次。在上图中可以设成1111 1111 1111 1111 0000 0000 湖南大学计算机与通信学院

  12. 作用于数据行或数据块的相联存储器 • 存储器在每个单元存储4个字节的数据。(如图9.4) • 同一个单元的4个数据具有相同的高位地址,即高14位相同。 • 比图9.3中的相联存储器采用了更多的位数 (46位 vs 24位)。 湖南大学计算机与通信学院

  13. 图 9.4 相对简单CPU中,行大小 为4字节的相联Cache 湖南大学计算机与通信学院

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

  15. 不仅指令具有访问的局部性,数据同样也具有访问的局部性 如编译器通常将一列数组元素安排到相邻的内存单元中,以方便处理器顺序访问数据值。 湖南大学计算机与通信学院

  16. 64k x 8位 深度为1k Cache 物理内存 9.2.3 直接映象的Cache存储器 一种利用标准的SRAM、廉价的Cache映射方案 11 1111 1111 xxxx xx11 1111 1111 湖南大学计算机与通信学院

  17. 索引Cache地址的低十位,用来选择Cache 的一个特定单元 标签原始地址中不是索引的那些高位。 直接映象的Cache存储器一个单元包括(图9.5): 标签 数据 有效值 湖南大学计算机与通信学院

  18. 图9.5 相对简单CPU的直接映象Cache 湖南大学计算机与通信学院

  19. 另外一种直接映像Cache存储器 图9.6:相对简单的CPU中,行大小为4字节的直接映像Cache 湖南大学计算机与通信学院

  20. 直接映像的Cache存储器 优点: 价格低 容量大 缺点: 灵活性差 如前所述,物理内存中 任何形式为xxxx xx11 1111 1111的地址都只能 映射到Cache中地址为 11 1111 1111的单元中 湖南大学计算机与通信学院

  21. 考虑下面的代码: 0000 0000 0000 0000(0000H):JUMP 1000H 0001 0000 0000 0000(1000H):JUMP 0000H JUMP 0000H JUMP 0000H 地址00 0000 0000 JUMP 1000H JUMP 1000H 直接映象Cache 湖南大学计算机与通信学院

  22. 第一条指令被取出放入cache中。基于低10位地址位,它被映射到cache单元00 0000 0000。标志域被设置为地址位中的6个高位,即00 0000。现在,它被执行,CPU在单元1000H中取指令,它的低10位也为00 0000,因此,它被取出并装入cache中,并且设置标志值为00 0100,覆盖以前的值。JUMP跳转反过来执行到单元0000H,这样,尽管其他cache单元全都可用,但这两条指令仍会不断的彼此覆盖。 湖南大学计算机与通信学院

  23. 9.2.4 组相联映像的cache存储器 特点 灵活性增强 减少由直接映像带来的覆盖数据的问题 采用比较便宜的SRAM N路组相联:每个单元能够包含N个字节或字 直接映像的cache可以看作是一个一路 组相联映像cache存储器 湖南大学计算机与通信学院

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

  25. 重新考虑下面的代码: 0000 0000 0000 0000(0000H):JUMP 1000H 0001 0000 0000 0000(1000H):JUMP 0000H JUMP 0000H JUMP 0000H JUMP 1000H JUMP 1000H 组相联映象cache 湖南大学计算机与通信学院

  26. 用在9.2.3的代码例子中,cache就不会覆盖任一条指令。JUMP 1000H这条指令将会被取出存入cache单元0的一路中。然后,指令0000H将会被取出放入同一单元的另一路中。从这可以看出,指令都从cache取出并被连续的执行。 湖南大学计算机与通信学院

  27. 一种采用数据行的组相联cache 图9.8 相对简单CPU中 具有4字节数据行的2 路组相联cache 湖南大学计算机与通信学院

  28. 9.2.5 在cache中替换数据 问题的引出:计算机开始执行一个程序。它 从内存中取指令和数据,同时 将这些值载入cache。当cache为 空或很少被占用时,会工作的 很好。但是,最终计算机会要 将数据移入到已占用的cache单 元。此时,将哪个数据移出 cache,以及此数据如何在保存 到物理内存,这一问题就变得 至关重要 湖南大学计算机与通信学院

  29. 替换策略: FIFO 先进先出原则 LRU 近期最少使用原则 随机策略 湖南大学计算机与通信学院

  30. 1.FIFO 先进先出策略 按顺序填充相联存储器,当cache 占满时返回最顶单元,用新数据 替换原有数据 只要一个寄存器就能实现 该寄存器保存下一个要被替换的 单元的指针 性能好 湖南大学计算机与通信学院

  31. 2. LRU 近期最少使用策略 跟踪单元的访问顺序,用新的数 据替换近期最少使用的数据 每个cache单元需要一个计数器 最近访问的数据,将相应的计数 器置为0;其余的计数器依次加1 湖南大学计算机与通信学院

  32. 例:在一个4路组相联cache单元中应用LRU策略 1.Cache单元的当前状态 T D C V T D C V T D C V T D C V C c 2 1 B b 1 1 A a 0 1 - - - 0 2.CPU访问D T D C V T D C V T D C V T D C V C c 3 1 B b 2 1 A a 1 1 D d 0 1 湖南大学计算机与通信学院

  33. 3.CPU访问E T D C V T D C V T D C V T D C V E e 0 1 B b 3 1 A a 2 1 D d 1 1 4.CPU访问A T D C V T D C V T D C V T D C V E e 1 1 B b 3 1 A a 0 1 D d 2 1 湖南大学计算机与通信学院

  34. 3.RANDOM 随机策略 随机的选择一个单元给新的数据 使用 性能较好 湖南大学计算机与通信学院

  35. 9.2.6 写数据到cache • 写直达法 每次信息从CPU写入cache单元 中时,也要写回相应的物理内存 单元中 • 回写法 写入cache中的值并不总是被写 回物理内存。仅在数据被移出 cache时写回物理内存一次 湖南大学计算机与通信学院

  36. 处理写失效问题 按写分配法 把单元装入cache,然后使用写 直达法或写回法把数据写到cache 不按写分配法 直接更新物理内存中的值,而 不把值写回cache 湖南大学计算机与通信学院

  37. 9.2.7 cache的性能 评判性能的标准 • Cache命中率 要访问的数据已在cache中 • Cache失效率 要访问的数据不在cache中 湖南大学计算机与通信学院

  38. 命中率:指由cache(而不是物理内存) 提供服务的访存百分比 平均访问时间:是cache访问时间Tc和内 存访问时间Tp的加权平均,权 值是h Tm=h Tc+(1-h) Tp 湖南大学计算机与通信学院

  39. Tc=10ns Tp=60ns 结论:增加命中率 能够减少平均访问 时间 湖南大学计算机与通信学院

  40. 如何计算命中率和平均访问时间? CPU访问下列顺序单元: 每一个值的下标是由物理内存地址的低3位来描述的。 A0 B0 C2 A0 D1 B0 E4 F5 A0 C2 D1 B0 C3 C2 H7 I6 A0 B0 现在我们确定在三种不同cache配置下的命中率 和平均访问时间。 假设Tc=10ns,Tp=60ns。 湖南大学计算机与通信学院

  41. 一、8字节相联cache 初始化为空,使用FIFO的替换策略。 在18次访问中,有7次命中, 命中率为h=0.389,平均访问时间为Tm=40.56ns。 湖南大学计算机与通信学院

  42. Data A B C A D B E F A C D B G C H I A B 0 A B B A A B B B A A A B B B B B A B C 1 D D D D D D D D D D D D D D A 2 C C C C C C C C C C C C C C C C C 3 G G G G G G H 4 E E E E E E E E E E E E E 5 F F F F F F F F F F F 6 | | | 7 H H H H Hit? √ √ √ 二、直接映射cache 命中率为h=0.167,平均访问时间Tm=50.67ns 湖南大学计算机与通信学院

  43. 三、8字节的2路组相联cache Cache使用LRU替换策略。 命中率h=0.389 平均访问时间Tm=40.56ns 湖南大学计算机与通信学院

  44. 考虑这个同样的系统。 有2字节的数据行 组成相关行的数据对; A和J;B和D;C和G;E和F;I和H 使用相同的替换策略 (相联cache采用FIFO,组相联采用LRU) 相同的访问时间(Tc=10ns,Tp=60ns) 湖南大学计算机与通信学院

  45. Data A B C A D B E F A C D B G C H I A B A A A A A A A A A A A A A A | | | | C J J J J J J J J J J J JJ J J H H H H A B B B B B B B B B B B B B B B A A C D D D D D D D D D D D D D D D J J H C C C C C C C C C C C C C C C B E G G G G G G G G G G G G G G G D E E E E E E E E E E E E F F F F F F F F F F F F Hit? √ √ √ √ √ √ √ √ √ √ √ 相联cache:命中率h=0.611 平均访问时Tm=29.44ns 湖南大学计算机与通信学院

  46. Data A B C A D B E F A C D B G C H I A B 0 A B B A B B B B A A B B B B B B A B C 1 J D D J D D D D J J D D D D D D J D A 2 C C C C C C C C C C C C C C C C C 3 G G G G G G G G G G G G G G G G H 4 E E E E E E E E E E E E E 5 F F F F F F F F F F F F 6 | | | 7 H H H H Hit? √ √ √ √ √ √ √ 直接映射cache:h=0.389 Tm=40.56ns 湖南大学计算机与通信学院

  47. 9.3 虚拟存储器 交换磁盘 交换文件 存储管理单元 在物理内存和较慢的存储设备间移动数据 虚拟存储器的主要实现方法:分页和分段 湖南大学计算机与通信学院

  48. 9.3.1 分页 页面:在分页技术中,整个逻辑地址空间被划分为连续的块叫做页面 页面的特点: • 每个页尺寸相同 • 页面不可重叠,每个逻辑地址确切地 属于某个页面 湖南大学计算机与通信学院

  49. 一个页面或者包含程序指令或者包含数据,不能同时包含两者一个页面或者包含程序指令或者包含数据,不能同时包含两者 4. 可能导致内部碎片问题 内部碎片:假设MMU实现的页式存储器中每个页面大小为4K,一个4K+1大小的程序需要MMU分配两个存储器页面,尽管它的第二个页面只用了4K单元的一个单元,这就是所谓的内存碎片 湖南大学计算机与通信学院

  50. 图9.10 相对简单CPU一种可能的内存配置 它具有64k的逻辑地址空间,16k的物理内存,页面大小4k 湖南大学计算机与通信学院

More Related