[发明专利]用于存储器分层优化的统计计数无效
申请号: | 200880117521.8 | 申请日: | 2008-11-19 |
公开(公告)号: | CN101861573A | 公开(公告)日: | 2010-10-13 |
发明(设计)人: | S·普罗诺夫索特;K·K·达拉尔;A·A·齐特 | 申请(专利权)人: | 微软公司 |
主分类号: | G06F12/06 | 分类号: | G06F12/06;G06F9/38;G06F13/14;G06F15/16 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 顾嘉运;钱静芳 |
地址: | 美国华*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 存储器 分层 优化 统计 计数 | ||
背景
常见的计算机相关问题涉及管理大量数据或信息。一般而言,应当高效地维护信息以最小化所需存储量,使得可以快速定位并取回数据集内的相关数据。
在数据处理机中采用了各种系统和算法来高效地管理可用存储器资源。一种这样的已知算法是LRU(最近最少使用),其中认为缓冲区中的最近最少引用(例如最长时间未使用)的块是最不重要的,并且因此可被盖写或替换而只产生最小的系统性能影响。一般而言,LRU要求一种跟踪缓冲区中相应块中的内容的相对使用的方法。
例如,一种常规方法是在下推(push-down)栈中跟踪块地址或它们的表示,其中该栈中的位置表示相应块内容的相对使用。下推栈是使用锁存设备设计的,并且取决于缓冲区的大小和块的大小,该栈可变得相当大且实现起来很昂贵。
此外,在这样的数据处理系统中,处理器(CPU)的速度通常比其存储器快得多。因此,为允许CPU尽可能即时且平滑地存取数据,CPU的存储通常组织成异构设备的分层结构:多级高速缓存、主存储器、磁鼓、随机存取缓存的DASD(直接存取存储设备)、以及常规DASD。逻辑上,来自CPU的任何存储器存取必须沿该分层结构向下搜索,直至在某一层找到所需数据为止,随后该数据通常必须加载到上方的所有层。这样的数据安排和对CPU的按需馈送是实现存储器分层结构的最简单且最基本的方式。
此外,标准存储器分层结构设计通常假定所有存取要针对存储器的最快一层(例如,L1高速缓存)并且高速缓存未中涉及将数据移至L1高速缓存。然而,在复杂系统中,存储器操作在不污染快速存储器的情况下直接对较低层存储器(例如,L2或L3)操作是可能的。自然地,这样的绕过操作可伴有一些性能惩罚。因此,在面对对于不在最快存储器中的存储器的存取时,存在以下选择:该存储器可移至快速存储器(顶替已在此处的某物),或者另选地执行对该缓慢存储器的缓慢直接存取。
在不能由存储器的快速/缓慢/最慢集合的单个分层结构来描述的分布式系统环境中也发生了这样的复杂性。例如,在多处理器系统中,每一处理器可具有L1高速缓存,一对处理器可共享一L2高速缓存,且四个处理器的集合可共享一L3高速缓存。在(写操作的)任何时刻,存储器的每一可写块通常只可处于这些高速缓存位置之一中。优化这样的写操作指示确定是要移动该块还是执行对该块的直接缓慢存取。
概述
以下提出了简化概述以便提供对在此描述的某些方面的基本理解。本概述并不是对所要求保护的主题的全面综述。它既不旨在标识出所要求保护的主题的关键或重要的要素,也不描绘其范围。其唯一的目的是以简化的形式来介绍一些概念,作为稍后提出的更为详细的描述的序言。
本发明提供一种用于通过采用跟踪存储器位置的统计使用计数以及该计数与阈值的比较的存储器管理组件来优化存储器在分层(和/或分布式)环境中的布置的系统。这样的优化系统采用计数的近似值来跟踪一块或一段存储器实际上被操作系统(OS)多久使用一次——(而非昂贵的对这样的存储器段的完全使用计数的跟踪——例如在对每一存储器存取执行32位或64位计数器递增时,每块4-8字节的存储器存储/带宽可变得过于昂贵)。
分层存储器环境在分层的多个位置提供数据存储,其中一些位置比其他位置提供更快的数据存取。基于存储器存取和/或对数据位置的存取期间的数据使用,存储器管理组件方便了一种近似地标识存储器组块多久被使用一次的简洁方式,以促进系统整体的高效操作。此外,每一存储器位置都可基于对应的存储器存取来改变(例如,反复使用的数据可被置于相对快速的位置,并且未被充分使用的数据可被置于被认为相对慢的位置)。在一相关方面,本发明的优化系统利用预定数量的位(例如,1位或2位来作为存取位)来跟踪存储器页(例如,一4K的页),其中只要处理单元对存储器进行存取,则可生成可对照阈值进行比较的随机数。如果这样的随机数超过阈值,则针对该存储器的存取位可被设为“打开(on)”。这样的存取位可保持“打开”以获取附加数据,直至被再次设为0(例如由存储器管理组件)。取决于存储器位置被存取的次数,可以自适应地调整阈值。这样的阈值可由存储器管理组件提供,该组件也读存取位。因此,只要处理单元对存储器块/组块进行存取,则可以执行统计测试,这可改变存取位的状态(例如,从关闭(off)到打开)。存取位(例如,存取阈值寄存器)位于处理单元内,并且基于它们的“打开”状态可以提供关于存储器分配和布置的反馈。可以使用多种算法来跟踪对存储器组块的存取。可以理解,在没有阈值所设定的足够存取的情况下,这样的存取位具有很低的概率被意外地置位为“打开”状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200880117521.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:生物医用器件
- 下一篇:用于生成应用片段的系统和方法