收藏 分享(赏)

第7章 存储系统.ppt

上传人:gnk289057 文档编号:8010293 上传时间:2019-06-04 格式:PPT 页数:49 大小:791KB
下载 相关 举报
第7章 存储系统.ppt_第1页
第1页 / 共49页
第7章 存储系统.ppt_第2页
第2页 / 共49页
第7章 存储系统.ppt_第3页
第3页 / 共49页
第7章 存储系统.ppt_第4页
第4页 / 共49页
第7章 存储系统.ppt_第5页
第5页 / 共49页
点击查看更多>>
资源描述

1、第7章 存储系统,本章要点: 7.1 存储系统的层次结构 7.2 高速缓冲存储器(cache) 7.3 虚拟存储器 7.4 相联存储器 7.5 存储保护,串行存储器:,7.1 存储系统的层次结构,目的:解决存储容量、存取速度和价格之间的矛盾。 方法:采用多级存储层次,以提高存储系统的整体性能。“Cache-主存-外存” 是最典型的三级物理存储体系,返回,(1)Cache存放少量内存数据的副本,其速度很快,可与 CPU速度匹配。 (2)主存能由CPU直接编程访问。运行的程序及处理数据 要放在主存中。 (3)辅存存放需联机保存但暂不使用的程序与数据。当要运行其中的程序时,先将其传到内存再运行,1、

2、主存和高速缓存之间的关系,Cache引入: 为解决CPU和主存之间的速度差距,提高整机的运算速度,在CPU和主存之间插入的由高速电子器件组成的容量不大,但速度很快的存储器。 Cache特点 存取速度快,容量小,存储控制和管理由硬件实现,Cache-CPU-主存之间的关系,关系,CPU,Cache,主存,字传送,块传送,.,.,主存,块,Cache,标记,结构,Cache-主存之间的关系,假设主存储器的大小为2n个字节,共分成2m个块,每个块的大小为2b个字节,则:n=m+b 假设Cache中有2c个块,每个块的大小为2b个字节,则Cache的大小为2c+b个字节。,2b个字节,2b,2b,2b

3、,2m块,主存地址结构:,主存块号,块内地址,m位,b位,主存地址结构分析,n位,2b个字节,2b,2b,2c块,Cache地址结构:,主存块号,块内地址,c位,b位,Cache地址结构分析,图7.2 cache的基本结构,返回,2、主存与辅存之间的关系,主存:(半导体存储器组成) 优:速度快 缺:容量受限,单位成本高, 断电丢失信息。 辅存:(光盘,磁盘) 优:容量大,信息长久保存,单位成本低. 缺:存取速度慢 CPU正在运行的程序和数据存放在主存暂时不用的程序和 数据存放在辅存。 辅存只与主存进行数据交换,7.2 高速缓冲存储器,1高速缓存的组成: 小容量的SRAM和高速缓存控制器组成。

4、2高速缓存的功能: 将CPU当前快要用到的部分数据块由主存复制到容量小、速度快的SRAM中,由SRAM向CPU直接提供它所需要的数据。 Cache存储器介于 CPU和主存之间,它的工作速度数倍于主存,全部功能由硬件实现。由于转换速度快,软件人员丝毫未感到Cache的存在,这种特性称为Cache的透明性。Cache内部是用同主存内部同样大小的块组成,故由于Cache存储容量小,所以块的数目少。,返回,3高速缓存工作原理,1)程序的局部性原理 时间局部性:如果一个存储单元被访问,则这个存储单元会再次被访问的概率很高。这是由于循环程序的执行,相应的数据要重复访问。 空间局部性:如果一个存储单元被访问

5、,则这个存储单元及其相邻单元被访问的概率较高。这是由于程序的顺序执行时,一条指令和下一条指令在存储器中的位置是相邻或相近的。,对该原理的解释:,在较短时间内由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内。 数据分布不如指令明显,但对数组的访问及工作单元的选择可使存储地址相对集中。 CPU与Cache之间的数据交换是以字为单位,而Cache与主存之间的数据交换是以块为单位,一个块是由若干字组成,是定长的。 在Cache中,每一块外加有一个标记,指明它是主存的哪一块的副本,所以该标记的内容相当于主存中块的编号。块内字节数与主存相同(如图7.2)。,cache的容量和块的大小是影响cach

