CN103902352B - 多核虚拟机系统获取请求数据的方法和装置 - Google Patents

多核虚拟机系统获取请求数据的方法和装置 Download PDF

Info

Publication number
CN103902352B
CN103902352B CN201210587126.4A CN201210587126A CN103902352B CN 103902352 B CN103902352 B CN 103902352B CN 201210587126 A CN201210587126 A CN 201210587126A CN 103902352 B CN103902352 B CN 103902352B
Authority
CN
China
Prior art keywords
virtual machine
request data
data
buffer storage
request
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
CN201210587126.4A
Other languages
English (en)
Other versions
CN103902352A (zh
Inventor
李晔
侯锐
张立新
江涛
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.)
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
Original Assignee
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
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 Huawei Technologies Co Ltd, Institute of Computing Technology of CAS filed Critical Huawei Technologies Co Ltd
Priority to CN201210587126.4A priority Critical patent/CN103902352B/zh
Publication of CN103902352A publication Critical patent/CN103902352A/zh
Application granted granted Critical
Publication of CN103902352B publication Critical patent/CN103902352B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明实施例提供一种多核虚拟机系统获取请求数据的方法和装置,该方法包括:当根据数据读取请求在本地缓冲存储器中发生访存读取失败时,识别数据读取请求的请求数据是否为客户虚拟机与管理虚拟机的共享数据;当请求数据为共享数据时,确定管理虚拟机所对应的缓冲存储器;在确定的缓冲存储器中查询获取请求数据。缩小了获取请求数据的查询范围,提高了在多核虚拟机系统中获取请求数据的效率。

Description

