管理工作负载存储器分配的方法和设备的制造方法

文档序号:9923693阅读:492来源:国知局
管理工作负载存储器分配的方法和设备的制造方法
【技术领域】
[0001 ]本公开内容一般涉及存储器管理,并且更具体地说,涉及管理工作负载存储器分配的方法和设备。
【背景技术】
[0002]近年来,处理器已被开发以执行增大的每秒浮点运算数量(FLOPS)。促成增大的FLOPS的设计改进包括但不限于更大的晶体管密度和多个核。在另外的晶体管和/或核添加到处理器时,出现了功耗和热的对应增大,这可对FLOPS性能起到反作用。
【附图说明】
[0003]图1是根据管理工作负载存储器分配的本公开内容的教导构成的示例工作负载管理器的示意图。
[0004]图2是指示请求平台的存储器访问的示例数据元素的示例表格。
[0005]图3是指示请求平台的存储器访问的示例数据阵列简档的示例表格。
[0006]图4-6是表示可执行以管理工作负载存储器分配,实现图1的示例工作负载管理器和/或构建图2和3的表格的示例机器可读指令的流程图。
[0007]图7是可执行图4-6的示例机器可读指令以实现图1的示例工作负载管理器和/或构建图2和3的表格的示例系统的框图。
【具体实施方式】
[0008]本文公开了管理工作负载存储器分配的方法、制品和设备。示例方法包括识别与平台相关联的主存储器和辅助存储器,辅助存储器具有与主存储器的第二性能度量不同的第一性能度量,识别与在平台上执行期间由工作负载调用的多个数据元素相关联的访问度量,基于与多个数据元素的对应数据元素相关联的访问度量,按优先排列(pr1ritize)多个数据元素的列表,以及基于多个存储器元素的第一存储器元素的优先级,将多个数据元素的第一数据元素从主存储器重新分配到辅助存储器。
[0009]图1是控制工作负载存储器分配的示例工作负载控制器100的示意图。在图1的所示示例中,工作负载管理器100包括工作负载管理器102、数据元素识别器104、数据元素跟踪器106、数据元素性能计算器108、存储器管理器110、代码修改器112及链接程序(linker)接口 114。示例工作负载管理器100以通信方式连接到具有一个或更多个工作负载118、主存储器120、辅助存储器122和处理器124的示例平台116。
[0010]图1的平台116的示例处理器124包括执行示例工作负载118的任何数量的核。图1的示例工作负载118可包括但不限于由编译器机制从源代码生成和链接的可执行代码(例如,二进制码)的一个或更多个程序。代码的执行可包括但不限于执行一个或更多个程序,程序具有任何数量的相关联动态链路库(DLL)、一起链接到相同程序的一个或更多个单独的文件和/或集群使用模型,集群使用模型中工作负载包括带有涉及一个或更多个过程的任何数量的共享库的程序。在示例工作负载118执行期间,处理器124可访问主存储器120以操控和/或以其它方式处理数据。数据可包括但不限于数据阵列、文件、堆(heap)和/或栈(stack)。在本文中使用时,对数据、阵列数据和/或数据阵列的引用包括可由处理器124处理和/或存储在主存储器120和/或辅助存储器122中的所有类型的数据。在本文中使用时,主存储器120包括闪存、只读存储器(ROM)、随机存取存储器(RAM)和/或硬盘驱动器存储器。主存储器120例如可包括任何类型的双倍数据率(DDR) RAM(例如,DDR2、DDR3、DDR4等)。
[0011]在一些示例中,平台116的辅助存储器122包括在与主存储器120相比时展示更低等待时间、相干性和/或更高带宽能力的增强性能设计。示例辅助存储器122可包括在与示例主存储器120对应的对应闪存、R0M、RAM和/或硬盘驱动器存储器相比时具有改进性能度量的闪存、R0M、RAM和/或硬盘驱动器存储器。示例辅助存储器122可基于其改进的性能特性而具有相关联溢价,并且因此,辅助存储器122的对应大小/容量可实质上低于主存储器120的大小/容量。相应地,示例辅助存储器122的利用由于其相对更高的成本和更低的大小而得到仔细审查。示例辅助存储器122可包括但不限于暂存RAM。暂存RAM是相对高速的内部存储器,可以是协调的(coherent),并且可位于处理器124上,在处理器124附近和/或在处理器封装内。
[0012]在操作中,示例工作负载管理器100识别改进(例如,优化)在示例平台116上执行的代码的一个或更多个机会。如上所述,虽然添加到处理器124的另外晶体管和/或核可在执行代码时产生更快的结果,但添加的晶体管的对应热生成和/或功耗可在FLOPS性能方面最终提供减小的收益。为在执行一个或更多个工作负载118时改进平台性能,示例工作负载管理器100识别工作负载118的存储器利用模式。如果由示例处理器124创建和/或以其它方式操控的第一数据阵列展示相对高的需求(例如,与第二数据阵列相比时的读/写操作的数量、数据阵列实质影响工作负载/平台性能的程度、相对比较等),则示例工作负载管理器100修改与示例工作负载118相关联的代码,以便为此类读/写操作利用相对更快类型的存储器。示例工作负载管理器100执行的代码修改可包括但不限于源代码修改、二进制码修改、动态即时(JIT)编码器修改等。在一些示例中,可重新链接代码以在某种程度上改进速度而无需一个或更多个编译操作。诸如示例辅助存储器122等更快类型的存储器允许通过比主存储器120更低的等待时间和/或更高的带宽进行读/写操作,由此改进在示例平台116上执行时工作负载118的性能。
[0013]示例工作负载管理器102检索和/或以其它方式接收来自平台116的工作负载118,并且执行在受监视环境中的工作负载以表征其操作。在一些示例中,工作负载管理器102获得,检索和/或以其它方式获得与示例平台116相关联的信息,如平台116利用和/或以其它方式可用的一个或更多个类型的存储器。如下面进一步详细所述,如果平台116包括具有在与示例主存储器120相比时改进的操作特性的一个或更多个类型的存储器(例如,辅助存储器122),则示例工作负载管理器100修改与工作负载118相关联的代码(例如,源代码、一个或更多个二进制码、磁盘上有利于随后执行优化的二进制码等),以利用此类存储器改进平台性能。示例工作负载管理器102可一次或更多次调用工作负载118以表征其数据阵列和存储器利用行为。在一些示例中,工作负载管理器102调用工作负载118的多次执行迭代以确定平均特性。在其它示例中,工作负载管理器102通过一个或更多个输入参数调用工作负载118以识别对应数据阵列和/或存储器利用行为(例如,应力试验)。
[0014]在示例工作负载118执行期间,示例数据元素识别器104识别到诸如示例主存储器120等平台116的一个或更多个存储器的数据访问的实例。示例数据元素跟踪器106为示例工作负载118采用的每个数据阵列计数数据访问的检测到的实例的数量,并且存储此类计数以便以后分析工作负载118行为。在其它示例中,收集和/或监视访问计数可能不足以确定在与一个或更多个其它数据阵列相比时关注的数据阵列的相对分级。在此类情况下,收集和/或监视用于关注的每个数据阵列的每时间单位的访问允许进行哪个(些)数据阵列可对平台和/或工作负载性能贡献最大益处的相对分级。如上所述,每个数据阵列可包括由示例工作负载采用的任何类型的存储器结构,如阵列、文件、堆、栈、寄存器等。示例数据元素跟踪器106也可从工作负载收集情报以发送到示例数据元素性能计算器108。
[0015]示例数据元素性能计算器108分析数据访问的存储实例,并且生成与执行到存储器的一个或更多个读/写操作的每个数据阵列相关联的一个或更多个数据访问行为的表格。如下面进一步详细所述,示例数据元素性能计算器108生成的表格可包括与每个数据阵列相关联的存储器访问尝试的数量的计数(访问计数)、存储器访问尝试导致延迟(例如,处理器自旋、处理器等待存储器变得可用于读/写操作、与负载和/或存储相关联的停顿)的实例数量的计数和/或在存储器访问尝试造成处理器自旋(例如,处理器等待事件)的实例期间发生的周期数量。在
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1