6、e的效率的重要因素。通常用“命中率”来测量cache的效率。命中率指CPU所要访问的信息在cache中的比率,而将所要访问的信息不在cache中的比率称为失效率。 cache的存储容量不能太小,太小会使命中率太低; 也没有必要过大,过大不仅会增加成本,而且当容量超过一定值后,命中率随容量的增加将不会有明显地增长。 目前已达几百M字节。,2)Cache的读操作当CPU发出读请求时,如果数据在Cache中(命中Hit),就直接对Cache进行读操作,与主存无关;如果Cache不命中(Miss),则仍需访问主存,并把该块信息一次从主存调入Cache。 替换算法: 在从主存读出新的字块调入cache存

7、储器时,如果遇到cache存储器中相应的位置已被其他字块占有,那么就必须去掉一个旧的字块,让位于一个新的字块。这种替换应该遵循一定的规则,最好能使被替换的字块是下一段时间内估计最少使用的。这些规则称为替换策略或替换算法,由替换部件加以实现。,标志 块号 块内地址,主存地址,主 存,块号 块内地址,Cache 标记,Cache地址,比较器,替 换 算 法,Cache 数据,来/去CPU,来自CPU,不命中,命中,Cache满,访数据,修改标记,访标记,3)Cache的写操作与更新策略写数据时,存在Cache与主存中内容一致的问题。 1) 写回法当CPU写cache命中时,只修改cache的内容,

8、而不立即写入主存;只有当此行被换出时才写回主存。这种方法减少了访问主存的次数,但是存在不一致性的隐患。实现这种方法时,每个cache行必须配置一个修改位,以反映此行是否被CPU修改过。,3)Cache的写操作与更新策略写数据时,存在Cache与主存中内容一致的问题。 2) 全写法 当写cache命中时,cache与主存同时发生写修改,因而较好地维护了cache与主存的内容的一致性。当写cache未命中时,直接向主存进行写入。cache中每行无需设置一个修改位以及相应的判断逻辑。缺点是降低了cache的功效。,3)Cache的写操作与更新策略写数据时,存在Cache与主存中内容一致的问题。 3)

9、 写一次法 基于写回法并结合全写法的写策略,写命中与写未命中的处理方法与写回法基本相同,只是第一次写命中时要同时写入主存。这便于维护系统全部cache的一致性。,3)Cache的写操作与更新策略写数据时,存在Cache与主存中内容一致的问题。 1) 写直达法:把数据同时写入主存和Cache。简单,正确性高,但会降低存取速度。 2) 写回法: 只把数据暂时写入Cache,并对该块做标 志,在该块将被替换之前才写回主存。省去不必要的立即回写操作。回写式系统机构比较复杂。 3) 另有一种写操作方法是: 当被修改的单元根本就不在 cache存储器时,写操作直接对主存进行, 而不写入cache存储器。,

10、4地址映象和变换Cache和主存都被分成若干个大小相等的块,每块由若干个字节组成,主存和Cache的数据交换是以块为单位,需要考虑二者地址的逻辑关系。地址映像:把主存地址空间映像到Cache地址空间,即按某种规则把主存的块复制到Cache中。在信息按照这种映像关系装入Cache后,执行程序时,应将主存地址变换成Cache地址,这个变换过程叫做地址变换。,主存中任何一个块均可以映像装入到Cache中任何一个块的位置上。 特点:灵活,块冲突率低,只有在Cache中的块全部装满后才会出现块冲突,Cache利用率高。但地址变换机构复杂,地址变换速度慢,成本最高,(1)全相联映像,(2)直接映像,把主存

11、分成若干个区,每区与Cache大小相同。区内分块,主存每个区中块的大小和Cache中块的大小相等,主存中每个区中包含的块的个数与Cache中块的个数相等。 任意一个主存块只能映像到Cache中唯一指定的块中,即相同块号的位置。 直接映像的关系可定义为: K = I mod 2C其中,K是cache的字块号,I是主存的字块号。,主存地址分为三部分:区号、块号和块内地址。 Cache地址分成:块号和块内地址。,在这种映像方式中,主存的第0块,第2c块,第2c+1块,只能映像到cache的第0块,而主存的第1块,第2c+1块,第2c+1+1块,只能映像到cache的第1块。,(2)直接映像,特点:地

12、址变换简单、速度快,可直接由主存地址提取出Cache地址。但不灵活,块冲突率较高,Cache空间得不到充分利用。 直接映象方式下,数据块只能映象到Cache中唯一指定的位置,故不存在替换算法的问题。,(3)组相联映像,是前两种方式的折衷。主存按Cache容量分区,每个区分为若干组,每组包含若干块。Cache也进行同样的分组和分块。主存中一个组内的块数与Cache中一个组内的块数相等。组间采用直接方式,组内采用全相联方式。, 主存地址分成四部分:区号、组号、主存块号、块内地址 Cache地址从高到低分成:组号、组内块号、块内地址。, 组的容量 1时即直接映像 当组的容量 整个Cache的容量时即