多核虚拟机系统获取请求数据的方法和装置
技术领域
本发明实施例涉及计算机技术,尤其涉及一种多核虚拟机系统获取请求数据的方法和装置。
背景技术
随着计算机技术的高速发展,多核虚拟机技术也得到了飞速发展,在多核虚拟机技术中,多核系统中,包括多个可独立工作的处理器,每个处理器有其对应的缓冲存储器,多个处理器通常采用集中式共享存储器,即公用一个存储器的存储空间,多核虚拟机系统承载在多核系统中,一个虚拟机可运行在一个处理器上,也可运行在多个处理器上,多核虚拟机系统中,多个处理器对应的缓冲存储器中的共享数据必须保持一致性。
现有技术中,以基于基于监听式一致性协议来保证缓冲存储器中的共享数据的一致性为例,各虚拟机运行的处理器每次写操作都是公开的,即当某个物理处理器对应的缓冲存储器中的数据被改写后,通过发送广播消息,使总线上其他处理器将自身缓冲存储器中相同数据块作废,当多核虚拟机系统中某个虚拟机运行的处理器发生读数据缺失时,则通过广播消息的方式发起请求,总线上的其他处理器对总线进行监听,并查询自身对应的缓冲存储器中是否具有广播消息中请求的数据,若有,则向发送广播消息的处理器发送响应消息,发起请求的处理器从发送响应消息的处理器对应的缓冲存储器中获取所需数据。
然而,现有技术中,当虚拟机运行的处理器发生读数据缺失时,通过广播消息的方式发起请求,总线上所有的处理器都需要查询自身的缓冲存储器中是否存储有请求的存储地址的数据,而没有该数据的处理器的查找过程浪费了CPU功耗,获取请求数据的效率不高。
发明内容
本发明实施例提供一种多核虚拟机系统获取请求数据的方法和装置,以提高在多核虚拟机系统中获取请求数据的效率。
第一方面,本发明实施例提供一种多核虚拟机系统获取请求数据的方法,包括:当根据数据读取请求在本地缓冲存储器中发生访存读取失败时,识别所述数据读取请求的请求数据是否为客户虚拟机与管理虚拟机的共享数据;
当所述请求数据为共享数据时,确定所述管理虚拟机所对应的缓冲存储器;
在确定的所述缓冲存储器中查询获取所述请求数据。
结合第一方面,在第一种可能的实现方式中,识别所述数据读取请求的请求数据是否为客户虚拟机与管理虚拟机的共享数据包括:
在本地的地址映射表中识别所述请求数据对应的存储地址的共享标识是否有效,若有效,则确定所述请求数据为客户虚拟机与管理虚拟机的共享数据。
结合第一方面,在第二种可能的实现方式中,当所述请求数据为共享数据时,确定所述管理虚拟机所对应的缓冲存储器包括:
当所述请求数据为共享数据时,根据寄存器的记录查询所述管理虚拟机当前所使用的处理器;
确定所述管理虚拟机当前所使用的处理器的缓冲存储器为所述管理虚拟机所对应的缓冲存储器。
结合第一方面或第一方面的第一种可能的实现方式至第二种可能的实现方式中任一种可能的实现方式,在第三种可能的实现方式中,在确定的所述缓冲存储器中查询获取所述请求数据包括:
在确定的所述缓冲存储器中查询是否存在所述请求数据;
若是,则获取所述请求数据;
若否,则向其他缓冲存储器发送所述请求数据的查询请求。
结合第一方面或第一方面的第一种可能的实现方式至第二种可能的实现方式中任一种可能的实现方式,在第四种可能的实现方式中,在确定的所述缓冲存储器中查询获取所述请求数据包括:
在确定的所述缓冲存储器中查询是否存在所述请求数据;
若是,则获取所述请求数据;
若否,则在共享状态目录中查询所述请求数据所在的缓冲存储器;
在查询到的缓冲存储器中查询是否存在所述请求数据,若是,则获取所述请求数据,并更新所述共享状态目录。
第二方面,本发明实施例提供一种多核虚拟机系统获取请求数据的装置,包括:
识别模块,用于当根据数据读取请求在本地缓冲存储器中发生访存读取失败时,识别所述数据读取请求的请求数据是否为客户虚拟机与管理虚拟机的共享数据;
确定模块,用于当所述请求数据为共享数据时,确定所述管理虚拟机所对应的缓冲存储器;
获取模块,用于在确定的所述缓冲存储器中查询获取所述请求数据。
结合第二方面,在第一种可能的实现方式中,所述识别模块具体用于在本地的地址映射表中识别所述请求数据对应的存储地址的共享标识是否有效,若有效,则确定所述请求数据为客户虚拟机与管理虚拟机的共享数据。
结合第二方面,在第二种可能的实现方式中,所述确定模块包括:
查询单元,用于当所述请求数据为共享数据时,根据寄存器的记录查询所述管理虚拟机当前所使用的处理器;
确定单元,用于确定所述管理虚拟机当前所使用的处理器的缓冲存储器为所述管理虚拟机所对应的缓冲存储器。
结合第二方面或第二方面的第一种可能的实现方式至第二种可能的实现方式中任一种可能的实现方式,在第三种可能的实现方式中,所述获取模块具体用于在确定的所述缓冲存储器中查询是否存在所述请求数据;若是,则获取所述请求数据;若否,则向其他缓冲存储器发送所述请求数据的查询请求。
结合第二方面或第二方面的第一种可能的实现方式至第二种可能的实现方式中任一种可能的实现方式,在第四种可能的实现方式中,所述获取模块具体用于在确定的所述缓冲存储器中查询是否存在所述请求数据;若是,则获取所述请求数据;若否,则在共享状态目录中查询所述请求数据所在的缓冲存储器;在查询到的缓冲存储器中查询是否存在所述请求数据,若是,则获取所述请求数据,并更新所述共享状态目录。
本发明实施例提供的多核虚拟机系统获取请求数据的方法和装置,通过管理虚拟机,当根据数据读取请求在本地缓冲存储器中发生访存读取失败时,识别数据读取请求的请求数据是否为客户虚拟机与管理虚拟机的共享数据;当请求数据为共享数据时,确定管理虚拟机所对应的缓冲存储器;在确定的缓冲存储器中查询获取请求数据。缩小了获取请求数据的查询范围,提高了在多核虚拟机系统中获取请求数据的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所适用的多核虚拟机系统的网络架构示意图;
图2为本发明多核虚拟机系统获取请求数据的方法实施例一的流程示意图;
图3为本发明多核虚拟机系统获取请求数据的方法实施例二的流程示意图;
图4为本发明多核虚拟机系统获取请求数据的方法实施例三的流程示意图;
图5为本发明多核虚拟机系统获取请求数据的方法实施例四的流程示意图;
图6为本发明多核虚拟机系统获取请求数据的方法实施例五的流程示意图;
图7为本发明多核虚拟机系统获取请求数据的方法实施例六的场景图;
图8为本发明多核虚拟机系统获取请求数据的方法实施例六的流程示意图;
图9为本发明多核虚拟机系统获取请求数据的方法实施例七的场景图;
图10为本发明多核虚拟机系统获取请求数据的方法实施例七的流程示意图;
图11为本发明多核虚拟机系统获取请求数据装置实施例一的结构示意图;
图12为本发明多核虚拟机系统获取请求数据装置实施例二的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例所适用的多核虚拟机系统的网络架构示意图,多核虚拟机系统承载在多核系统中,例如多核计算机,包括多个可独立工作的处理器。在多核系统中,每个处理器有其对应的缓冲存储器,而多个处理器通常又采用集中式存储,即共用一个存储器的存储空间,各处理器之间通过总线S进行通信。多核系统中可同时运行多个虚拟机,一个虚拟机可运行在一个处理器上,也可运行在多个处理器上。虚拟机分为管理虚拟机和客户虚拟机,管理虚拟机拥有访问物理输入输出(Input/Output,以下简称:I/O)资源的权限,而客户虚拟机没有访问I/O资源的权限,客户虚拟机的处理器调度、缓冲存储器分配和设备访问等操作都需要管理虚拟机通过控制接口来管理和调度。
实施例一
图2为本发明多核虚拟机系统获取请求数据的方法实施例一的流程示意图;本实施例以多核虚拟机系统获取请求数据的装置为执行主体,该装置配置在各个客户虚拟机中,且由承载客户虚拟机的处理器承载。本实施例的装置配置于发送数据读取请求的任意客户虚拟机中,如图2所示,本实施例的方法包括如下步骤:
S101:当根据数据读取请求在本地缓冲存储器中发生访存读取失败时,识别数据读取请求的请求数据是否为客户虚拟机与管理虚拟机的共享数据;若否,执行S102,若是,执行S103。
具体地,当客户虚拟机需要读取数据时,首先发送数据读取请求,根据数据读取请求在承载该客户虚拟机的处理器所对应的本地缓冲存储器中读取数据,如果本地缓冲存储器中没有所需的数据,即发生访存读失败,则识别数据读取请求的数据是否为客户虚拟机与管理虚拟机的共享数据,若否,执行S102,若是,执行S103。
S102:其他操作。
采用其他方式获取请求数据,例如可在其他所有缓冲存储器中查询获取,或者直接从存储器中将数据读至本地缓冲存储器中。
S103:当请求数据为共享数据时,确定管理虚拟机所对应的缓冲存储器。
当请求数据为共享数据时,客户虚拟机确定管理虚拟机所对应的缓冲存储器,管理虚拟机可能运行在一个或者多个处理器上,每个处理器对应有缓冲存储器,可选地,可先确定管理虚拟机对应的处理器,再确定处理器对应的缓冲存储器,也可直接确定管理虚拟机所对应的缓冲存储器。
S104:在确定的缓冲存储器中查询获取请求数据。
获取后的请求数据可迁移至该客户虚拟机所对应的本地缓冲存储器中。
本实施例中,利用了管理虚拟机和客户虚拟机对设备访问的特殊性来进行数据访问。由于管理虚拟机负责进行处理器调度、缓存存储器调度和I/O资源访问等,I/O资源的请求数据对应的存储地址中的数据是客户虚拟机和管理虚拟机的共享数据,因此,在客户虚拟机进行数据请求时,若识别到当前所请求数据是与管理虚拟机之间的共享数据,因为共享数据有可能被管理虚拟机使用,所以可将查询范围缩小至管理虚拟机所对应的缓冲存储器,若无法查询获得,再利用其他技术查询。上述方案缩小了获取请求数据的查询范围,提高了在多核虚拟机系统中获取请求数据的效率。
实施例二
图3为本发明多核虚拟机系统获取请求数据的方法实施例二的流程示意图,如图3所示,本实施例是在图2所示实施例的基础上,S101中识别数据读取请求的请求数据是否为客户虚拟机与管理虚拟机的共享数据的一种具体实现方式,该具体实现方式包括:
S101a:在本地的地址映射表中识别请求数据对应的存储地址的共享标识是否有效,若有效,则确定请求数据为客户虚拟机与管理虚拟机的共享数据,执行S103,若无效,执行S102。
通常,在存储器的存储空间中,存储I/O资源的数据的存储地址中的数据为管理虚拟机和客户虚拟机的共享数据,因此,在本地的地址映射表中I/O资源的数据对应的存储地址中的共享标识置为有效。若请求的数据的存储地址为I/O资源的特定存储地址,则该请求的数据就是与管理虚拟机的共享数据。
可选地,本地的地址映射表可以为旁路转换缓冲(Transiation LookasideBuffer,以下简称:TLB),用于存储虚拟地址到物理地址的转换表,在TLB中设置一个共享标识比特,用于表示客户虚拟机与管理虚拟机共享TLB中对应的物理地址中存储的数据。
当客户虚拟机根据数据读取请求在本地缓冲存储中发生访存读取失败时,在本地的地址映射表中识别请求数据对应的共享标识是否有效,若有效,则确定请求数据为客户虚拟机与管理虚拟机的共享数据,执行S103,若无效,执行S102。
本实施例中,通过在本地的地址映射表中识别请求数据的共享标识是否有效,若有效,则确定请求数据为客户虚拟机与管理虚拟机的共享数据,通过在本地地址映射表中添加共享标识的方式来表示客户虚拟机与管理虚拟机共享数据,实现简单,并且,采用本实施例的技术方案,缩小了获取请求数据的查询范围,能够有效提高多核虚拟机系统中获取请求数据的效率。
实施例三
图4为本发明多核虚拟机系统获取请求数据的方法实施例三的流程示意图,本实施例是发送数据读取请求的客户虚拟机所使用的处理器为执行主体,如图4所示,本实施例是在图2所示实施例的基础上,S103中当请求数据为共享数据时,确定管理虚拟机所对应的缓冲存储器的一种具体实现方式,该具体实现方式包括:
S103a:当请求数据为共享数据时,根据寄存器的记录查询管理虚拟机当前所使用的处理器;
具体地,可通过寄存器来记录管理虚拟机与当前所使用的处理器的对应关系,管理虚拟机所使用的处理器一般是固定的,当请求数据为共享数据时,客户虚拟机根据寄存器的记录查询管理虚拟机当前所使用的处理器。
S103b:确定管理虚拟机当前所使用的处理器的缓冲存储器为管理虚拟机所对应的缓冲存储器。
每个处理器具有相应的缓冲存储器,将管理虚拟机当前所使用的处理器的缓冲存储器作为管理虚拟机所对应的缓冲存储器,以使管理虚拟机从相应的缓冲存储器中获取所需请求数据。
本实施例中,通过当请求数据为共享数据时,根据寄存器的记录查询管理虚拟机当前所使用的处理器,确定管理虚拟机当前使用的处理器的缓冲存储器为管理虚拟机所对应的缓冲存储器,实现简单,采用本实施例的技术方案,缩小了获取请求数据的查询范围,能够有效提高多核虚拟机系统中获取请求数据的效率。
实施例四
图5为本发明多核虚拟机系统获取请求数据的方法实施例四的流程示意图,本实施例应用于基于监听式一致性协议的多核系统中,如图5所示,本实施例是在图2-图4所示实施例的基础上,S104在确定的缓冲存储器中查询获取请求数据的一种具体实现方式,该具体实现方式包括:
S104a:在确定的缓冲存储器中查询是否存在请求数据;若是,执行S104b,若否,执行S104c。
可选地,作为一种可行的实现方式,客户虚拟机在确定管理虚拟机所对应的缓冲存储器后,向管理虚拟机对应的缓冲存储器发送请求数据的查询请求,管理虚拟机当前所使用的处理器根据上述查询请求,查询其对应的缓冲存储器中是否存在请求数据;若是,客户虚拟机则执行S104b,若否,则执行S104c。
作为另一种可行的实现方式,客户虚拟机直接在确定的缓冲存储器中查询是否存在请求数据,若是,执行S104b,若否,执行S104c。
S104b:获取请求数据;
客户虚拟机从管理虚拟机对应的缓冲存储器中获取请求数据。
S104c:则向其他缓冲存储器发送请求数据的查询请求。
具体地,客户虚拟机可通过广播的方式向其他缓冲存储器发送请求数据的查询请求,其他缓冲存储器中若存在请求数据,则向客户虚拟机发送请求响应消息,客户虚拟机则在发送请求响应消息的处理器对应的缓冲存储器中获取请求数据,若否,则在存储器中获取所需的请求数据。
本实施例中,通过在确定的缓冲存储器中查询是否存在请求数据,若是,则获取请求数据,若否,则向其他缓冲存储器发送请求数据的查询请求,采用本实施例的技术方案,实现了在基于监听式一致性协议的多核系统中,无需系统中未存储请求数据的处理器查询其对应的缓冲存储器中是否存在请求数据,缩小了获取请求数据的查询范围,节省功耗,能够有效提高多核虚拟机系统中获取请求数据的效率。
实施例五
图6为本发明多核虚拟机系统获取请求数据的方法实施例五的流程示意图,本实施例是以发送数据读取请求的客户虚拟机所使用的处理器为执行主体,本实施例应用于基于目录式一致性协议的多核系统中,如图6所示,本实施例是在图2-图4所示实施例的基础上,S104在确定的缓冲存储器中查询获取请求数据的另一种具体实现方式,该具体实现方式包括:
S104a’:在确定的缓冲存储器中查询是否存在请求数据;若是,执行S104b’,若否,执行S104c’。
本步骤与S104a相同,在此不再赘述。
S104b’:获取请求数据。
本步骤与S104b相同,在此不再赘述。
S104c’:在共享状态目录中查询请求数据所在的缓冲存储器。
在目录式一致系统中,存在一个共享状态目录,作为一种实现方式,共享状态目录中记录存储器中每个数据块的共享状态以及所在的缓冲存储器。在S104a’中,当在确定的缓冲存储器中查询不存在请求数据时,则在共享状态目录中直接查询请求数据所在的缓冲存储器。
作为另一种实现方式,共享状态目录中记录存储器中每个数据块的共享状态以及所在的虚拟机。在S104a’中,当在确定的缓冲存储器中查询不存在请求数据时,则在共享状态目录中查询请求数据所在的虚拟机,再确定虚拟机对应的缓冲存储器,以确定请求数据所在的缓冲存储器。
S104d’:在查询到的缓冲存储器中查询是否存在请求数据,若是,则获取请求数据,并更新共享状态目录。
可选地,作为一种可行的实现方式,客户虚拟机向查询到的缓冲存储器发送请求数据的查询请求,缓冲存储器所属的处理器根据上述查询请求,查询其对应的缓冲存储器中是否存在请求数据,若是,缓冲存储器所属的处理器则向发送查询请求的客户虚拟机发送请求响应消息,客户虚拟机则在发送请求响应消息的处理器对应的缓冲存储器中获取请求数据,并更新共享状态目录,即在请求数据对应的共享状态目录中添加客户虚拟机标识,或者添加客户虚拟机对应的缓冲存储器标识。若缓冲存储器所属的处理器查询缓冲存储器中不存在请求数据,则客户虚拟机在存储器中获取所需的请求数据。
作为另一种可行的实现方式,客户虚拟机直接在查询到的缓冲存储器中查询是否存在请求数据,若是,则获取请求数据,并更新共享状态目录。
本实施例,通过在确定的缓冲存储器中查询是否存在请求数据;若是,则获取请求数据;若否,则在共享状态目录中查询请求数据所在的缓冲存储器;在查询到的缓冲存储器中查询是否存在请求数据,若是,则获取请求数据,并更新共享状态目录。采用本实施例的技术方案,实现了在基于目录式一致性协议的多核系统中,无需先查询目录,后查询缓冲存储器,缩小了获取请求数据的查询范围,节省查询时延,能够有效提高多核虚拟机系统中获取请求数据的效率。
实施例六
图7为本发明多核虚拟机系统获取请求数据的方法实施例六的场景图,图8为本发明多核虚拟机系统获取请求数据的方法实施例六的流程示意图,图8以图7所示场景为例,本实施例以基于监听式一致性协议的多核系统为例,图7所示多核虚拟机系统中,包含4个处理器,分别为第一处理器0、第二处理器1、第三处理器2和第四处理器3,运行有4个虚拟机,第一处理器0上运行第一客户虚拟机1,第二处理器1运行管理虚拟机0,第三处理器2运行第二客户虚拟机3,第四处理器3运行第三客户虚拟机2,每个处理器对应有3级缓冲存储器,各处理器之间通过总线S进行通信,如图6所示,共享标识存储于TLB中,存储管理虚拟机与所使用的处理器的对应关系的寄存器采用虚拟机标识(Virtual Machine Identifier,以下简称:vmid)寄存器。以第三客户虚拟机2访存读数据缺失为例,本实施例的方法包括:
S701:第三客户虚拟机2访存读数据时,发生了2级缓冲存储器读取失败,查询TLB确定第三客户虚拟机2与管理虚拟机0共享该数据。
S702:第三客户虚拟机2查询vimd寄存器,确定管理虚拟机0所使用的处理器为第二处理器1。
S703:第三客户虚拟机2所使用的第四处理器3向第二处理器1的2级缓冲存储器发送数据请求。
S704:管理虚拟机0所使用的第二处理器1查询其对应的2级缓冲存储器,发现该缓冲存储器中不存在客户虚拟机2请求的数据。
S705:第三客户虚拟机2所使用的第四处理器3向其他缓冲存储器发送请求数据的查询请求。
本步骤同图5中的S104c相似,在此不再赘述,在3级缓冲存储器中获取到请求的数据。
实施例七
图9为本发明多核虚拟机系统获取请求数据的方法实施例七的场景图,图10为本发明多核虚拟机系统获取请求数据的方法实施例七的流程示意图,图10以图9所示场景为例,本实施例以基于目录式一致性协议的多核系统为例,图9所示多核虚拟机系统中,包含4个处理器,分别为第一处理器0、第二处理器1、第三处理器2和第四处理器3,运行有4个虚拟机,第一处理器0上运行第一客户虚拟机1,第二处理器1运行管理虚拟机0,第三处理器2运行第二客户虚拟机3,第四处理器3运行第三客户虚拟机2,每个处理器对应有3级缓冲存储器,各处理器之间通过总线S进行通信,如图8所示,共享标识存储于TLB中,存储管理虚拟机与所使用的处理器的对应关系的寄存器采用vmid寄存器。以客户虚拟机2访存读数据缺失为例,本实施例的方法包括:
S901:第三客户虚拟机2访存读数据时,发生了2级缓冲存储器读取失败,查询TLB确定第三客户虚拟机2与管理虚拟机0共享该数据。
S902:第三客户虚拟机2查询vimd寄存器,确定管理虚拟机0所使用的处理器为处理器1。
S903:第三客户虚拟机2所使用的第四处理器3向第二处理器1的2级缓冲存储器发送数据请求。
S904:管理虚拟机0所使用的第二处理器1查询其对应的2级缓冲存储器,发现该缓冲存储器中不存在第三客户虚拟机2请求的数据。
S905:第三客户虚拟机2所使用的第四处理器3在共享状态目录中查询请求数据所在的缓冲存储器。
本步骤与图5中的S104c’相似,在此不再赘述。
S906:在查询到的缓冲存储器中查询是否存在请求数据,若是,则获取请求数据,并更新共享状态目录。
本步骤与图5中的S104d’相似,在此不再赘述,在3级缓冲存储器中获取到请求的数据。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图11为本发明多核虚拟机系统获取请求数据装置实施例一的结构示意图;本实施例的装置包括识别模块1001、确定模块1002和获取模块1003,其中,识别模块1001用于当根据数据读取请求在本地缓冲存储器中发生访存读取失败时,识别数据读取请求的请求数据是否为客户虚拟机与管理虚拟机的共享数据;确定模块1002用于当请求数据为共享数据时,确定管理虚拟机所对应的缓冲存储器;获取模块1003用于在确定的缓冲存储器中查询获取请求数据。
本实施例的装置,可以用于执行方法实施例一的技术方案,其实现原理和技术效果类似,此处不再赘述。
在上述实施例的基础上,识别模块1001具体用于在本地的地址映射表中识别请求数据对应的存储地址的共享标识是否有效,若有效,则确定请求数据为客户虚拟机与管理虚拟机的共享数据。
图12为本发明多核虚拟机系统获取请求数据装置实施例二的结构示意图;图11是在图10所示实施例的基础上,确定模块1002进一步地,还包括查询单元10021和确定单元10022,其中,查询单元10021用于当请求数据为共享数据时,根据寄存器的记录查询管理虚拟机当前所使用的处理器;确定单元10022用于确定管理虚拟机当前所使用的处理器的缓冲存储器为管理虚拟机所对应的缓冲存储器。
本实施例的装置,可以用于执行方法实施例三的技术方案,其实现原理和技术效果类似,此处不再赘述。
在图12所示实施例的基础上,获取模块1003具体用于在确定的缓冲存储器中查询是否存在请求数据;若是,则获取请求数据;若否,则向其他缓冲存储器发送请求数据的查询请求。
本实施例的装置,可以用于执行方法实施例四的技术方案,其实现原理和技术效果类似,此处不再赘述。
在图12所示实施例的基础上,获取模块1003具体用于在确定的缓冲存储器中查询是否存在请求数据;若是,则获取请求数据;若否,则在共享状态目录中查询请求数据所在的缓冲存储器;在查询到的缓冲存储器中查询是否存在请求数据,若是,则获取请求数据,并更新共享状态目录。
本实施例的装置,可以用于执行方法实施例五的技术方案,其实现原理和技术效果类似,此处不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种多核虚拟机系统获取请求数据的方法,其特征在于,包括:
当根据数据读取请求在本地缓冲存储器中发生访存读取失败时,识别所述数据读取请求的请求数据是否为客户虚拟机与管理虚拟机的共享数据;
当所述请求数据为共享数据时,确定所述管理虚拟机所对应的缓冲存储器;
在确定的所述缓冲存储器中查询获取所述请求数据。
2.根据权利要求1所述的方法,其特征在于,识别所述数据读取请求的请求数据是否为客户虚拟机与管理虚拟机的共享数据包括:
在本地的地址映射表中识别所述请求数据对应的存储地址的共享标识是否有效,若有效,则确定所述请求数据为客户虚拟机与管理虚拟机的共享数据。
3.根据权利要求1所述的方法,其特征在于,当所述请求数据为共享数据时,确定所述管理虚拟机所对应的缓冲存储器包括:
当所述请求数据为共享数据时,根据寄存器的记录查询所述管理虚拟机当前所使用的处理器;
确定所述管理虚拟机当前所使用的处理器的缓冲存储器为所述管理虚拟机所对应的缓冲存储器。
4.根据权利要求1-3任一所述的方法,其特征在于,在确定的所述缓冲存储器中查询获取所述请求数据包括:
在确定的所述缓冲存储器中查询是否存在所述请求数据;
若是,则获取所述请求数据;
若否,则向其他缓冲存储器发送所述请求数据的查询请求。
5.根据权利要求1-3任一所述的方法,其特征在于,在确定的所述缓冲存储器中查询获取所述请求数据包括:
在确定的所述缓冲存储器中查询是否存在所述请求数据;
若是,则获取所述请求数据;
若否,则在共享状态目录中查询所述请求数据所在的缓冲存储器;
在查询到的缓冲存储器中查询是否存在所述请求数据,若是,则获取所述请求数据,并更新所述共享状态目录。
6.一种多核虚拟机系统获取请求数据的装置,其特征在于,包括:
识别模块,用于当根据数据读取请求在本地缓冲存储器中发生访存读取失败时,识别所述数据读取请求的请求数据是否为客户虚拟机与管理虚拟机的共享数据;
确定模块,用于当所述请求数据为共享数据时,确定所述管理虚拟机所对应的缓冲存储器;
获取模块,用于在确定的所述缓冲存储器中查询获取所述请求数据。
7.根据权利要求6所述的装置,其特征在于,所述识别模块具体用于在本地的地址映射表中识别所述请求数据对应的存储地址的共享标识是否有效,若有效,则确定所述请求数据为客户虚拟机与管理虚拟机的共享数据。
8.根据权利要求6所述的装置,其特征在于,所述确定模块包括:
查询单元,用于当所述请求数据为共享数据时,根据寄存器的记录查询所述管理虚拟机当前所使用的处理器;
确定单元,用于确定所述管理虚拟机当前所使用的处理器的缓冲存储器为所述管理虚拟机所对应的缓冲存储器。
9.根据权利要求6-8任一所述的装置,其特征在于,所述获取模块具体用于在确定的所述缓冲存储器中查询是否存在所述请求数据;若是,则获取所述请求数据;若否,则向其他缓冲存储器发送所述请求数据的查询请求。
10.根据权利要求6-8任一所述的装置,其特征在于,所述获取模块具体用于在确定的所述缓冲存储器中查询是否存在所述请求数据;若是,则获取所述请求数据;若否,则在共享状态目录中查询所述请求数据所在的缓冲存储器;在查询到的缓冲存储器中查询是否存在所述请求数据,若是,则获取所述请求数据,并更新所述共享状态目录。
CN201210587126.4A 2012-12-28 2012-12-28 多核虚拟机系统获取请求数据的方法和装置 Active CN103902352B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210587126.4A CN103902352B (zh) 2012-12-28 2012-12-28 多核虚拟机系统获取请求数据的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210587126.4A CN103902352B (zh) 2012-12-28 2012-12-28 多核虚拟机系统获取请求数据的方法和装置

Publications (2)

Publication Number Publication Date
CN103902352A CN103902352A (zh) 2014-07-02
CN103902352B true CN103902352B (zh) 2017-06-13

Family

ID=50993691

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210587126.4A Active CN103902352B (zh) 2012-12-28 2012-12-28 多核虚拟机系统获取请求数据的方法和装置

Country Status (1)

Country Link
CN (1) CN103902352B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104216758B (zh) * 2014-08-22 2018-05-04 华为技术有限公司 一种读写操作性能优化方法以及装置
CN105183567B (zh) * 2015-10-21 2018-10-16 南京大学 基于共享内存的云取证证据获取方法及系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090182893A1 (en) * 2008-01-11 2009-07-16 Anand Vaijayanthimala K Cache coherence in a virtual machine managed system
US8745618B2 (en) * 2009-08-25 2014-06-03 International Business Machines Corporation Cache partitioning with a partition table to effect allocation of ways and rows of the cache to virtual machine in virtualized environments
US8793439B2 (en) * 2010-03-18 2014-07-29 Oracle International Corporation Accelerating memory operations using virtualization information
US20120137079A1 (en) * 2010-11-26 2012-05-31 International Business Machines Corporation Cache coherency control method, system, and program

Also Published As

Publication number Publication date
CN103902352A (zh) 2014-07-02

Similar Documents

Publication Publication Date Title
CN102629941B (zh) 云计算系统中虚拟机镜像缓存的方法
US8788760B2 (en) Adaptive caching of data
CN103379159B (zh) 一种分布式Web站点数据同步的方法
CN102521038B (zh) 基于分布式文件系统的虚拟机迁移方法和装置
CN105324770B (zh) 有效读出副本
CN105144121B (zh) 高速缓存内容可寻址数据块以供存储虚拟化
US8799409B2 (en) Server side data cache system
EP2851807B1 (en) Method and system for supporting resource isolation under multi-core architecture
US10333789B1 (en) Client-directed placement of remotely-configured service instances
US9229751B2 (en) Apparatus and method for managing virtual memory
CN103067425A (zh) 虚拟机创建方法、虚拟机管理系统及相关设备
CN102246152A (zh) 保存程序执行状态
CN101594387A (zh) 虚拟集群部署方法和系统
CN103714097A (zh) 一种访问数据库的方法和装置
CN105677605B (zh) 一种高效的可配置片上互联系统及其实现方法、装置
CN102307206A (zh) 基于云存储的快速访问虚拟机镜像的缓存系统及其方法
CN106648462B (zh) 数据存储方法及装置
CN109803016A (zh) 一种利用虚拟交换机转发数据包的方法及设备
CN105138679A (zh) 一种基于分布式缓存的数据处理系统及处理方法
WO2012158804A1 (en) Distributed caching and cache analysis
WO2020214757A1 (en) Virtual memory pool within a network which is accessible from multiple platforms
CN103902352B (zh) 多核虚拟机系统获取请求数据的方法和装置
CN107608806A (zh) 一种虚拟机间快速访问传输数据的系统及方法
CN102572011A (zh) 数据处理方法、装置和系统
CN112395220B (zh) 共享存储控制器的处理方法、装置、系统及存储控制器

Legal Events

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