调度虚拟机时的处理方法和设备的制作方法

文档序号:6501256阅读:299来源:国知局
调度虚拟机时的处理方法和设备的制作方法
【专利摘要】本发明提供一种调度虚拟机时的处理方法和设备。该方法包括接收虚拟机访问的高速缓存地址信息,根据所述高速缓存地址信息确定所述虚拟机要访问的数据所在的源组,并确定所述源组对应的协作组;在所述源组和所述协作组均发生缺失时,判断所述源组和所述协作组是否满足协作条件;在满足协作条件时,将所述源组中不属于所述虚拟机的高速缓存行中的信息保留到所述协作组中,并将所述虚拟机对应的信息保存在所述源组中。本发明实施例可以降低访问延迟。
【专利说明】调度虚拟机时的处理方法和设备

【技术领域】
[0001]本发明涉及存储技术,尤其涉及一种调度虚拟机时的处理方法和设备。

【背景技术】
[0002]云计算数据中心涉及大量的服务器,这些服务器通常都使用多核处理器来构建。其面临的一个突出问题是服务器平均利用率低,为了提高服务器的平均利用率,可以采用虚拟化技术。在云计算数据中心中,物理服务器可以被划分成多个相互隔离的虚拟机来提供服务,虚拟机监控器或虚拟机管理程序(Hypervisor)作为一个固件层来完成对底层物理资源的划分和管理。
[0003]Hypervisor可以周期性的将虚拟机调度到物理处理器核上,或者,将虚拟机重定位到其它的物理处理器核上,以提高物理处理器的利用率,保证系统负载均衡。当前的虚拟化技术并不划分高速缓存(Cache)和内存访问带宽等硬件资源,因此,当虚拟机重定位到其它物理处理器核上时,该虚拟机要访问的数据依然保留在原有的物理处理器核上,当原有的物理处理器核上要调度新的虚拟机时,该新的虚拟机可能会产生缺失(miss),在发生缺失时,现有技术是将重定位虚拟机的数据从Cache中淘汰到内存中,这样当重定位的虚拟机需要访问数据时,就要到内存中去访问,相对于直接在Cache中访问,会增加访问延迟。


【发明内容】

