CN102859500B - 存储器使用扫描 - Google Patents

存储器使用扫描 Download PDF

Info

Publication number
CN102859500B
CN102859500B CN201180021831.1A CN201180021831A CN102859500B CN 102859500 B CN102859500 B CN 102859500B CN 201180021831 A CN201180021831 A CN 201180021831A CN 102859500 B CN102859500 B CN 102859500B
Authority
CN
China
Prior art keywords
page
memory
storage page
storage
scanning
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201180021831.1A
Other languages
English (en)
Other versions
CN102859500A (zh
Inventor
B.L.沃辛顿
V.沙达
张琪
M.埃伊冈
Y.巴克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN102859500A publication Critical patent/CN102859500A/zh
Application granted granted Critical
Publication of CN102859500B publication Critical patent/CN102859500B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3268Power saving in hard disk drive
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3471Address tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

一种存储器扫描系统可以扫描存储器对象以通过扫描使用存储在存储器中进程的映射的每个存储器对象来确定使用频率。该扫描可以执行多次以生成存储器的每个页或单元的使用历史。在一些情况下,扫描可以以不同的频率来执行以确定多个使用类别。映射可以创建存储器使用的详细拓扑,包括多个访问频率的类别以及若干其他类别。基于该拓扑,在存储器中的对象可以被拷贝到另一个存储介质,或针对性能或功率消耗而被优化。

Description

存储器使用扫描
背景技术
计算机系统通常具有可被用于包括存储可执行代码和数据的许多不同目的的随机存取存储器。存储器中的这些项常常具有大不相同使用模式。这些项中的一些可以非常频繁地被使用,而其他项可能被较不频繁地使用。
当在存储器中每个项的使用模式是已知的时,可以执行某些优化,例如将较少使用的存储器移动到另一个类型的存储装置,或者其他优化。
发明内容
存储器扫描系统可以扫描存储器对象以通过扫描使用存储在存储器中进程的映射的每个存储器对象来确定使用频率。该扫描可被执行多次以生成用于存储器的每个页或单元的使用历史。在某些情况下,扫描可以以不同的频率来执行以确定多个使用类别。映射可创建存储器使用的详细拓扑,包括访问频率的多个类别和若干其他类别。基于该拓扑,存储器中的对象可被拷贝到另一个存储器介质,或针对性能或功率消耗而被优化。
该发明内容被提供来以简化的形式引入在以下具体实施方式中进一步描述的概念的选择。该发明内容不旨在标识要求保护的主题的关键特征或必要特征,也不旨在被用来限制要求保护的主题的范围。
附图说明
在附图中,
图1是示出具有存储器管理的设备的实施例的图示。
图2是示出在扫描和处理存储器页时使用的项的实施例的图示。
图3是示出用于存储器管理的方法的实施例的流程图图示。
图4是示出用于扫描存储器页的方法的实施例的流程图图示。
图5是示出用于处理来自扫描的结果的方法的实施例的流程图图示。
图6是示出用于处理共享存储器页的方法的实施例的流程图图示。
具体实施方式
存储器扫描系统可被用来管理存储在存储器中项的位置。存储器扫描系统可以通过周期地扫描关于存储器项的元数据来扫描存储器中的项,以确定自从上一次扫描以来哪些存储器页已被访问。周期扫描可以被用来基于在扫描的时间周期上页被访问的频率以及其他标准来将这些页分类。
存储器页的访问频率可以被用来确定存储器页的一些是否可以被移动到另一个位置以优化性能、功率消耗或其他因素。访问频率是可以被用来确定存储器页是否可被移动的访问历史的一个元素。
扫描系统可以针对当前在计算机上存在的每个进程创建和维护一组位图。这些位图可将页分组到每个类别中,使得存储器管理应用可以迅速地访问具有特定类别的页。
存储器页的类别可以包括对应于针对每个页的访问频率的‘热度’等级。‘热’页可以非常频繁地被访问,‘冷’页可不频繁地被访问,且‘中’页可以介于两者之间。也可以使用其他类别。
遍及本说明书和权利要求书,术语‘存储器页’被用来表示存储器单元。术语‘存储器页’可以是用于由操作系统执行的存储器分配的最小数据单元,并且还可以是可被移动到诸如硬盘或其它非易失性存储器位置之类的辅助存储器的数据单元。术语‘存储器页’对不同的应用或计算机架构而言可以是不同大小的数据。
遍及本说明书,贯穿附图的整个描述中,相似的附图标记表示相同的元件。
当提及元件被“连接”或“耦合”时,这些元件可以被直接连接或耦合在一起,或也可以存在一个或多个中介元件。相反地,当提及元件被“直接连接”或“直接耦合”时,不存在中介元件。
主题可被体现为设备、系统、方法和/或计算机程序产品。相应地,主题中的一些或全部可以被体现在硬件中和/或软件(包括固件、常驻软件、微代码、状态机、门阵列等)中。并且,主题可采取在计算机可用或计算机可读存储介质上的计算机程序产品的形式,其具有体现在介质中以由或结合指令执行系统使用的计算机可用或计算机可读程序代码。在本文件的上下文中,计算机可用或计算机可读介质可以是任意可能包含、存储、传达、传播或传输由或结合指令执行系统、装置或设备使用的程序的介质。
计算机可用或计算机可读介质例如可以是但不限于电子、磁、光、电磁、红外或半导体系统、装置、设备或传播介质。通过示例而不是限制的方式,计算机可读介质可以包括计算机存储介质和通信介质。
计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类信息的任何方法或技术实现的易失和非易失、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光存储器、盒式磁带、磁带、磁盘存储器或其他磁存储设备或可以被用来存储期望信息并可由指令执行系统访问的任何其他介质。注意,计算机可用或计算机可读介质可以是纸或其他在其上打印程序的适当介质,因为该程序可以经由例如光扫描该纸或其他适当介质而被电子地捕获,然后被编译、解释,如果需要的话以适当方式另外处理,并且然后被存储在计算机存储器中。
通信介质典型地体现了计算机可读指令、数据结构、程序模块或在诸如载波或其他传输机制之类的经调制的数据信号中的其他数据,并且包括任何信息传递介质。术语“经调制的数据信号”可被定义为使其特性的一个或多个以这样的方式设置或改变的信号,以便编码该信号中的信息。通过示例而不是限制的方式,通信介质包括诸如有线网络或直接有线连接之类的有线介质,和诸如声学、RF、红外和其他无线介质之类的无线介质。上述中任意的组合也应当包括在计算机可读介质的范围内。
当主题被体现在通常情况的计算机可执行指令中时,实施例可包括由一个或多个系统、计算机或其他设备执行的程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。典型地,程序模块的功能可以按照需要在各个实施例中合并或分布。
图1是实施例100的图,示出了可以包括可扫描存储器页以为这些存储器页确定使用因数的存储器管理系统的系统。实施例100是具有单独管理的存储器区域和用于扫描在存储器区域中存储的页的扫描系统的系统的简化示例。基于对象的使用,存储器管理器可将各种对象从一个存储器区域移动到另一个以改善性能、功率消耗或其他优化。
图1的图图示了系统的功能组件。在一些情况下,这些组件可以是硬件组件、软件组件或硬件和软件的组合。这些组件中的一些可以是应用级别软件,而其他组件可以是操作系统级别组件。在一些情况下,一个组件到另一个的连接可以是其中两个或更多个组件在单个硬件平台上操作的紧密连接。在其他情况下,连接可以通过跨越长距离的网络连接来建立。每个实施例可以使用不同的硬件、软件和互连架构实现所描述的功能。
实施例100是可具有可单独管理或控制的多个存储器区域的设备的示例。例如,各种存储器区域可以被单独控制以便以不同的功率等级操作或提供不同的性能特性。在一些实施例中,存储器区域可以是同质的(homogenous),其中所有存储器区域具有相同的性能和操作特性。其他实施例可以是非同质的,其中一些存储器区域可以具有与其他区域不同的特性。
作为优化机制的一部分,存储器管理器可引起存储器页从一个存储器区域被移动到另一个。在一些实施例中,存储器管理器可以针对性能进行优化。在另一个实施例中,存储器管理器可以为了功率节省优化存储器页放置。
扫描引擎可以扫描与每个进程相关联的存储器页以按使用来分类存储器对象。在典型的实施例中,扫描引擎可以通过页的访问频率来识别使用。其他实施例可以使用访问模式或其他使用标准。
共享存储器的页可以是在不同进程间共享的那些页。共享这些页的进程中每一个可能能够读取或写入该页。在一些情况下,一个进程可以非常频繁地访问共享的存储器页,而另一个进程可非常不频繁地访问该共享的存储器页。
扫描引擎可首先分析每个进程以确定该进程多频繁地访问它的关联的存储器页中的每一个。在针对每一个进程执行该操作后,扫描引擎然后可以分析每个共享的页以基于已访问该共享页的所有进程确定访问频率的单个值。在一些实施例中,然后可以针对所有进程来更新该单个值,使得对每一个进程而言共享的存储器页具有相同的值。
设备102可以表示具有一组硬件组件104和一组软件组件106的常规计算机设备。设备102可以具有常规台式或服务器计算机的架构。
设备102可以是具有处理器和可单独控制的存储器区域的任何计算机设备。在一些实施例中,设备可具有多个处理器或多个处理器核。一些实施例可以具有多个处理器,每个处理器具有多个核。在一些情况下,处理器可以是同质的,虽然在其他情况下,不同的处理器可在单个的设备中使用。
典型的设备可以是服务器计算机或台式个人计算机。其他实施例可以包括诸如膝上型计算机、上网本计算机、移动电话、个人数字助理、移动扫描器或其他设备之类的便携式设备。在一些情况下,设备102可以是游戏操作台、网络设备、网络路由设备、网关设备或其他设备。
设备102可以具有可包括处理器108和若干存储器区域110、112、114和116的一组硬件组件104。各种存储器区域可单独地得以管理。例如,每个存储器区域对功率消耗、性能或其他因素可以是独立可控的。在一些实施例中,存储器区域可以是同质的,其中每个存储器区域可以是相同的。
其他实施例可以是非同质的,其中可以存在两个或更多个不同的设备用于随机存取存储器。在一些情况下,非同质存储器配置可以通过将两个或更多个存储器区域结合到条纹(striped)或交织(interlaced)存储器区域中而从同质配置来创建。在这样的实施例中,两个或更多个存储器区域可与单个的且独立的其他存储器区域结合在一起。
存储器区域可以在实施例间改变。在一些情况下,存储器区域可以是单个列(rank)或存储器芯片。在其他情况下,存储器区域可以是双列直插存储器模块(DIMM),其可以包含一个或多个存储器芯片。仍然在其他情况下,存储器区域可以是包含一个或多个DIMM或片的存储器组。
每个存储器区域可以是单独可控的。例如,存储器区域可以是独立可控的,以允许在不同的功率等级操作。在高功率等级,存储器区域可以具有非常快的响应时间,而在较低的功率等级,存储器区域可能具有等待时间(latency),因为该存储器区域在执行读取或写入访问之前可以被提升到较高功率状态。
在一些实施例中,硬件或软件存储器控制器可以监视存储器区域以确定该存储器区域是否不频繁地被使用。例如,当存储器区域在预定时间量没有接收访问请求,存储器控制器可以降低功率状态,使得整个设备的功率消耗可以得以降低。在这样的实施例中,在一个设备中可以存在若干存储器控制器以独立地监视和控制存储器区域。
硬件组件104被图示为具有四个独立的存储器区域。一些实施例可以具有更多独立的存储器区域,例如可能具有8、16、50、100或更多独立存储器区域的实施例。独立存储器区域的数目可以是任意数目的区域,假设至少两个存储器区域是可用的并且是单独可控的。
处理器108可以访问非易失存储器118。在许多系统中,存储在随机存取存储器区域中的数据可以被周期性地‘分页’或传递给非易失存储装置。当在存储器页已被移动到非易失存储装置时对该存储器页的请求发生时,存储器故障可能出现。存储器控制器可以将该存储器页从非易失存储装置拷贝到随机存取存储器,以使得请求程序可以访问该存储器页。
非易失存储装置118可被用来存储供处理器108未来使用的可执行和非可执行的数据。
硬件组件104还可以包括网络接口120和用户接口122。
在一些实施例中,各种设备124可具有直接存储器访问(DMA)。直接存储器访问是一种技术,在这种技术中,设备可被分配存储器区域并且该设备可能能够向该区域读取和写入数据,而不涉及操作系统或其他软件进程。因为直接存储器访问可以绕过操作系统的大部分,所以与直接存储器访问相关联的存储器页可以不是可由存储器管理器移动的。具有直接存储器访问的设备的示例可以包括网络连接、存储设备、视频设备和其他外围设备。
软件组件106可以包括在其上各种应用可操作的操作系统126。操作系统126可以使用各种核存储器项128来消耗存储器页。核存储器项128可以消耗可能难以由存储器管理器移动或可能是不可由存储器管理器移动的存储器页。
各种进程130可由在处理器108上执行的应用创建。在一些情况下,单个应用可以发起数十或甚至数以百计或千计的单独进程。每个进程130可以使用可执行文件132和数据134来消耗存储器页。可执行文件132可以包括由处理器108执行的指令,而数据134可以是由进程130使用的任何其他存储的数据。
一些设备136可消耗直接存储器访问138存储器页。这样的设备可以是诸如硬盘控制器、视频显示设备、输入设备或其他设备之类的外围设备。在一些情况下,这些设备可以在设备102的内部,而在其他情况下,这些设备可以是外部的。
存储器管理器140可以优化各种存储器区域110至116之上存储器对象的放置。存储器管理器140可以在不同的实施例中执行不同类型的优化。在一个使用场景中,存储器管理器可以将不频繁使用的存储器页合并到一个或多个存储器区域上,使得那些存储器区域可以在降低的功率操作。在另一个使用场景中,存储器管理器可将频繁使用的存储器页合并到交织的存储器区域上以提高设备102的性能。
存储器管理器140可以通过分析存储器元数据142来识别和移动各种存储器页。存储器元数据142可以包括各种位图144和在共享的存储器页146上的数据。
扫描引擎148可以执行对存储器的各种扫描以创建可由存储器管理器消耗的存储器元数据142。扫描引擎148可以执行对存储器页的重复扫描以识别各个存储器页多频繁地被访问。扫描引擎操作的若干示例在随后在本说明书呈现的实施例200、300、400、500和600中得以呈现。
扫描引擎148可以通过扫描与进程相关联的那些页来扫描存储器页。作为操作系统的一部分,每个进程可以被分配存储器并被给定用于分配的存储器的一组虚拟地址。进程可使用该虚拟存储器地址来寻址存储器页,而页表可以将那些存储器页映射到物理地址。每个进程可以具有包含分配给该进程的存储器页的虚拟地址的工作组列表。
扫描引擎148可以使用用于每个进程的工作组列表来扫描与该进程相关联的每个存储器页。在扫描期间,扫描引擎可更新用于存储器页的各种位图和计数器,并且然后使用位图和计数器来确定该存储器页多频繁地被访问。
可以在存储器设备内维护指示存储器页是否已被访问的位。在一些实施例中,单个位可以被用来指示某种类的访问。在其他实施例中,两个或更多个位可被用来指示该访问是读取访问、写入访问还是两者。该位或这些位可以被配置成使得扫描引擎148可能能够查询该位或这些位,然后作为扫描的一部分重置这些位。在下一次扫描时改变的位可以指示自从上一次扫描以来访问已发生。在一些实施例中,这些位可以被用来指示访问的频率。
在这样的实施例中,扫描的频率可以改变访问频率测量的解析度(resolution)。高频率扫描可以识别快速改变或非常经常被访问的那些存储器页的窄范围。较低频率扫描可以识别存储器页的较大组。在一些实施例中,扫描可以在两个或更多个不同的频率执行以识别具有不同访问频率级别的存储器页。
图2是实施例200的图示,其示出了在执行存储器扫描时可以涉及的不同组件的示例。实施例200是可以帮助说明扫描引擎可如何操作以及可用于扫描和管理存储器页的各种位图的构造的简图。
进程202可被分配存储器的页。在许多实施例中,进程可以从操作系统请求存储器,并且操作系统可以分配存储器页。在一些情况下,进程在该进程执行时可提出多个请求。
一些进程可以不时地释放存储器。当存储器从进程得以释放时,经释放的存储器页可以被返回到操作系统并且在接收到请求时被分配给其他进程。在许多情况下,操作系统可以通过将在经释放的存储器页中的所有值改变为零来将该存储器页擦干净。这样的存储器页在将值改变为零之前可以被称为‘空闲’页,并且之后可被称为‘置零’页。
被分配给进程202的存储器页可被存储在工作组列表204中。工作组列表可以包含用于分配给进程202的存储器页的虚拟地址的列表。在工作组列表204中的项可以是可通过在页表206中的条目被解析为物理地址的虚拟地址。页表206可以包含虚拟地址到物理地址的映射。
当存储器页从一个位置被移动到另一个位置时,存储器页的位置可在页表206中被更新。这可允许存储器页被移动而不影响工作组列表204,并且因此对存储器页的物理改变可能不影响进程202的操作。在一些实施例中,与存储器页相关联的位图的内容也可以被转移到新的位置。
扫描操作和处理结果208可以产生一组位图210。可被用来生成位图210的进程的若干示例在本说明书中随后呈现的实施例300、400和500中得到图示。
在实施例200中图示的位图210仅是通过其存储器页的类别可被收集和存储的一个机制。位图210可以被创建,以使得存储器管理器250可以高效地收集某些类型的存储器页以便执行某些优化。
位图210图示了其中每个进程212、214和216具有一组位图的示例实施例。在用于每个进程的每组位图内,可以针对每个存储器区域218、220、222和224创建另一组位图。在每个区域内,可以针对为热、中或冷的存储器页创建单独的位图。
在实施例200的示例中,区域218可以包含用于热226、中228和冷230的垂直位图列。区域220可以包含用于热232、中234和冷236的位图列。类似地,区域222和224可以分别包含用于热238和244、中240和246以及冷242和248的位图列。
对于进程212、214和216中的每一个,位图可以具有对应于用于每个进程的相应工作组的列表的相同数目的条目。在位图内,在该位图的对应位置中的条目可以指示存储器页位于该位图的指定位置。例如,在用于区域220下进程212的中位图的第三列中的条目可以指示来自工作组列表的第三存储器页被存储在区域220中并且具有中类别。
所图示的位图配置是有用的,因为存储器管理器250可以从特定区域收集所有的热、中或冷存储器页以执行动作,例如将那些存储器页移动到另一个区域。
所图示的位图可以在每个位图中具有单个位条目。其他实施例可以具有为每个条目分配的两个、三个或更多个位,并且可以在单个位图或表中表示许多不同类型的数据。
所图示的配置示出了存储器页的三个类别:高、中和低。许多实施例可以利用高和低类别来操作,且可以不包括中。其他实施例可以包括若干附加的类别。在一些实施例中,可为读取访问类别创建第一组位图,并且可为写入访问类别创建第二组位图。
对于各种区域,位图210可以包括物理存储器位图。物理存储器位图252、254、256和258可以表示每个物理存储器区域的构成。在许多情况下,物理存储器位图252、254、256和258可以具有指示多个类别的条目。
物理存储器位图可以包括指示存储器页是热、中还是冷的条目,并且还可以包括用于共享存储器页以及空闲页、置零页、不可扫描页、不可移动页、直接存储器访问缓存器、核结构、私有和共享页、系统页的类别和其他类别。在一些实施例中,一些这样的类别可被包括在进程特定位图中(在适用的情况下)。
物理存储器位图可以被存储器管理器250用来迅速地分析各种存储器区域的状态并确定是否可以重配置存储器区域以及可以如何重配置存储器区域。例如,存储器管理器250可以分析物理存储器位图以确定热存储器页与冷存储器页的比例。基于该比例,存储器管理器250例如可以选择移动热或冷存储器页到另一个存储器区域。
图3是实施例300的流程图图示,其示出了用于扫描存储器对象以使得存储器优化可得以执行的一般方法。实施例300是作为优化进程的一部分可以由存储器管理器和扫描引擎执行的一般方法的简化示例。实施例300的一些部分的详细示例在本说明书中随后的实施例400和500中得以呈现。
其他实施例可以使用不同的排序、附加或更少的步骤以及不同的命名法或术语来实现类似的功能。在一些实施例中,各种操作或操作的集合可以与其他操作并行地以同步或异步方式来执行。在此选取的步骤被选择来以简化形式阐明一些操作原理。
实施例300图示了用于扫描存储器页并执行存储器优化的高级进程。该进程可以在设备被引导时在框302中开始。
硬件拓扑可在框304中得以确定。硬件拓扑可以包括描述各种存储器区域的元数据。该元数据可以包括存储器区域的数目、每个区域的大小、物理地址以及任意能力、性能特性或可区分区域的其他信息。在许多实施例中,硬件拓扑可以在引导操作系统之前被配置,并且可以在操作系统运行之后不被改变。
在框306中,可以检测当前的进程。表示当前进程的位图可以在框308中被更新或创建,为扫描做准备。
可以为扫描在框310中确定定时场景。在许多实施例中,扫描可以在若干迭代中执行。许多存储器系统具有可以在存储器页通过读取访问或写入访问被访问时设置的位。扫描进程可以评估该位并然后重置该位。当扫描检测到该位未设置时,该存储器页自从上次扫描以来未被访问。
每个存储器页的访问频率可通过连续扫描的历史来确定。每次扫描之间的时间长度可以在方框310中被确定以便选取宽或窄的存储器页组来在被访问时识别。较短的时间长度可以识别较小的存储器页组,而较长的时间长度可以识别较大的组。在许多情况下,较小的组可能倾向于更不稳定,并且可能比可使用扫描间较长时间长度识别的较大的组更迅速地改变。
在一些实施例中,扫描可以以若干不同的间隔来执行。例如,一组较长间隔的扫描可被用来识别中频率存储器页,而一组较短间隔扫描可被用来识别高频率存储器页。实施例300可以是其中可以实现这样的扫描场景的进程的示例。
完全扫描可以在框312中被执行。完全扫描的示例可以在实施例400中被阐明。
扫描的结果可以在框314中被处理。用于处理结果的方法的示例可以在实施例500中被阐明。
如果将在方框316中执行更多的扫描,进程可以循环回(loopbackto)框312。如果不在框316中执行更多的扫描,最终的结果可以在框318中处理。最终的结果可以以类似于来自框314的中间结果的方式得以处理。
存储器管理器可以在框320中执行存储器优化,并且该进程可以返回到方框306。
图4是实施例400的流程图,其示出了用于扫描存储器对象的方法。实施例400是完全扫描的示例,例如可以在实施例300的方框312中执行的完全扫描。
其他实施例可以使用不同的排序、附加或更少的步骤和不同的命名法或术语来实现类似的功能。在一些实施例中,各种操作或操作的集合可以与其他操作并行地以同步或异步方式来执行。在此选取的步骤被选择来以简化形式阐明一些操作原理。
实施例400是可以扫描存储器页读取或写入访问并可以为读取和写入操作保持单独计数器的方法的示例。扫描机制可以使用每当存储器页被访问时可以由硬件或软件切换(toggle)的一个或多个硬件或软件位。一些实施例可以仅包括可以指示访问发生、但不区分读取和写入访问的单个位。
实施例400针对每个进程扫描整个工作组列表,并针对那些进程增加计数器。当执行重复扫描时计数器可以累积值。在若干扫描后,计数器可以针对每个存储器页计数以将存储器页的访问频率或使用分类。
实施例400可以使用在访问发生时为每次扫描计数的计数器。在许多这样的实施例中,若干完整扫描可以连续地来执行,并且然后计数器可以被分析以识别高度使用的那些存储器页、轻微使用的那些存储器页和可能地以某些中间等级使用的那些存储器页。在分析之后,计数器可以被重置以用于另一次分析经过。
其他实施例可以使用不同的跟踪和计数机制。例如,一些实施例可以使用当存储器页未被访问时增加的计数器。在一些情况下,计数器可以被设置为一个初始值,然后当存储器页未被使用或使用时在每次连续扫描时递减。实施例400仅是可以被用来扫描存储器页的一个机制。
在框402中,可以为部分扫描定义片段。在一些实施例中,扫描进程可以消耗一些处理器和存储器带宽。为了最小化扫描的影响,扫描可以分段执行,其中每个部分扫描可以在分配给每个进程的存储器页的预定片段上操作。例如,片段1/128可以将完整扫描分为128个部分扫描。
当部分扫描被执行时,在每次部分扫描之间可以有延迟。该延迟可以是预确定的计时器或限制可以被分配给扫描的处理器或存储器带宽的量的调度函数。
每个进程可以在框404中单独地被扫描。对于在框404中被扫描的进程,扫描的片段可以在框406中被识别。
该片段可以定义可以在框408中扫描的工作组列表的部分。例如,扫描可以被配置为进行100次部分扫描。在该示例中第一部分扫描可以处理工作组列表的第一个1/100。第二部分扫描可以处理工作组列表的第二个1/100,等等。
在工作组列表的片段内的每个页可以在框408中被分析。在框410中,可以做出关于该页是否已被访问的确定。该确定可以通过读取在访问发生时可以设置的一个或多个硬件位来做出。在图示的实施例中,可以使用两个位,一个指示该页是否接收读取访问,并且第二位指示该页是否接收写入访问。在其他实施例中,可以使用单个位来指示任意访问,而不区分读取或写入访问。
单独追踪读取和写入访问的实施例在管理随时间降级的存储器技术方面可能是有用的。一些这样的存储器技术可以在写入访问期间降级,但可能不受读取访问影响,如果可能的话。通过单独地追踪读取和写入访问,这样的存储器技术可以作为例如经历重读取访问但非常轻写入访问的存储器页的目标。
当页在框410中未被访问时,该方法可以返回框408以扫描另一个页。如果该页在框410中被访问并且该访问在方框412中是读取访问,则读取计数器可以在框414中为该存储器页增加。每个存储器页可以针对读取和写入访问具有单独的计数器。
无论该页是否已接收到读取访问,如果该页已在框416中接收到写入访问,写入计数器在框418中可以为该存储器页增加。在分析在框412至418中的读取和写入位后,页访问位可以在框420中被重置,并且另一个存储器页可以在框408中被扫描。
在扫描完框404中的每个进程后,如果扫描还未在框422中完成,该扫描可以在框424中前进到下一个片段,并返回框404以利用另一个部分扫描再次扫描完这些进程。
在进程在框422中已被完全扫描后,其他类型的页可以在框426中被扫描。例如,核页、直接存储器访问页或其他页可以被扫描。在一些实施例中,一些这样的页可以被认为是不可移动的,因此可以被忽略,因为不可移动的页可以不由存储器管理器移动。
实施例400可以在一段时间内连续地执行若干次,每一次各种计数器可以增加或不增加。在执行扫描预定义次数后,可以分析结果。在实施例500中阐明了可以如何执行分析的一个示例。
图5是实施例500的流程图图示,其示出了用于处理扫描结果的方法。实施例500是作为最终分析的一部分可以执行的分析的示例,所述最终分析例如实施例300的框318的最终分析。
其他实施例可以使用不同的排序、附加或更少的步骤和不同的命名法或术语来实现类似的功能。在一些实施例中,各种操作或操作的集合可以与其他操作并行地以同步或异步方式来执行。在此选取的步骤被选择来以简化形式阐明一些操作原理。
实施例500是来自多个扫描的结果可以如何被分析以将存储器页分类并且然后更新在位图组中的类别的一个示例。实施例500针对每个存储器页单独地分析读取和写入指示符或计数器,并且将计数器值与一组阈值比较以便将存储器页分类。在实施例500的示例中,可以针对读取和写入活动向每个存储器页分配单独的类别,并且在读取和写入活动中,存储器页可以被分类为‘热’、‘中’或‘冷’。读取和写入活动的类别可以相互独立或正交。例如,存储器页可以被分类为‘热/读’和‘中/写’。
实施例500可以使用不同的阈值用于分配类别。阈值可以由用于特定类别的最小值定义。例如,一组结果可以使用对存储器对象的10次完整扫描来计算。在该示例中,用于‘热/读’的阈值可以是最小值8个计数。用于‘中/读’的阈值可以是最小值4个计数。在该示例中,在10次扫描内至少8次之间接收到读取访问的存储器页可以被认为是‘热/读’。一些实施例可以针对读取和写入使用相同的阈值,而其他实施例可以针对读取和写入访问具有不同的阈值。
实施例500阐明了通过逐个遍历(steppingthrough)在处理器或核上操作的每个进程来分析存储器的方法。其他实施例可以使用遍历存储器的不同机制。
每个进程可以在框502中被分析。对于在框502中的每个进程,在工作组列表中的每个页可以在框504中被分析。
对于在工作组列表中的每个页,如果读取计数器在框506中超过了热/读阈值,该存储器页可以在框508中被分类为热/读页。
如果读取计数器在方框506中未超过热/读阈值,但的确在框510中超过了温/读阈值,该存储器页可以在框512中被分配‘温/读’类别。如果读取计数器在框510中未超过温/读阈值,该存储器页框514中可以被分类为‘冷/读’。
写入计数器以类似的方式被处理。如果写入计数器在框516中超过了热/写阈值,该存储器页可以在框518中被分类为‘热/写’。如果写入计数器未超过热/写阈值,但在方框520中的确超过了温/写阈值,该存储器页在框522中可以被分类为‘温/写’。否则,该存储器页可以在框524中被分类为‘冷/写’。
在将存储器页分类后,对应于存储器页的位图可以在框526中得以更新。用于更新位图的确切进程可以随位图的布置而改变。在实施例200中位图的示例中,这些位图可以通过识别存储器页的物理地址来更新,以识别该存储器页被存储在其中的存储器区域。在该区域内,与类别相关联的位图可以被更新以反映存在的当前存储器页。与当前存储器页相关的其他位图可以在框528中被清除。
在实施例500中,可以使用两个单独的位图组:一个用于读取类别,而另一个组用于写入类别。
在处理了框504中的所有存储器页和框502中的所有进程后,共享的存储器页可以在框530中被处理。可以如何处理共享的存储器页的示例在实施例600中被阐明。
图6是实施例600的流程图图示,其示出了用于处理共享存储器页的方法。实施例600是可以由实施例500的框530执行的一个方法的示例。
其他实施例可以使用不同的排序、附加或更少的步骤和不同的命名法或术语来实现类似的功能。在一些实施例中,各种操作或操作的集合可以与其他操作并行地以同步或异步方式来执行。在此选取的步骤被选择来以简化形式阐明一些操作原理。
实施例600通过找到由可以共享该页的进程的每一个确定的类别并选取类别来处理共享页。在选取共同类别后,用于每个进程的存储器页可以被更新以反映该共同类别。
实施例600的进程可以导致被分配给每个物理存储器页的相同类别。在共享存储器页中,两个或更多个进程的每一个可以访问相同的物理存储器位置。在扫描和分析各种存储器页期间,该分析可以基于逐进程执行。在一个进程可以是活动的且另一个进程是不活动的情况下,在进程间的共享存储器页可以由第一进程产生热类别且由第二进程产生冷类别。在这样的情况下,实施例600的过程可以确定共同类别,并将该类别应用于引用该存储器页的每个进程。
在框602中,可以执行扫描以识别所有共享页。每个共享页可以在框604中被分析。
临时类别可以在框606中被设置为最低类别。在框607中对于共享当前页的每个共享进程,由该进程为该存储器页分配的类别可以在框608中被分析。如果当前进程在框608中不具有较高类别,该方法可以返回以分析在框607中的下一个进程。
如果当前进程在框608中具有较高类别,当前或临时类别可以在框610中被设置为当前进程的类别。
在框607中每个进程都得以分析后,临时类别可以反映共享该存储器页的任意进程的最大类别。在一些实施例中,该最大类别可能是‘热’类别。在其他实施例中,该最大类别可能是‘冷’类别。
再一次地,共享该存储器页的每个进程可以在框612中被分析。对于每个进程,当前存储器页的类别等级可以在框614中被重写以反映在框610中确定的临时类别。框612和614的操作可以迫使最大类别针对每个进程而被设置。
已出于阐明和描述的目的呈现了主题的在前描述。它不旨在是详尽的,或者将主题限制于所公开的精确形式,并且其他修改和变型在以上教导下是可能的。实施例被选取和描述以最佳地解释本发明的原理及其实际应用,从而使得本领域的其他技术人员能够在各种实施例和适于期望的特殊使用的各种修改中最佳地使用本发明。旨在附加的权利要求被解释为包括除了在由现有技术限制的范围之外是其他可替代的实施例。

Claims (15)

1.一种存储器扫描系统,包括:
多个存储器区域,每个存储器区域以至少高功率方式和低功率方式可操作;所述存储器区域存储多个存储器页;
处理器,其运行多个进程;
扫描引擎,其:
识别运行在所述处理器上的所述多个进程并使用所识别的进程来识别与之相关联的存储器页,
分别执行对所识别的存储器页的多次扫描,以确定所识别的存储器页中的每一个的使用历史类别;以及
存储器管理器,其基于所述使用历史类别来识别所述存储器页中的至少一个,以便从第一存储器区域移动到第二存储器区域。
2.权利要求1的系统,进一步包括:
对应于所述多个存储器区域中的每一个的一组位图,所述位图组包括至少一个条目,其用于所述多个存储器区域之一内的每一个页位置中。
3.权利要求2的系统,所述位图组在所述至少一个条目中包括类别指示。
4.权利要求1的系统,进一步包括:
对应于所述多个进程中的每一个的一组位图。
5.权利要求4的系统,所述位图组针对所述多个存储器区域中的每一个包括至少一个单独的位图。
6.权利要求5的系统,所述单独的位图针对所述存储器页中的每一个包含类别指示符。
7.权利要求5的系统,所述位图组针对所述类别指示符中的每一个包括单独的位图。
8.权利要求4的系统,所述位图组包括到工作组列表的指针,所述工作组列表包括用于分配给所述进程之一的所述存储器页的虚拟地址。
9.权利要求1的系统,所述扫描引擎进一步:
识别多个共享页,所述共享页中的每一个由一组进程引用;
对于所述共享页中的每一个,基于用于该组进程中的每一个进程的所述共享页的类别来确定用于所述共享页的第一类别;以及
更新在该组进程中的所述每一个进程,以反映所述第一类别。
10.权利要求9的系统,所述第一类别是来自用于该组进程中的每一个进程的所述共享页的所述类别的最大类别。
11.权利要求1的系统,所述类别至少包括低频率访问、中频率访问和高频率访问。
12.权利要求1的系统,所述扫描引擎以第一频率执行第一组扫描,并且以不同的频率执行第二组扫描。
13.权利要求1的系统,所述多次扫描以比由一分钟、两分钟、五分钟、十分钟和六十分钟构成的组中的至少一个短的间隔来执行。
14.权利要求1的系统,所述多次扫描以比六十分钟大的间隔来执行。
15.一种在运行多个进程的计算机处理器上执行的方法,所述方法包括:
确定包括多个存储器区域的硬件拓扑,所述多个存储器区域中的每一个是可单独管理的,所述存储器区域存储多个存储器页;
检测在所述计算机处理器上运行的多个进程;
使用所检测的进程来识别与之相关联的存储器页,并且执行多次扫描,以分类所述存储器页中给定的一个存储器页的使用,由此针对所述存储器页中的每一个来计算所述使用;
基于所述使用中的对应的一个使用,将至少一个存储器页从第一存储器区域移动到第二存储器区域;以及
与第二存储器区域不同地来管理第一存储器区域。
CN201180021831.1A 2010-04-30 2011-04-06 存储器使用扫描 Active CN102859500B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/770,937 US9015441B2 (en) 2010-04-30 2010-04-30 Memory usage scanning
US12/770937 2010-04-30
PCT/US2011/031350 WO2011139465A2 (en) 2010-04-30 2011-04-06 Memory usage scanning

Publications (2)

Publication Number Publication Date
CN102859500A CN102859500A (zh) 2013-01-02
CN102859500B true CN102859500B (zh) 2016-08-03

Family

ID=44859233

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180021831.1A Active CN102859500B (zh) 2010-04-30 2011-04-06 存储器使用扫描

Country Status (5)

Country Link
US (1) US9015441B2 (zh)
EP (1) EP2564321B1 (zh)
CN (1) CN102859500B (zh)
TW (1) TWI519948B (zh)
WO (1) WO2011139465A2 (zh)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9135038B1 (en) * 2010-05-28 2015-09-15 Bromium, Inc. Mapping free memory pages maintained by a guest operating system to a shared zero page within a machine frame
US9032398B2 (en) * 2010-07-12 2015-05-12 Vmware, Inc. Online classification of memory pages based on activity level represented by one or more bits
US8990531B2 (en) 2010-07-12 2015-03-24 Vmware, Inc. Multiple time granularity support for online classification of memory pages based on activity level
US9063866B1 (en) * 2010-07-12 2015-06-23 Vmware, Inc. Page table data structure for online classification of memory pages based on activity level
US8832390B1 (en) * 2010-07-12 2014-09-09 Vmware, Inc. Online classification of memory pages based on activity level using dynamically adjustable scan rates
US20120017039A1 (en) * 2010-07-16 2012-01-19 Plx Technology, Inc. Caching using virtual memory
KR101257691B1 (ko) * 2011-08-12 2013-04-24 아주대학교산학협력단 메모리 컨트롤러 및 이의 데이터 관리방법
KR101761044B1 (ko) * 2011-12-22 2017-07-24 인텔 코포레이션 메모리 채널 셧다운에 의한 전력 절약
US10114750B2 (en) * 2012-01-23 2018-10-30 Qualcomm Incorporated Preventing the displacement of high temporal locality of reference data fill buffers
JP5624583B2 (ja) * 2012-05-31 2014-11-12 株式会社東芝 プログラム、計算処理装置、メモリ管理方法および計算機
US20130326151A1 (en) * 2012-05-31 2013-12-05 Semiconductor Energy Laboratory Co., Ltd. Memory management system and program
US20140089564A1 (en) * 2012-09-27 2014-03-27 Skymedi Corporation Method of data collection in a non-volatile memory
CN103914363B (zh) * 2012-12-31 2016-10-26 华为技术有限公司 一种内存监控方法及相关装置
JP5989574B2 (ja) * 2013-02-28 2016-09-07 株式会社東芝 計算機、メモリ管理方法およびプログラム
US10102148B2 (en) 2013-06-13 2018-10-16 Microsoft Technology Licensing, Llc Page-based compressed storage management
US9135472B2 (en) 2013-10-31 2015-09-15 Square, Inc. Systems and methods for secure processing with embedded cryptographic unit
US9684625B2 (en) * 2014-03-21 2017-06-20 Microsoft Technology Licensing, Llc Asynchronously prefetching sharable memory pages
WO2015150976A1 (en) 2014-04-03 2015-10-08 Strato Scale Ltd. Cluster-wide memory management using similarity-preserving signatures
US9501422B2 (en) * 2014-06-11 2016-11-22 Vmware, Inc. Identification of low-activity large memory pages
US9330015B2 (en) * 2014-06-11 2016-05-03 Vmware, Inc. Identification of low-activity large memory pages
US9390028B2 (en) 2014-10-19 2016-07-12 Strato Scale Ltd. Coordination between memory-saving mechanisms in computers that run virtual machines
US9912748B2 (en) 2015-01-12 2018-03-06 Strato Scale Ltd. Synchronization of snapshots in a distributed storage system
WO2016135570A1 (en) * 2015-02-26 2016-09-01 Strato Scale Ltd. Using access-frequency hierarchy for selection of eviction destination
US9632924B2 (en) 2015-03-02 2017-04-25 Microsoft Technology Licensing, Llc Using memory compression to reduce memory commit charge
US10037270B2 (en) 2015-04-14 2018-07-31 Microsoft Technology Licensing, Llc Reducing memory commit charge when compressing memory
US9871895B2 (en) * 2015-04-24 2018-01-16 Google Llc Apparatus and methods for optimizing dirty memory pages in embedded devices
US9715268B2 (en) 2015-05-08 2017-07-25 Microsoft Technology Licensing, Llc Reducing power by vacating subsets of CPUs and memory
CN105022978B (zh) * 2015-06-30 2020-05-05 广州华多网络科技有限公司 一种信息识别方法以及装置
US9916238B2 (en) * 2015-08-25 2018-03-13 Sandisk Technologies Llc Memory system and method for performing garbage collection on blocks based on their obsolescence patterns
TWI751990B (zh) * 2015-12-24 2022-01-11 美商英特爾股份有限公司 衝突罩生成
US10037173B2 (en) * 2016-08-12 2018-07-31 Google Llc Hybrid memory management
US10152427B2 (en) 2016-08-12 2018-12-11 Google Llc Hybrid memory management
US10042737B2 (en) 2016-08-31 2018-08-07 Microsoft Technology Licensing, Llc Program tracing for time travel debugging and analysis
US10031833B2 (en) * 2016-08-31 2018-07-24 Microsoft Technology Licensing, Llc Cache-based tracing for time travel debugging and analysis
US10031834B2 (en) * 2016-08-31 2018-07-24 Microsoft Technology Licensing, Llc Cache-based tracing for time travel debugging and analysis
US10324851B2 (en) 2016-10-20 2019-06-18 Microsoft Technology Licensing, Llc Facilitating recording a trace file of code execution using way-locking in a set-associative processor cache
US10489273B2 (en) 2016-10-20 2019-11-26 Microsoft Technology Licensing, Llc Reuse of a related thread's cache while recording a trace file of code execution
US10310977B2 (en) 2016-10-20 2019-06-04 Microsoft Technology Licensing, Llc Facilitating recording a trace file of code execution using a processor cache
US10310963B2 (en) 2016-10-20 2019-06-04 Microsoft Technology Licensing, Llc Facilitating recording a trace file of code execution using index bits in a processor cache
US10540250B2 (en) 2016-11-11 2020-01-21 Microsoft Technology Licensing, Llc Reducing storage requirements for storing memory addresses and values
US10410202B1 (en) 2016-12-31 2019-09-10 Square, Inc. Expedited booting with brownout monitoring
US10318332B2 (en) 2017-04-01 2019-06-11 Microsoft Technology Licensing, Llc Virtual machine execution tracing
US10296442B2 (en) 2017-06-29 2019-05-21 Microsoft Technology Licensing, Llc Distributed time-travel trace recording and replay
US10459824B2 (en) 2017-09-18 2019-10-29 Microsoft Technology Licensing, Llc Cache-based trace recording using cache coherence protocol data
US10410189B2 (en) 2017-09-30 2019-09-10 Square, Inc. Scanning system with direct access to memory
US10558572B2 (en) 2018-01-16 2020-02-11 Microsoft Technology Licensing, Llc Decoupling trace data streams using cache coherence protocol data
US11907091B2 (en) 2018-02-16 2024-02-20 Microsoft Technology Licensing, Llc Trace recording by logging influxes to an upper-layer shared cache, plus cache coherence protocol transitions among lower-layer caches
US10496537B2 (en) 2018-02-23 2019-12-03 Microsoft Technology Licensing, Llc Trace recording by logging influxes to a lower-layer cache based on entries in an upper-layer cache
US10642737B2 (en) 2018-02-23 2020-05-05 Microsoft Technology Licensing, Llc Logging cache influxes by request to a higher-level cache
EP3861456A4 (en) 2019-02-01 2022-05-25 Hewlett-Packard Development Company, L.P. DEVICE UPGRADE POLICY BASED ON TELEMETRY DATA
EP3948549A4 (en) * 2019-03-29 2022-10-26 INTEL Corporation COLD PAGE COLLECTION APPARATUS, METHOD AND SYSTEM
US11237981B1 (en) * 2019-09-30 2022-02-01 Amazon Technologies, Inc. Memory scanner to accelerate page classification
US11222704B1 (en) * 2020-12-17 2022-01-11 Micron Technology, Inc. Power state aware scan frequency
US11393548B2 (en) * 2020-12-18 2022-07-19 Micron Technology, Inc. Workload adaptive scans for memory sub-systems
US20220317925A1 (en) * 2021-03-31 2022-10-06 Advanced Micro Devices, Inc. Methods and apparatus for offloading tiered memories management
US11755244B2 (en) * 2021-04-22 2023-09-12 EMC IP Holding Company, LLC System and method for smart NVMeOF disk array enclosure deep background data reduction offload

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04230508A (ja) 1990-10-29 1992-08-19 Internatl Business Mach Corp <Ibm> 低電力消費メモリ装置
TW212840B (en) 1992-04-22 1993-09-11 Ibm Multi-bit vector for page aging
US6742097B2 (en) 2001-07-30 2004-05-25 Rambus Inc. Consolidation of allocated memory to reduce power consumption
US7248585B2 (en) 2001-10-22 2007-07-24 Sun Microsystems, Inc. Method and apparatus for a packet classifier
EP1408510A3 (en) 2002-05-17 2005-05-18 Matsushita Electric Industrial Co., Ltd. Memory control apparatus, method and program
US7761873B2 (en) 2002-12-03 2010-07-20 Oracle America, Inc. User-space resource management
US7788461B2 (en) 2004-04-15 2010-08-31 International Business Machines Corporation System and method for reclaiming allocated memory to reduce power in a data processing system
US7272734B2 (en) 2004-09-02 2007-09-18 International Business Machines Corporation Memory management to enable memory deep power down mode in general computing systems
US20060117160A1 (en) 2004-12-01 2006-06-01 Intel Corporation Method to consolidate memory usage to reduce power consumption
US7430694B2 (en) 2005-01-20 2008-09-30 Lsi Corporation Memory BISR architecture for a slice
US7421598B2 (en) 2005-02-09 2008-09-02 International Business Machines Corporation Dynamic power management via DIMM read operation limiter
KR100704037B1 (ko) 2005-04-15 2007-04-04 삼성전자주식회사 이종의 비휘발성 메모리를 가지는 데이터 저장장치와 그의구동 방법
GB2426360A (en) 2005-05-18 2006-11-22 Symbian Software Ltd Reorganisation of memory for conserving power in a computing device
US8010764B2 (en) 2005-07-07 2011-08-30 International Business Machines Corporation Method and system for decreasing power consumption in memory arrays having usage-driven power management
JP2007272573A (ja) 2006-03-31 2007-10-18 Hitachi Ltd 低消費電力化メモリ管理方法及びメモリ管理プログラム
KR101498673B1 (ko) * 2007-08-14 2015-03-09 삼성전자주식회사 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템
US8245060B2 (en) * 2009-10-15 2012-08-14 Microsoft Corporation Memory object relocation for power savings
US8402232B2 (en) * 2009-12-23 2013-03-19 Oracle America, Inc. Memory utilization tracking

Also Published As

Publication number Publication date
TW201202930A (en) 2012-01-16
US20110271070A1 (en) 2011-11-03
TWI519948B (zh) 2016-02-01
CN102859500A (zh) 2013-01-02
EP2564321A4 (en) 2015-01-14
US9015441B2 (en) 2015-04-21
WO2011139465A2 (en) 2011-11-10
EP2564321B1 (en) 2017-09-27
EP2564321A2 (en) 2013-03-06
WO2011139465A3 (en) 2012-03-01

Similar Documents

Publication Publication Date Title
CN102859500B (zh) 存储器使用扫描
US5325505A (en) Intelligent storage manager for data storage apparatus having simulation capability
US9658779B2 (en) Computer system and control method for computer system
CN102521154B (zh) 用于创建低功率区域的动态存储器分配和重新定位
US9483319B2 (en) Job scheduling apparatus and method therefor
US20130332693A1 (en) Allocating storage memory based on future file size or use estimates
US10860494B2 (en) Flushing pages from solid-state storage device
US20100017632A1 (en) Managing Power-Consumption
CN110297780A (zh) 存储装置及计算机系统
CN104603739A (zh) 对并行存储的块级访问
US10789170B2 (en) Storage management method, electronic device and computer readable medium
CN102024011A (zh) 自主子系统体系结构
US10908960B2 (en) Resource allocation based on comprehensive I/O monitoring in a distributed storage system
CN109992566A (zh) 一种文件访问方法、装置、设备及可读存储介质
US20130054920A1 (en) Storage system and method for reallocating data
CN108475201A (zh) 一种虚拟机启动过程中的数据获取方法和云计算系统
US20160253119A1 (en) Storage system, storage method, and recording medium
CN109725823A (zh) 用于管理混合存储盘阵列的方法和设备
US11467942B2 (en) Predictive performance indicator for storage devices
JP2019191886A (ja) 情報処理装置,情報処理方法およびプログラム
JP6666553B2 (ja) 情報処理装置、ジョブ管理方法およびジョブ管理プログラム
US10061624B2 (en) Parallel computing system, job management device, and job management method
US10049053B1 (en) Classifying performance of an external storage resource pool associated with a performance tier in a federated tiered storage system for overload avoidance and auto-tiering
JP6200100B2 (ja) 計算機システム
US11868223B2 (en) Read-disturb-based read temperature information utilization system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1180075

Country of ref document: HK

ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150618

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150618

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1180075

Country of ref document: HK