一种计算机系统应用高速缓存的方法、装置及设备与流程

文档序号:17536795发布日期:2019-04-29 14:04阅读:171来源:国知局
一种计算机系统应用高速缓存的方法、装置及设备与流程

本发明涉及计算机技术领域,特别是涉及一种计算机系统应用高速缓存的方法、装置、设备以及计算机可读存储介质。



背景技术:

当前高速缓存技术被广泛应用在计算机体系结构之中,是计算机系统中不可或缺的重要部件。为了提升计算机的运行效率,诸如针对数据的访存、指令的读取等高速缓存技术应运而生,既提升了数据和指令的访存速度,又减少了对于内存和磁盘的读写。

现有技术中,计算机系统可以采用sram(staticrandom-accessmemory静态随机存取存储器)高速缓存,进而优化计算密集型应用程序的性能。可以通过使用最新型的dram(dynamicrandomaccessmemory动态随机存取存储器)高速缓存来优化内存密集型应用程序的性能。然而现有技术中的高速缓存系统只能单一对于一种类型的负载进行优化,缺乏对于多编程混合负载的弹性优化和适应能力。sram高速缓存系统一旦接收到内存密集型应用负载,将不能得到性能方面的优化,甚至使系统性能下降;相应的dram高速缓存系统一旦接收到计算密集型应用负载,将不能得到性能方面的优化,甚至使系统性能下降。

当计算机系统的负载为多编程混合负载时,可能同时包含内存密集型应用和计算密集型应用,无法使用统一的策略优化程序的运行。这使得一些新的技术(如dram高速缓存和sram高速缓存)无法体现优化的价值,不能保证优化的程度和程序的性能。

综上所述可以看出,如何优化多编程混合负载的计算机系统应用的运行效率是目前有待解决的问题。



技术实现要素:

本发明的目的是提供一种计算机系统应用高速缓存的方法、装置、设备以及计算机可读存储介质,以解决现有技术中无法使用统一的高速缓和系统优化多编程混合负载的计算机系统应用的运行效率的问题。

为解决上述技术问题,本发明提供一种计算机系统应用高速缓存的方法,包括:获取计算机系统当前加载的应用,使所述应用在第一高速缓存模块下进行高速缓存侦测,采集所述应用的第一性能统计数据;完成所述第一性能统计数据的采集后,使所述应用在第二高速缓存模块下进行高速缓存侦测,采集所述应用的第二性能统计数据;根据所述第一性能统计数据和所述第二性能统计数据,识别所述应用的类型,选择与所述应用的类型对应的高速缓存模块优化所述应用的运行效率。

优选地,所述获取计算机系统当前加载的应用,使所述应用在第一高速缓存模块下进行高速缓存侦测采集所述应用的第一性能统计数据,包括:

获取计算机系统当前加载的应用mcf,使所述应用mcf在所述计算机系统的初始高速缓存模块下进行高速缓存侦测,其中,所述计算机系统的初始高速缓存模块为dram高速缓存模块;

根据所述dram高速缓存模块高速缓存的命中率,采集所述应用mcf的第一性能统计数据。

优选地,所述使所述应用在第二高速缓存模块下进行高速缓存侦测,采集所述应用的第二性能统计数据,包括:

使所述应用mcf在sram高速缓存模块下进行高速缓存侦测;

根据所述sram高速缓存模块高速缓存的命中率,采集所述应用mcf的第二性能统计数据。

优选地,所述根据所述第一性能统计数据和所述第二性能统计数据,识别所述应用的类型,选择与所述应用的类型对应的高速缓存模块优化所述应用的运行效率,包括:

对所述第一性能统计数据和所述第二性能统计数据进行比较和评估,根据比较结果和评估结果确定所述应用mcf的类型为内存密集型应用;

将当前高速缓存模块由所述sram高速缓存模块更换为所述dram高速缓存模块,从而实现对所述应用mcf运行效率的优化操作。

优选地,所述将当前高速缓存模块由所述sram高速缓存模块更换为所述dram高速缓存模块,包括:

当更换当前高速缓存模块时,暂停所述应用mcf的运行,激活所述dram高速缓存模块,将根据所述sram高速缓存模块中的数据迁移至所述dram高速缓存模块,恢复所述应用mcf的运行。

