[发明专利]多核虚拟机系统获取请求数据的方法和装置有效
申请号: | 201210587126.4 | 申请日: | 2012-12-28 |
公开(公告)号: | CN103902352B | 公开(公告)日: | 2017-06-13 |
发明(设计)人: | 李晔;侯锐;张立新;江涛 | 申请(专利权)人: | 华为技术有限公司;中国科学院计算技术研究所 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F3/06 |
代理公司: | 北京同立钧成知识产权代理有限公司11205 | 代理人: | 谭磊 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 多核 虚拟机 系统 获取 请求 数据 方法 装置 | ||
技术领域
本发明实施例涉及计算机技术,尤其涉及一种多核虚拟机系统获取请求数据的方法和装置。
背景技术
随着计算机技术的高速发展,多核虚拟机技术也得到了飞速发展,在多核虚拟机技术中,多核系统中,包括多个可独立工作的处理器,每个处理器有其对应的缓冲存储器,多个处理器通常采用集中式共享存储器,即公用一个存储器的存储空间,多核虚拟机系统承载在多核系统中,一个虚拟机可运行在一个处理器上,也可运行在多个处理器上,多核虚拟机系统中,多个处理器对应的缓冲存储器中的共享数据必须保持一致性。
现有技术中,以基于基于监听式一致性协议来保证缓冲存储器中的共享数据的一致性为例,各虚拟机运行的处理器每次写操作都是公开的,即当某个物理处理器对应的缓冲存储器中的数据被改写后,通过发送广播消息,使总线上其他处理器将自身缓冲存储器中相同数据块作废,当多核虚拟机系统中某个虚拟机运行的处理器发生读数据缺失时,则通过广播消息的方式发起请求,总线上的其他处理器对总线进行监听,并查询自身对应的缓冲存储器中是否具有广播消息中请求的数据,若有,则向发送广播消息的处理器发送响应消息,发起请求的处理器从发送响应消息的处理器对应的缓冲存储器中获取所需数据。
然而,现有技术中,当虚拟机运行的处理器发生读数据缺失时,通过广播消息的方式发起请求,总线上所有的处理器都需要查询自身的缓冲存储器中是否存储有请求的存储地址的数据,而没有该数据的处理器的查找过程浪费了CPU功耗,获取请求数据的效率不高。
发明内容
本发明实施例提供一种多核虚拟机系统获取请求数据的方法和装置,以提高在多核虚拟机系统中获取请求数据的效率。
第一方面,本发明实施例提供一种多核虚拟机系统获取请求数据的方法,包括:当根据数据读取请求在本地缓冲存储器中发生访存读取失败时,识别所述数据读取请求的请求数据是否为客户虚拟机与管理虚拟机的共享数据;
当所述请求数据为共享数据时,确定所述管理虚拟机所对应的缓冲存储器;
在确定的所述缓冲存储器中查询获取所述请求数据。
结合第一方面,在第一种可能的实现方式中,识别所述数据读取请求的请求数据是否为客户虚拟机与管理虚拟机的共享数据包括:
在本地的地址映射表中识别所述请求数据对应的存储地址的共享标识是否有效,若有效,则确定所述请求数据为客户虚拟机与管理虚拟机的共享数据。
结合第一方面,在第二种可能的实现方式中,当所述请求数据为共享数据时,确定所述管理虚拟机所对应的缓冲存储器包括:
当所述请求数据为共享数据时,根据寄存器的记录查询所述管理虚拟机当前所使用的处理器;
确定所述管理虚拟机当前所使用的处理器的缓冲存储器为所述管理虚拟机所对应的缓冲存储器。
结合第一方面或第一方面的第一种可能的实现方式至第二种可能的实现方式中任一种可能的实现方式,在第三种可能的实现方式中,在确定的所述缓冲存储器中查询获取所述请求数据包括:
在确定的所述缓冲存储器中查询是否存在所述请求数据;
若是,则获取所述请求数据;
若否,则向其他缓冲存储器发送所述请求数据的查询请求。
结合第一方面或第一方面的第一种可能的实现方式至第二种可能的实现方式中任一种可能的实现方式,在第四种可能的实现方式中,在确定的所述缓冲存储器中查询获取所述请求数据包括:
在确定的所述缓冲存储器中查询是否存在所述请求数据;
若是,则获取所述请求数据;
若否,则在共享状态目录中查询所述请求数据所在的缓冲存储器;
在查询到的缓冲存储器中查询是否存在所述请求数据,若是,则获取所述请求数据,并更新所述共享状态目录。
第二方面,本发明实施例提供一种多核虚拟机系统获取请求数据的装置,包括:
识别模块,用于当根据数据读取请求在本地缓冲存储器中发生访存读取失败时,识别所述数据读取请求的请求数据是否为客户虚拟机与管理虚拟机的共享数据;
确定模块,用于当所述请求数据为共享数据时,确定所述管理虚拟机所对应的缓冲存储器;
获取模块,用于在确定的所述缓冲存储器中查询获取所述请求数据。
结合第二方面,在第一种可能的实现方式中,所述识别模块具体用于在本地的地址映射表中识别所述请求数据对应的存储地址的共享标识是否有效,若有效,则确定所述请求数据为客户虚拟机与管理虚拟机的共享数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司;中国科学院计算技术研究所,未经华为技术有限公司;中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210587126.4/2.html,转载请声明来源钻瓜专利网。