770 likes | 996 Views
第 9 章 存储器结构. 9.1 存储器的层次结构 9.2 Cache 存储器 9.3 虚拟存储器 9.4 基本 Cache 和虚拟存储器的扩展 9.5 实例: Pentium/Windows 个人计算机 上的内存管理. 9.1 存储器的层次结构. 图 9.1 一般的存储器层次. 物理内存 :由动态 RAM 组成。 Cache 存储器 :由静态 RAM 构成,比 DRAM 快得多,但也 昂贵的多。 Cache 是物理内存的部分副本。
E N D
第9章 存储器结构 9.1 存储器的层次结构 9.2 Cache存储器 9.3 虚拟存储器 9.4 基本Cache和虚拟存储器的扩展 9.5 实例:Pentium/Windows个人计算机 上的内存管理 湖南大学计算机与通信学院
9.1 存储器的层次结构 图9.1 一般的存储器层次 物理内存:由动态RAM组成。 Cache存储器:由静态RAM构成,比DRAM快得多,但也 昂贵的多。Cache是物理内存的部分副本。 虚拟存储器:空间比物理内存大得多逻辑空间。虚拟管理器 通过在物理内存和一个存储介质之间调度来达 到访问的目的。 湖南大学计算机与通信学院
9.2 Cache存储器 大部分计算机在CPU和物理内存之间包含一个较小容量的Cache存储器,而不是使用Cache存储器构建计算机的整个存储系统。目标是在合理的价格下减少处理器的内存访问时间。 • 哈佛结构: 计算机存储系统的Cache层次中,每一级Cache包含两个单独的Cache存储器,其中 一个是指令Cache,一个是数据Cache。 湖南大学计算机与通信学院
9.2.1 相联存储器 一般存储器:接收一个地址,访问该地址中的 数据。 相联存储器:并行搜索所有单元,标记那些与 特定数据 匹配的单元,然后连续 读出匹配的数据值。 湖南大学计算机与通信学院
图9.2 相联存储器的内部组织结构 • 考虑一个由8个字单元组成的简单的相联存储器,每个单元有16 位,如图9.2所示。 • 除数据位外,每单元都有一个额外的标记位V。(数据有效位,为1说明这个单元数据有效,为0说明数据无效 ) 湖南大学计算机与通信学院
为了从相联存储器中读出一个值,CPU必 须给出两个值,即要被匹配的数据值、以 及哪些位需要检查。第一个值是参数或数 据,第二个值是屏蔽位或关键位 如果满足如下的公式,则匹配就会发生 湖南大学计算机与通信学院
屏蔽寄存器中值为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 湖南大学计算机与通信学院
Vi始终为1,所以最终结果为: 1111 1111 1111 1111 找到一个匹配 因此该数据位M对应的匹配寄存器的一个 单元设置为1 湖南大学计算机与通信学院
将数据写回相联存储器 CPU把数据送到数据寄存器并发出写信号。相联存储器检查所有单元的有效位,并找到有效位为0的一个单元,如果找到,把数据存到这个单元,同时将有效位设为1。如果没有找到,必须采用替换算法清除一个单元来保存数据。 常见的替换算法 FIFO LRU RANDOM 湖南大学计算机与通信学院
9.2.2 相联映象的Cache存储器 图 9.3 相对简单CPU的相联Cache 64K的8位内存 湖南大学计算机与通信学院
图9.3中: • 每一个单元中的前16位由内存地址构成,可以寻址到64K的地址空间。 • 后8位描述的是存储在该物理内存地址中的数据。 • 屏蔽寄存器只需设置一次。在上图中可以设成1111 1111 1111 1111 0000 0000 湖南大学计算机与通信学院
作用于数据行或数据块的相联存储器 • 存储器在每个单元存储4个字节的数据。(如图9.4) • 同一个单元的4个数据具有相同的高位地址,即高14位相同。 • 比图9.3中的相联存储器采用了更多的位数 (46位 vs 24位)。 湖南大学计算机与通信学院
图 9.4 相对简单CPU中,行大小 为4字节的相联Cache 湖南大学计算机与通信学院
优点: 利用了访问的局部性原理:当内存单元X中的指令被访问时,下一条被执行的指令非常有可能就在内存单元X+1中。 例如: 当访问地址0单元的时候,整个块(0,1,2,3)的值都被从物理内存读入CPU。 当CPU下次要执行在内存单元1、2、3中的指令时,他们已在cache中即能被访问而不必从较慢的物理内存中读取。 湖南大学计算机与通信学院
不仅指令具有访问的局部性,数据同样也具有访问的局部性 如编译器通常将一列数组元素安排到相邻的内存单元中,以方便处理器顺序访问数据值。 湖南大学计算机与通信学院
64k x 8位 深度为1k Cache 物理内存 9.2.3 直接映象的Cache存储器 一种利用标准的SRAM、廉价的Cache映射方案 11 1111 1111 xxxx xx11 1111 1111 湖南大学计算机与通信学院
索引Cache地址的低十位,用来选择Cache 的一个特定单元 标签原始地址中不是索引的那些高位。 直接映象的Cache存储器一个单元包括(图9.5): 标签 数据 有效值 湖南大学计算机与通信学院
图9.5 相对简单CPU的直接映象Cache 湖南大学计算机与通信学院
另外一种直接映像Cache存储器 图9.6:相对简单的CPU中,行大小为4字节的直接映像Cache 湖南大学计算机与通信学院
直接映像的Cache存储器 优点: 价格低 容量大 缺点: 灵活性差 如前所述,物理内存中 任何形式为xxxx xx11 1111 1111的地址都只能 映射到Cache中地址为 11 1111 1111的单元中 湖南大学计算机与通信学院
考虑下面的代码: 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 湖南大学计算机与通信学院
第一条指令被取出放入cache中。基于低10位地址位,它被映射到cache单元00 0000 0000。标志域被设置为地址位中的6个高位,即00 0000。现在,它被执行,CPU在单元1000H中取指令,它的低10位也为00 0000,因此,它被取出并装入cache中,并且设置标志值为00 0100,覆盖以前的值。JUMP跳转反过来执行到单元0000H,这样,尽管其他cache单元全都可用,但这两条指令仍会不断的彼此覆盖。 湖南大学计算机与通信学院
9.2.4 组相联映像的cache存储器 特点 灵活性增强 减少由直接映像带来的覆盖数据的问题 采用比较便宜的SRAM N路组相联:每个单元能够包含N个字节或字 直接映像的cache可以看作是一个一路 组相联映像cache存储器 湖南大学计算机与通信学院
考察大小为1k的2路组相联cache(如图9.7) 图9.7 相对简单CPU的2路组相联cache 该cache有1k个数据入口,每个单元2个数据值,因此有512个单元 用9个地址位选择cache单元,剩下的7位说明标签值 计数值用来纪录数据什么时候被访问过了 湖南大学计算机与通信学院
重新考虑下面的代码: 0000 0000 0000 0000(0000H):JUMP 1000H 0001 0000 0000 0000(1000H):JUMP 0000H JUMP 0000H JUMP 0000H JUMP 1000H JUMP 1000H 组相联映象cache 湖南大学计算机与通信学院
用在9.2.3的代码例子中,cache就不会覆盖任一条指令。JUMP 1000H这条指令将会被取出存入cache单元0的一路中。然后,指令0000H将会被取出放入同一单元的另一路中。从这可以看出,指令都从cache取出并被连续的执行。 湖南大学计算机与通信学院
一种采用数据行的组相联cache 图9.8 相对简单CPU中 具有4字节数据行的2 路组相联cache 湖南大学计算机与通信学院
9.2.5 在cache中替换数据 问题的引出:计算机开始执行一个程序。它 从内存中取指令和数据,同时 将这些值载入cache。当cache为 空或很少被占用时,会工作的 很好。但是,最终计算机会要 将数据移入到已占用的cache单 元。此时,将哪个数据移出 cache,以及此数据如何在保存 到物理内存,这一问题就变得 至关重要 湖南大学计算机与通信学院
替换策略: FIFO 先进先出原则 LRU 近期最少使用原则 随机策略 湖南大学计算机与通信学院
1.FIFO 先进先出策略 按顺序填充相联存储器,当cache 占满时返回最顶单元,用新数据 替换原有数据 只要一个寄存器就能实现 该寄存器保存下一个要被替换的 单元的指针 性能好 湖南大学计算机与通信学院
2. LRU 近期最少使用策略 跟踪单元的访问顺序,用新的数 据替换近期最少使用的数据 每个cache单元需要一个计数器 最近访问的数据,将相应的计数 器置为0;其余的计数器依次加1 湖南大学计算机与通信学院
例:在一个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 湖南大学计算机与通信学院
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 湖南大学计算机与通信学院
3.RANDOM 随机策略 随机的选择一个单元给新的数据 使用 性能较好 湖南大学计算机与通信学院
9.2.6 写数据到cache • 写直达法 每次信息从CPU写入cache单元 中时,也要写回相应的物理内存 单元中 • 回写法 写入cache中的值并不总是被写 回物理内存。仅在数据被移出 cache时写回物理内存一次 湖南大学计算机与通信学院
处理写失效问题 按写分配法 把单元装入cache,然后使用写 直达法或写回法把数据写到cache 不按写分配法 直接更新物理内存中的值,而 不把值写回cache 湖南大学计算机与通信学院
9.2.7 cache的性能 评判性能的标准 • Cache命中率 要访问的数据已在cache中 • Cache失效率 要访问的数据不在cache中 湖南大学计算机与通信学院
命中率:指由cache(而不是物理内存) 提供服务的访存百分比 平均访问时间:是cache访问时间Tc和内 存访问时间Tp的加权平均,权 值是h Tm=h Tc+(1-h) Tp 湖南大学计算机与通信学院
Tc=10ns Tp=60ns 结论:增加命中率 能够减少平均访问 时间 湖南大学计算机与通信学院
如何计算命中率和平均访问时间? 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。 湖南大学计算机与通信学院
一、8字节相联cache 初始化为空,使用FIFO的替换策略。 在18次访问中,有7次命中, 命中率为h=0.389,平均访问时间为Tm=40.56ns。 湖南大学计算机与通信学院
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 湖南大学计算机与通信学院
三、8字节的2路组相联cache Cache使用LRU替换策略。 命中率h=0.389 平均访问时间Tm=40.56ns 湖南大学计算机与通信学院
考虑这个同样的系统。 有2字节的数据行 组成相关行的数据对; A和J;B和D;C和G;E和F;I和H 使用相同的替换策略 (相联cache采用FIFO,组相联采用LRU) 相同的访问时间(Tc=10ns,Tp=60ns) 湖南大学计算机与通信学院
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 湖南大学计算机与通信学院
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 湖南大学计算机与通信学院
9.3 虚拟存储器 交换磁盘 交换文件 存储管理单元 在物理内存和较慢的存储设备间移动数据 虚拟存储器的主要实现方法:分页和分段 湖南大学计算机与通信学院
9.3.1 分页 页面:在分页技术中,整个逻辑地址空间被划分为连续的块叫做页面 页面的特点: • 每个页尺寸相同 • 页面不可重叠,每个逻辑地址确切地 属于某个页面 湖南大学计算机与通信学院
一个页面或者包含程序指令或者包含数据,不能同时包含两者一个页面或者包含程序指令或者包含数据,不能同时包含两者 4. 可能导致内部碎片问题 内部碎片:假设MMU实现的页式存储器中每个页面大小为4K,一个4K+1大小的程序需要MMU分配两个存储器页面,尽管它的第二个页面只用了4K单元的一个单元,这就是所谓的内存碎片 湖南大学计算机与通信学院
图9.10 相对简单CPU一种可能的内存配置 它具有64k的逻辑地址空间,16k的物理内存,页面大小4k 湖南大学计算机与通信学院