本发明还提供了一种计算机系统应用高速缓存的装置,包括:

第一侦测模块,用于获取计算机系统当前加载的应用,使所述应用在第一高速缓存模块下进行高速缓存侦测,采集所述应用的第一性能统计数据;

第二侦测模块,用于完成所述第一性能统计数据的采集后,使所述应用在第二高速缓存模块下进行高速缓存侦测,采集所述应用的第二性能统计数据;

选择模块,用于根据所述第一性能统计数据和所述第二性能统计数据,识别所述应用的类型,选择与所述应用的类型对应的高速缓存模块优化所述应用的运行效率。

优选地,所述第一侦测模块具体用于:

获取计算机系统当前加载的应用mcf,使所述应用mcf在所述计算机系统的初始高速缓存模块下进行高速缓存侦测,其中,所述计算机系统的初始高速缓存模块为dram高速缓存模块;

根据所述dram高速缓存模块高速缓存的命中率,采集所述应用mcf的第一性能统计数据。

优选地,所述第二侦测模块具体用于:

使所述应用mcf在sram高速缓存模块下进行高速缓存侦测;

根据所述sram高速缓存模块高速缓存的命中率,采集所述应用mcf的第二性能统计数据。

本发明还提供了一种计算机系统应用高速缓存的设备,包括:

混合型高速缓存,用于向cpu提供高速的缓存数据访问;

内存,用于存储计算机程序指令及数据;cpu,用于执行所述计算机程序指令及数据时实现上述一种计算机系统应用高速缓存的方法的步骤。

本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序指令及数据,所述计算机程序指令及数据被处理器执行时实现上述一种计算机系统应用高速缓存的方法的步骤。

本发明所提供的计算机系统应用高速缓存的方法,对于包括多编程混合负载的计算机系统,每加载一次新的应用,分别利用高速缓存系统中第一高速缓存模块和第二高速缓存模块对所述当前加载的应用进行高速缓存侦测。采集所述应用在所述第一高速缓存模块下运行的第一性能统计数据以及所述应用在所述第二高速缓存模块下运行的第二性能统计数据。对所述第一性能统计数据和所述第二性能统计数据进行比较和评估,从而判断所述应用的类型。选择与所述应用类型对应的高速缓存模块对所述应用的运行效率进行优化。本发明所提供的方法利用通过对计算机系统当前加载应用的负载类型进行感知,选择与所述当前加载应用相对应的高速缓存模块提高所述当前加载应用的运行系性能;解决了现有技术中利用只能利用一种高速缓存模块对包含多编程混合负载的计算机系统进行高速缓存时,并不能对所述计算机系统内所有应用运行效率的优化,甚至有可能降低所述计算机系统内应用的优运行效率的问题。

相对应的,本发明所提供的计算机系统应用高速缓存的装置、设备以及计算机可读存储介质,均具有上述有益效果。

附图说明

为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明所提供的计算机系统应用高速缓存的方法的第一种具体实施例的流程图;

图2为本发明所提供的计算机系统应用高速缓存的方法的第二种具体实施例的流程图;

图3为本发明所提供的计算机系统应用高速缓存的方法的第三种具体实施例的流程图;

图4为本发明实施例提供的一种计算机系统应用高速缓存的装置的结构框图。

具体实施方式

本发明的核心是提供一种计算机系统应用高速缓存的方法、装置、设备以及计算机可读存储介质,通过感知计算机系统当前加载应用的负载类型,选择与当前加载应用相对应的高速缓存模块提高当前加载应用的运行系性能。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,图1为本发明所提供的计算机系统应用高速缓存的方法的第一种具体实施例的流程图;具体操作步骤如下:

步骤s101:获取计算机系统当前加载的应用,使所述应用在第一高速缓存模块下进行高速缓存侦测,采集所述应用的第一性能统计数据;

当所述计算机系统的初始高速缓存为dram高速缓存模块时,将所述dram高速缓存模块作为第一高速缓存模块。所述计算机系统的初始高速缓存为sram高速缓存模块时,则将所述sram高速缓存模块作为第一高速缓存模块。

在本实施例中选择所述dram高速缓存模块作为所述计算机系统的第一高速缓存模块。获取所述计算机系统当前加载的应用,使所述应用在所述dran高速缓存模块下进行高速缓存侦测,并记录所述第一性能缓存数据。

