一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

中断虚拟化实时处理方法、装置、存储介质和终端与流程

2022-02-22 06:58:38 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其涉及中断虚拟化实时处理方法、装置、存储介质和终端。


背景技术:

2.中断虚拟化是虚拟机监视器(hypervisor)的核心功能,尤其是在实时虚拟机监视器系统中,中断虚拟化的设计对中断延时和系统的实时性有非常大的影响。在基于中断控制器(gicv3)的虚拟机监视器系统中,硬件虽然支持中断虚拟化的扩展,但仅包括处理器接口(cpu interface)寄存器的虚拟化,虚拟中断扩展和维护(maintenance)中断,但不包括分发(distributor)和再分发(redistributor)等处理器中断(iri)部件。一个典型的gicv3的结构如图1所示,redistributor设备的虚拟化需要hypervisor基于虚拟内存映射(mmio)来模拟,虚拟机每次访问redistributor的寄存器时,都要通过虚拟mmio机制陷入到hypervisor,由hypervisor模拟这些访问操作,具体流程如图2所示。这种方法的缺点是效率低,延时大,不适合高实时场景。因为虚拟机每次访问redistributor都需要陷入到hypervisor,由hypervisor来模拟,然后再把结果返回给虚拟机。
3.基于此种方法,虚拟机在发送软件触发中断(sgi)时由于要操作redistributor的寄存器,也需要陷入到hypervisor中,由hypervisor来模拟,sgi的实时性也会受到很大影响,需要hypervisor模拟的原因是因为sgi的目标处理器(cpu)是虚拟处理器(vcpu),而不是真实的物理cpu,需要hypervisor根据sgi的目标cpu的识别码计算出目标vcpu的识别码,如图3所示。


技术实现要素:

4.为了至少解决上述一个技术问题,本发明提出了中断虚拟化实时处理方法,本发明具体是以如下技术方案实现的:
5.本发明的第一个方面提出了中断虚拟化实时处理方法,应用于电子设备,所述电子设备包括中断控制器、虚拟机监视器和客户操作系统,所述中断控制器分别与所述虚拟机监视器和所述客户操作系统通信连接;所述方法包括:
6.所述中断控制器捕获所述客户操作系统发送的第一中断信号,所述中断控制器触发中断,并向所述虚拟机监视器发送第二中断信号;
7.所述虚拟机监视器接收到所述中断控制器发送的所述第二中断信号,根据中断虚拟化机制将虚拟中断注入到虚拟处理器中,并反馈至所述中断控制器;
8.所述中断控制器通过虚拟中断控制器发送中断处理信号至所述客户操作系统;
9.在一些可能的实施方式中,所述客户操作系统接收到所述中断处理信号,进行中断处理。
10.在一些可能的实施方式中,所述中断控制器捕获所述客户操作系统发送的第一中断信号之前,还包括,所述客户操作系统写入虚拟核间中断寄存器,触发虚拟核间中断,并
向所述中断控制器发送所述第一中断信号。
11.在一些可能的实施方式中,所述中断虚拟化机制包括:
12.响应于虚拟机初始化指令,判断所述虚拟机是否是实时虚拟机;
13.若是,为所述实时虚拟机的虚拟处理器分配物理处理器,并将所述虚拟处理器的识别码设置为所述物理处理器的识别码;
14.根据所述虚拟处理器的识别码,将与所述物理处理器连接的再分发设备的地址空间映射至所述虚拟机。
15.在一些可能的实施方式中,所述为实时虚拟机的虚拟处理器分配物理处理器之后,还包括:
16.将所述虚拟处理器与所述物理处理器进行排他绑定。
17.本发明的第二个方面提出了中断虚拟化实时处理装置,应用于上述的中断虚拟化实时处理方法,所述装置包括:
18.第一中断信号接收模块,用于中断控制器捕获客户操作系统发送的第一中断信号,所述中断控制器触发中断,并向虚拟机监视器发送第二中断信号;
19.第二中断信号接收模块,用于所述虚拟机监视器接收到所述中断控制器发送的所述第二中断信号,根据中断虚拟化机制将虚拟中断注入到当前虚拟处理器中,并反馈至所述中断控制器;
20.中断处理信号发送模块,用于所述中断控制器通过虚拟中断控制器发送中断处理信号至客户操作系统;
21.中断处理模块,用于所述客户操作系统接收到所述中断处理信号,进行中断处理。
22.在一些可能的实施方式中,第一中断信号发送模块,用于所述客户操作系统写入虚拟核间中断寄存器,触发虚拟核间中断,并向所述中断控制器发送所述第一中断信号。
23.在一些可能的实施方式中,所述第二中断信号接收模块,还包括:
24.虚拟机实时属性判断单元,用于响应于虚拟机初始化指令,判断所述虚拟机是否是实时虚拟机;
25.物理处理器分配单元,用于若所述虚拟机是实时虚拟机,则为所述实时虚拟机的虚拟处理器分配物理处理器,并将所述虚拟处理器的识别码设置为所述物理处理器的识别码;
26.地址空间映射模块,用于根据所述虚拟处理器的识别码,将与所述物理处理器连接的再分发设备的地址空间映射至所述虚拟机。
27.在一些可能的实施方式中,所述物理处理器分配单元,还包括:
28.物理处理器绑定单元,用于将所述实时虚拟机与所述物理处理器排他绑定。
29.本发明还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的中断虚拟化实时处理方法。
30.本发明还提供一种终端,包括一个或多个处理器和存储器。存储器与所述处理器耦接,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述的中断虚拟化实时处理方法。
31.采用上述技术方案,本发明所述的中断虚拟化实时处理方法和装置,具有如下有益效果:
32.在硬件设备进行中断处理时,利用中断虚拟化机制将虚拟处理器和物理处理器进行排他绑定,在中断控制器的环境中,针对高实时应用,基于虚拟机监视器在满足隔离性的同时,最大程度减少虚拟机访问再分发设备的开销,以降低时延,提高系统整体的实时性。
附图说明
33.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
34.图1为现有技术中的中断控制器v3(gicv3)的中断控制器的结构示意图;
35.图2为现有技术中的中断控制器的再分发模拟的流程示意图;
36.图3为现有技术中的虚拟软件触发中断的流程示意图;
37.图4为本发明实施例提供的中断虚拟化实时处理方法的流程示意图;
38.图5为本发明实施例提供的虚拟软件触发中断方法的流程示意图;
39.图6为本发明实施例提供的虚拟化中断机制中处理器资源分配的流程示意图;
40.图7为本发明实施例提供的虚拟软件触发中断的装置的结构示意图;
41.图8为本发明实施例提供的计算机终端设备的结构示意图。
具体实施方式
42.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
43.在本技术所提供的几个实施例中,所描述的系统实施例仅仅是示意性的,例如所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块或单元的间接耦合或通信连接,可以是电性或其它的形式。
44.所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
45.另外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
46.本发明实施例中提供了中断虚拟化实时处理方法,应用于电子设备,所述电子设备包括中断控制器、虚拟机监视器和客户操作系统,所述中断控制器分别与所述虚拟机监视器和所述客户操作系统通信连接;如图4所示,所述方法包括:
47.s101、所述中断控制器捕获所述客户操作系统发送的第一中断信号,所述中断控
制器触发中断,并向所述虚拟机监视器发送第二中断信号;
48.中断控制器从客户操作系统截获到所述第一中断信号,触发中断,并向虚拟机监视器发送第二中断信号。
49.s102、所述虚拟机监视器接收到所述中断控制器发送的所述第二中断信号,根据中断虚拟化机制将虚拟中断注入到虚拟处理器中,并反馈至所述中断控制器;
50.虚拟机监视器截获到第二中断信号后,进行虚拟中断的路由和注入;虚拟机监视器通过中断控制器的中断虚拟化机制把虚拟中断注入到当前的虚拟处理器中,并反馈至中断控制器。
51.s103、所述中断控制器通过虚拟中断控制器发送中断处理信号至所述客户操作系统;
52.中断控制器发送虚拟中断请求至虚拟中断控制器,虚拟中断控制器则发送中断处理信号通知客户操作系统处理中断。
53.s104、所述客户操作系统接收到所述中断处理信号,进行中断处理。
54.虚拟处理器是虚拟机监视器调度的基本单位,运行在物理处理器上,虚拟机则运行在虚拟处理器上,虚拟机访问再分发设备控制私有外设(ppi)中断时,不再需要陷入虚拟机监视器中。由于,通过中断虚拟化机制,虚拟处理器与物理处理器排他绑定,虚拟处理器的识别码与物理处理器的识别码相同,发送软件触发中断(sgi)时不需虚拟机监视器计算目的虚拟处理器的识别码,直接根据物理处理器的识别码发送给目标物理处理器即可,请参阅图5。与现有技术相比,虚拟机监视器的处理流程大大简化,因此效率大幅提升。
55.在一个实施例中,所述中断控制器捕获所述客户操作系统发送的第一中断信号之前,还包括,所述客户操作系统写入虚拟核间中断寄存器,触发虚拟核间中断,并向所述中断控制器发送所述第一中断信号。
56.具体地,客户操作系统写入软件触发中断寄存器(sgi寄存器),触发软件触发中断,核间中断是通过软件触发中断实现的,发送第一中断信号至中断控制器(gic),因为虚拟处理器与物理处理器一一对应,虚拟处理器的识别码与物理处理器的识别码相同,发送软件触发中断(sgi)时不需虚拟机监视器计算目的虚拟处理器的识别码,直接根据物理处理器的识别码发送给目标物理处理器即可,不再需要陷入虚拟机监视器中,以降低时延,提高系统整体的实时性。中断控制器接收到所述第一中断信号,触发中断,并向虚拟机监视器发送第二中断信号。
57.在一个实施例中,所述中断虚拟化机制包括:
58.响应于虚拟机初始化指令,判断所述虚拟机是否是实时虚拟机;
59.若是,为所述实时虚拟机的虚拟处理器分配物理处理器,并将所述虚拟处理器的识别码设置为所述物理处理器的识别码;
60.根据所述虚拟处理器的识别码,将与所述物理处理器连接的再分发设备的地址空间映射至所述虚拟机。
61.请参阅图6,虚拟机配置时,按照实时要求,支持实时虚拟机(rtvm)和非实时虚拟机(nonertvm)的两种实时属性,虚拟机的实时属性由需要处理的任务的实时性要求决定,若处理的任务是需要实时处理的任务,则虚拟机是实时虚拟机,若需要处理的任务是可等待的,没有实时要求,则虚拟机的属性是非实时虚拟机;虚拟机监视器基于排他绑核为实时
虚拟机分配物理处理器的具体流程为:虚拟机启动进行初始化时,检查虚拟机的实时属性,若虚拟机为非实时虚拟机,则初始化结束,非实时虚拟机不需要独占物理处理器,多个非实时虚拟机的虚拟处理器可以共享物理处理器;若虚拟机为实时虚拟机,则为每个虚拟机的虚拟处理器分配一个物理处理器,并将虚拟处理器的识别码(id)设置为物理处理器的识别码(id),将虚拟处理器和物理处理器进行排他绑定,物理处理器不再运行其它的虚拟处理器,初始化结束。由于为实时虚拟机分配的物理处理器只运行一个虚拟处理器,所以虚拟处理器可以独占与物理处理器连接的再分发设备,在虚拟机物理内存配置与初始化时,把此再分发设备的地址空间直接映射给虚拟机,虚拟机就可以直接访问此再分发设备的寄存器,而不用陷入到虚拟机监视器中了,访问效率大大提升。
62.在一个实施例中,所述为实时虚拟机的虚拟处理器分配物理处理器之后,还包括:
63.将所述虚拟处理器与所述物理处理器进行排他绑定。
64.请参阅图7,本发明的第二个方面提出了中断虚拟化实时处理装置,应用于上述的中断虚拟化实时处理方法,所述装置包括:
65.第一中断信号接收模块10,用于中断控制器捕获客户操作系统发送的第一中断信号,所述中断控制器触发中断,并向虚拟机监视器发送第二中断信号;
66.第二中断信号接收模块20,用于所述虚拟机监视器接收到所述中断控制器发送的所述第二中断信号,根据中断虚拟化机制将虚拟中断注入到当前虚拟处理器中,并反馈至所述中断控制器;
67.中断处理信号发送模块30,用于所述中断控制器通过虚拟中断控制器发送中断处理信号至客户操作系统;
68.中断处理模块40,用于所述客户操作系统接收到所述中断处理信号,进行中断处理。
69.在一个实施例中,第一中断信号发送模块,用于所述客户操作系统写入虚拟核间中断寄存器,触发虚拟核间中断,并向所述中断控制器发送所述第一中断信号。
70.在一个实施例中,所述第二中断信号接收模块,还包括:
71.虚拟机实时属性判断单元,用于响应于虚拟机初始化指令,判断所述虚拟机是否是实时虚拟机;
72.物理处理器分配单元,用于若所述虚拟机是实时虚拟机,则为所述实时虚拟机的虚拟处理器分配物理处理器,并将所述虚拟处理器的识别码设置为所述物理处理器的识别码;
73.地址空间映射模块,用于根据所述虚拟处理器的识别码,将与所述物理处理器连接的再分发设备的地址空间映射至所述虚拟机。
74.在一个实施例中,所述物理处理器分配单元,还包括:
75.物理处理器绑定单元,用于将所述实时虚拟机与所述物理处理器排他绑定。
76.关于中断虚拟化实时处理装置的具体限定可以参见上文中对于的限定,在此不再赘述。
77.上述中断虚拟化实时处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操
作。
78.请参阅图8,本发明实施例提供一种终端,包括一个或多个处理器和存储器。存储器与所述处理器耦接,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述任意一个实施例中的中断虚拟化实时处理方法。
79.处理器用于控制该计算机终端设备的整体操作,以完成上述的中断虚拟化实时处理方法的全部或部分步骤。存储器用于存储各种类型的数据以支持在该计算机终端设备的操作,这些数据例如可以包括用于在该计算机终端设备上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(static random access memory,简称sram),电可擦除可编程只读存储器(electrically erasable programmable read-only memory,简称eeprom),可擦除可编程只读存储器(erasable programmable read-only memory,简称eprom),可编程只读存储器(programmable read-only memory,简称prom),只读存储器(read-only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘。
80.在一示例性实施例中,计算机终端设备可以被一个或多个应用专用集成电路(application specific 1ntegrated circuit,简称as1c)、数字信号处理器(digital signal processor,简称dsp)、数字信号处理设备(digital signal processing device,简称dspd)、可编程逻辑器件(programmable logic device,简称pld)、现场可编程门阵列(field programmable gate array,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的中断虚拟化实时处理方法,并达到如上述方法一致的技术效果。
81.在另一示例性实施例中,还提供了一种包括程序指令的存储介质,该程序指令被处理器执行时实现上述任意一个实施例中的中断虚拟化实时处理方法的步骤。例如,该存储介质可以为上述包括程序指令的存储器,上述程序指令可由终端的处理器执行以完成上述的中断虚拟化实时处理方法,并达到如上述方法一致的技术效果。
82.以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献