13、全相联映像,(3)组相联映像,Cache的存在对于程序员透明,Cache的地址变换和数据块的替换算法都采用硬件实现。,对于下图,即当组数=8时为直接映像;当组数=1时为全相联映像,此时 区以1块的步长在滑动,当组的容量 整个Cache的容量时为全相联映像,5替换算法当新的主存字块需要调入cache存储器而它的可用位置又已被占满时,就产生替换算法问题。 先进先出FIFO算法总是把一组中最先调入 cache存储器的字块替换出去,它不需要随时记录各个字块的使用情况,所以实现容易,开销小 近期最少使用LRU算法是把一组中近期最少使用的字块替换出去。这种替换算法需随时记录cache存储器中各个字块的使用

14、情况,以便确定哪个字块是近期最少使用的字块。LRU替换算法的平均命中率比FIFO要高,并且当分组容量加大时,能提高LRU替换算法的命中率。,LRU是最常使用的一种算法、其设计思想是把组中各块的使用情况记录在一张表上(如图7.6所示)。并把最近使用过的块放在表的最上面。这种算法用硬件实现比较麻烦,经常采用修改型LRU算法。 另外还有一种随机替换法(RAND),这种算法不考虑使用情况,在组内随机选择一块来替换。在硬件上容易实现,且速度也比前两种策略快。缺点是降低了命中率和cache工作效率。,图7.6 LRU算法替换登记表,6Cache的命中率,设NC表示Cache完成存取的总次数, Nm表示主存

15、完成存取的总次数,h定义为命中率,则有h= NC/(NC+ Nm) 若tc表示命中时的Cache访问时间,tm表示未命中时的主存访问时间,1-h表示未命中率,则Cache/主存系统的平均访问时间ta为: ta=htc+(1-h)tm 设r=tm/tc表示主存慢于Cache的倍率,e表示访问效率,则有 e=tc/tm=tc/htc+(1-h)tm=1/h+(1-h)r=1/r+(1-h) 为提高访问效率,h 接近1好。,例:CPU执行一段程序时,Cache完成存取的次数为1900次,主存完成存取的次数为100次,已知Cache存取周期为50ns,主存存取周期为250ns,求Cache/主存系统的

16、效率和平均访问时间。解:h = NC/(NC+ Nm) = 1900/(1900+100) = 0.95r = tm/tc = 250ns/50ns = 5e = 1/r+(1-r)h = 1/5+(1-5)*0.95 = 83.3%ta= tc/e = 50ns/0.833 = 60ns,7.3 虚拟存储器,1.什么是虚拟存储器 虚拟存储器只是一个容量非常大的存储器的逻辑模型,不是任何实际的物理存储器。它借助于磁盘等辅助存储器来扩大主存容量,使之为更大或更多的程序所使用。它指的是主存-外存层次。以透明的方式给用户提供了一个比实际主存空间大得多的程序地址空间。,返回,注意:物理地址(实际地址)

17、:实际主存单元地址。它由CPU地 址引脚送出,用于访问主存的地址。虚拟地址(逻辑地址):用户编程(即程序中出现)的地址 (程序员看到的地址空间)。它是由编译程序生成 的,是程序的逻辑地址,其地址空间的大小受到 辅助存储器容量的限制。 主存-外存层次和cache-主存层次用的地址变换映射方法和替换策略是相同的,都基于程序局部性原理。,它们遵循的原则是: 把程序中最近常用的部分驻留在高速的存储器中。 一旦这部分变得不常用了,把它们送回到低速的存储器中。 这种换入换出是由硬件或操作系统完成的,对用户是透明的。 力图使存储系统的性能接近高速存储器,价格接近低速存储器。 两种存储系统的主要区别在于:在虚

18、拟存储器中未命中的性能损失要远大于cache系统中未命中的损失。,注意: (1) 虚拟存储器中的地址映象是实现逻辑地址与物理地址之间的变换;(2) Cache中的地址映象是实现主存地址和Cache地址之间的变换。,2.主存-外存层次的基本信息传送单位主存-外存层次的基本信息传送单位可采用几种不同的方案:段、页或段页。 段是按照程序的逻辑结构划分成的多个相对独立部分,作为独立的逻辑单位。 优点是段的逻辑独立性使它易于编译、管理、修改和保护,也便于多道程序共享;某些类型的段具有动态可变长度,允许自由调度以便有效利用主存空间。 缺点是因为段的长度各不相同,起点和终点不定,给主存空间分配带来麻烦,而且

