一种芯片系统、处理虚拟中断的方法及相应装置制造方法及图纸

技术编号:33138092 阅读:12 留言:0更新日期:2022-04-22 13:46
本申请公开了一种芯片系统,应用于虚拟化技术领域。该芯片系统包括源物理处理器、控制装置、中间装置、发送装置以及目标物理处理器,源物理处理器上运行有宿主机或虚拟机,控制装置中的寄存器接收宿主机或虚拟机写入的用于触发虚拟中断的信息,控制装置将寄存器中的用于触发虚拟中断的信息发送给中间装置;中间装置根据用于触发虚拟中断的信息触发虚拟中断,并将虚拟中断发送给发送装置;发送装置将虚拟中断发送给目标物理处理器。该方案用于减少因虚拟中断产生的从虚拟机到宿主机,或者从宿主机的用户态切换到宿主机的内核态的切换开销。机的用户态切换到宿主机的内核态的切换开销。机的用户态切换到宿主机的内核态的切换开销。

【技术实现步骤摘要】
一种芯片系统、处理虚拟中断的方法及相应装置


[0001]本申请涉及虚拟化
,具体涉及一种芯片系统、处理虚拟中断的方法及相应装置。

技术介绍

[0002]虚拟中断是虚拟化技术的必要组成部分,虚拟机(virtual machine,VM)运行于计算机设备中,该计算机设备中的磁盘、输入/输出(input/output,I/O)设备等硬件设备对虚拟机的通知,以及虚拟机内部的各种同步以及协调工作都依赖于虚拟中断。虚拟中断是一种事件,这类事件可以有各种来源,来源不同,针对该事件的处理过程也会有不同,但每种来源的这类事件都会以虚拟机运行时收到中断的形式通知到虚拟机。
[0003]无论是哪种来源的虚拟中断,在虚拟中断最终到达虚拟机之前,宿主机需要利用自身的各种机制完成将虚拟中断从源头发送到目的虚拟机的工作。在发送该虚拟中断过程中,需要处理器的控制流从正在执行的虚拟机切换到宿主机,或者从宿主机的用户态切换到宿主机的内核态,产生了较大的切换开销。

技术实现思路