由于所述应用在刚加入系统时有一段缓慢的加速启动过程,在此过程中,高速缓存的命中率极不稳定,性能数据可能缺乏指导性。因此在本发明中,设立了相应的阈值来权衡命中率的变化,并在高速缓存命中率稳定的阶段收集应用的性能统计数据。在本实施例中,可以记录所述应用的启动时长,当所述应用的启动时长大于等于预设时长阈值时,说明所述高速缓存的命中率已趋于稳定。也可以通过所述高速缓存的命中率的变化率判断所述高速缓存的命中率是否趋于稳定。

步骤s102:完成所述第一性能统计数据的采集后,使所述应用在第二高速缓存模块下进行高速缓存侦测,采集所述应用的第二性能统计数据;

当所述应用在所述dram或sram高速缓存模块下测试完成后,使用所述sram或dram高速缓存模块进行测试。

步骤s103:根据所述第一性能统计数据和所述第二性能统计数据,识别所述应用的类型,选择与所述应用的类型对应的高速缓存模块优化所述应用的运行效率。

在本实施例中,根据所述计算机系统当前加载的应用分别在所述dram高速缓存模块和sram高速缓存模块下测试得到的第一性能统计数据和第二性能统计数据的评估和比较结果,感知所述当前加载的应用的类型。当所述应用在所述dram高速缓存模块下的高速缓存统计数据评估优于在所述sram高速缓存模块下的高速缓存统计数据评估时,判断所述应用为内存密集型应用程序,选择所述dram高速缓存模块对所述应用的运行效率进行优化。

基于上述实施例,在本实施例中,在确定所述当前加载的应用的类型,选择与所述应用对应的高速缓存模块;并判断是否需要更新所述计算机系统当前的高速缓存模块。请参考图2,图2为本发明所提供的计算机系统应用高速缓存的方法的第二种具体实施例的流程图;具体操作步骤如下:

步骤s201:获取计算机系统当前加载的应用,使所述应用在所述计算机系统的初始高速缓存模块下进行高速缓存侦测,采集所述应用的第一性能统计数据,其中,所述计算机系统的初始高速缓存模块为dram高速缓存模块;

步骤s202:完成所述第一性能统计数据的采集后,使所述应用在sram高速缓存模块下进行高速缓存侦测,采集所述应用的第二性能统计数据;

步骤s203:对所述第一性能统计数据和所述第二性能统计数据进行比较和评估,根据比较结果和评估结果确定所述应用的类型;

步骤s204:根据所述应用的类型判断是否需要更换所述计算机系统运行的当前高速缓存模块;

步骤s205:若所述应用为内存密集型应用,则将当前高速缓存模块由所述sram高速缓存模块更换为所述dram高速缓存模块,从而实现对所述应用运行效率的优化操作;

步骤s206:若所述应用为计算密集型应用,则不需要更换所述当前高速缓存模块,执行步骤s207;

所述计算密集型应用在运行过程中,需要消耗大量的计算资源,对于内存的访问并不频繁。所述内存密集型应用在运行过程中,需要频繁访问内存以获得相应数据,对于计算资源的消耗并不大。

步骤s207:监测是否有新的应用加载至所述计算机系统,若是,则更新所述计算机系统当前加载的应用后,执行步骤s201。

在本实施例中,高速缓存系统中同时存在所述dram高速缓存模块和所述sram高速缓存模块,通过收集到的所述应用分别在两个高速缓存模块下的性能统计数据,来分析和评估当前应用的类型,并根据不同的应用类型采用不同的策略来调度高速缓存模块。

在本实施例中,在对每一个应用的类型进行感知后,可以记录已加载应用的类型和高速缓存模块的统计信息,并存储到数据库中;判断新加入的应用如果为已分析过的应用,如果是,可以通过数据库的数据比对找出之前的记录的他那个叫信息,从而快速选择高速缓存模块并达到优化性能的目的。

基于上述实施例,在本实施例中,以选自speccpu2006性能评估测试集的应用mcf的运行为例对本发明作进一步的详细说明。请参考图3,图3为本发明所提供的计算机系统应用高速缓存的方法的第三种具体实施例的流程图;具体操作步骤如下:

步骤s301:获取计算机系统当前加载的应用mcf,使所述应用mcf在所述计算机系统的初始高速缓存模块下进行高速缓存侦测,其中,所述计算机系统的初始高速缓存模块为dram高速缓存模块;

步骤s302:根据所述dram高速缓存模块高速缓存的命中率,采集所述应用mcf的第一性能统计数据;

步骤s303:完成所述第一性能统计数据的采集后,使所述应用mcf在sram高速缓存模块下进行高速缓存侦测;

步骤s304:根据所述sram高速缓存模块高速缓存的命中率,采集所述应用mcf的第二性能统计数据;

步骤s305:对所述第一性能统计数据和所述第二性能统计数据进行比较和评估,根据比较结果和评估结果确定所述应用mcf的类型为内存密集型应用;

步骤s306:暂停所述应用mcf的运行,激活所述dram高速缓存模块;

在本实施例中,所述应用mcf为内存密集型应用,应选择所述dram高速缓存模块优化所述应用mcf的运行性能。而当前运行的高速缓存为所述sram高速缓存模块,因此需要将当前运行的高速缓存更换为dram高速缓存模块。

在更换高速缓存模块时,暂停所述应用mcf的运行,并对高速缓存中的数据进行迁移。虽然此时所述应用mcf的运行被暂停,但是所述应用mcf保存在高速缓存中的数据不会被删除,而是通过不同的策略进行迁移,同时使用pcie(pci-expressperipheralcomponentinterconnectexpress)等高速总线传输迁移的数据。

所述pcie是一种高速串行计算机扩展总线标准。

步骤s307:将根据所述sram高速缓存模块中的数据迁移至所述dram高速缓存模块,关闭所述sram高速缓存模块,恢复所述应用mcf的运行;

步骤s308:监测是否有新的应用加载至所述计算机系统,若是,则更新所述计算机系统当前加载的应用后,感知更新后应用的类型,从而选择与所述更新后应用的类型对应的高速缓存模块优化所述更新后应用的运行效率。

在本实施例中,针对不同的模块迁移,我们使用不同的迁移策略。如果当前运行的是所述sram高速缓存模块,需要激活并迁移数据至所述dram高速缓存模块,由于所述sram高速缓存模块容量大大小于所述dram高速缓存模块容量,直接将数据复制到所述dram高速缓存模块中即可。而当前运行的是所述dram高速缓存模块时,激活所述sram高速缓存模块,由于所述sram高速缓存模块容量较小,此时只迁移被修改的数据进入所述sram高速缓存模块,如果发生数据溢出,则溢出的数据会被写入主存当中。

请参考图4,图4为本发明实施例提供的一种计算机系统应用高速缓存的装置的结构框图;具体装置可以包括:

第一侦测模块100,用于获取计算机系统当前加载的应用,使所述应用在第一高速缓存模块下进行高速缓存侦测,采集所述应用的第一性能统计数据;

第二侦测模块200,用于完成所述第一性能统计数据的采集后,使所述应用在第二高速缓存模块下进行高速缓存侦测,采集所述应用的第二性能统计数据;

选择模块300,用于根据所述第一性能统计数据和所述第二性能统计数据,识别所述应用的类型,选择与所述应用的类型对应的高速缓存模块优化所述应用的运行效率。

本实施例的计算机系统应用高速缓存的装置用于实现前述的计算机系统应用高速缓存的方法,因此计算机系统应用高速缓存的装置中的具体实施方式可见前文中的计算机系统应用高速缓存的方法的实施例部分,例如,第一侦测模块100,第二侦测模块200,选择模块300,分别用于实现上述计算机系统应用高速缓存的方法中步骤s101,s102和s103,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。

本发明具体实施例还提供了一种计算机系统应用高速缓存的设备,包括:混合型高速缓存,用于向cpu提供高速的缓存数据访问;内存,用于存储计算机程序指令及数据;cpu,用于执行所述计算机程序指令及数据时实现上述一种计算机系统应用高速缓存的方法的步骤。

本发明具体实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序指令及数据,所述计算机程序指令及数据被处理器执行时实现上述一种计算机系统应用高速缓存的方法的步骤。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的计算机系统应用高速缓存的方法、装置、设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1