CN107273302A - 管理工作负载存储器分配的方法、设备和系统 - Google Patents

管理工作负载存储器分配的方法、设备和系统 Download PDF

Info

Publication number
CN107273302A
CN107273302A CN201710307164.2A CN201710307164A CN107273302A CN 107273302 A CN107273302 A CN 107273302A CN 201710307164 A CN201710307164 A CN 201710307164A CN 107273302 A CN107273302 A CN 107273302A
Authority
CN
China
Prior art keywords
data element
workload
data
memory
during
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.)
Granted
Application number
CN201710307164.2A
Other languages
English (en)
Other versions
CN107273302B (zh
Inventor
M.R.格林菲尔德
R.格利佛
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Priority to CN201710307164.2A priority Critical patent/CN107273302B/zh
Publication of CN107273302A publication Critical patent/CN107273302A/zh
Application granted granted Critical
Publication of CN107273302B publication Critical patent/CN107273302B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0608Saving storage space on storage systems
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0638Organizing or formatting or addressing of data
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4441Reducing the execution time required by the program code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本文公开了管理工作负载存储器分配的方法、制品和设备。示例方法包括识别与平台相关联的主存储器和辅助存储器,辅助存储器具有与主存储器的第二性能度量不同的第一性能度量,识别与在平台上执行期间由工作负载调用的多个数据元素相关联的访问度量,基于与多个数据元素的对应数据元素相关联的访问度量,按优先排列多个数据元素的列表,以及基于多个存储器元素的第一存储器元素的优先级,将多个数据元素的第一数据元素从主存储器重新分配到辅助存储器。

Description

管理工作负载存储器分配的方法、设备和系统
技术领域
本公开内容一般涉及存储器管理,并且更具体地说,涉及管理工作负载存储器分配的方法和设备。
背景技术
近年来,处理器已被开发以执行增大的每秒浮点运算数量(FLOPS)。促成增大的FLOPS的设计改进包括但不限于更大的晶体管密度和多个核。在另外的晶体管和/或核添加到处理器时,出现了功耗和热的对应增大,这可对FLOPS性能起到反作用。
附图说明
图1是根据管理工作负载存储器分配的本公开内容的教导构成的示例工作负载管理器的示意图。
图2是指示请求平台的存储器访问的示例数据元素的示例表格。
图3是指示请求平台的存储器访问的示例数据阵列简档的示例表格。
图4-6是表示可执行以管理工作负载存储器分配,实现图1的示例工作负载管理器和/或构建图2和3的表格的示例机器可读指令的流程图。
图7是可执行图4-6的示例机器可读指令以实现图1的示例工作负载管理器和/或构建图2和3的表格的示例系统的框图。
具体实施方式
本文公开了管理工作负载存储器分配的方法、制品和设备。示例方法包括识别与平台相关联的主存储器和辅助存储器,辅助存储器具有与主存储器的第二性能度量不同的第一性能度量,识别与在平台上执行期间由工作负载调用的多个数据元素相关联的访问度量,基于与多个数据元素的对应数据元素相关联的访问度量,按优先排列(prioritize)多个数据元素的列表,以及基于多个存储器元素的第一存储器元素的优先级,将多个数据元素的第一数据元素从主存储器重新分配到辅助存储器。
图1是控制工作负载存储器分配的示例工作负载控制器100的示意图。在图1的所示示例中,工作负载管理器100包括工作负载管理器102、数据元素识别器104、数据元素跟踪器106、数据元素性能计算器108、存储器管理器110、代码修改器112及链接程序(linker)接口114。示例工作负载管理器100以通信方式连接到具有一个或更多个工作负载118、主存储器120、辅助存储器122和处理器124的示例平台116。
图1的平台116的示例处理器124包括执行示例工作负载118的任何数量的核。图1的示例工作负载118可包括但不限于由编译器机制从源代码生成和链接的可执行代码(例如,二进制码)的一个或更多个程序。代码的执行可包括但不限于执行一个或更多个程序,程序具有任何数量的相关联动态链路库(DLL)、一起链接到相同程序的一个或更多个单独的文件和/或集群使用模型,集群使用模型中工作负载包括带有涉及一个或更多个过程的任何数量的共享库的程序。在示例工作负载118执行期间,处理器124可访问主存储器120以操控和/或以其它方式处理数据。数据可包括但不限于数据阵列、文件、堆(heap)和/或栈(stack)。在本文中使用时,对数据、阵列数据和/或数据阵列的引用包括可由处理器124处理和/或存储在主存储器120和/或辅助存储器122中的所有类型的数据。在本文中使用时,主存储器120包括闪存、只读存储器(ROM)、随机存取存储器(RAM)和/或硬盘驱动器存储器。主存储器120例如可包括任何类型的双倍数据率(DDR) RAM(例如,DDR2、DDR3、DDR4等)。
在一些示例中,平台116的辅助存储器122包括在与主存储器120相比时展示更低等待时间、相干性和/或更高带宽能力的增强性能设计。示例辅助存储器122可包括在与示例主存储器120对应的对应闪存、ROM、RAM和/或硬盘驱动器存储器相比时具有改进性能度量的闪存、ROM、RAM和/或硬盘驱动器存储器。示例辅助存储器122可基于其改进的性能特性而具有相关联溢价,并且因此,辅助存储器122的对应大小/容量可实质上低于主存储器120的大小/容量。相应地,示例辅助存储器122的利用由于其相对更高的成本和更低的大小而得到仔细审查。示例辅助存储器122可包括但不限于暂存RAM。暂存RAM是相对高速的内部存储器,可以是协调的(coherent),并且可位于处理器124上,在处理器124附近和/或在处理器封装内。
在操作中,示例工作负载管理器100识别改进(例如,优化)在示例平台116上执行的代码的一个或更多个机会。如上所述,虽然添加到处理器124的另外晶体管和/或核可在执行代码时产生更快的结果,但添加的晶体管的对应热生成和/或功耗可在FLOPS性能方面最终提供减小的收益。为在执行一个或更多个工作负载118时改进平台性能,示例工作负载管理器100识别工作负载118的存储器利用模式。如果由示例处理器124创建和/或以其它方式操控的第一数据阵列展示相对高的需求(例如,与第二数据阵列相比时的读/写操作的数量、数据阵列实质影响工作负载/平台性能的程度、相对比较等),则示例工作负载管理器100修改与示例工作负载118相关联的代码,以便为此类读/写操作利用相对更快类型的存储器。示例工作负载管理器100执行的代码修改可包括但不限于源代码修改、二进制码修改、动态即时(JIT)编码器修改等。在一些示例中,可重新链接代码以在某种程度上改进速度而无需一个或更多个编译操作。诸如示例辅助存储器122等更快类型的存储器允许通过比主存储器120更低的等待时间和/或更高的带宽进行读/写操作,由此改进在示例平台116上执行时工作负载118的性能。
示例工作负载管理器102检索和/或以其它方式接收来自平台116的工作负载118,并且执行在受监视环境中的工作负载以表征其操作。在一些示例中,工作负载管理器102获得,检索和/或以其它方式获得与示例平台116相关联的信息,如平台116利用和/或以其它方式可用的一个或更多个类型的存储器。如下面进一步详细所述,如果平台116包括具有在与示例主存储器120相比时改进的操作特性的一个或更多个类型的存储器(例如,辅助存储器122),则示例工作负载管理器100修改与工作负载118相关联的代码(例如,源代码、一个或更多个二进制码、磁盘上有利于随后执行优化的二进制码等),以利用此类存储器改进平台性能。示例工作负载管理器102可一次或更多次调用工作负载118以表征其数据阵列和存储器利用行为。在一些示例中,工作负载管理器102调用工作负载118的多次执行迭代以确定平均特性。在其它示例中,工作负载管理器102通过一个或更多个输入参数调用工作负载118以识别对应数据阵列和/或存储器利用行为(例如,应力试验)。
在示例工作负载118执行期间,示例数据元素识别器104识别到诸如示例主存储器120等平台116的一个或更多个存储器的数据访问的实例。示例数据元素跟踪器106为示例工作负载118采用的每个数据阵列计数数据访问的检测到的实例的数量,并且存储此类计数以便以后分析工作负载118行为。在其它示例中,收集和/或监视访问计数可能不足以确定在与一个或更多个其它数据阵列相比时关注的数据阵列的相对分级。在此类情况下,收集和/或监视用于关注的每个数据阵列的每时间单位的访问允许进行哪个(些)数据阵列可对平台和/或工作负载性能贡献最大益处的相对分级。如上所述,每个数据阵列可包括由示例工作负载采用的任何类型的存储器结构,如阵列、文件、堆、栈、寄存器等。示例数据元素跟踪器106也可从工作负载收集情报以发送到示例数据元素性能计算器108。
示例数据元素性能计算器108分析数据访问的存储实例,并且生成与执行到存储器的一个或更多个读/写操作的每个数据阵列相关联的一个或更多个数据访问行为的表格。如下面进一步详细所述,示例数据元素性能计算器108生成的表格可包括与每个数据阵列相关联的存储器访问尝试的数量的计数(访问计数)、存储器访问尝试导致延迟(例如,处理器自旋、处理器等待存储器变得可用于读/写操作、与负载和/或存储相关联的停顿)的实例数量的计数和/或在存储器访问尝试造成处理器自旋(例如,处理器等待事件)的实例期间发生的周期数量。在某种程度上基于由示例数据元素性能计算器108识别的一个或更多个计数值,数据访问行为的表格可将每个数据阵列分等级(例如,按优先排列)。在一些示例中,等级(例如,优先级)是基于到存储器的数据阵列访问实例的数量,而在其它示例中,等级是基于由到存储器的数据阵列访问实例产生的处理器周期的数量。通常,虽然第一数据阵列可包括在与第二数据阵列相比到一个或更多个存储器(例如,主存储器120)相对更大数量的访问尝试,但第一数据阵列进行的每个存储器访问实例可与相对小量的数据传送相关联。因此,与第一数据阵列相关联的相对高计数可不指示经主存储器120到相对更快辅助存储器122的数据阵列(例如,数据元素)使用的重新分配,用于改进平台116性能的候选更改(例如,优化)。另一方面,在一些示例中,与第一数据阵列相关联的相对低计数也可与在每个访问尝试期间相对大量的数据传送相关联。在此类在示例中,在配置(例如,优化)平台116性能以降低(例如,最小化)和/或消除在其它情况下在相对慢存储器不能足够快地执行读/写操作时可发生的处理器自旋时,更快的存储器可以是有益的。
图2示出由示例数据元素性能计算器108生成的示例表格200。在图2的所示示例中,表格200包括数据元素列202、访问计数列204、等待计数列206及处理器等待周期计数列208。示例数据元素列202包括由已参与示例工作负载118的示例数据元素识别器104识别的数据阵列的列表。虽然图2的所示示例包括阵列,但本文中公开的方法、制品和/或设备不限于此。例如,可实现其它形式的存储器,包括但不限于暂存存储器、暂存器、堆、动态分配的数据对象、栈等。对于每个识别的数据阵列,示例表格200包括在访问计数列204中指示数据阵列已向平台116的存储器进行访问尝试(例如,读、写等)的数量的对应计数值。另外,示例表格200包括在等待计数列206中指示数据阵列访问已造成对处理器的对应等待的数量的对应计数值。例如,表格200的第一行210与多次访问存储器712的“阵列1”相关联,但如示例等待计数列206中“0”所示,这些访问实例均未造成任何对处理器124的对应自旋/等待。因此,如示例处理器等待周期计数列308中“0”所示,示例“阵列1”未造成示例处理器124的任何对应周期计数。
另一方面,表格200的示例第三行212与“阵列3”和访问的存储器6219次相关联,其中,存储器访问的101个实例造成了示例处理器124等待。处理器124等待的101个实例造成处理器周期的对应数量是5050(例如,101次访问尝试的每次造成50个处理器周期的延迟)。表格200的示例第五行214与“阵列5”和访问的存储器3921次相关联,其中,存储器访问的2971个实例造成了示例处理器124等待。虽然“阵列5”访问存储器大致为“阵列3”数量的一半,但在“阵列5”存储器访问期间处理器124等待的2971个实例造成的处理器周期的对应数量是2.1 x 109。相对而言,“阵列5”存储器访问造成的延迟实质上大于与工作负载118相关联的其它数据阵列造成的一个或更多个延迟,并且因此示例“阵列5”可以是用于与辅助存储器122一起使用的候选。
在一些示例中,数据元素对示例工作负载118执行期间的一个或更多个实例提出存储器访问需求。例如,第一数据元素(例如,“阵列5”)可在与工作负载118相关联的执行过程的前半部分期间执行所有其存储器访问操作,而执行过程的后半部分不包括到第一数据元素的其它访问尝试。与数据元素对平台116存储器提出需求时相关联的信息可允许示例工作负载管理器100以保持辅助存储器122的有限资源的方式分配存储器使用。
图3示出由数据元素性能计算器108生成的示例数据阵列简档表格300。在图3的所示示例中,表格300包括数据元素列302和活动简档列304。示例数据元素性能计算器108生成在示例工作负载118执行过程(例如,工作负载开始时间350到工作负载停止时间352)期间用于每个对应数据元素(例如,“阵列1”到“阵列27”)的存储器访问活动的曲线图。在执行过程期间(水平轴),每个曲线表示相对于其它数据元素的访问活动的相对量值。示例表格300的第一行306与数据元素“阵列1”相关联,并且通过活动简档308指示在工作负载执行的后四分之三期间发生存储器访问活动。示例表格300的第三行310与数据元素“阵列5”相关联,并且通过活动简档312指示在工作负载执行的前半部分期间发生存储器访问活动。另外,与“阵列5”312相关联的存储器访问活动简档比与“阵列1”308相关联的存储器访问活动简档更高,这指示在用于每数据元素的每时间单位访问尝试数量中的相对差别。在一些示例中,比较每个访问活动简档高度和指示在工作负载118执行期间的某个时间期内存储器访问实例数量的一个或更多个阈值。其它示例阈值可基于由于存储器等待时间和/或带宽限制原因在处理器等待期间(自旋)内发生的处理器周期的数量。虽然示例阈值可基于明确值,但其它示例阈值可基于与在工作负载118执行期间活动的所有数据阵列相比时的相对百分比。
在示例工作负载118被执行和/或执行多次迭代以收集数据阵列(和/或任何其它类型的存储器)行为信息[例如,工作负载执行简档、数据元素访问计数、等待实例计数(例如,处理器等待)等]后,示例数据元素识别器104从表格200的示例数据元素列202选择数据元素之一。示例存储器管理器110确定示例辅助存储器122的大小和未使用的辅助存储器122的剩余空间的对应量。如果在检查的选择的数据元素在工作负载118执行的整个持续时间内指示高需求,并且在示例辅助存储器122中有足够的剩余空间,则示例代码修改器112标示数据元素在执行期间使用辅助存储器122。在其它示例中,在工作负载的寿命期间可以有存储器使用的时间变化。阈值可用于确定选择的数据元素是否应利用辅助存储器122。如下所述,标示成使用诸如更快的辅助存储器122等特定存储器的数据元素以后由示例代码修改器112修改,经编译和/或链接以生成新二进制码和/或修改现有二进制码(例如,无以前源代码修改)。
然而,如果选择的数据元素不利用存储器和/或在工作负载118执行的整个持续时间内进行存储器访问尝试,则示例存储器管理器110确定选择的数据元素是否在一部分的工作负载118执行期间利用阈值量的存储器资源。在操作中,示例存储器管理器110可分析与关注的数据元素相关联的活动简档列304中的活动简档,以识别阈值需求。例如,如果与“阵列5”相关联的数据元素由存储器管理器110分析,则存储器管理器110可调用示例代码修改器112以修改代码(例如,源代码、一个或更多个二进制码等),以便为工作负载118的前半部分利用辅助存储器122,并且为工作负载118的后半部分利用主存储器120。如图3的每个对应数据元素简档所示,在示例工作负载118的整个持续时间分割存储器利用可允许更高需求数据元素在需要时更快地操作,并且在不再需要时释放此类存储器。
虽然实现工作负载管理器100的示例方式已在图1-3中示出,但可以任何其它方式组合、划分、重新布置、忽略、消除和/或实现图1-3所示的一个或更多个元素、过程和/或装置。此外,图1的示例工作负载管理器100、示例工作负载管理器102、示例数据元素识别器104、示例数据元素跟踪器106、示例数据元素性能计算器108、示例存储器管理器110、示例代码修改器112、示例主存储器120和/或示例辅助存储器122可通过硬件、软件、固件和/或硬件、软件、固件的任何组合实现。因此,例如,示例工作负载管理器100、示例工作负载管理器102、示例数据元素识别器104、示例数据元素跟踪器106、示例数据元素性能计算器108、示例存储器管理器110、示例代码修改器112、示例主存储器120和/或示例辅助存储器122的任何项能够通过一个或更多个电路、可编程处理器、专用集成电路(ASIC)、可编程逻辑装置(PLD)和/或现场可编程逻辑装置(FPLD)等实现。在本专利的设备或系统权利要求项的任何项显示为包括纯软件和/或固件实现时,示例工作负载管理器100、示例工作负载管理器102、示例数据元素识别器104、示例数据元素跟踪器106、示例数据元素性能计算器108、示例存储器管理器110、示例代码修改器112、示例主存储器120和/或示例辅助存储器122的至少一项由此明确定义为包括诸如存储器、DVD、CD、BluRay等存储软件和/或固件的至少一种有形计算机可读介质。还有,图1的示例工作负载管理器100可包括除图1-3中所示那些元素、过程和/或装置外的一个或更多个元素、过程和/或装置,或者取代图1-3中所示那些的元素、过程和/或装置,和/或可包括任何或所有所示元素、过程和/或装置的不止一项。
图4中示出表示用于实现图1的工作负载管理器100的示例机器可读指令的流程图。在此示例中,机器可读指令包括由诸如下面结合图7所述示例计算机700中所示处理器712等处理器执行的程序。程序可包含在一个或更多个有形计算机可读介质上存储的软件中,有形计算机可读介质如CD-ROM、软盘、硬驱动器、数字多功能盘(DVD)、BluRay盘或与处理器712相关联的存储器,但整个程序和/或其部分备选能够由与处理器712不同的装置执行和/或包含在固件和/或专用硬件中。此外,虽然示例程序参照图4所示流程图进行描述,但备选可使用实现示例工作负载管理器100的许多其它方法。例如,可更改框的执行顺序,和/或可更改、消除或组合一些框。
如上所述,图4-6的示例过程可使用在诸如硬驱动器、闪存、只读存储器(ROM)、压缩盘(CD)、数字多功能盘(DVD)、高速缓存、随机存取存储器(RAM)和/或其中信息在任何持续时间内存储(例如,在延长时间期内,永久,在简短时间内,暂时缓冲和/或信息的缓存)的任何其它存储介质等一个或更多个有形计算机可读介质上存储的编码指令(例如,计算机可读指令)实现。在本文中使用时,术语有形计算机可读介质明确定义成包括任何类型的计算机可读存储装置,并且不排除传播信号。另外或备选,图4-6的示例过程可使用在诸如硬驱动器、闪存、只读存储器、压缩盘、数字多功能盘、高速缓存、随机存取存储器和/或其中信息在任何持续时间内存储(例如,在延长时间期内,永久,在简短时间内,暂时缓冲和/或信息的缓存)的任何其它存储介质等一个或更多个非短暂性计算机可读介质上存储的编码指令(例如,计算机可读指令)实现。在本文中使用时,术语非短暂性计算机可读介质明确定义成包括任何类型的计算机可读介质,并且不排除传播信号。在本文中使用时,在短语“至少”用作权利要求的前置语中的过渡术语时,与术语“包括”是开放式相同,它是开放式。因此,使用“至少”作为其前置语中过渡术语的权利要求可包括除权利要求中明确叙述的那些元素外的元素。
图4的程序400从框402开始,在该框中,示例工作负载管理器102从平台116检索,获得和/或以其它方式接收工作负载118。示例工作负载118可存储在平台的存储器上,并且可包括利用示例平台116的一个或更多个资源的一个或更多个可执行程序。任何数量的执行迭代可由示例工作负载管理器102调用以表征在示例平台116上工作负载的行为(框404)。在一些示例中,在收集指示数据元素行为的一个或更多个参数时,工作负载管理器102调用工作负载118在平台116上执行一次。在其它示例中,工作负载管理器102调用工作负载118通过多次迭代执行,以计算指示数据元素行为的一个或更多个参数的平均值。
在示例工作负载118执行期间,数据元素识别器104识别到平台116的一个或更多个存储器的数据阵列访问尝试的实例,如尝试访问主存储器120的数据阵列(框406)。一般而言,一些数据阵列很少由工作负载118调用,并且因此实质对工作负载118执行延迟不造成影响。在其它示例中,由工作负载118调用的其它数据阵列对存储器访问(例如,读/写访问尝试)进行相对频繁的尝试,由此可能对总工作负载118执行时间造成更大程度影响。为识别数据阵列与平台116存储器交互的程度,示例数据元素跟踪器106收集性能信息,诸如但不限于计数每个数据阵列提出存储器访问请求的实例的数量和/或识别处理器停顿(框408)。计数数据访问实例可包括但不限于采用性能监视单元(PMU)收集来自一个或更多个模型特定寄存器(MSR)的数据。MSR可包括计数器寄存器、事件编程寄存器和/或全局事件寄存器。另外,PMU可执行基于事件的采样以计数与处理器活动有关的事件,如处理器等待由例如存储器等待时间和/或存储器带宽限制造成的存储器可用性。在一些示例中,采样可响应工作负载的扰动而进行以了解到工作负载和/或平台的一个或更多个强制输入的影响。
关注的示例工作负载118在示例平台116上执行时(框410),控制任意多次返回框406和408以识别数据访问实例和计数每个数据阵列进行存储器访问尝试的数量。关注的示例工作负载118执行完成时(框410),示例数据元素性能计算器108生成收集的参数的表格(例如图2的表格200)(框412)。收集的参数可包括但不限于已对存储器进行一次或更多次访问尝试的数据阵列的列表、每个数据阵列在工作负载118执行期间对存储器进行访问尝试的数量的计数、数据阵列进行的访问尝试造成对应延迟(例如,等待实例,处理器自旋,造成处理器等待未完成先前读/写操作的存储器)的数量的计数和/或处理器在等待访问存储器(例如,主存储器120)时在工作负载118执行期间经过的处理器周期的数量的计数。虽然示例表格200(参见图2)在本文中描述为由示例数据元素性能计算器108创建,但可生成任何其它类型的工作负载简档表示,包括但不限于数据阵列存储器访问活动的热图。另外,示例数据元素性能计算器108生成示例数据阵列简档表300(参见图3)以识别如下面进一步所述在工作负载118执行期间数据阵列存储器访问的时间指示(框412)。
为确定一个或更多个数据阵列是否能够在工作负载118执行期间有效地利用辅助存储器122,示例存储器管理器110、示例数据元素识别器104、示例数据元素性能计算器108及示例代码修改器112分析辅助存储器消耗(框414)。如下面进一步详细所述,如果预期对应性能改进,则可分配一个或更多个数据阵列以使用性能更高的辅助存储器122。如果预期性能改进,则示例代码修改器112修改与一个或更多个数据阵列相关联的代码(例如,源代码、一个或更多个二进制码等),以便在工作负载118执行期间利用性能更高的辅助存储器122(框416)。示例链接程序接口114调用编译器/链接程序以编译和/或链接修改的代码,以生成经改进(例如优化)以在所有或部分工作负载118执行期间利用性能更高的辅助存储器122的新二进制码(框418)。在一些示例中,在修改一个或更多个二进制码而不考虑对应源代码时,不需要编译器和/或以其它方式绕过编译器。在其它示例中,简档信息可被分析并且引导示例链接程序接口114、二进制码修改器和/或运行时(runtime)加载器以重新生成一个或更多个二进制码。
转到图5,图中示出与分析数据访问实例相关联的另外细节(框412)。在图5的所示示例中,示例数据元素性能计算器108生成带有数据元素(数据阵列)的表格,这些数据元素已执行到诸如示例主存储器120等平台116存储器的至少一个数据访问尝试(框502)。例如,图2的示例表格200包括数据元素列202,数据元素列202包含已进行访问平台116存储器的一次或更多次尝试的一个或更多个数据阵列的列表。如图2的示例访问计数列204所示,示例数据元素性能计算器108也计数与每个数据元素相关联的访问尝试的数量(框504)。如果示例数据元素列202中的一个或更多个数据元素包括造成处理器124等待(例如,被浪费的处理器周期的自旋)的数据阵列,则示例数据元素性能计算器108计数该出现(occurrence)的对应实例数量(框506)。另外,此类处理器等待实例的严重性的程度由示例数据元素性能计算器108通过计数在此类等待实例期间处理器周期的对应数量来确定(框508)。
如图3所示,为确定一个或更多个数据阵列访问存储器的工作负载118执行的时间部分,示例数据元素性能计算器108生成数据阵列简档表格300(框510)。如上所述,数据元素性能计算器108生成与每个数据阵列相关联的简档,以示出工作负载118执行的哪个相对部分与存储器访问活动相关联。确定工作负载118内数据阵列访问存储器的相对时间位置的至少一个益处是能够在工作负载118执行期间在一个或更多个数据阵列之间明智地共享性能更高的辅助存储器122。例如,如果工作负载118的两个数据阵列由于辅助存储器122的存储器大小限制原因而不能同时得到利用,则第一数据阵列可为一部分工作负载118执行使用辅助存储器122,并且随后释放辅助存储器122以便第二数据阵列能够为剩余部分的工作负载118执行利用辅助存储器122。示例数据元素性能计算器108也可基于一个或更多个阈值将一个或更多个数据元素分类和/或指派等级次序以确定哪些数据元素应分配到性能更高的辅助存储器122(框512)。在其它示例中,开发性能的成本模型可指示辅助存储器122的利用不可对总平台性能产生增多的益处。
转到图6,图中示出与分析辅助存储器122消耗相关联的另外细节(框414)。在图6所示示例中,示例数据元素识别器104从图2的表格200和/或图3的数据阵列简档表格300选择关注的数据元素(数据阵列)之一。在一些示例中,如上所述,基于对应等级次序选择数据元素。例如,可将与最高处理器计数等待值相关联的数据元素选择为用于改进(例如,优化)平台116性能的最佳候选数据元素。诸如示例辅助存储器122等性能更高的辅助存储器可实质上比主要存储器120更小和/或更贵。为确定与平台116相关联的辅助存储器122的大小,示例存储器管理器110确定辅助存储器122的对应大小(框604),并且确定其可用剩余空间(框606)。在其它示例中,辅助存储器122的大小是静态的,并且可执行一次而不是在环内,如在获得工作负载后(框402)。
如果示例数据元素性能计算器108确定关注的数据阵列在整个示例工作负载118执行内展示相对高的对存储器的访问尝试出现(框608),则示例存储器管理器110确定辅助存储器122是否具有足够的空间容纳关注的数据阵列(框610)。如果没有足够空间,则示例数据元素识别器104确定另外的候选数据阵列是否可供考虑(框612)。例如,数据元素识别器104可选择图2的表格200中下一最高等级的数据阵列。另一方面,如果在用于关注的候选数据阵列的辅助存储器122中有足够空间(框610),则示例代码修改器112标示要修改的数据阵列(框614),以便在所有候选数据阵列已考虑后,可修改与标示的数据阵列相关联的代码(例如,一个或更多个二进制码、源代码等)(参见图4的框416)。
如果数据元素性能计算器108确定关注的数据阵列在工作负载118执行期间一部分时间(例如,阈值部分)内尝试访问存储器(框608),则示例存储器管理器确定此类访问尝试是否超过阈值需求(框616)。如上所述,阈值需求可指示在工作负载118执行期间的某个时间期内存储器访问实例的数量、与所有数据阵列相比时和/或基于由于存储器等待时间和/或带宽限制原因在处理器等待期间(自旋)内发生的处理器周期的数量(或相对数量)的存储器访问实例的相对数量。在关注的数据元素(数据阵列)超过指示存储器访问需求和/或指示造成处理器周期延迟的一个或更多个阈值的部分工作负载118执行期间,示例代码修改器112标示关注的数据元素以便为该部分工作负载118执行使用辅助存储器122(框618)。如果在图2的示例表格200和/或图3的数据阵列简档表格300中仍有另外的数据元素(框612),则控制返回框602。
图7是能够执行图4-6的指令以实现图1的工作负载管理器100的示例计算机700的框图。计算机700例如能够是服务器、个人计算机、移动电话(例如,蜂窝电话)、个人数字助理(PDA)、因特网电器、游戏控制台、机顶盒或任何其它类型的计算装置。
本示例的计算机700包括处理器712。例如,处理器712能够由来自任何所需系列或制造商的一个或更多个微处理器或控制器实现。
处理器712经总线718与包括易失性存储器714和非易失性存储器716的主存储器进行通信。易失性存储器714可通过同步动态随机存取存储器(SDRAM)、动态随机存取存储器(DRAM)、RAMBUS动态随机存取存储器(RDRAM)和/或任何其他类型随机存取存储器装置实施。非易失性存储器716可由闪存和/或任何其它所需类型的存储器装置实现。对主存储器714、716的访问由存储器控制器控制。
计算机700也包括接口电路720。接口电路720可通过任何类型的接口标准实现,如以太网接口、通用串行总线(USB)和/或PCI高速接口。
一个或更多个输入装置722连接到接口电路720。输入装置722允许用户将数据和命令输入处理器712。输入装置例如能够由键盘、鼠标、触摸屏、触摸垫、轨迹球、iso点(isopoint)和/或话音识别系统实现。
一个或更多个输出装置724也连接到接口电路720。输出装置724例如能够由显示装置(例如,液晶显示器、阴极射线管显示器(CRT)、打印机和/或扬声器)实现。接口电路720因此一般包括图形驱动程序卡。
接口电路720也包括诸如调制解调器或网络接口卡等通信装置(例如,通信装置756),以促进经网络726 [例如,以太网连接、数字订户线路(DSL)、电话线、同轴电缆、蜂窝电话系统等]与外部计算机的数据交换。
计算机700也包括一个或更多个海量存储装置728以便存储软件和数据。此类海量存储装置728的示例包括软盘驱动器、硬盘驱动器、压缩盘驱动器和数字多功能盘(DVD)驱动器。
图4-6的编码指令758可在海量存储装置728中,在易失性存储器714中,在非易失性存储器716中和/或在诸如CD或DVD等可拆卸存储介质上存储。
从上述内容中,将领会的是,通过识别可包括数据阵列、栈、堆等利用负责平台延迟的存储器资源的候选数据元素,上面公开的方法、设备和制品有利于存储器管理。通过以分配候选数据元素以使用性能更高的存储器类型的方式重写代码(例如,源代码、一个或更多个二进制码等),平台的总体操作可通过降低或甚至消除由在等待访问相对更慢存储器的数据元素造成的被浪费的处理器周期而得以改进(例如,优化)。
本文公开了管理工作负载存储器分配的方法、系统、设备和制品。一些公开的示例方法包括识别与平台相关联的主存储器和辅助存储器,辅助存储器具有与主存储器的第二性能度量不同的第一性能度量,识别与在平台上执行期间由工作负载调用的多个数据元素相关联的访问度量,基于与多个数据元素的对应数据元素相关联的访问度量,按优先排列多个数据元素的列表,以及基于多个存储器元素的第一存储器元素的优先级,将多个数据元素的第一数据元素从主存储器重新分配到辅助存储器。另外,示例方法包括具有比主存储器更低等待时间的辅助存储器或比主存储器具有更高带宽的辅助存储器。在一些示例中,访问度量包括由多个数据元素的对应元素对主存储器的访问尝试的数量,包括检测该数量的访问尝试的至少之一是否造成等待事件,包括计数与等待事件相关联的处理器周期的数量,以及其中按优先排列多个数据元素的列表包括比较与多个数据元素的每个数据元素相关联的处理器周期的数量。一些示例包括通过比较与多个数据元素相关联的等待事件的数量,按优先排列多个数据元素的列表,并且在其它示例中,识别访问度量还包括测量与多个数据元素相关联的每单位时间的访问尝试的数量。本文中公开的示例也包括在每时间单位访问尝试的数量超过阈值时选择多个数据元素之一以从主存储器重新分配到辅助存储器,并且还包括在每时间单位访问尝试的数量超过阈值时将多个数据元素的第一数据元素从主存储器重新分配到辅助存储器,并且在每时间单位访问尝试的数量低于阈值时将多个数据元素的第一数据元素从辅助存储器重新分配到主存储器。还有的其它示例包括多个数据元素的第一数据元素为工作负载的执行的第一部分利用辅助存储器,并且为工作负载的执行的第二部分利用主存储器。一些示例包括多个数据元素的第一数据元素利用辅助存储器,而多个数据元素的第二数据元素利用主存储器,并且其它示例包括交替多个数据元素的第一数据元素从辅助存储器到主存储器的利用和多个数据元素的第二数据元素从主存储器到辅助存储器的利用。其它示例包括在辅助存储器具有用于多个数据元素的第一数据元素的空间时,将多个数据元素的第一数据元素从主存储器重新分配到辅助存储器。
为数据元素利用管理工作负载存储器的示例设备包括:工作负载管理器,以识别与平台相关联的主存储器和辅助存储器,辅助存储器具有与主存储器的第二性能度量不同的第一性能度量;工作负载控制器,以识别与在平台上执行期间由工作负载调用的多个数据元素相关联的访问度量;数据元素性能计算器,以基于与多个数据元素的对应数据元素相关联的访问度量,按优先排列多个数据元素的列表;以及存储器管理器,以基于多个存储器元素的第一存储器元素的优先级,将多个数据元素的第一数据元素从主存储器重新分配到辅助存储器。另外的示例设备包括存储器管理器基于比主存储器更低的等待时间参数,选择辅助存储器,以及其中,存储器管理器基于比主存储器更高的带宽,选择辅助存储器,和/或其中,数据元素性能计算器要确定到主存储器的访问尝试是否造成等待事件。其它示例设备包括代码修改器以在每时间单位访问尝试的数量超过阈值时将数据元素使用从主存储器重新分配到辅助存储器,其中,代码修改器修改与工作负载相关联的源代码或二进制码至少之一。
包括存储机器可读指令的一些公开的示例制品,指令执行时,促使机器识别与平台相关联的主存储器和辅助存储器,辅助存储器具有与主存储器的第二性能度量不同的第一性能度量,识别与在平台上执行期间由工作负载调用的多个数据元素相关联的访问度量,基于与多个数据元素的对应数据元素相关联的访问度量,按优先排列多个数据元素的列表,以及基于多个存储器元素的第一存储器元素的优先级,将多个数据元素的第一数据元素从主存储器重新分配到辅助存储器。其它示例制品促使机器确定由多个数据元素的对应元素对主存储器的访问尝试的数量,以及检测该数量的访问尝试的至少之一是否造成等待事件。还有的其它示例制品促使机器计数与等待事件相关联的处理器周期的数量,比较与多个数据元素的每个数据元素相关联的处理器周期的数量以按优先排列多个数据元素的列表,以及比较与多个数据元素相关联的等待事件的数量以按优先排列多个数据元素的列表。还有的其它示例制品促使机器测量与多个数据元素相关联的每单位时间的访问尝试的数量以识别访问度量,在每时间单位访问尝试的数量超过阈值时选择多个数据元素之一以从主存储器重新分配到辅助存储器,并且在每时间单位访问尝试的数量超过阈值时将多个数据元素的第一数据元素从主存储器重新分配到辅助存储器,并且在每时间单位访问尝试的数量低于阈值时将多个数据元素的第一数据元素从辅助存储器重新分配到主存储器。在一些示例制品中,机器要促使机器通过多个数据元素的第一数据元素,为工作负载的执行的第一部分利用辅助存储器,并且为工作负载的执行的第二部分利用主存储器,以及通过多个数据元素的第一数据元素,利用辅助存储器,而多个数据元素的第二数据元素利用主存储器。另外,示例制品促使机器交替多个数据元素的第一数据元素从辅助存储器到主存储器的利用和多个数据元素的第二数据元素从主存储器到辅助存储器的利用,以及在辅助存储器具有用于多个数据元素的第一数据元素的空间时,将多个数据元素的第一数据元素从主存储器重新分配到辅助存储器。
虽然某些示例方法、设备和制品已在本文中描述,但本专利的覆盖的范围并不限于此。相反,本专利覆盖完全位于本专利的权利要求书的范围内的所有方法、设备和制品。

Claims (41)

1.一种用于在工作负载运行时间期间利用主存储器和辅助存储器的设备,所述设备包括:
数据元素识别器,用于识别参与于所述工作负载运行时间的数据元素;
数据元素跟踪器,用于计数由在所述工作负载运行时间期间参与的数据元素进行的访问尝试的数量;
数据元素性能跟踪器,用于基于在所述工作负载运行时间期间的所述计数将所述数据元素分等级;以及
存储器管理器,用于:当所述数据元素的第一相应数据元素的等级低于所述数据元素的第二相应数据元素的等级时,分配所述数据元素的所述第一相应数据元素至所述主存储器以及分配所述数据元素的所述第二相应数据元素至所述辅助存储器。
2.如权利要求1所述的设备,其中,所述存储器管理器要用于:当所述数据元素的所述第一相应数据元素的等级高于所述数据元素的所述第二相应数据元素的等级时,重新分配所述数据元素的所述第一相应数据元素至所述辅助存储器以及重新分配所述数据元素的所述第二相应数据元素至所述主存储器。
3.如权利要求1所述的设备,其中,所述数据元素性能跟踪器要用于:基于在所述数量的访问尝试期间被消耗的处理器周期的数量,将所述数据元素分等级。
4. 如权利要求1所述的设备,其中,所述存储器管理器要用于:
在所述工作负载运行时间的第一部分期间,分配所述数据元素的所述第一相应数据元素和所述第二相应数据元素;以及
在所述工作负载运行时间的第二部分期间,重新分配所述数据元素的所述第一相应数据元素和所述第二相应数据元素。
5.如权利要求4所述的设备,其中,所述工作负载运行时间的所述第一部分和所述第二部分在工作负载开始时间和工作负载停止时间之间发生。
6. 如权利要求1所述的设备,还包含用于以下的工作负载控制器:
检索所述工作负载;以及
通过多次迭代地执行所述工作负载,表征所述数据元素的访问行为。
7.如权利要求6所述的设备,其中,所述工作负载控制器要用于计算所述数据元素的所述访问行为的平均值。
8.如权利要求1所述的设备,还包含工作负载管理器,所述工作负载管理器评估用于识别可用数据元素类型的平台。
9.如权利要求8所述的设备,其中,所述工作负载管理器要用于将数据元素类型识别为闪速存储器、只读存储器(ROM)、随机存取存储器(RAM)、硬盘驱动存储器或者双倍数据速率(DDR)RAM中至少之一。
10.如权利要求1所述的设备,其中,所述辅助存储器具有比所述主存储器更低的等待时间。
11.如权利要求1所述的设备,其中,所述数据元素包含数据阵列、文件、堆或栈中至少之一。
12.一种用于在工作负载运行时间期间利用主存储器和辅助存储器的系统,所述系统包括:
用于计数由在所述工作负载运行时间期间参与的数据元素进行的访问尝试的数量的装置;
用于基于在所述工作负载运行时间期间的所述计数将所述数据元素分等级的装置;以及
用于以下的装置:当所述数据元素的第一相应数据元素的等级低于所述数据元素的第二相应数据元素的等级时,分配所述数据元素的所述第一相应数据元素至所述主存储器以及分配所述数据元素的所述第二相应数据元素至所述辅助存储器的装置。
13.如权利要求12所述的系统,还包含用于以下的的装置:当所述数据元素的所述第一相应数据元素的等级高于所述数据元素的所述第二相应数据元素的等级时,重新分配所述数据元素的所述第一相应数据元素至所述辅助存储器以及重新分配所述数据元素的所述第二相应数据元素至所述主存储器。
14.如权利要求12所述的系统,还包含用于基于在所述数量的访问尝试期间被消耗的处理器周期的数量将所述数据元素分等级的装置。
15. 如权利要求12所述的系统,还包含用于以下的装置:
在所述工作负载运行时间的第一部分期间,分配所述数据元素的所述第一相应数据元素和所述第二相应数据元素;以及
在所述工作负载运行时间的第二部分期间,重新分配所述数据元素的所述第一相应数据元素和所述第二相应数据元素。
16.如权利要求15所述的系统,其中,所述工作负载运行时间的所述第一部分和所述第二部分在工作负载开始时间和工作负载停止时间之间发生。
17. 如权利要求12所述的系统,还包含用于以下的装置:
检索所述工作负载;以及
通过多次迭代地执行所述工作负载,表征所述数据元素的访问行为。
18.如权利要求17所述的系统,其中,所述工作负载控制器要用于计算所述数据元素的所述访问行为的平均值。
19.如权利要求12所述的系统,还包含用于以下的装置:评估用于识别可用数据元素类型的平台。
20.如权利要求19所述的系统,还包含用于以下的装置:将数据元素类型识别为闪速存储器、只读存储器(ROM)、随机存取存储器(RAM)、硬盘驱动存储器或者双倍数据速率(DDR)RAM中至少之一。
21.如权利要求12所述的系统,其中,所述辅助存储器具有比所述主存储器更低的等待时间。
22.如权利要求12所述的系统,其中,所述数据元素包含数据阵列、文件、堆或栈中至少之一。
23.至少一种包括指令的计算机可读介质,所述指令当被执行时促使机器至少:
识别参与于工作负载运行时间的数据元素;
计数由在所述工作负载运行时间期间参与的数据元素进行的访问尝试的数量;
基于在所述工作负载运行时间期间的所述计数,将所述数据元素分等级;以及
当所述数据元素的第一相应数据元素的等级低于所述数据元素的第二相应数据元素的等级时,分配所述数据元素的所述第一相应数据元素至所述主存储器以及分配所述数据元素的所述第二相应数据元素至所述辅助存储器。
24.如权利要求23所述的计算机可读介质,其中,所述指令当被执行时促使所述机器:当所述数据元素的所述第一相应数据元素的等级高于所述数据元素的所述第二相应数据元素的等级时,重新分配所述数据元素的所述第一相应数据元素至所述辅助存储器以及重新分配所述数据元素的所述第二相应数据元素至所述主存储器。
25.如权利要求23所述的计算机可读介质,其中,所述指令当被执行时促使所述机器:基于在所述数量的访问尝试期间被消耗的处理器周期的数量将所述数据元素分等级。
26. 如权利要求23所述的计算机可读介质,其中,所述指令当被执行时促使所述机器:
在所述工作负载运行时间的第一部分期间,分配所述数据元素的所述第一相应数据元素和所述第二相应数据元素;以及
在所述工作负载运行时间的第二部分期间,重新分配所述数据元素的所述第一相应数据元素和所述第二相应数据元素。
27. 如权利要求23所述的计算机可读介质,其中,所述指令当被执行时促使所述机器:
检索所述工作负载;以及
通过多次迭代地执行所述工作负载,表征所述数据元素的访问行为。
28.如权利要求27所述的计算机可读介质,其中,所述指令当被执行时促使所述机器计算所述数据元素的所述访问行为的平均值。
29.如权利要求23所述的计算机可读介质,其中,所述指令当被执行时促使所述机器评估用于识别可用数据元素类型的平台。
30.如权利要求29所述的计算机可读介质,其中,所述指令当被执行时促使机器:将数据元素类型识别为闪速存储器、只读存储器(ROM)、随机存取存储器(RAM)、硬盘驱动存储器或者双倍数据速率(DDR)RAM中至少之一。
31.一种用于在工作负载运行时间期间利用主存储器和辅助存储器的方法,所述方法包括:
计数由在工作负载运行时间期间参与的数据元素进行的访问尝试的数量;
基于在所述工作负载运行时间期间的所述计数将所述数据元素分等级;以及
当所述数据元素的第一相应数据元素的等级低于所述数据元素的第二相应数据元素的等级时,分配所述数据元素的所述第一相应数据元素至所述主存储器以及分配所述数据元素的所述第二相应数据元素至所述辅助存储器。
32.如权利要求31所述的方法,还包含:当所述数据元素的所述第一相应数据元素的等级高于所述数据元素的所述第二相应数据元素的等级时,重新分配所述数据元素的所述第一相应数据元素至所述辅助存储器以及重新分配所述数据元素的所述第二相应数据元素至所述主存储器。
33.如权利要求31所述的方法,还包含:基于在所述数量的访问尝试期间被消耗的处理器周期的数量将所述数据元素分等级。
34. 如权利要求31所述的方法,还包含:
在所述工作负载运行时间的第一部分期间,分配所述数据元素的所述第一相应数据元素和所述第二相应数据元素;以及
在所述工作负载运行时间的第二部分期间,重新分配所述数据元素的所述第一相应数据元素和所述第二相应数据元素。
35.如权利要求34所述的方法,其中,所述工作负载运行时间的所述第一部分和所述第二部分在工作负载开始时间和工作负载停止时间之间发生。
36. 如权利要求31所述的方法,还包含:
检索所述工作负载;以及
通过多次迭代地执行所述工作负载,表征所述数据元素的访问行为。
37.如权利要求36所述的方法,其中,所述工作负载控制器要用于计算所述数据元素的所述访问行为的平均值。
38.如权利要求31所述的方法,还包含:评估用于识别可用数据元素类型的平台。
39.如权利要求38所述的方法,还包含:将数据元素类型识别为闪速存储器、只读存储器(ROM)、随机存取存储器(RAM)、硬盘驱动存储器或者双倍数据速率(DDR)RAM中至少之一。
40.如权利要求31所述的方法,其中,所述辅助存储器具有比所述主存储器更低的等待时间。
41.如权利要求31所述的方法,其中,所述数据元素包含数据阵列、文件、堆或栈中至少之一。
CN201710307164.2A 2011-12-27 2011-12-27 管理工作负载存储器分配的方法、设备和系统 Active CN107273302B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710307164.2A CN107273302B (zh) 2011-12-27 2011-12-27 管理工作负载存储器分配的方法、设备和系统

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201180075943.5A CN103999056B (zh) 2011-12-27 2011-12-27 管理工作负载存储器分配的方法、设备和系统
CN201710307164.2A CN107273302B (zh) 2011-12-27 2011-12-27 管理工作负载存储器分配的方法、设备和系统
PCT/US2011/067355 WO2013100896A1 (en) 2011-12-27 2011-12-27 Methods and apparatus to manage workload memory allocation

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201180075943.5A Division CN103999056B (zh) 2011-12-27 2011-12-27 管理工作负载存储器分配的方法、设备和系统

Publications (2)

Publication Number Publication Date
CN107273302A true CN107273302A (zh) 2017-10-20
CN107273302B CN107273302B (zh) 2021-02-09

Family

ID=48698140

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201180075943.5A Active CN103999056B (zh) 2011-12-27 2011-12-27 管理工作负载存储器分配的方法、设备和系统
CN201710307164.2A Active CN107273302B (zh) 2011-12-27 2011-12-27 管理工作负载存储器分配的方法、设备和系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201180075943.5A Active CN103999056B (zh) 2011-12-27 2011-12-27 管理工作负载存储器分配的方法、设备和系统

Country Status (4)

Country Link
US (8) US8996765B2 (zh)
EP (3) EP3037971B1 (zh)
CN (2) CN103999056B (zh)
WO (1) WO2013100896A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109753236A (zh) * 2017-11-08 2019-05-14 爱思开海力士有限公司 存储系统及其操作方法
CN112631525A (zh) * 2020-12-30 2021-04-09 安徽鸿程光电有限公司 存储及显示方法、装置、设备及介质
US11221931B2 (en) 2019-01-15 2022-01-11 SK Hynix Inc. Memory system and data processing system
US11636014B2 (en) 2017-10-31 2023-04-25 SK Hynix Inc. Memory system and data processing system including the same
US11822789B2 (en) 2011-12-27 2023-11-21 Intel Corporation Methods and apparatus to manage workload memory allocation

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110265982A1 (en) * 2010-04-29 2011-11-03 International Business Machines Corporation Controlling coolant flow to multiple cooling units in a computer system
US20140258595A1 (en) * 2013-03-11 2014-09-11 Lsi Corporation System, method and computer-readable medium for dynamic cache sharing in a flash-based caching solution supporting virtual machines
US9817756B1 (en) * 2013-05-23 2017-11-14 Amazon Technologies, Inc. Managing memory in virtualized environments
US20140351546A1 (en) * 2013-05-24 2014-11-27 Ati Technologies Ulc Method and apparatus for mapping a physical memory having a plurality of memory regions
GB2517195A (en) * 2013-08-15 2015-02-18 Ibm Computer system productivity monitoring
US9940167B2 (en) * 2014-05-20 2018-04-10 Red Hat Israel, Ltd. Identifying memory devices for swapping virtual machine memory pages
KR102247741B1 (ko) * 2014-12-04 2021-05-04 삼성전자주식회사 이미지 프로세서, 상기 이미지 프로세서의 동작 방법, 및 상기 이미지 프로세서를 포함하는 애플리케이션 프로세서
US20170123700A1 (en) * 2015-11-03 2017-05-04 Samsung Electronics Co., Ltd. Io redirection methods with cost estimation
US9886440B2 (en) 2015-12-08 2018-02-06 International Business Machines Corporation Snapshot management using heatmaps in a large capacity disk environment
US10754573B2 (en) * 2016-03-11 2020-08-25 EMC IP Holding Company LLC Optimized auto-tiering, wherein subset of data movements are selected, utilizing workload skew point, from a list that ranks data movements based on criteria other than I/O workload
US10572310B2 (en) 2016-09-21 2020-02-25 International Business Machines Corporation Deploying and utilizing a software library and corresponding field programmable device binary
US10599479B2 (en) 2016-09-21 2020-03-24 International Business Machines Corporation Resource sharing management of a field programmable device
US10417012B2 (en) 2016-09-21 2019-09-17 International Business Machines Corporation Reprogramming a field programmable device on-demand
US10355945B2 (en) 2016-09-21 2019-07-16 International Business Machines Corporation Service level management of a workload defined environment
US9996334B2 (en) * 2016-09-21 2018-06-12 International Business Machines Corporation Deploying and utilizing a software library and corresponding field programmable device binary
EP3306479A1 (en) 2016-10-06 2018-04-11 Stichting IMEC Nederland Memory structure comprising scratchpad memory
US10775941B2 (en) 2016-12-30 2020-09-15 Jason Francesco Heath Sensorized spherical input and output device, systems, and methods
US10698460B2 (en) * 2017-03-13 2020-06-30 Samsung Electronics Co., Ltd. Advanced thermal control for SSD
US10809780B2 (en) 2017-03-13 2020-10-20 Samsung Electronics Co., Ltd. Active disturbance rejection based thermal control
US10579274B2 (en) * 2017-06-27 2020-03-03 TidalScale, Inc. Hierarchical stalling strategies for handling stalling events in a virtualized environment
US10817347B2 (en) 2017-08-31 2020-10-27 TidalScale, Inc. Entanglement of pages and guest threads
US10318176B2 (en) 2017-09-06 2019-06-11 Western Digital Technologies Real-time, self-learning automated object classification and storage tier assignment
US10866899B2 (en) * 2017-10-02 2020-12-15 Arm Ltd Method and apparatus for control of a tiered memory system
US10503626B2 (en) * 2018-01-29 2019-12-10 Oracle International Corporation Hybrid instrumentation framework for multicore low power processors
CN110458379B (zh) * 2018-05-08 2022-12-27 阿里巴巴集团控股有限公司 压力测试系统、方法、装置及电子设备
US10678705B2 (en) 2018-09-13 2020-06-09 Qualcomm Incorporated External paging and swapping for dynamic modules
US10956230B2 (en) * 2018-10-01 2021-03-23 Vmware, Inc. Workload placement with forecast
US10871996B2 (en) * 2018-10-17 2020-12-22 Oracle International Corporation Detection, modeling and application of memory bandwith patterns
US11561834B2 (en) * 2019-01-16 2023-01-24 Rambus Inc. Methods and systems for adaptive memory-resource management
US10983832B2 (en) * 2019-02-14 2021-04-20 International Business Machines Corporation Managing heterogeneous memory resource within a computing system
CN111143104A (zh) * 2019-12-29 2020-05-12 苏州浪潮智能科技有限公司 一种内存异常的处理方法、系统、电子设备及存储介质
JP2021135760A (ja) * 2020-02-27 2021-09-13 キオクシア株式会社 メモリシステムおよびメモリ制御方法
US11366694B1 (en) 2020-12-06 2022-06-21 International Business Machines Corporation Estimating attributes of running workloads on platforms in a system of multiple platforms as a service
US11704156B2 (en) * 2020-12-06 2023-07-18 International Business Machines Corporation Determining optimal placements of workloads on multiple platforms as a service in response to a triggering event
US11693697B2 (en) 2020-12-06 2023-07-04 International Business Machines Corporation Optimizing placements of workloads on multiple platforms as a service based on costs and service levels
US11928509B2 (en) 2021-01-07 2024-03-12 Micron Technology, Inc. Memory system workload allocation
US11494076B2 (en) * 2021-01-19 2022-11-08 Dell Products L.P. Storage-usage-based host/storage mapping management system
CN115202890B (zh) * 2022-09-14 2022-12-16 中国电子信息产业集团有限公司 数据元件生产资源空间分配方法、系统及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010021959A1 (en) * 2000-02-18 2001-09-13 Holmberg Per Anders Static cache
CN1510579A (zh) * 2002-10-04 2004-07-07 前摄存储器管理的方法和机制
CN1825290A (zh) * 2005-02-12 2006-08-30 美国博通公司 一种管理存储器的方法及一种存储器
CN1977336A (zh) * 2004-05-21 2007-06-06 拉姆伯斯公司 改善支持多存储器访问延迟的计算机存储器系统的性能的系统和方法
CN101681297A (zh) * 2007-06-05 2010-03-24 国际商业机器公司 存储器分配的设置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4972845B2 (ja) 2001-09-27 2012-07-11 富士通株式会社 ストレージシステム
CN1182465C (zh) 2002-12-04 2004-12-29 联想(北京)有限公司 动态迁移数据的方法及其装置
US7287126B2 (en) 2003-07-30 2007-10-23 Intel Corporation Methods and apparatus for maintaining cache coherency
US7395385B2 (en) * 2005-02-12 2008-07-01 Broadcom Corporation Memory management for a mobile multimedia processor
US7447681B2 (en) * 2005-02-17 2008-11-04 International Business Machines Corporation Method, system and program for selection of database characteristics
US8074059B2 (en) * 2005-09-02 2011-12-06 Binl ATE, LLC System and method for performing deterministic processing
JP2008305165A (ja) * 2007-06-07 2008-12-18 Ricoh Co Ltd 情報管理システムおよびコンテンツ管理サーバ装置
US8280974B2 (en) * 2007-07-31 2012-10-02 Hewlett-Packard Development Company, L.P. Migrating workloads using networked attached memory
KR101498673B1 (ko) 2007-08-14 2015-03-09 삼성전자주식회사 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템
CN101441597B (zh) 2007-11-22 2012-09-26 威刚科技股份有限公司 可调式混合密度内存储存装置的控制方法及其热门数据控管模块
US9805077B2 (en) * 2008-02-19 2017-10-31 International Business Machines Corporation Method and system for optimizing data access in a database using multi-class objects
US8086816B2 (en) 2008-10-20 2011-12-27 Dataram, Inc. Method for controlling performance aspects of a data storage and access routine
US8032804B2 (en) 2009-01-12 2011-10-04 Micron Technology, Inc. Systems and methods for monitoring a memory system
US8321645B2 (en) * 2009-04-29 2012-11-27 Netapp, Inc. Mechanisms for moving data in a hybrid aggregate
CN101840308B (zh) 2009-10-28 2014-06-18 创新科存储技术有限公司 一种分级存储系统及其逻辑卷管理方法
US9052830B1 (en) * 2011-06-30 2015-06-09 Emc Corporation Techniques for automated evaluation and movement of data between storage tiers for thin devices
EP3037971B1 (en) 2011-12-27 2024-01-17 Intel Corporation Methods and apparatus to manage workload memory allocation
CN105718223B (zh) 2011-12-27 2019-11-12 英特尔公司 管理工作负载存储器分配的方法和设备
FR3023054B1 (fr) 2014-06-30 2017-11-24 Nexans Cable de transport d'electricite a joncs composites

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010021959A1 (en) * 2000-02-18 2001-09-13 Holmberg Per Anders Static cache
CN1510579A (zh) * 2002-10-04 2004-07-07 前摄存储器管理的方法和机制
CN1977336A (zh) * 2004-05-21 2007-06-06 拉姆伯斯公司 改善支持多存储器访问延迟的计算机存储器系统的性能的系统和方法
CN1825290A (zh) * 2005-02-12 2006-08-30 美国博通公司 一种管理存储器的方法及一种存储器
CN101681297A (zh) * 2007-06-05 2010-03-24 国际商业机器公司 存储器分配的设置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11822789B2 (en) 2011-12-27 2023-11-21 Intel Corporation Methods and apparatus to manage workload memory allocation
US11636014B2 (en) 2017-10-31 2023-04-25 SK Hynix Inc. Memory system and data processing system including the same
CN109753236A (zh) * 2017-11-08 2019-05-14 爱思开海力士有限公司 存储系统及其操作方法
CN109753236B (zh) * 2017-11-08 2022-05-31 爱思开海力士有限公司 存储系统及其操作方法
US11221931B2 (en) 2019-01-15 2022-01-11 SK Hynix Inc. Memory system and data processing system
CN112631525A (zh) * 2020-12-30 2021-04-09 安徽鸿程光电有限公司 存储及显示方法、装置、设备及介质

Also Published As

Publication number Publication date
US20180067655A1 (en) 2018-03-08
US20140201477A1 (en) 2014-07-17
US20160132266A1 (en) 2016-05-12
EP3037971A1 (en) 2016-06-29
US20210055865A1 (en) 2021-02-25
US10649662B2 (en) 2020-05-12
CN103999056B (zh) 2017-05-31
US8996765B2 (en) 2015-03-31
WO2013100896A1 (en) 2013-07-04
US9361217B2 (en) 2016-06-07
US9612951B2 (en) 2017-04-04
EP2798499A1 (en) 2014-11-05
EP2798499A4 (en) 2015-10-21
CN107273302B (zh) 2021-02-09
EP3037971B1 (en) 2024-01-17
US20170160949A1 (en) 2017-06-08
US11385793B2 (en) 2022-07-12
EP2798499B1 (en) 2020-11-18
CN103999056A (zh) 2014-08-20
EP4086767A1 (en) 2022-11-09
US9823850B2 (en) 2017-11-21
US20150205714A1 (en) 2015-07-23
US20190095104A1 (en) 2019-03-28
US20220398020A1 (en) 2022-12-15
US11822789B2 (en) 2023-11-21
US10067680B2 (en) 2018-09-04

Similar Documents

Publication Publication Date Title
CN103999056B (zh) 管理工作负载存储器分配的方法、设备和系统
US8364909B2 (en) Determining a conflict in accessing shared resources using a reduced number of cycles
CN104412233B (zh) 流水线调度中混叠寄存器的分配
CN101814039A (zh) 一种基于GPU的Cache模拟器及其空间并行加速模拟方法
KR20180096780A (ko) 코어 트레이스로부터 데이터 마이닝을 하기 위한 방법 및 장치
CN107301270A (zh) Ddr存储系统访存延时的解析建模方法
CN105718223B (zh) 管理工作负载存储器分配的方法和设备
CN111126619B (zh) 一种机器学习方法与装置
CN103455364A (zh) 一种多核环境并行程序Cache性能在线获取系统及方法
JP5687603B2 (ja) プログラム変換装置、プログラム変換方法、および変換プログラム
CN108846248B (zh) 一种应用建模及性能预测方法
Ke et al. Analyzing the Interplay Between Random Shuffling and Storage Devices for Efficient Machine Learning
Zheng et al. Gpuperfml: A performance analytical model based on decision tree for GPU architectures
CN110362508B (zh) 一种基于贪心算法的混合缓存数据分配方法
Sun et al. A trace-driven analytical model with less profiling overhead for dram access latencies
Kim et al. Towards predicting GPGPU performance for concurrent workloads in Multi-GPGPU environment
Ling et al. Fast modeling DRAM access latency based on the LLC memory stride distribution without detailed simulations
Kiani et al. Rdmke: applying reuse distance analysis to multiple GPU kernel executions
CN118051305A (zh) 一种服务实例的调度方法及装置
Kahraman et al. A Performance Improvement Model for Market Surveillance Application
Kassa Efficient Utilization of Heterogeneous Compute and Memory Systems
Wang et al. An Optimization Strategy for Improving Throughput of GPU Global Memory.

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant