虚拟存储和高速缓冲存储器.pptx
虚拟存储器:虚拟存储器:就是采用一定的方法将一定的外存容量模拟成内存,同时对程序进出内存的方式进行管理从而得到一个比实际内存容量大得多的内存空间,使得程序的运行不受内存大小的限制。虚拟存储器解决了存储容量和存取速度之间的矛盾,同时也是管理存储设备的有效方法。第1页/共49页虚拟存储器发展背景u主存储器通常用动态随机存储器(DRAM)实现,它的存储容量相对比较小,速度比较快,单位容量的价格比较贵。u虚拟存储器由主存储器和联机工作的外部存储器共同组成。u外部存储器通常为磁盘存储器,它的存储容量很大,与主存储器相比,速度很低,单位容量的价格很便宜。由于早起计算机系统的存储容量,特别是内存容量成本非常高、容量也很小,对于大型应用程序或多程序应用就受到了很大的限制。为了克服这样的限制,人们就采用了虚拟存储的技术。第2页/共49页虚拟存储器的发展虚拟存储器源出于计算机的一级存储器概念。1970年,美国RCA公司研究成功虚拟存储器系统。IBM公司于1972年IBM370系统上全面采用了虚拟存储技术。第3页/共49页 随着计算机技术以及相关信息处理技术的不断发展,人们对存储的需求越来越大,这样的需求刺激了各种新技术的出现。在这个发展过程中也由几个阶段组成。u首先是磁盘条带集(RAID)技术:它将多个物理磁盘通过一定的逻辑关系集合起来,成为一个大容量的虚拟磁盘。u其次就是存储区域网络(SAN)技术:SAN的广域化则旨在将存储设备实现成为一种公用设施,任何人员、任何主机都可以随时随地获取各自想要的数据。u目前讨论比较多的包括iSCSI技术。第4页/共49页工作原理中央处理器访问主存的逻辑地址,以确定该信息是否存放在主存内。如该信息已在主存内,则转而执行;如果该信息不在主存内,则检查主存中是否有空闲区,如果没有,便将某个暂时不用的调出送往辅存,以便将这组信息调入主存。从辅存读出所要的信息,并送到主存空闲区。从地址变换表读出与逻辑地址对应的物理地址。根据物理地址从主存中存取必要的信息。虚拟存储器是由硬件和操作系统自动实现存储信息调度和管理的。它的工作过程包括5个步骤:第5页/共49页虚拟存储技术的分类:根据拓扑结构来分:对称式虚拟存储和非对称式虚拟存储 对称式虚拟存储:是指虚拟存储控制设备与存储软件系统、交换设备集成为一个整体,内嵌在网络数据传输路径中。第6页/共49页采用大容量高速缓存,显著提高数据传输速度。多端口并行技术,消除了I/O瓶颈。逻辑存储单元提供了高速的磁盘访问速度。可方便的连接交换设备,为系统的扩展和互连提供了技术保障。对称式虚拟存储技术的特点:第7页/共49页非对称式虚拟存储:1、将不同物理硬盘阵列中的容量进行逻辑组合,实现虚拟的带区集,将多个阵列控制器端口绑定,在一定程度上提高了系统的可用带宽。2、在交换机端口数量足够的情况下,可在一个网络内安装两台虚拟存储设备,实现Strip信息和访问权限的冗余。非对称式虚拟存储技术的特点:是指虚拟存储控制设备独立于数据传输路径之外。第8页/共49页从虚拟化存储的实现原理来分:数据块虚拟存储方案着重解决数据传输过程中的冲突和延时问题。数据块虚拟存储方案利用虚拟的多端口并行技术,为多台客户机提供了极高的带宽,最大限度上减少了延时与冲突的发生。在实际应用中,数据块虚拟存储方案以对称式拓扑结构为表现形式。数据块虚拟、虚拟文件系统第9页/共49页虚拟文件系统存储:虚拟文件系统存储方案着重解决大规模网络中文件共享的安全机制问题。通过对不同的站点指定不同的访问权限,保证网络文件的安全。在实际应用中,虚拟文件系统存储方案以非对称式拓扑结构为表现形式。第10页/共49页虚拟存储的特点:u虚拟存储提供了一个大容量存储系统集中管理的手段,由网络中的一个环节(如服务器)进行统一管理,避免了由于存储设备扩充所带来的管理方面的麻烦。u虚拟存储对于视频网络系统最有价值的特点是:可以大大提高存储系统整体访问带宽。u虚拟存储技术为存储资源管理提供了更好的灵活性,可以将不同类型的存储设备集中管理使用。由于虚拟存储具有上述特点,虚拟存储技术正逐步成为存储管理的主流技术 第11页/共49页高数缓冲存储器u高速缓冲存储器概述u高速缓冲存储器与CPU的关系u高数缓冲存储器的工作原理u高数缓冲存储器的地址映射u高速缓冲存储器的命中率u影响命中率的因素第12页/共49页解决CPU和主存速度差异的方法 由于CPU和主存储器是不同材料制成的,因而他们之间在速度上是不匹配的。为了使CPU不致因为等待存储器读写操作的完成而无事可做,就采取了一些加速CPU和存储器之间有效传输的特殊措施。u主存储器采用更高速的技术缩短存储器的读出时间。u采用并行操作的双端口存储器。u在存储器和主存储器之间插入一个高速缓冲存储器。实现途径:第13页/共49页高速缓冲存储器(cache):是存在于计算机存储系统的层次结构中,介于中央处理器和主存储器 之间的高速小容量存储器。Cache是用来存放那些近期需要运行的指令与数据,提高CPU对存储器的访问速度。是为了解决CPU和主存之间速度不匹配而采取的一项重要技术。第14页/共49页CacheCache与CPUCPU的关系uCache是介于CPU与主存之间的小容量存储器uCPU可直接访问cacheuCache能高速的向CPU提供指令和数据从而加快了程序的执行速度。uCache可以放到CPU中形成两级以上的缓存。第15页/共49页CPUCPU存储系统关系图 随着半导体器件集成度进一步提高,cache已经放入到CPU中其工作速度接近CPU的速度,从而可以组成两级以上的cache系统。目前所有主流处理器大都具有一级缓存和二级缓存,少数高端处理器还集成了三级缓存。cache中央处理器 Cache外存主存中央处理器 Cachecache中央处理器 Cachecache中央处理器 Cachecache中央处理器 Cachecache中央处理器 Cache主存cache中央处理器 Cache外存主存cache中央处理器 Cachecache中央处理器 Cache主存中央处理器 Cachecache中央处理器 Cachecache中央处理器 Cachecache中央处理器 Cachecache中央处理器 Cache主存cache中央处理器 Cache外存主存cache中央处理器 Cachecache外存主存cachecachecachecache主存cache外存主存cachecache主存cachecachecachecache主存cache外存主存cache中央处理器 Cache第16页/共49页二级缓存 二级缓存是为了协调一级缓存与内存之间的速度。它比一级缓存速度更慢,容量更大,主要就是做一级缓存和内存之间数据临时交换的地方用。三级缓存是为读取二级缓存后未命中的数据设计的种缓存。在拥有三级缓存的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率。三级缓存第17页/共49页三级缓存的性能影响 在游戏方面,提升三级缓存的容量对游戏的性能影响很大,如果是网吧机提升三级缓存的容量,会有显著的性能提升的。v对PC机来说,三级缓存其实只是做了个辅助的作用,除了服务器,其实对大多数家庭机没什么用的,对于家庭机内存是最重要的。第18页/共49页高速存储器的工作原理图:CPU主存LRU管理逻辑相联存储图表cache数据总线CAM地址总线第19页/共49页引入高速缓冲存储器的理论依据 系统引入高速缓冲存储器的理论依据是程序访存局部性规则。大部分程序的执行方式是顺序执行,所需的数据也都顺序排列。程序运行时大部分时间内对程序的访问局限在一个较小的区域内,这就是程序访问的局部性规律。依据这个规则,在CPU与主存之间设立高速缓存,将主存中被频繁访问区域内的数据调入高速缓存,CPU从高速缓存中获取所需的数据,可大大的提高主存的访问速度。第20页/共49页程序的局部性原理程序在一定时间段内通常只访问较小的地址空间两种局部性:时间局部性和空间局部性 时间局部性:最近被访问的信息很可能还要被访问。将最近被访问的信息项装入到Cache中。空间局部性:最近被访问的信息临近的信息也可能被访问。将最近被访问的信息项临近的信息一起装入到Cache中。地址空间访问概率第21页/共49页Cache替换算法随机替换(RAND)随机找一个存储单元进行替换,比较简单。最不经常使用算法(LFU)将一段时间内被访问次数最少的那行数据换出。最近最少使用算法(LRU)需要计算字块的使用次数,开销大,但平均命中率较高。第22页/共49页随机替换 随机替换策略实际上并不是严格意义上的算法,从特定的行位置中随机的选取一行换出即可。这种策略在硬件上容易实现,且速度也比较快。缺点是随意换出的数据很可能是马上要用的,从而降低了命中率和cache的工作效率。但随着cache的容量增大这种不足就会相应减小。第23页/共49页最不经常使用算法(最不经常使用算法(LFU)LFU算法认为应将一段时间内被访问次数最少的那行数据换出。为此每行设置一个计数器。新行建立后从0开始计数,每访问一次,被访问行的计数器加1。当需要替换时,对这些特定行的计数器进行比较,将计数值最小的换出,同时将这些特定行的计数器都清零。缺点:这种算法将计数周期限定在这些特定行两次替换之间的 间隔内,不能严格反映近期访问情况。第24页/共49页最近最少使用算法(LRU)LRU算法将近期内长久未被访问过的行换出。因此每行也设定一个计数器。但它们是cache每命中一次,名中行计数器清零,其他各行计数器增1。当需要替换时,比较个特定行的计数值,将最大的行换出。特点:保护了刚拷贝到cache的新数据,符合cache的工作原理,命中率较高。第25页/共49页主存与cache的地址映射 与主存容量相比,cache的容量很小,它保存的内容只是主存内容的一个子集,且cache与主存的数据交换方式是以块为单位。为了把主存块放到cache中,必须运用某种方法把主存地址定位到cache中,称为地址映射。地址映射方式:u全相联方式方式u直接映射方式u组相连映射方式第26页/共49页全相联映像方式主存分成若干块,Cache分成若干块(比主存块数少),每块中都有同样多的字。允许主存任一块存放到Cache的任一个块。CPU读主存时,若内容不在Cache,就将主存中的该块整个存放到Cache。是指主存中的地址与块的内容一起存于cache的行中,其中地址存于cache行的标记部分中。第27页/共49页全相联映射方式.cacheL0L7B0B255主存.cacheL7B0主存L0.cacheL7B0主存标记位L0.cacheL7B0主存标记位第28页/共49页全相联映像方式特点全相联映像方式特点u主存的字块可以和Cache的任何字块对应,利用率高,方式灵活。u标志位较长,比较电路难于设计和实现,成本太高,只适用于小容量的cache。利用率、成本太高。第29页/共49页直接映射方式uCache分为若干块,主存分为若干区,每区分为若干块,每区的块数和Cache一样大。u主存的块只能存放在块号和Cache块号一致的块中 是指一种多对一的映射关系,但主存块只能映射到cache的一个特定位置上。第30页/共49页L0.cacheL7B0主存标记位B7B8B15B16行号直接映射示意图L0.cacheL7B0主存标记位B7B8B15B16行号L0L7B0主存B15B16.cache标记位B7B8行号第31页/共49页直接映像方式特点u主存的字块只可以和固定的Cache字块对应,方式直接,利用率低,适用于大容量的cache。u标志位较短,比较电路易于设计和实现,硬件成本低。利用率低,命中率低,效率较低第32页/共49页组相联映像方式u主存分成若干块,Cache分成若干块。每块中都有同样多的字。uCache分成同等容量的多个体。主存分为若干区,主存的块只能存放在块号和Cache体中组号一致的块中,但是放在哪一个体中是随意的。组相联映射方式是直接映射和全相联映射的折衷方案,它适度的兼顾了二者的优点又尽量避免其缺点,被普遍采用。第33页/共49页组相联映像方式组相联映像方式特点:折衷方案。组间为全相连,组内为直接映像。集中了两个方式的优点。成本也不太高。最常用的CACHE映像方式第34页/共49页Cache的命中率和命中时间 CPU访问主存的数据或指令存在于高速缓存中时的情况称为高速缓存命中,高速缓存命中的统计概率称为高速缓存的命中率。在高速缓存命中时的访存时间称为命中时间,它等于高速缓存的访问时间。第35页/共49页高速缓存的失效率和失效时间 CPU访问主存的数据或代码不存在高速缓存中的情况称为高速缓存的失效率。高速缓存不命中时因访问主存而增加的访问时间称为高速缓存的失效时间,或失效开销。第36页/共49页cache重要性能指标:命中率 命中率越高,不命中数据的可能性就越小,正确获取数据的可能性就越大,平均访存时间也就越短。命中率计算公式:h=Nc/(Nc+Nm)Nc表示cache完成存取的总次数Nm表示主存完成存取的总次数h定义为命中率第37页/共49页表示了cache命中时的访问时间Tc与cache/主存系统平均访问时间Ta的关系。访问效率计算公式:访问效率Tm未命中时的主存访问时间Ta=hTc+(1-h)Tm第38页/共49页CPU执行一段程序时,cache完成存取的次数为1900次,主存完成存取的次数为100次,已知cache存取周期为50ns主存存取周期为250ns,求cache/主存系统的效率和平均访问时间。解:Ta=hTc+(1-h)Tm=60ns第39页/共49页uCache的容量。u在组相联映象方式中,块的大小和分组的数目 uCache的组织方式uCache的替换算法uCache与主存储器交换信息的单位量(cache line size)。影响命中率的硬件因素主要有以下四点:第40页/共49页Cahce的容量与命中率的关系图 命中率 Cache容量(KB)第41页/共49页 Cache的命中率随它的容量的增加而提高。在Cache容量比较小的时候,命中率的提高得非常快,随Cache容量的增加,命中率提高的速度逐渐降低。如上图cache容量和命中率的关系图可知第42页/共49页Cache的命中率与块大小的关系第43页/共49页由上图可知cache块的大小对命中率的影响非常敏感。开始时,随着块大小的增加,由于程序的空间局部性起作用,同一块中数据的利用率比较高,因此,Cache的命中率增加。随着块大小的增加进入Cache中的许多数据可能根本用不上。程序时间局部性的作用就会逐渐减弱。最后,当块大小等于整个Cache的容量时,命中率将趋近于零。第44页/共49页 当Cache的容量一定时,在采用组相联映象和变换方式的Cache中,分组的数目对于Cache命中率的影响是很明显的。随着组数的增加,Cache的命中率要降低。当组数不太大时,例如,512组以下,命中率的降低相当少,当组数超过一定数量时,命中率的下降非常快。由于在组相联映象方式中,组间是采用直接映象方式的,只有组内采用全相联映象方式。当分组的数目增加时,主存中的某一块可以映象到Cache中的块数就将减少,从而导致命中率下降。Cache命中率与数组的关系第45页/共49页多级的cache结构与命中率的关系 u为增加计算机系统中的cache容量,通常可以在已有的cache存储器系统之外,再增加一个容量更大的cache。此时原有cache为第一级cache,新增加的cache则成为第二级的cache。u第二级cache的容量比第一级cache的容量要大得多,在第一级cache中保存的信息也一定保存在第二级cache中,但保存有比第一级cache中更多的信息。当CPU访问第一级cache出现缺失情况时,就去访问第二级cache。第46页/共49页例:若第一级、第二级若第一级、第二级cache的命中率为的命中率为90%,则它,则它们合起来后的命中率为?们合起来后的命中率为?-(-90)(-90)=99第47页/共49页高速缓存与虚拟存储器的异同相同之处:运行时自动的将数据从慢速度存储器向快速存储器调度,调入的数据遵循一定的地址映像关系,快速存储器中信息的替换采用LRU算法或FIFO算法。不同之处 设置高速缓存是为了提高主存访问速度,每次传递的信息量较少。CPU与主存和高速缓存之间有直接访问通道,访问用硬件实现。设置虚拟存储器是为了弥补主存容量的不足,每次传递的信息较多。CPU与外存之间没有直接访问通道,只能从外存调度到主存,访问由存储器管理软件配合硬件实现。第48页/共49页感谢您的观看!第49页/共49页