当前位置: 首页 > 专利查询>英特尔公司专利>正文

基于动态性能监控的存储器管理设备、方法和系统技术方案

技术编号:2846005 阅读:170 留言:0更新日期:2012-04-11 18:40
描述了用于在处理器系统内优化存储器管理的技术。可以在包括片上性能监控的处理器上和一些系统上实施该技术,其中将外部的性能监控器耦合到处理器。列举了包括性能监控单元(PMU)的处理器。PMU可存储关于读和写高速缓存的不命中数据,也可保存转换旁视缓冲区(TLB)不命中的数据。用来自PMU的数据来确定存储器堆内的任何存储区是否为过失存储区,即呈现大量存储器问题或停顿的区域。如果发现了过失存储区,则诸如垃圾收集例程的存储器管理程序能通过改进对象在存储器堆中的排布来有效地优化存储器性能和应用程序性能。以这种方式,存储器管理例程可基于动态的和实时的存储器性能数据而被关注。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术一般涉及基于处理器的系统内的存储器管理,更具体地,涉及用于优化存储器管理的设备和技术。
技术介绍
在微处理器速度和存储器性能之间存在众所周知的性能差距。每隔几年微处理器的时钟速度便翻一番,然而存储器的速度却几乎没有提高。微处理器可工作于GHz的时钟速度,然而微处理器使用的随机存取存储器(RAM)的时钟速度却至少比上述的时钟速度低一个数量级。消费者可直觉地意识到这种性能差距影响了大容量存储器(如硬盘驱动器和光盘只读存储器),然而,该差距也影响了更快的存储器(如RAM和高速缓存)。且该性能差距不仅来自于时钟速度上,也来自于等待时间和存储器停顿等问题上。计算机系统使用多级存储器来致力于解决这种性能上的差距。每级存储器更靠近寄存器,且能以减少的等待时间为寄存器提供数据。第一级存储器是一种相对较小和非常快速的存储器,它通常设置在存储低级指令和数据的微处理器芯片上。第二级高速缓存是一种更大的存储器,它也设置在微处理器上。也可以具有更多级的高速缓存。这些存储器通常比RAM小得多,但是更为快速。遗憾的是,1级和2级高速缓存受到了等待时间问题和等待来自RAM的存储内容的存储器停顿的影响。比如,更大的高速缓存将具有更长的读和写等待时间,更多的数据转换旁视缓冲区(DTLB)不命中,以及更多的高速缓存不命中信息(cache miss information)。DTLB耦合到高速缓存,且用来在更高级的存储器(如高速缓存)中定位数据。已开发各种技术来提高存储器性能。这些技术的例子包括预取数据、多线程代码、动态指令调度、推测的代码执行、以及高速缓存有意识的放置数据(cache-conscious data placement)。这些方案试图解决存储器的等待时间问题。其他方案则试图解决存储器分配问题。比如,已设计垃圾收集算法来回收存储器堆内的未使用的存储区,并且以更具效率的方式来组织现有的存储器对象。更重要的是,这些算法能将程序员从管理未使用存储器的回收这类工作中解放出来。存在许多垃圾收集技术,如复制垃圾收集、标记-清除垃圾收集、分代垃圾收集和滑动压缩。滑动压缩是一种得到广泛使用的垃圾收集技术,在其中,在保持分配顺序的同时,将活(live)的存储器对象重新写到存储器堆中的死空间内。这种技术对面向对象的应用程序(如用C#或Java写成的应用程序)和在基于服务器的环境中所使用的各种.Net框架(最早由华盛顿州雷蒙德的微软公司开发)尤其有用。垃圾收集方案在存储器堆内搜索那些不可达(从而可再用)的区域。那些通过限定分配对象的位置来分割存储器的垃圾收集器损害对象的分配次数,并可导致更多的DTLB不命中。而使用滑动压缩可减少支持代码的工作集(working set)所需的DTLB入口数,因为在管理的存储器堆中的活对象相互之间更为接近。滑动压缩的一个有用特性是,它不会干扰并因此保持在滑动压缩开始之前对象最初放置的空间次序,同时还消除了插入死空间。从而,由于原位压缩的缘故,实际上改善了空间位置。由于更少的DTLB不命中,导致CPU停顿的次数更少,且代码速度得到了提高。同样,因为死空间的减少,高速缓存的不命中也得到了减少。然而,尽管滑动压缩具有性能上的优势,但与其他的一些垃圾收集例程相比,它显得相当昂贵,因为它在垃圾收集的所有阶段上施加了相当大的空间与时间开销。当存储器堆较大时,加剧了这些问题。甚至,增量式滑动压缩(即在给定的垃圾收集周期仅滑动一部分存储器堆)也不能足够快速地到达问题区域,因为在得到管理之前,许多存储区必须等待许多个收集周期。最后,存储器等待时间与停顿问题向当前的存储器管理技术施加了很高的压力。不论采用何种存储器管理技术,软件代码花在存储器管理上的时间量都非常大。每次执行代码时均需识别存在问题的存储区,并且回收这些问题区域内的存储空间(尤其对于较大的存储器堆而言)过于不准确,以至于不能有效地执行代码。附图说明图1示出了中央处理单元(CPU)与存储器控制器的框图,其中CPU具有存储器性能监控器。图2更详细地示出了图1中的存储器性能监控器。图3示出了示范的存储器管理优化的流程图。图4示出了具有两个过失区域(delinquent region)的存储器堆。图5示出了图4中的一个过失区域的示范的优化。图6示出了图4中的另一个过失区域的示范的优化。图7示出了经过过失区域优化后的图4中的存储器堆。图8示出了经过另一个过失区域的优化后的图4中的存储器堆。图9示出了样本代码执行的流程图。具体实施例方式描述了各种用于在处理器系统内优化存储器管理的各种技术。通过致力于存储器管理所执行的工作,可改进应用程序代码(即应用程序(mutator))在动态管理的运行时间环境(如Java和.NET环境,它们在处理器系统上运行)中的执行。可以在采用硬件监控而在能够监控性能监控的处理器或处理器体系结构上实施这些技术。样本处理器包括加州圣克拉拉的英特尔公司出品的Pentium4(基于精确事件的采样)与Itanium处理器(性能监控单元)。也可以在专用处理器(例如,用于存储、联网和嵌入式应用的输入/输出(I/O)处理器)环境中实施这些技术。在I/O应用(如服务器、工作站和存储子系统)中,可实施这些技术来优化跨接装置的网络的存储器管理,以优化代码执行和数据流。这样的例子包括i960RM/RN/RS I/O处理器与建有XScaleTM核微体系结构的IOP331 I/O处理器,这两种处理器均由英特尔公司出品。本领域具有普通技能的技术人员将能理解,这些处理器仅仅是列举的一些例子,且上述的技术可在其他处理器上实施。图1示出了示范的计算机系统100,该系统包括CPU单元102,且CPU单元102具有2级高速缓存104和1级高速缓存106。CPU102通过存储总线112耦合到RAM108和只读存储器(ROM)110。在示出的例子中,储存总线112耦合到系统总线114。或者,存储总线112可以是系统总线。本领域具有普通技能的技术人员将能理解,该图所示的配置仅仅是列举的一个实例。CPU 102可包括连接在一起的分立的算术逻辑单元(ALU)、寄存器和控制单元。或者,如图所示,CPU102是集成式的微处理器。CPU102包括寄存器模块115。模块106可包括以处理器速度运行的数据高速缓存、执行高速缓存(execution cache)和指令高速缓存。2级高速缓存104可以是已知的高速缓存,并且可以包括在每个时钟周期内发送数据的高速缓存接口。2级高速缓存位于CPU芯片(盒102)上,或独立于CPU芯片且通过CPU总线耦合到其上。CPU101也包括数据转换旁视缓冲区(DTLB)116和指令转换旁视缓冲区(ITLB)117。CPU102也包括性能监控单元(PMU)118,该单元可位于CPU芯片上(如图所示),也可耦合到该CPU芯片。包括Pentium4与Itanium处理器在内的一些适当的微处理器提供了片上的PMU。CPU102可代表任何能进行性能监控的处理器或处理器体系结构(例如,具有片外PMU的处理器体系结构)。系统总线114耦合到网络控制器120、显示器单元控制器122、输入装置124和数据存储/存储器介质126(如大容量存储装置)。已知各种耦合到总线106本文档来自技高网...

【技术保护点】
一种产品包括存储了指令的机器可访问介质,当由机器执行所述指令时,将导致所述机器:从性能监控器得到具有多个存储区的存储器堆的性能数据;基于所述性能数据,确定所述多个存储区的至少一个是否为过失区域;以及响应所述多个存储区 的至少一个为过失区域的确定,执行存储器管理例程来优化所述存储器堆的所述区域。

【技术特征摘要】
【国外来华专利技术】US 2003-12-31 10/749,4251.一种产品包括存储了指令的机器可访问介质,当由机器执行所述指令时,将导致所述机器从性能监控器得到具有多个存储区的存储器堆的性能数据;基于所述性能数据,确定所述多个存储区的至少一个是否为过失区域;以及响应所述多个存储区的至少一个为过失区域的确定,执行存储器管理例程来优化所述存储器堆的所述区域。2.如权利要求1所述的产品,其中,所述性能数据表示至少一个存储器性能事件。3.如权利要求1所述的产品,其中,所述性能数据是从高速缓存不命中、转换旁视缓冲区不命中、分支误预测、由数据相关性引起的停顿和数据高速缓存回写构成的组中选则的。4.如权利要求1所述的产品,其中,所述性能监控器为性能监控单元(PMU)。5.如权利要求1所述的产品,还具有其他指令,当这些指令由所述机器执行时,将导致所述机器在至少一个过失区域上执行所述存储器管理例程;以及在至少一个非过失区域上执行次级存储器管理例程,其中所述次级存储器管理例程不同于所述存储器管理例程。6.如权利要求1所述的产品,还具有其他指令,当这些指令由所述机器执行时,将导致所述机器在至少一个过失区域上执行垃圾收集例程。7.如权利要求6所述的产品,其中,所述垃圾收集例程是从参考计数收集、复制收集、分代收集、标记-清除收集、环路收集、最老优先收集、滑动压缩或混合收集构成的组中选则的。8.如权利要求1所述的产品,还具有其他指令,当这些指令由所述机器执行时,将导致所述机器在得到所述存储区的性能数据以前,建立所述存储区的大小粒度。9.如权利要求1所述的产品,其中,所述性能数据是从性能监控单元接收的,所述单元具有其他指令,当这些指令由所述机器执行时,将导致所述性能监控单元对所述性能数据的出现次数进行计数。10.如权利要求9所述的产品,还具有其他指令,当这些指令由所述机器执行时,将导致所述性能监控单元将所述性能数据的出现次数的计数与阈值进行比较,其中,如果所述计数超过了所述阈值,则确定存在过失区域。11.如权利要求10所述的产品,还具有其他指令,当这些...

【专利技术属性】
技术研发人员:S苏布拉莫尼R哈森M塞拉诺AR阿德尔塔巴塔拜
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利