[发明专利]并行多核虚拟机的原子指令模拟方法及虚拟机装置有效

专利信息
申请号: 201210127348.8 申请日: 2012-04-26
公开(公告)号: CN102662730A 公开(公告)日: 2012-09-12
发明(设计)人: 靳国杰;高翔 申请(专利权)人: 龙芯中科技术有限公司
主分类号: G06F9/455 分类号: G06F9/455;G06F9/38
代理公司: 北京亿腾知识产权代理事务所 11309 代理人: 陈霁
地址: 100190 北京*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 并行 多核 虚拟机 原子 指令 模拟 方法 装置
【说明书】:

技术领域

发明涉及虚拟机技术领域,特别涉及一种并行多核虚拟机的原子指令模拟方法及虚拟机装置。

背景技术

虚拟机(Virtual Machine)是对一种硬件设备进行模拟仿真的软件系统。近年来随着多核CPU的普及,虚拟机也开始增加对于多核CPU的模拟功能。早期主要采用串行的方法模拟多核CUP的运行,即虚拟机是单进程,在微观上以分时间片的方式轮询调度多个CPU,在宏观上模拟多个CPU的并行行为。在开源虚拟机系统(例如Bochs、QEMU、Simple-scalar等)中,均以串行方法模拟执行目标系统中多个CPU。这种方式实现简单,但是所有被模拟的CPU只能共享使用本地的一个CPU资源,每个模拟CPU可利用的CPU资源与总的模拟个数成反比,扩展性差。采用以这种结构实现的多核虚拟机一般难以支持几十个以上的模拟CPU。

并行多核虚拟机有效克服了串行结构的局限性。在并行多核虚拟机中,创建多个线程,每个线程分别模拟一个目标CPU。这种方式能够充分利用本地CPU资源。在本地物理CPU个数大于被模拟的CPU个数时,能够得到接近线性的加速比。目前采用这种结构的虚拟机能够以较好的效率模拟几百甚至上千个CPU。

并行多核虚拟机需要解决的一个问题是原子访存指令的模拟。原子访存指令是在硬件上实现互斥访存的支持机制,用于为多线程之间的自旋锁、互斥量等同步原语提供最底层的支持。例如,在X86指令中提供了lock指令缀,CPU保证带有lock前缀的指令以原子方式实现对内存的一次读写操作。在串行结构的多核虚拟机中无需模拟lock的语义,而在并行多核虚拟机中必须保证模拟lock的原子语义,目前主要有三种手段:

1、加锁:即在访存动作之前加锁,访存动作之后解锁。这种手段要求所有访存动作都要包含加锁行为,使得每次访存模拟代价较高,整体效率较低。

2、采用本地CPU支持的原子访存指令:例如X86的lock,MIPS的11/sc,等等。这种方式只能针对特定的硬件平台,可移植性受到限制。

3、以数学算法模拟原子指令:例如并行研究领域中的CASN等算法。该算法对于使用环境有各方面限制,例如需要提供额外存储空间保存描述符(descriptor)、必须使用特殊函数读写内存等,通用性受到限制。

发明内容

本发明的目的在于提供一种可移植性强、执行效率高的原子访存指令的模拟方法和装置。

为实现上述目的,一方面,本发明提供了一种并行多核虚拟机的原子指令模拟方法,该虚拟机根据目标CPU的内核个数,创建与CPU内核个数相等的多个CPU线程。该方法步骤包括:所述多个CPU线程中的第一CPU线程向其他CPU线程发送请求等待信号;接收到所述请求等待的其它CPU线程在原执行地址暂停,并返回确认信号;第一CPU线程接收到所有其他CPU线程的确认信号后执行原子访存指令;向处于原执行地址暂停的CPU线程发送撤消等待信号;接收到所述撤消等待信号的CPU线程由原执行地址继续执行。

另一方面,本发明提供了一种虚拟机装置,包括线程创建模块、线程调度模块和执行模块。线程创建模块用于根据目标CPU的内核个数,创建与所述CPU内核个数相等的多个CPU线程,所述多个CPU线程包括第一CPU线程和其他CPU线程;线程调度模块用于所述多个CPU线程间的信息交互,其中,所述第一CPU线程向其他CPU线程发送请求等待信号,接收到所述请求等待信号的其它CPU线程在原执行地址暂停,并返回确认信号,所述第一CPU线程在执行原子访存指令后,向处于原执行地址暂停的CPU线程发送撤消等待信号;执行模块用于当所述第一CPU线程接收到所有其他CPU线程的确认信号后执行原子访存指令。

本发明具有下列优点:

1.方法通用性好,移植性高。本发明只使用本地操作系统支持的标准线程间通讯机制,不依赖于特定目标指令集,不依赖于特定的平台,对于访存宽度、位置不做任何限制。能够克服加锁、本地原子指令、CASN算法等方式的不足。

2.执行效率高。本发明的开销主要体现在线程之间发送消息的代价,据实验测试效率较好,平均每次原子访存模拟代价低于毫秒级。

附图说明

图1是本发明实施例一种并行多核虚拟机的原子指令模拟方法流程图;

图2是本发明实施例一种并行多核虚拟机的原子指令模拟方法示意图;

图3是本发明实施例一种虚拟机装置示意图。

具体实施方式

下面结合附图和具体实施方式对本发明作进一步详细描述。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于龙芯中科技术有限公司,未经龙芯中科技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201210127348.8/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top