【技术实现步骤摘要】
一种芯片系统、处理虚拟中断的方法及相应装置
[0001]本申请涉及虚拟化
,具体涉及一种芯片系统、处理虚拟中断的方法及相应装置。
技术介绍
[0002]虚拟中断是虚拟化技术的必要组成部分,虚拟机(virtual machine,VM)运行于计算机设备中,该计算机设备中的磁盘、输入/输出(input/output,I/O)设备等硬件设备对虚拟机的通知,以及虚拟机内部的各种同步以及协调工作都依赖于虚拟中断。虚拟中断是一种事件,这类事件可以有各种来源,来源不同,针对该事件的处理过程也会有不同,但每种来源的这类事件都会以虚拟机运行时收到中断的形式通知到虚拟机。
[0003]无论是哪种来源的虚拟中断,在虚拟中断最终到达虚拟机之前,宿主机需要利用自身的各种机制完成将虚拟中断从源头发送到目的虚拟机的工作。在发送该虚拟中断过程中,需要处理器的控制流从正在执行的虚拟机切换到宿主机,或者从宿主机的用户态切换到宿主机的内核态,产生了较大的切换开销。
技术实现思路
[0004]本申请实施例提供一种芯片系统、处理虚拟中断的方法及相应装置,用于减少因虚拟中断产生的从虚拟机到宿主机,或者从宿主机的用户态切换到宿主机的内核态的切换开销。本申请实施例还提供了相应的计算机设备、计算机存储介质以及计算机程序产品等。
[0005]本申请第一方面提供一种芯片系统,包括:源物理处理器、控制装置、中间装置、发送装置以及目标物理处理器,源物理处理器用于运行宿主机或虚拟机,控制装置包括寄存器,寄存器用于接收用于触发虚拟中断的信息 ...
【技术保护点】
【技术特征摘要】
1.一种芯片系统,其特征在于,包括:源物理处理器、控制装置、中间装置、发送装置以及目标物理处理器,所述源物理处理器用于运行宿主机或虚拟机,所述控制装置包括寄存器,所述寄存器用于接收用于触发虚拟中断的信息,所述用于触发虚拟中断的信息来自于所述宿主机或所述虚拟机;所述控制装置用于:将所述寄存器中的所述用于触发虚拟中断的信息发送给中间装置;所述中间装置用于:根据所述用于触发虚拟中断的信息触发所述虚拟中断,并将所述虚拟中断发送给所述发送装置;所述发送装置用于:接收来自于所述中间装置的所述虚拟中断,并将所述虚拟中断发送给所述目标物理处理器。2.根据权利要求1所述的芯片系统,其特征在于,所述虚拟中断为虚拟局部中断,所述目标物理处理器和所述源物理处理器为同一物理处理器;所述寄存器用于:接收所述虚拟机写入的用于触发所述虚拟局部中断的信息;所述发送装置用于:将所述虚拟局部中断发送给所述虚拟机的第一虚拟处理器,所述第一虚拟处理器运行在所述源物理处理器上。3.根据权利要求1所述的芯片系统,其特征在于,所述虚拟中断为虚拟软件中断,所述用于触发虚拟中断的信息包括所述虚拟机的第一虚拟处理器写入所述寄存器的第二虚拟处理器的标识,所述第二虚拟处理器为运行于所述目标物理处理器上的所述虚拟机的虚拟处理器;所述控制装置用于:从所述寄存器读取所述第二虚拟处理器的标识,并获取所述虚拟机的标识;以及,将所述虚拟机的标识和所述第二虚拟处理器的标识发送给所述中间装置;所述中间装置用于:根据所述虚拟机的标识和所述第二虚拟处理器的标识,从第一对应关系中确定与所述虚拟机的标识和所述第二虚拟处理器的标识对应的所述目标物理处理器;其中,所述第一对应关系用于记录所述目标物理处理器、所述目标处理器上运行的第二虚拟处理器以及所述虚拟机之间的对应关系;将所述虚拟软件中断发送给与所述目标物理处理器对应的所述发送装置;所述发送装置用于:将所述虚拟软件中断发送给运行于所述目标物理处理器的所述第二虚拟处理器。4.根据权利要求1所述的芯片系统,其特征在于,所述虚拟中断为虚拟设备中断,所述用于触发虚拟中断的信息包括所述宿主机写入所述寄存器的目标中断号和所述虚拟机的标识,所述目标中断号为所述宿主机模拟硬件设备时所触发的中断的标识;所述控制装置用于:从所述寄存器读取所述目标中断号和所述虚拟机的标识,并将所述虚拟机的标识和所述目标中断号发送给所述中间装置;所述中间装置用于:根据所述虚拟机的标识和所述目标中断号,在第二对应关系中查找与所述虚拟机的标识和所述目标中断号对应的所述虚拟机的第一虚拟处理器的标识,所述第二对应关系用于记录所述虚拟机、所述目标中断号和所述第一虚拟处理器之间的对应关系;根据所述虚拟机的标识和所述第一虚拟处理器的标识,从第三对应关系中确定与所述
虚拟机的标识和所述第一虚拟处理器的标识对应的所述目标物理处理器;其中,所述第三对应关系用于记录所述目标物理处理器、所述目标处理器上运行的所述第一虚拟处理器以及所述虚拟机之间的对应关系;将所述虚拟设备中断发送给与所述目标物理处理器对应的所述发送装置;所述发送装置用于:将所述虚拟设备中断发送给运行于所述目标物理处理器的所述第一虚拟处理器。5.根据权利要求4所述的芯片系统,其特征在于,所述中间装置包括地址寄存器,所述地址寄存器用于存储所述第二对应关系在内存中的地址以及所述虚拟机的标识;所述中间装置还用于:根据所述虚拟机的标识查找到所述地址寄存器,根据所述地址寄存器中的地址从所述内存中获取所述第二对应关系。6.一种控制装置,其特征在于,所述控制装置应用于芯片系统,所述芯片系统还包括源物理处理器、中间装置、发送装置以及目标物理处理器,所述源物理处理器用于运行宿主机或虚拟机,所述控制装置包括寄存器;所述寄存器用于接收用于触发虚拟中断的信息,所述用于触发虚拟中断的信息来自于所述宿主机或所述虚拟机;所述控制装置用于:从所述寄存器中读取所述用于触发虚拟中断的信息,并将所述用于触发虚拟中断的信息发送给所述中间装置,所述用于触发虚拟中断的信息用于使得所述中间装置触发所述虚拟中断,所述虚拟中断由所述发送装置发送给所述目标物理处理器。7.根据权利要求6所述的控制装置,其特征在于,所述虚拟中断为虚拟局部中断,所述目标物理处理器和所述源物理处理器为同一物理处理器,所述寄存器用于接收所述虚拟机写入的用于触发所述虚拟局部中断的信息;所述控制装置用于:将所述用于触发所述虚拟局部中断的信息发送给所述中间装置,所述用于触发所述虚拟局部中断的信息用于使得所述中间装置触发所述虚拟局部中断,所述虚拟局部中断由所述发送装置发送给所述虚拟机的第一虚拟处理器,所述第一虚拟处理器运行在所述源物理处理器上。8.根据权利要求6所述的控制装置,其特征在于,所述虚拟中断为虚拟软件中断,所述用于触发虚拟中断的信息包括所述虚拟机的第一虚拟处理器写入所述寄存器的第二虚拟处理器的标识,所述第二虚拟处理器为运行于所述目标物理处理器上的所述虚拟机的虚拟处理器;所述控制装置用于:从所述寄存器读取所述第二虚拟处理器的标识,并获取所述虚拟机的标识;以及,将所述虚拟机的标识和所述第二虚拟处理器的标识发送给所述中间装置,所述虚拟机的标识和所述第二虚拟处理器的标识用于所述中间装置确定目标物理处理器并触发所述虚拟软件中断,所述虚拟软件中断由所述发送装置发送给所述目标物理处理器的所述第二虚拟处理器。9.根据权利要求6所述的控制装置,其特征在于,所述虚拟中断为虚拟设备中断,所述用于触发虚拟中断的信息包括所述宿主机写入所述寄存器的目标中断号和所述虚拟机的标识,所述目标中断号为所述宿主机模拟硬件设备时所触发的中断的标识;所述控制装置用于:从所述寄存器读取所述目标中断号和所述虚拟机的标识,并将所述虚拟机的标识和所述目标中断号发送给所述中间装置,所述虚拟机的标识和所述目标中断号用于所述中间装置确定目标物理处理器并触发所述虚拟设备中断,所述虚拟设备中断
由所述发送装置发送给所述目标物理处理器的所述虚拟机的第一虚拟处理器。10.一种中间装置,其特征在于,所述中间装置应用于芯片系统,所述芯片系统还包括源物理处理器、控制装置、发送装置以及目标物理处理器,所述源物理处理器用于运行宿主机或虚拟机,所述控制装置包括寄存器;所述寄存器用于接收用于触发虚拟中断的信息,所述用于触发虚拟中断的信息来自于所述宿主机或所述虚拟机;所述中间装置用于:接收来自所述控制装置的所述用于触发虚拟中断的信息,根据所述用于触发虚拟中断的信息触发所述虚拟中断,并将所述虚拟中断发送给所述发送装置,所述虚拟中断由所述发送装置发送给所述目标物理处理器。11.根据权利要求10所述的中间装置,其特征在于,所述虚拟中断为虚拟局部中断,所述目标物理处理器和所述源物理处理器为同一物理处理器,所述寄存器用于接收所述虚拟机写入的用于触发所述虚拟局部中断的信息;所述中间装置用于:根据所述用于触发所述虚拟局部中断的信息,触发所述虚拟局部中断,并将所述虚拟局部中断发送给所述发送装置,所述虚拟局部中断由所述发送装置发送给所述虚拟机的第一虚拟处理器,所述第一虚拟处理器运行在所述源物理处理器上。12.根据权利要求10所述的中间装置,其特征在于,所述虚拟中断为虚拟软件中断,所述用于触发虚拟中断的信息包括所述虚拟机的第一虚拟处理器写入所述寄存器的第二虚拟处理器的标识,所述第二虚拟处理器为运行于所述目标物理处理器上的所述虚拟机的虚拟处理器;所述中间装置用于:接收来自所述控制装置的所述虚拟机的标识和所述第二虚拟处理器的标识;根据所述虚拟机的标识和所述第二虚拟处理器的标识,从第一对应关系中确定与所述虚拟机的标识和所述第二虚拟处理器的标识对应的所述目标物理处理器;其中,所述第一对应关系用于记录所述目标物理处理器、所述目标处理器上运行的第二虚拟处理器以及所述虚拟机之间的对应关系;触发所述虚拟软件中断;将所述虚拟软件中断发送给与所述目标物理处理器对应的所述发送装置,所述虚拟软件中断由所述发送装置发送给所述目标物理处理器的所述第二虚拟处理器。13.根据权利要求10所述的中间装置,其特征在于,所述虚拟中断为虚拟设备中断,所述用于触发虚拟中断的信息包括所述宿主机写入所述寄存器的目标中断号和所述虚拟机的标识,所述目标中断号为所述宿主机模拟硬件设备时所触发的中断的标识;所述中间装置用于:接收来自所述控制设备的虚拟机的标识和所述目标中断号;根据所述虚拟机的标识和所述目标中断号,在第二对应关系中查找与所述虚拟机的标识和所述目标中断号对应的所述虚拟机的第一虚拟处理器的标识,所述第二对应关系用于记录所述虚拟机、所述目标中断号和所述第一虚拟处理器之间的对应关系;根据所述虚拟机的标识和所述第一虚拟处理器的标识,从第三对应关系中确定与所述虚拟机的标识和所述第一虚拟处理器的标识对应的所述目标物理处理器;其中,所述第三对应关系用于记录所述目标物理处理器、所述目标处理器上运行的所述第一虚拟处理器以及所述虚拟机之间的对应关系;
触发所述虚拟设备中断;将所述虚拟设备中断发送给与所述目标物理处理器对应的所述发送装置,所述虚拟设备中断由所述发送装置发送给所述目标物理处理器的所述第一虚拟处理器。14.根据权利要求13所述的中间装置,其特征在于,所述中间装置包括地址寄存器,所述地址寄存器用于存储所述第二对应关系在内存中的地址以及所述虚拟机的标识;所述中间装置还用于:根据所述虚拟机的标识查找到所述地址寄存器,根据所述地址寄存器中的地址从所述内存中获取所述第二对应关系。15.一种发送装置,其特征在于,所述发送装置应用于芯片系统,所述芯片系统还包括源物理处理器、中间装置、控制装置以及目标物理处理器,所述源物理处理器用于运行宿主机或虚拟机,所述控制装置包括寄存器;所述寄存器...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。