[0004]本申请实施例提供一种芯片系统、处理虚拟中断的方法及相应装置,用于减少因虚拟中断产生的从虚拟机到宿主机,或者从宿主机的用户态切换到宿主机的内核态的切换开销。本申请实施例还提供了相应的计算机设备、计算机存储介质以及计算机程序产品等。
[0005]本申请第一方面提供一种芯片系统,包括:源物理处理器、控制装置、中间装置、发送装置以及目标物理处理器,源物理处理器用于运行宿主机或虚拟机,控制装置包括寄存器,寄存器用于接收用于触发虚拟中断的信息,用于触发虚拟中断的信息可以来自于宿主机或虚拟机;控制装置用于:将寄存器中的用于触发虚拟中断的信息发送给中间装置;中间装置用于:根据用于触发虚拟中断的信息触发虚拟中断,并将虚拟中断发送给发送装置;发送装置用于:接收来自于中间装置的虚拟中断,并将虚拟中断发送给目标物理处理器。
[0006]本申请中,该芯片系统可以是片上系统(system on chip,SOC),源物理处理器和目标物理处理器可以分别是一个处理单元(processing unit),例如一个物理核。控制装置、中间装置和发送装置都可以是通过硬件电路来实现的,也可以是通过软件实现的。源物理处理器和目标物理处理器可以为多核处理器中的物理核,多核处理器包括多个物理核,物理核为集成在处理器中的内核,物理核是一种处理单元,比如双核处理器可以理解为具有两个物理核的处理器。控制装置和发送装置可以部署在该多核处理器中,与源物理处理器和目标物理处理器耦合。中间装置可以部署在该多核处理器中,也可以部署在与多核处理器耦合的外围设备/外围组件上。片上系统可以包括多核处理器和与多核处理器耦合的外围设备/外围组件。芯片系统中的任一个物理处理器既可以作为源物理处理器,也可以作为目标物理处理器。
[0007]本申请中,虚拟中断(virtual interrupt)指的是计算机设备中的硬件设备、宿主
机、该虚拟机的时钟或虚拟机的虚拟处理器(virtual processer)等发送给虚拟机(virtual machine,VM)的中断,产生该虚拟中断的硬件设备可以是计算机设备中的磁盘、网卡、声卡、鼠标、硬盘等。物理中断指的是硬件设备发送给物理处理器的中断。物理中断是由宿主机处理,而虚拟中断是由虚拟机处理。
[0008]需要注意的是,本申请各个实施例提到的虚拟处理器的一种具体实现方式可以为虚拟中央处理器(virtual central processing unit,vCPU)。后续提到的“vCPU”也可以替换为“虚拟处理器”来理解。
[0009]本申请中,虚拟中断可以包括虚拟局部中断(virtual local interrupt),虚拟软件中断(virtual software interrupt),虚拟设备中断(virtual device interrupt)和直通外设中断(direct peripheral interrupt)。其中,虚拟局部中断指由虚拟机模拟的虚拟局部设备发出的中断或虚拟机的某个vCPU的局部设备发出的中断,例如:虚拟机的某个vCPU的计时器发出的时钟中断。虚拟软件中断指由软件触发的,通常指虚拟机的一个vCPU发给该虚拟机的另一个vCPU的中断,一个虚拟机可以有多个vCPU,这些vCPU在一个时刻可以运行在不同的物理处理器上来执行虚拟机的不同任务,当不同的vCPU之间所执行的任务有依赖关系或需要调度时,就会发生虚拟软件中断。虚拟设备中断指由宿主机模拟硬件设备触发的中断,例如宿主机模拟虚拟机磁盘控制器或模拟其他硬件设备产生的中断。
[0010]本申请中,控制装置中可以包括至少一个寄存器,其中,可以是每个寄存器用于接收一种类型的用于触发虚拟中断的信息。如:包括三个寄存器,一个寄存器用于接收用于触发虚拟局部中断的信息,一个寄存器用于接收用于触发虚拟软件中断的信息,一个寄存器用于接收用于触发虚拟设备中断的信息。当然,该控制装置中,针对虚拟中断也可以只配置一个寄存器,用于触发每种类型的虚拟中断的信息不同,可以通过寄存器接收的信息来识别虚拟中断的类型。
[0011]中间装置可以有一个,也可以有多个。发送装置可以是每个物理处理器有一个发送装置,也可以是多个物理处理器共用一个发送装置。
[0012]由上述第一方面可知,该第一方面在控制装置中设置专用于处理虚拟中断的寄存器,这样,处于用户态或内核态的宿主机或虚拟机可以直接将用于触发虚拟中断的信息写入该寄存器中,控制装置可以将该用于触发虚拟中断的信息发送给中间装置,由中间装置触发虚拟中断,并且,中间装置将该虚拟中断发送给发送装置,由发送装置将该虚拟中断发送给目标物理处理器。本申请提供的方案中,宿主机或虚拟机均可以直接访问寄存器,将用于触发虚拟中断的信息写入寄存器,从而将虚拟中断发送出去;因此相比于现有技术,本申请提供的方案不需要源物理处理器执行从虚拟机到宿主机的切换,也不需要源物理处理器执行从宿主机的用户态到宿主机的内核态的切换,从而减少了处理虚拟中断产生的切换开销,提高了芯片系统的性能。
[0013]在第一方面的一种可能的实现方式中,虚拟中断为虚拟局部中断,目标物理处理器和源物理处理器为同一物理处理器;寄存器用于:接收虚拟机写入的用于触发虚拟局部中断的信息;发送装置用于:将虚拟局部中断发送给虚拟机的第一虚拟处理器vCPU,第一vCPU运行在源物理处理器上。
[0014]该种可能的实现方式中,因为虚拟局部中断是核内中断,所以,目标物理处理器和源物理处理器为同一物理处理器。中间装置可以为计时器,该虚拟局部中断可以为时钟中
断。一个物理处理器一个时刻只会运行一个虚拟机的一个vCPU,将虚拟局部中断发送给该vCPU,即可完成将该虚拟局部中断发送给虚拟机的操作。由该可能的实现方式可知,处理该虚拟局部中断的过程不需要源物理处理器执行从虚拟机到宿主机的切换,从而减少了处理虚拟局部中断产生的切换开销,提高了芯片系统的性能。
[0015]在第一方面的一种可能的实现方式中,虚本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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.一种发送装置,其特征在于,所述发送装置应用于芯片系统,所述芯片系统还包括源物理处理器、中间装置、控制装置以及目标物理处理器,所述源物理处理器用于运行宿主机或虚拟机,所述控制装置包括寄存器;所述寄存器...

【专利技术属性】
技术研发人员:赵思齐蒋毅飞邓凯
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1