19、容易在段间留下许多空余的零碎存储空间,造成浪费。,在段式虚拟存储系统中,段是按照程序的逻辑结构划分的,各个段的长度因程序而异。 虚拟地址由段号和段内地址组成,为了把虚拟地址变换成实主存地址,需要一个段表。 段表也是一个段,可以存在外存中,但一般是驻留在主存中。 虚存地址向实存地址的变换过程演示,2.主存-外存层次的基本信息传送单位主存-外存层次的基本信息传送单位可采用几种不同的方案:段、页或段页。 页是主存物理空间中划分出来的等长的固定区域。 优点是页面的起点和终点地址是固定的,方便造页表,新页调入主存也很容易掌握,比段式空间浪费小。 缺点是处理、保护和共享都不及段式来得方便。,页式虚拟存储系

20、统中,虚拟空间分成页,称为逻辑页;主存空间也分成同样大小的页,称为物理页。 虚存地址分为两个字段:高字段为逻辑页号,低字段为页内行地址。 实存地址也分两个字段:高字段为物理页号,低字段为页内行地址。 页表中每一个虚存逻辑页号有一个表目,表目内容包含该逻辑页所在的主存页面地址(物理页号),用它作为实存地址的高字段,与虚存地址的页内行地址字段相拼接,产生完整的实主存地址,据此来访问主存。 页式管理的地址变换演示,2.主存-外存层次的基本信息传送单位主存-外存层次的基本信息传送单位可采用几种不同的方案:段、页或段页。 段页式管理采用分段和分页结合的方法。它把程序按逻辑单位分段以后,再把每段分成固定大

21、小的页。进入主存以页为基本信息传送单位,用段表和页表进行两级定位管理。 程序对主存的调入调出是按页面进行的,但它又可以按段实现共享和保护,兼备页式和段式的优点。 缺点是在映象过程中需要多次查表。,7.4 相联存储器,相联存储器不按地址访问存储器,而按所存数据字的全部内容或部分内容进行查找(或检索)。例如,在虚拟存储器中,将虚地址的虚页号与相联存储器中所有行的虚页号进行比较,若有内容相等的行,则将其相应的实页号取出,这是按数据字的部分内容进行检索的例子。,返回,根据内容(或部分内容),查找其地址及与之相关的内容。,相联存储器的结构图,主要包括: 存储体2m个单元N位 输入检索寄存器 屏蔽寄存器

22、比较器(与所有单元比较),主要包括: 字匹配寄存器(2m位) 数据寄存器MDR 地址寄存器MAR及地址译码 可用于Cache和虚拟存储器的辅助硬设备。,7.5 存储保护,由于多个用户对主存的共享,就有多个用户程序和系统软件存于主存中。为使系统能正常工作,要防止由于一个用户程序出错而破坏其他用户的程序和系统软件,还要防止一个用户程序不合法地访问不是分配给它的主存区域。为此,系统应提供存储保护。存储保护主要包括两个方面:存储区域保护和访问方式的保护。,返回,1. 存储区域保护 对于不是虚拟存储器的主存系统可采用界限寄存器方式、由系统软件经特权指令设置上、下界寄存器为每个程序划定存储区域,禁止越界访

23、问。 界限寄存器方式只适用于每个用户占用一个或几个连续的主存区域;在虚拟存储系统中,由于一个用户程序的各页能离散地分布于主存中,不能使用这种保护方式,所以,通常采用页表保护和键保护等方式。,页表保护:在作虚拟的段和页转换成线性地址空间前,对段号和页号进行检查,确认是否超出范围,若是则提示错误信息。 键保护:操作系统为主存的每个页面分配一个键(Key),每个用户进程的实存页面的键相同-存储键。用户进程也被OS赋予一个Key访问键,当数据要写入主存时,访问键与存储键进行比较,相符则能访问,否则拒绝访问。 环保护:把线性的物理空间转换成环,然后分成多个控制保护级别。用户程序运行前有OS赋予不同的级别号,从而实现对不同区域的保护。,2. 访问方式保护 对主存信息的使用可以有三种方式读(R)、写(W)和执行(E),执行指作为指令来用。所以相应的访问方式保护就有R,W,E三种以及由这三种方式形成的逻辑组合。 访问方式保护可以和上述区域保护结合起来使用,以上所讲的存储保护都是由硬件实现的。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报