[0004]有鉴于此,本发明实施例提供了一种调度虚拟机时的处理方法和设备,用以解决现有技术中存在的增加访问延迟的问题。
[0005]第一方面,提供了一种调度虚拟机时的处理方法,包括:
[0006]接收虚拟机访问的高速缓存地址信息,根据所述高速缓存地址信息确定所述虚拟机要访问的数据所在的源组,并确定所述源组对应的协作组;
[0007]在所述源组和所述协作组均发生缺失时,判断所述源组和所述协作组是否满足协作条件;
[0008]在满足协作条件时,将所述源组中不属于所述虚拟机的高速缓存行中的信息保留到所述协作组中,并将所述虚拟机对应的信息保存在所述源组中。
[0009]结合第一方面,在第一方面的第一种可能的实现方式中,所述确定所述源组对应的协作组,包括:
[0010]采用如下公式,根据所述源组的编号确定所述协议组的编号:
[0011]v=sxor2k
[0012]其中,s为所述源组的编号,V为所述协作组的编号,k为预先设置的值,xor表示异或运算。
[0013]结合第一方面,在第一方面的第二种可能的实现方式中,所述判断所述源组和所述协作组是否满足协作条件,包括:
[0014]当所述源组的失效数大于高压力门限,且所述协作组的失效数小于低压力门限,则所述源组和所述协作组满足协作条件,所述高压力门限和所述低压力门限均是预先确定的值。
[0015]结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述高压力门限的公式为:HPT=max+(a X (max-min));
[0016]所述低压力门限的公式为:LPT=min+(a X (max-min));
[0017]其中,HPT为高压力门限,LPT为低压力门限,max为所有组的失效数中的最大值,min为所有组的失效数中的最小值,α为预先设置的值。
[0018]结合第一方面,在第一方面的第四种可能的实现方式中,还包括:
[0019]所述高速缓存行中记录的信息包括标记部分,所述标记部分包括所述高速缓存地址信息的标记和组号以及虚拟机标识,在源组中任一个高速缓存行的标记部分与所述高速缓存地址信息的标记和组号以及所述虚拟机的虚拟机标识的组合不同时,确定所述源组发生缺失,在协作组中任一个高速缓存行的标记部分与所述高速缓存地址信息的标记和组号以及所述虚拟机的虚拟机标识的组合不同时,确定所述协作组发生缺失。
[0020]结合第一方面,在第一方面的第五种可能的实现方式中,还包括:
[0021]记录映射关系,所述映射关系用于记录物理处理器核上当前被调度的虚拟机标识。
[0022]第二方面,提供了一种调度虚拟机时的处理设备,包括:
[0023]确定模块,用于接收虚拟机访问的高速缓存地址信息,根据所述高速缓存地址信息确定所述虚拟机要访问的数据所在的源组,并确定所述源组对应的协作组;
[0024]判断模块,用于在所述确定模块确定所述源组和所述协作组均发生缺失时,判断所述源组和所述协作组是否满足协作条件;
[0025]存储模块,用于在所述判断模块的判断结果是满足协作条件时,将所述源组中不属于所述虚拟机的高速缓存行中的信息保留到所述协作组中,并将所述虚拟机对应的信息保存在所述源组中。
[0026]结合第二方面,在第二方面的第一种可能的实现方式中,所述确定模块具体用于:
[0027]接收虚拟机访问的高速缓存地址信息;
[0028]根据所述高速缓存地址信息确定所述虚拟机要访问的数据所在的源组;
[0029]采用如下公式,根据所述源组的编号确定所述协议组的编号:
[0030]v=sxor2k
[0031]其中,s为所述源组的编号,V为所述协作组的编号,k为预先设置的值,xor表示异或运算。
[0032]结合第二方面,在第二方面的第二种可能的实现方式中,所述判断模块具体用于:
[0033]当所述源组的失效数大于高压力门限,且所述协作组的失效数小于低压力门限,则所述源组和所述协作组满足协作条件,所述高压力门限和所述低压力门限均是预先确定的值。
[0034]结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述判断模块采用的所述高压力门限的公式以及所述低压力门限的公式分别为:
[0035]所述高压力门限的公式为:HPT=max+(a X (max-min));
[0036]所述低压力门限的公式为:LPT=min+(a X (max-min));
[0037]其中,HPT为高压力门限,LPT为低压力门限,max为所有组的失效数中的最大值,min为所有组的失效数中的最小值,α为预先设置的值。
[0038]结合第二方面,在第二方面的第四种可能的实现方式中,所述高速缓存行中记录的信息包括标记部分,所述标记部分包括所述高速缓存地址信息的标记和组号以及虚拟机标识,所述设备还包括:
[0039]判决模块,用于在源组中任一个高速缓存行的标记部分与所述高速缓存地址信息的标记和组号以及所述虚拟机的虚拟机标识的组合不同时,确定所述源组发生缺失,在协作组中任一个高速缓存行的标记部分与所述高速缓存地址信息的标记和组号以及所述虚拟机的虚拟机标识的组合不同时,确定所述协作组发生缺失。
[0040]结合第二方面,在第二方面的第五种可能的实现方式中,还包括:
[0041]记录模块,用于记录映射关系,所述映射关系用于记录物理处理器核上当前被调度的虚拟机标识。
[0042]通过上述技术方案,在发生缺失,且源组和协作组满足协作条件时,将源组的数据保存到协作组,可以延长数据在Cache中的存活时间,以便再次访问该数据时可以降低延迟。

【专利附图】

【附图说明】
[0043]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0044]图1为本发明实施例提供的一种调度虚拟机时的处理方法的流程示意图;
[0045]图2为本发明实施例中每个Cache line记录的标记部分的示意图;
[0046]图3为本发明实施例中记录的映射关系的示意图;
[0047]图4为本发明实施例提供的另一种调度虚拟机时的处理方法的流程示意图;
[0048]图5为本发明实施例中协作组命中的处理示意图;
[0049]图6为本发明实施例中源组和协作组均缺失的处理示意图;
[0050]图7为本发明实施例中协作处理示意图;
[0051]图8为本发明实施例提供的一种调度虚拟机时的处理设备的结构示意图;
[0052]图9为本发明实施例提供的另一种调度虚拟机时的处理设备的结构示意图。

【具体实施方式】
[0053]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0054]图1为本发明实施例提供的一种调度虚拟机时的处理方法的流程示意图,包括:
[0055]11:处理器核接收虚拟机访问的高速缓存地址信息,根据所述高速缓存地址信息确定所述虚拟机要访问的数据所在的源组,并确定所述源组对应的协作组;
[0056]其中,虚拟机的标识可以用vmid表示;
[0057]虚拟机访问的高速缓存地址信息可以用addr表示,addr由三部分组成,分别为标记(Tag)、组号(set)和偏移量。
[0058]源组是指高速缓存地址信息中组号所指示的组,每组可以包括一个或多个高速缓存行(Cache I ine )。
[0059]协作组可以根据源组确定。可选的,协作组的编号与源组的编号之间可以满足如下关系:
[0060]v=sxor2k
[0061]其中,s为所述源组的编号,V为所述协作组的编号,k为预先设置的值,xor表示异或运算。
[0062]12:处理器核在所述源组和所述协作组均发生缺失时,判断所述源组和所述协作组是否满足协作条件;
[0063]其中,每个组中包含的每个Cache line中会记录一些信息,该信息包括标记部分(tag)和数据部分(data)。
[0064]参见图2,本发明实施例中每个Cache line记录的标记部分包括扩展的标记和虚拟机标识(VMID),扩展的标记包括高速缓存地址信息中的标记和组号。本发明实施例中的Cache line的标记部分包括组号并且增加了 VMID,而现有技术中Cache line记录的标记部分仅包含高速缓存地址信息中的标记。
[0065]由于传统的标记部分无法有效地区分源组前移到协作组(也可称为目的组)中的数据和目的组中原有的数据,二者访存地址中可能只有组号不同而标记相同。本发明实施例通过扩展标记部分,增加了组号,就可以区分数据是由源组迁移的还是原有的。同时为了标识每个Cache line所属的虚拟机,可以为每个Cache line扩展一个VMID。
[0066]当一个组中没有Cache line的标记部分与高速缓存地址信息的标记和组号以及访问虚拟机的虚拟机标识的组合相同,那么该组就发生缺失(或者称为失效)。
[0067]在发生缺失时,可以采用如下方式判断源组与协作组是否满足协作条件:
[0068]当所述源组的失效数大于高压力门限,且所述协作组的失效数小于低压力门限,则所述源组和所述协作组满足协作条件,所述高压力门限和所述低压力门限均是预先确定的值。
[0069]可选的,所述高压力门限的公式为:HPT=max+(a X (max-min));
[0070]所述低压力门限的公式为:LPT=min+(a X (max-min));
[0071]其中,HPT为高压力门限,LPT为低压力门限,max为所有组的失效数中的最大值,min为所有组的失效数中的最小值,α为预先设置的值。
[0072]其中,失效数也可以称为缺失的次数,可以对应每个组设置一个计数器,该组发生一次缺失,该组的计数值就增加1,因此可以得到每个组的失效数,再比较所有组的失效数就可以得到上述的最大值和最小值。
[0073]13:处理器核在判断结果是满足协作条件时,将所述源组中不属于所述虚拟机的高速缓存行中的信息保留到所述协作组中,并将所述虚拟机对应的信息保存在所述源组中。
[0074]与现有技术不同的是,现有技术中在缺失后源组中的最近最少使用的(LeastRecently Used, LRU)的Cache line记录的信息会从Cache中淘汰到内存中,而本发明实施例是保存到该Cache line的协作组中,保证数据依然存在Cache中,增加数据生存时间,以便再次访问该数据时可以从Cache中直接访问,相对于从内存中访问可以降低访问延迟。
[0075]可选的,参见图3,处理器核还可以记录映射关系,所述映射关系用于记录物理处理器核上当前被调度的虚拟机标识。可以在每个处理器核中增加一个vCPU映射寄存器来存在物理CPU上当前被调度运行的虚拟机ID,在对vCPU进行调度或重定位时,有Hypervisor负责更新。通过记录该当前被调度的虚拟机ID,可以在源组和协作组均缺失且满足协作条件时,将源组中不属于该虚拟机的数据淘汰至协作组中。
[0076]本实施例通过在发生缺失时,在源组和协作组满足协作条件时,将源组的数据保存到协作组,可以延长数据在Cache中的存活时间,以便再次访问该数据时可以降低延迟。
[0077]图4为本发明实施例提供的另一种调度虚拟机时的处理方法的流程示意图,包括:
[0078]41:CPU接收虚拟机标识为VMID的虚拟机对高速缓存地址addr的访问请求(图中用虚拟机VMID访问addr表示) 。
[0079]参见图4,假设访问的地址信息为16位,其中标记为9位,组号为4位,偏移量为3位。
[0080]42 =CPU根据地址信息(addr)确定数据所在源组号为S。
[0081]假设Cache是两路,共16个组,参见图5,组号分别为0x00,0x01,…,OxOf,每个组包括2个Cache line,顶层的表示最近最多使用(Most Recently Used, MRU)的Cacheline,底层的表不最近最少使用(Least Recently Used, LRU)的 Cache line。
[0082]假设地址信息addr=1111111111010001,那么源组的组号s为1010,也就是图5所示的OxOa。
[0083]43:判断编号为s的源组(s组)是否发生缺失,若是,执行45,否则执行44。
[0084]其中,可以比较该编号为s的组中每个Cache line记录的标记部分与地址信息的标记和组号以及虚拟机标识,当任一个Cache line的标记部分与地址信息的标记和组号以及访问的虚拟机标识都不相同时,则发生缺失。
[0085]例如,参见图5,以虚拟机标识为4位为例,当前访问的虚拟机标识VMID=2,OxOa组中两个Cache line中记录的标记部分分别为00001111010100001以及11111100010100001,由于这两个值与地址信息的标记和组号以及虚拟机标识的组合(11111111110100010)均不同,因此,源组中发生缺失。
[0086]44:查找命中,返回数据。
[0087]当s组中任一个Cache line记录的标记部分与地址信息的标记和组号以及虚拟机标识的组合相同,则表明查找命中,之后可以返回该命中的Cache line中记录的数据。
[0088]45:判断源组s的协作组V (V组)是否发生缺失,若是,执行47,否则执行46。
[0089]假设k=3,那么该源组 s 的协作组 v=sxor2k=1010xor1000=0010,也就是 v=0x02。
[0090]类似的,协作组也可以采用与源组相同的原理,通过比较该协作组中每个Cacheline记录的标记部分和地址信息的标记和组号以及虚拟机标识的组合,来判断是否发生缺失。
[0091]46:查找命中,返回数据。
[0092]参见图5,假设协作组(0x02)中的一个Cache line中记录的标记部分为11111111110100010,由于其与地址信息的标记和组号以及虚拟机标识的组合相同,那么则表明查找命中,可以返回该Cache line中记录的数据。
[0093]47:判断源组和协作组(s组和V组)是否满足协作条件,若是,执行49,否则,执行48。
[0094]也就是分别确定源组和协作组的失效数,假设分别表示为Miss (S)和Miss (V),如果Miss (s) >HPT,并且Miss (V)〈LPT,则表明满足协作条件,失效数的确定以及高压力门限HPT和低压力门限LPT的确定可以参见上述实施例的描述。
[0095]48:直接替换源组的LRU的Cache line,即直接替换LRU。
[0096]例如,直接替换OxOa中底层的Cache line中记录的信息,也就是把111111000101000001对应的数据替换到内存中,新增加与该虚拟机相关的信息如,该Cacheline中记录的标记部分更新为11111111110100010。
[0097]49:将源组中不属于该虚拟机的Cache line替换到协作组中,将该虚拟机对应的信息插入到源组中,即将s组不属于VMID的数据替换至V组中,将新数据插入s组。
[0098]cache line中记录的VMID和vCPU映射寄存器中记录的当前运行虚拟机ID相比较即可确定该cache line是否属于当前运行虚拟机。
[0099]例如,参见图6,在源组和协作组均缺失,且两者满足协作条件时,将11111100010100001对应的Cache line中记录的信息(包括标记部分和数据,图中只示出了标记部分)替换到0x02中。
[0100]在OxOa组中插入新数据,如在OxOa的MRU的Cache line中插入新数据,该Cacheline记录的标记部分为11111111110100010。
[0101]本实施例将高容量压力的高速缓存组中的不属于当前虚拟机的数据(假设该数据属于虚拟机vm_out)保存至低容量压力的协作组中,这样当vm_out的vCPU被重新调度或重定位到其它物理CPU时,依然能够获得高速缓存命中,从而提高了 vm_out虚拟机的高速缓存命中率;通过移到数据,可以充分利用数据在各高速缓存组中分布不均匀这一特性,提高高速缓存的整体利用率;协作组地址计算方式简单、硬件开销小,具体很好的可扩展性。
[0102]参见图7,VMl原来调度在Pl和P5上,当VMl重定位到P2和P9后,VMl的数据保留在原有的Pl和P5上。当VM2被同时调度到Pl和P5上执行后,如果发生缺失,VMl在Pl和P5上的原有数据会被淘汰到内存中。而在本发明实施例给出的组间协作(Set Cooperative,SC)机制下,VMl的原有数据是保留在Pl和P5的源组的协作组中,而不是淘汰到内存中,这样当VMl需要访问数据时,就可以直接在Cache中访问,从而提高了虚拟机VMl的高速缓存命中率。
[0103]图8为本发明实施例提供的一种调度虚拟机时的处理设备的结构示意图,该设备80包括确定模块81、判断模块82和存储模块83 ;确定模块81用于接收虚拟机访问的高速缓存地址信息,根据所述高速缓存地址信息确定所述虚拟机要访问的数据所在的源组,并确定所述源组对应的协作组;判断模块82用于在所述确定模块确定所述源组和所述协作组均发生缺失时,判断所述源组和所述协作组是否满足协作条件;存储模块83用于在所述判断模块的判断结果是满足协作条件时,将所述源组中不属于所述虚拟机的高速缓存行中的信息保留到所述协作组中,并将所述虚拟机对应的信息保存在所述源组中。
[0104]可选的,所述确定模块81具体用于:
[0105]接收虚拟机访问的高速缓存地址信息;
[0106]根据所述高速缓存地址信息确定所述虚拟机要访问的数据所在的源组;
[0107]采用如下公式,根据所述源组的编号确定所述协议组的编号:
[0108]v=sxor2k
[0109]其中,s为所述源组的编号,V为所述协作组的编号,k为预先设置的值,xor表示异或运算。
[0110]可选的,所述判断模块82具体用于:
[0111]当所述源组的失效数大于高压力门限,且所述协作组的失效数小于低压力门限,则所述源组和所述协作组满足协作条件,所述高压力门限和所述低压力门限均是预先确定的值。
[0112]可选的,所述判断模块82采用的所述高压力门限的公式以及所述低压力门限的公式分别为:
[0113]所述高压力门限的公式为:HPT=max+(a X (max-min));
[0114]所述低压力门限的公式为:LPT=min+(a X (max-min));
[0115]其中,HPT为高压力门限,LPT为低压力门限,max为所有组的失效数中的最大值,min为所有组的失效数中的最小值,α为预先设置的值。
[0116]可选的,所述高速缓存行中记录的信息包括标记部分,所述标记部分包括所述高速缓存地址信息的标记和组号以及虚拟机标识,所述设备还包括:
[0117]判决模块,用于在源组中任一个高速缓存行的标记部分与所述高速缓存地址信息的标记和组号以及所述虚拟机的虚拟机标识的组合不同时,确定所述源组发生缺失,在协作组中任一个高速缓存行的标记部分与所述高速缓存地址信息的标记和组号以及所述虚拟机的虚拟机标识的组合不同时,确定所述协作组发生缺失。
[0118]可选的,该设备还包括:
[0119]记录模块,用于记录映射关系,所述映射关系用于记录物理处理器核上当前被调度的虚拟机标识。
[0120]如图9所示,本发明实施例给出了另一种设备的结构示意图,该设备90包括接收器91、处理器92和存储器93,接收器91用于接收虚拟机访问的高速缓存地址信息;处理器92用于根据所述高速缓存地址信息确定所述虚拟机要访问的数据所在的源组,并确定所述源组对应的协作组;以及,在所述确定模块确定所述源组和所述协作组均发生缺失时,判断所述源组和所述协作组是否满足协作条件;存储器93用于在所述处理器的判断结果是满足协作条件时,将所述源组中不属于所述虚拟机的高速缓存行中的信息保留到所述协作组中,并将所述虚拟机对应的信息保存在所述源组中。
[0121]可选的,处理器92具体用于采用如下公式,根据所述源组的编号确定所述协议组的编号:
[0122]v=sxor2k
[0123]其中,s为所述源组的编号,V为所述协作组的编号,k为预先设置的值,xor表示异或运算。
[0124]可选的,处理器92具体用于:当所述源组的失效数大于高压力门限,且所述协作组的失效数小于低压力门限,则所述源组和所述协作组满足协作条件,所述高压力门限和所述低压力门限均是预先确定的值。
[0125]可选的,处理器92采用的所述高压力门限的公式以及所述低压力门限的公式分别为:
[0126]所述高压力门限的公式为:HPT=max+(a X (max-min));
[0127]所述低压力门限的公式为:LPT=min+(a X (max-min));
[0128]其中,HPT为高压力门限,LPT为低压力门限,max为所有组的失效数中的最大值,min为所有组的失效数中的最小值,α为预先设置的值。
[0129]可选的,所述高速缓存行中记录的信息包括标记部分,所述标记部分包括所述高速缓存地址信息的标记和组号以及虚拟机标识,处理器92还用于在源组中任一个高速缓存行的标记部分与所述高速缓存地址信息的标记和组号以及所述虚拟机的虚拟机标识的组合不同时,确定所述源组发生缺失,在协作组中任一个高速缓存行的标记部分与所述高速缓存地址信息的标记和组号以及所述虚拟机的虚拟机标识的组合不同时,确定所述协作组发生缺失。
[0130]可选的,存储器93还用于记录映射关系,所述映射关系用于记录物理处理器核上当前被调度的虚拟机标识。
[0131]本实施例通过在发生缺失时,在源组和协作组满足协作条件时,将源组的数据保存到协作组,可以延长数据在Cache中的存活时间,以便再次访问该数据时可以降低延迟。
[0132]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0133]在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0134]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0135]另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0136]所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM, Read-Only Memory)、随机存取存储器(RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0137]以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
【权利要求】
1.一种调度虚拟机时的处理方法,其特征在于,包括: 接收虚拟机访问的高速缓存地址信息,根据所述高速缓存地址信息确定所述虚拟机要访问的数据所在的源组,并确定所述源组对应的协作组; 在所述源组和所述协作组均发生缺失时,判断所述源组和所述协作组是否满足协作条件; 在满足协作条件时,将所述源组中不属于所述虚拟机的高速缓存行中的信息保留到所述协作组中,并将所述虚拟机对应的信息保存在所述源组中。
2.根据权利要求1所述的方法,其特征在于,所述确定所述源组对应的协作组,包括: 采用如下公式,根据所述源组的编号确定所述协议组的编号:
v=sxor2k 其中,S为所述源组的编号,V为所述协作组的编号,k为预先设置的值,XOT表示异或运算。
3.根据权利要求1所述的方法,其特征在于,所述判断所述源组和所述协作组是否满足协作条件,包括: 当所述源组的失效 数大于高压力门限,且所述协作组的失效数小于低压力门限,则所述源组和所述协作组满足协作条件,所述高压力门限和所述低压力门限均是预先确定的值。
4.根据权利要求3所述的方法,其特征在于, 所述高压力门限的公式为:HPT=max+(a X (max-min)); 所述低压力门限的公式为:LPT=min+(a X (max-min)); 其中,HPT为高压力门限,LPT为低压力门限,max为所有组的失效数中的最大值,min为所有组的失效数中的最小值,α为预先设置的值。
5.根据权利要求1所述的方法,其特征在于,还包括: 所述高速缓存行中记录的信息包括标记部分,所述标记部分包括所述高速缓存地址信息的标记和组号以及虚拟机标识,在源组中任一个高速缓存行的标记部分与所述高速缓存地址信息的标记和组号以及所述虚拟机的虚拟机标识的组合不同时,确定所述源组发生缺失,在协作组中任一个高速缓存行的标记部分与所述高速缓存地址信息的标记和组号以及所述虚拟机的虚拟机标识的组合不同时,确定所述协作组发生缺失。
6.根据权利要求1所述的方法,其特征在于,还包括: 记录映射关系,所述映射关系用于记录物理处理器核上当前被调度的虚拟机标识。
7.一种调度虚拟机时的处理设备,其特征在于,包括: 确定模块,用于接收虚拟机访问的高速缓存地址信息,根据所述高速缓存地址信息确定所述虚拟机要访问的数据所在的源组,并确定所述源组对应的协作组; 判断模块,用于在所述确定模块确定所述源组和所述协作组均发生缺失时,判断所述源组和所述协作组是否满足协作条件; 存储模块,用于在所述判断模块的判断结果是满足协作条件时,将所述源组中不属于所述虚拟机的高速缓存行中的信息保留到所述协作组中,并将所述虚拟机对应的信息保存在所述源组中。
8.根据权利要求7所述的设备,其特征在于,所述确定模块具体用于:接收虚拟机访问的高速缓存地址信息; 根据所述高速缓存地址信息确定所述虚拟机要访问的数据所在的源组; 采用如下公式,根据所述源组的编号确定所述协议组的编号: v=sxor2k 其中,S为所述源组的编号,V为所述协作组的编号,k为预先设置的值,XOT表示异或运算。
9.根据权利要求7所述的设备,其特征在于,所述判断模块具体用于: 当所述源组的失效数大于高压力门限,且所述协作组的失效数小于低压力门限,则所述源组和所述协作组满足协作条件,所述高压力门限和所述低压力门限均是预先确定的值。
10.根据权利要求9所述的设备,其特征在于,所述判断模块采用的所述高压力门限的公式以及所述低压力门限的公式分别为: 所述高压力门限的公式为:HPT=max+(a X (max-min));
所述低压力门限的公式为:LPT=min+(a X (max-min)); 其中,HPT为高压力门限,LPT为低压力门限,max为所有组的失效数中的最大值,min为所有组的失效数中的最小值,α为预先设置的值。
11.根据权利要求7所述的设备,其特征在于,所述高速缓存行中记录的信息包括标记部分,所述标记部分包括所述高速缓存地址信息的标记和组号以及虚拟机标识,所述设备还包括: 判决模块,用于在源组中任一个高速缓存行的标记部分与所述高速缓存地址信息的标记和组号以及所述虚拟机的虚拟机标识的组合不同时,确定所述源组发生缺失,在协作组中任一个高速缓存行的标记部分与所述高速缓存地址信息的标记和组号以及所述虚拟机的虚拟机标识的组合不同时,确定所述协作组发生缺失。
12.根据权利要求7所述的设备,其特征在于,还包括: 记录模块,用于记录映射关系,所述映射关系用于记录物理处理器核上当前被调度的虚拟机标识。
【文档编号】G06F9/455GK104077171SQ201310105389
【公开日】2014年10月1日 申请日期:2013年3月28日 优先权日:2013年3月28日
【发明者】隋秀峰 申请人:华为技术有限公司, 中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1