处理虚拟化中断的方法、中断控制器、电子设备和芯片与流程

文档序号:31863169发布日期:2022-10-19 06:50阅读:77来源:国知局
处理虚拟化中断的方法、中断控制器、电子设备和芯片与流程

1.本公开涉及计算机技术领域,尤其涉及中断控制技术领域,具体涉及一种处理虚拟化中断的方法、中断控制器、电子设备、介质和芯片。


背景技术:

2.虚拟化技术是现代云计算应用的基础,对整块的硬件资源进行划分,使每部分硬件资源执行不同的计算任务。中断是现代计算机体系的重要组成部分,是cpu和外部设备进行通信、执行任务调度的重要手段。中断的虚拟化指的是使中断在相互独立的空间内进行上报,从而保证各虚拟功能(virtual function,vf)之间的任务调度不会被干扰。
3.在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。


技术实现要素:

4.本公开提供了一种处理虚拟化中断的方法、中断控制器、电子设备、介质和芯片。
5.根据本公开的一方面,提供了一种处理虚拟化中断的方法,所述方法由中断控制器执行,所述方法包括:响应于接收到来自中断源的中断信号,基于所述中断信号所包含的标识信息,确定多个虚拟化硬件资源中与所述中断源对应的目标虚拟化硬件资源,并利用所述目标虚拟化硬件资源将所述中断信号发送到所述标识信息所指示的目标虚拟功能,其中,所述多个虚拟化硬件资源是基于物理机上运行的多个虚拟功能的数量对处理中断的硬件资源进行虚拟化得到的,并且所述多个虚拟化硬件资源与所述多个虚拟功能一一对应,并且其中,所述目标虚拟功能是所述多个虚拟功能中的一者;以及响应于接收到所述目标虚拟功能基于所述中断信号所发送的访问请求,基于所述多个虚拟功能的数量对所述访问请求所请求的至少一个中断信息所在的目标地址进行重映射,使得所述目标虚拟功能仅能访问所述目标虚拟功能在所述目标地址中对应的地址段。
6.根据本公开的另一方面,提供了一种中断控制器,包括:发送模块,被配置为响应于接收到来自中断源的中断信号,基于所述中断信号所包含的标识信息,确定多个虚拟化硬件资源中与所述中断源对应的目标虚拟化硬件资源,并利用所述目标虚拟化硬件资源将所述中断信号发送到所述标识信息所指示的目标虚拟功能,其中,所述多个虚拟化硬件资源是基于物理机上运行的多个虚拟功能的数量对处理中断的硬件资源进行虚拟化得到的,并且所述多个虚拟化硬件资源与所述多个虚拟功能一一对应,并且其中,所述目标虚拟功能是所述多个虚拟功能中的一者;以及重映射模块,被配置为响应于接收到所述目标虚拟功能基于所述中断信号所发送的访问请求,基于所述多个虚拟功能的数量对所述访问请求所请求的至少一个中断信息所在的目标地址进行重映射,使得所述目标虚拟功能仅能访问所述目标虚拟功能在所述目标地址中对应的地址段。
7.根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与所
述至少一个处理器通信连接的存储器;其中所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行处理虚拟化中断的方法。
8.根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行处理虚拟化中断的方法。
9.根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被处理器执行时实现处理虚拟化中断的方法。
10.根据本公开的另一方面,提供了一种芯片,包括:如前所述的中断控制器。
11.根据本公开的一个或多个实施例,提供了一种处理虚拟化中断的方法,通过对硬件资源进行虚拟化的方式使得针对每个中断源有对应的虚拟化硬件资源来对其中断信号进行发送,不同中断源对应不同的虚拟化硬件资源,实现了资源的隔离,使得不同中断源之间的中断信号不会互相干扰。同时,对于来自目标虚拟功能的访问请求,通过重映射实现了硬件层面的访问虚拟化,在由虚拟功能到中断控制器的下行通路上也完成了资源的隔离。
12.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
13.附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
14.图1示出了根据本公开的实施例的处理虚拟化中断的方法的流程图;
15.图2示出了根据本公开的实施例的比特级重映射的流程图;
16.图3示出了根据本公开的实施例的地址级重映射的流程图;
17.图4示出了根据本公开的实施例的中断控制器的结构框图;
18.图5示出了根据本公开的实施例的比特级重映射单元的结构框图;
19.图6示出了根据本公开的实施例的地址级重映射单元的结构框图;以及
20.图7示出了能够用于实现本公开的实施例的示例性电子设备的结构框图。
具体实施方式
21.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
22.在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个要素与另一要素区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。
23.在本公开中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该
要素可以是一个也可以是多个。此外,本公开中所使用的术语“和/或”涵盖所列出的项目中的任何一个以及全部可能的组合方式。
24.相关技术中,主要是通过完全虚拟化和半虚拟化的方式来实现多用户中断的虚拟化。然而,在完全虚拟化中需要通过一个软件层面实现的管理程序(hypervisor)来协调和调度底层硬件。hypervisor作为软硬件交互的媒介,负责对指令进行翻译和优化。在系统启用虚拟化时,处理多用户的中断需要hypervisor频繁的介入,这一过程耗费一定的硬件资源来对中断进行捕获和处理。这种软件虚拟化多用户中断的方式限制了系统性能,同时也降低了硬件的利用率。
25.在基于完全虚拟化处理中断的过程中,中断控制器负责收集硬件系统各部分的中断资源,并向外设高速互联标准(peripheral component interconnect express,pcie)控制器发出中断请求。进一步地,pcie控制器102向cpu发出物理中断。hypervisor层内部需要预先设置系统的硬件资源划分,捕获到物理中断pf,明确该中断pf属于多个虚拟功能中的哪一个vf,并进一步驱动物理中断pf到对应于vf的虚拟中断的映射。当每次有物理中断上报时,hypervisor需执行物理中断的路由和分配。
26.当vf收到中断请求后,需要下行与中断控制器进行交互,访问中断控制器内部的寄存器,明确中断源及对应的中断事务。vf对片上系统中某个物理地址的访问需要由hypervisor进行地址翻译。因此,在硬件部分的中断上报以及vf对中断控制器访问时的下行交互中均需要由hypervisor充当媒介。这增加了cpu的硬件开销,相比直接基于物理中断会损失一部分性能。并且在物理机上运行的vf越多,中断处理的速度下降越明显。
27.半虚拟化在完全虚拟化的基础上,配置不同的vf使用不同的中断号,使得不同的vf对应的中断号能够相互区分,中断信号上行时无需通过hypervisor路由,可以直接透传至对应的vf。vf下行与设备硬件进行交互时,通过修改驱动能够直接访问与之对应的物理地址,也避免了hypervisor充当地址翻译器。这释放了相当一部分硬件资源,hypervisor的工作负担变小,有利于系统性能的提升。但半虚拟化需要对系统内核及驱动进行高度的定制化,虚拟机往往需要使用多套驱动程序。改变vf的数目或硬件资源的划分方案时,往往需要再次更改内核及驱动,系统管理及维护的复杂度较高。对于不同的平台,其通用性和可移植性也较低。
28.为解决上述问题,本公开提供了一种处理虚拟化中断的方法,通过对硬件资源进行虚拟化的方式使得针对每个中断源有对应的虚拟化硬件资源来对其中断信号进行发送,不同中断源对应不同的虚拟化硬件资源,实现了资源的隔离,使得不同中断源之间的中断信号不会互相干扰。同时,对于来自虚拟功能的访问请求,通过重映射实现了硬件层面的访问虚拟化,在由虚拟功能到中断控制器的下行通路上也完成了资源的隔离。
29.下面将详细描述本公开的示例性实施例。
30.图1示出了根据本公开的实施例的处理虚拟化中断的方法的流程图,所述方法由中断控制器执行。如图1所示,处理虚拟化中断的方法100包括:步骤s101、响应于接收到来自中断源的中断信号,基于所述中断信号所包含的标识信息,确定多个虚拟化硬件资源中与所述中断源对应的目标虚拟化硬件资源,并利用所述目标虚拟化硬件资源将所述中断信号发送到所述标识信息所指示的目标虚拟功能,其中,所述多个虚拟化硬件资源是基于物理机上运行的多个虚拟功能的数量对处理中断的硬件资源进行虚拟化得到的,并且所述多
个虚拟化硬件资源与所述多个虚拟功能一一对应,并且其中,所述目标虚拟功能是所述多个虚拟功能中的一者;以及步骤s102、响应于接收到所述目标虚拟功能基于所述中断信号所发送的访问请求,基于所述多个虚拟功能的数量对所述访问请求所请求的至少一个中断信息所在的目标地址进行重映射,使得所述目标虚拟功能仅能访问所述目标虚拟功能在所述目标地址中对应的地址段。
31.由此,通过步骤s101中对硬件资源进行虚拟化的方式使得针对每个中断源有对应的虚拟化硬件资源来对其中断信号进行发送,并基于中断信号中所包含的标识信息,将中断信号发送到多个虚拟功能中与之对应的虚拟功能,即目标虚拟功能。不同中断源对应不同的虚拟化硬件资源,实现了资源的隔离,使得不同中断源之间的中断信号不会互相干扰。同时,当目标虚拟功能响应于中断控制器所发送的中断信号而向中断控制器发送中断请求时,通过步骤s102中的重映射实现了硬件层面的访问虚拟化,使得目标虚拟功能仅能访问目标虚拟功能在目标地址中对应的地址段,在由虚拟功能到中断控制器的下行通路上也完成了资源的隔离。由此,在中断源通过中断控制器访问虚拟功能的上行通路和虚拟功能访问中断控制器中的寄存器来查询中断来源的下行通路上,均实现了资源的隔离。
32.示例性的,在步骤s102中中断控制器可以基于所接收到的访问请求中所包含的用户信息来确定所述访问请求来自于目标虚拟功能,其中,所述用户信息用于指示虚拟功能的身份信息,具体地,用于指示所述访问请求来自多个虚拟功能中的哪一个虚拟功能。
33.根据一些实施例,步骤s102包括:响应于接收到所述目标虚拟功能基于所述中断信号所发送的访问请求,并且所述至少一个中断信息中包括存储在第一物理寄存器的内部的第一中断信息,基于所述多个虚拟功能的数量对所述第一物理寄存器进行比特级的重映射,使得所述目标虚拟功能仅能访问所述目标虚拟功能在所述第一物理寄存器中对应的比特位;和/或响应于接收到所述目标虚拟功能基于所述中断信号所发送的访问请求,并且所述至少一个中断信息中包括存储在跨第一多个第二物理寄存器的连续地址上的第二中断信息,基于所述多个虚拟功能的数量对所述连续地址进行地址级的重映射,使得所述目标虚拟功能仅能访问所述目标虚拟功能在所述连续地址中对应的第二多个第二物理寄存器。
34.可以理解的是,根据目标虚拟功能所请求的至少一个中断信息所在的目标地址的位置情况,可以分别确定对应的重映射方法。具体地,当目标虚拟功能所请求的第一中断信息位于寄存器内部时,需相应地执行比特级的重映射,以保证虚拟功能在访问中断控制器的寄存器的过程中在比特级的资源隔离;当目标虚拟功能所请求的第二中断信息存储在跨第一多个第二物理寄存器的连续地址上时,需相应地执行地址级的重映射,以保证虚拟功能在访问中断控制器的较长的地址段的过程中在地址级的资源隔离。
35.图2示出了根据本公开的实施例的比特级重映射的流程图。如图2所示,比特级重映射200包括:步骤s201、响应于所述至少一个中断信息中包括存储在所述第一物理寄存器的内部的第一中断信息,基于所述多个虚拟功能的数量对所述第一物理寄存器进行虚拟化,以得到与所述多个虚拟功能一一对应的多个第一虚拟化寄存器;步骤s202、基于所述多个虚拟功能的数量和所述第一中断信息在所述第一物理寄存器中的比特位的数量,确定每一个虚拟功能在其对应的第一虚拟化寄存器中所对应的比特位的数量为n,其中,n为大于或等于1的整数;以及步骤s203、仅允许所述目标虚拟功能对该虚拟功能对应的第一虚拟化寄存器的前n位比特位进行读写操作。
36.为便于理解,下面将以一个示例对比特级重映射的流程进行描述。
37.在一个示例中,与中断信号相关的第一中断信息存储在第一物理寄存器的低6位,即比特0~比特5上,同时,物理机上运行3个vf,分别是vf0、vf1和vf2。基于所接收到的访问请求中所包含的用户信息确定访问请求来自于目标虚拟功能vf1。此时,执行步骤s201以对第一物理寄存器进行虚拟化,以得到与3个vf一一对应的3个第一虚拟化寄存器。执行步骤s201以基于3个vf和6位的第一中断信息来确定每一个vf在该vf对应的第一虚拟化寄存器中对应2个比特位。执行步骤s203以仅允许vf1对vf1对应的第一虚拟化寄存器的前2位比特位进行访问。则可以理解的是,vf1能够访问的这2位比特位在第一物理寄存器中对应于比特2和比特3。由此,实现了中断资源的隔离。
38.示例性的,与中断信号相关的第一中断信息例如可以是中断状态寄存器所记录的中断信号的状态信息,相应地,第一物理寄存器为中断状态寄存器。
39.根据一些实施例,目标虚拟功能能够访问的对应的第一虚拟化寄存器的前n位比特位的起始地址与所述第一物理寄存器的起始地址相同。可见,每一个vf在访问对应的第一虚拟化寄存器时,访问地址均相同。由此,在实现中断资源的隔离的基础上,又保持了多vf之间寄存器访问的一致性。
40.根据一些实施例,处理虚拟化中断的方法100还包括:响应于所述目标虚拟功能对对应的第一虚拟化寄存器的前n位比特位进行了写操作,将该第一虚拟化寄存器的前n位比特位中写入的数据写入所述目标虚拟功能在所述第一物理寄存器中对应的比特位中
41.在步骤s201对第一物理寄存器进行虚拟化得到多个第一虚拟化寄存器的过程中,将每个vf在第一物理寄存器中对应的比特位中的内容同时存储在该vf对应的第一虚拟化寄存器中的对应的比特位中。相应地,在vf1对第一虚拟化寄存器进行写操作后,需执行步骤s203以将vf1在对应的第一虚拟化寄存器中写入的数据写入vf1在第一物理寄存器中对应的比特位中,从而实现了第一物理寄存器和多个第一虚拟化寄存器之间的双向映射。
42.图3示出了根据本公开的实施例的地址级重映射的流程图。如图3所示,地址级重映射300包括:步骤s301、响应于所述至少一个中断信息中包括存储在跨第一多个第二物理寄存器的连续地址上的第二中断信息,基于所述多个虚拟功能的数量对所述连续地址进行虚拟化,以得到与所述多个虚拟功能一一对应的多个虚拟化连续地址;步骤s302、基于所述多个虚拟功能的数量,确定每一个虚拟功能在其对应的虚拟化连续地址中所对应的第二多个第二虚拟化寄存器;以及步骤s303、仅允许所述目标虚拟功能对所述目标虚拟功能对应的第二多个第二虚拟化寄存器进行读写操作。
43.与比特级重映射相对应地,下面将以一个示例对地址级重映射的流程进行描述。
44.在一个示例中,与中断信号相关的第二中断信息存储在跨6个32位第二物理寄存器的连续地址0x0000-0x0014中,同时,物理机上运行3个vf,分别是vf0、vf1和vf2。基于所接收到的访问请求中所包含的用户信息确定访问请求来自于目标虚拟功能vf1。此时,执行步骤s301以对连续地址进行虚拟化,以得到与3个vf一一对应的3个虚拟化连续地址。执行步骤s302以基于3个vf来确定每一个vf在该vf对应的虚拟化连续地址中所对应的2个第二虚拟化寄存器。执行步骤s303以仅允许vf1对vf1对应的2个第二虚拟化寄存器。可以理解的是,vf1能够访问的这2个第二虚拟化寄存器在连续地址中对应于地址0x0008-0x000c。由此,实现了中断资源的隔离。
45.示例性的,与中断信号相关的第二中断信息例如可以是中断信号的配置信息,相应地,第二物理寄存器为配置寄存器。
46.根据一些实施例,所述目标虚拟功能能够访问的所述第二多个第二虚拟化寄存器的起始地址与所述连续地址的起始地址相同。由此,在实现中断资源的隔离的基础上,又保持了多vf间寄存器访问的一致性。
47.根据一些实施例,处理虚拟化中断的方法100还包括:响应于所述目标虚拟功能对所述目标虚拟功能对应的第二多个第二虚拟化寄存器进行了写操作,将该第二多个第二虚拟化寄存器中写入的数据写入所述目标虚拟功能在所述连续地址中对应的第二多个第二物理寄存器中。
48.相应地,在vf1对第二多个第二虚拟化寄存器进行写操作后,需执行步骤s303以将vf1在对应的第二多个第二虚拟化寄存器中写入的数据写入vf1在连续地址中对应的第二多个第二物理寄存器中,从而实现了连续地址和多个虚拟化连续地址之间的双向映射。
49.根据本公开的另一方面,提供了一种中断控制器。如图4所示,中断控制器400包括:发送模块401,被配置为响应于接收到来自中断源的中断信号,基于所述中断信号所包含的标识信息,确定多个虚拟化硬件资源中与所述中断源对应的目标虚拟化硬件资源,并利用所述目标虚拟化硬件资源将所述中断信号发送到所述标识信息所指示的目标虚拟功能,其中,所述多个虚拟化硬件资源是基于物理机上运行的多个虚拟功能的数量对处理中断的硬件资源进行虚拟化得到的,并且所述多个虚拟化硬件资源与所述多个虚拟功能一一对应,并且其中,所述目标虚拟功能是所述多个虚拟功能中的一者;以及重映射模块402,被配置为响应于接收到所述目标虚拟功能基于所述中断信号所发送的访问请求,基于所述多个虚拟功能的数量对所述访问请求所请求的至少一个中断信息所在的目标地址进行重映射,使得所述目标虚拟功能仅能访问所述目标虚拟功能在所述目标地址中对应的地址段。
50.发送模块401对硬件资源进行虚拟化的方式使得针对每个中断源有对应的虚拟化硬件资源来对其中断信号进行发送,并基于中断信号中所包含的标识信息,将中断信号发送到多个虚拟功能中与之对应的虚拟功能,即目标虚拟功能。不同中断源对应不同的虚拟化硬件资源,实现了资源的隔离,使得不同中断源之间的中断信号不会互相干扰。
51.示例性的,发送模块401根据虚拟化时系统整体的硬件划分方案,来对处理中断的硬件资源进行虚拟化。具体地,发送模块401基于物理机上运行的虚拟功能vf的数量对中断处理模块进行虚拟化,以虚拟出与vf一一对应的硬件资源,通过对应的虚拟化硬件资源来实现对访问对应的虚拟功能的中断信号的发送。
52.在一个示例中,当物理机上运行有3个vf时,发送模块401对硬件资源进行虚拟化,以将硬件资源划分为3个虚拟化硬件资源,用于分别处理对应于3个vf的中断信号。从而使得来自中断源的中断信号与对应的硬件进行绑定。对应于不同vf的中断资源被硬件严格的保护和隔离,使多个vf之间的中断不会互相干扰。
53.示例性的,每一个虚拟化硬件资源能够对对应的虚拟信号实现中断使能、中断屏蔽以及中断映射,实现一对一的单独控制,以使得对应于不同vf的中断信号能够通过中断控制器400中的不同通道向pcie控制器发出请求,并最终到达对应的vf。从而,实现了中断资源的隔离和保护,提升了系统的安全性。
54.同时,当目标虚拟功能响应于中断控制器所发送的中断信号而向中断控制器发送
中断请求时,通过重映射模块402重映射实现了硬件层面的访问虚拟化,使得目标虚拟功能仅能访问目标虚拟功能在目标地址中对应的地址段,在由虚拟功能到中断控制器的下行通路上也完成了资源的隔离。由此,在中断源通过中断控制器访问虚拟功能的上行通路和虚拟功能访问中断控制器中的寄存器来查询中断来源的下行通路上,均实现了资源的隔离。
55.示例性的,重映射模块402可以基于所接收到的访问请求中所包含的用户信息来确定所述访问请求来自于目标虚拟功能,其中,所述用户信息用于指示虚拟功能的身份信息,具体地,用于指示所述访问请求来自多个虚拟功能中的哪一个虚拟功能。
56.根据一些实施例,重映射模块402包括:比特级重映射单元,被配置为响应于接收到所述目标虚拟功能基于所述中断信号所发送的访问请求,并且所述至少一个中断信息中包括存储在第一物理寄存器的内部的第一中断信息,基于所述多个虚拟功能的数量对所述第一物理寄存器进行比特级的重映射,使得所述目标虚拟功能仅能访问所述目标虚拟功能在所述第一物理寄存器中对应的比特位;和/或地址级重映射单元,被配置为响应于接收到所述目标虚拟功能基于所述中断信号所发送的访问请求,并且所述至少一个中断信息中包括存储在跨第一多个第二物理寄存器的连续地址上的第二中断信息,基于所述多个虚拟功能的数量对所述连续地址进行地址级的重映射,使得所述目标虚拟功能仅能访问所述目标虚拟功能在所述连续地址中对应的第二多个第二物理寄存器。
57.示例性的,当目标虚拟功能vf1收到中断请求后,需要下行与中断控制器400进行交互,携带用户身份信息即用户id来访问中断控制器400内部的寄存器,明确中断源及对应的中断事务。当与中断信号相关的第一中断信息存储在第一物理寄存器的内部时,需要比特级重映射单元基于物理机上运行的vf的数量对第一物理寄存器进行比特级的重映射,使得目标虚拟功能vf1仅能访问vf1在第一物理寄存器中对应的比特位。当与中断信号相关的第二中断信息存储在跨第一多个第二物理寄存器的连续地址中,基于物理机上运行的vf的数量对连续地址进行地址级的重映射,使得目标目标虚拟功能vf1仅能访问vf1在连续地址中对应的第二多个第二物理寄存器。从而,中断资源被硬件严格的保护和隔离,提升了系统的安全性。
58.图5示出了根据本公开的实施例的比特级重映射单元的结构框图。如图5所示,比特级重映射单元500包括:第一虚拟化子单元501,被配置为响应于所述至少一个中断信息中包括存储在所述第一物理寄存器的内部的第一中断信息,基于所述多个虚拟功能的数量对所述第一物理寄存器进行虚拟化,以得到与所述多个虚拟功能一一对应的多个第一虚拟化寄存器;第一确定子单元502,被配置为基于所述多个虚拟功能的数量和所述第一中断信息在所述第一物理寄存器中的比特位的数量,确定每一个虚拟功能在其对应的第一虚拟化寄存器中所对应的比特位的数量为n,其中,n为大于或等于1的整数;以及第一访问子单元503,被配置为仅允许所述目标虚拟功能对该虚拟功能对应的第一虚拟化寄存器的前n位比特位进行读写操作。
59.为便于理解,下面将以一个示例对比特级重映射单元500中的各子单元进行描述。
60.在一个示例中,与中断信号相关的第一中断信息存储在第一物理寄存器的低6位,即比特0~比特5上,同时,物理机上运行3个vf,分别是vf0、vf1和vf2。基于所接收到的访问请求中所包含的用户信息确定访问请求来自于目标虚拟功能vf1。此时,第一虚拟化子单元501被配置为对第一物理寄存器进行虚拟化,以得到与3个vf一一对应的3个第一虚拟化寄
存器。第一确定子单元502被配置为基于3个vf和6位的第一中断信息来确定每一个vf在该vf对应的第一虚拟化寄存器中对应2个比特位。第一访问子单元503被配置为仅允许vf1对vf1对应的第一虚拟化寄存器的前2位比特位进行访问。可以理解的是,vf1能够访问的这2位比特位在第一物理寄存器中对应于比特2和比特3。由此,实现了中断资源的隔离。
61.示例性的,与中断信号相关的第一中断信息例如可以是中断状态寄存器所记录的中断信号的状态信息,相应地,第一物理寄存器为中断状态寄存器。
62.根据一些实施例,所述目标虚拟功能能够访问的对应的第一虚拟化寄存器的前n位比特位的起始地址与所述第一物理寄存器的起始地址相同。可见,每一个vf在访问对应的第一虚拟化寄存器时,访问地址均相同。由此,在实现中断资源的隔离的基础上,又保持了多vf之间寄存器访问的一致性。
63.根据一些实施例,中断控制器400还包括:第一写入模块,被配置为响应于所述目标虚拟功能对对应的第一虚拟化寄存器的前n位比特位进行了写操作,将该第一虚拟化寄存器的前n位比特位中写入的数据写入所述目标虚拟功能在所述第一物理寄存器中对应的比特位中。
64.在第一虚拟化子单元501对第一物理寄存器进行虚拟化得到多个第一虚拟化寄存器的过程中,将每个vf在第一物理寄存器中对应的比特位中的内容同时存储在该vf对应的第一虚拟化寄存器中的对应的比特位中。相应地,在vf1对第一虚拟化寄存器进行写操作后,第一写入模块需将vf1在对应的第一虚拟化寄存器中写入的数据写入vf1在第一物理寄存器中对应的比特位中,从而实现了第一物理寄存器和多个第一虚拟化寄存器之间的双向映射。
65.图6示出了根据本公开的实施例的地址级重映射单元的结构框图。如图6所示,地址级重映射单元600包括:第二虚拟化子单元601,被配置为响应于所述至少一个中断信息中包括存储在跨第一多个第二物理寄存器的连续地址上的第二中断信息,基于所述多个虚拟功能的数量对所述连续地址进行虚拟化,以得到与所述多个虚拟功能一一对应的多个虚拟化连续地址;第二确定子单元602,被配置为基于所述多个虚拟功能的数量,确定每一个虚拟功能在其对应的虚拟化连续地址中所对应的第二多个第二虚拟化寄存器;以及第二访问子单元603,被配置为仅允许所述目标虚拟功能对所述目标虚拟功能对应的第二多个第二虚拟化寄存器进行读写操作。
66.与比特级重映射模块相对应地,下面将以一个示例对地址级重映射单元600中的各单元进行描述。
67.在一个示例中,与中断信号相关的第二中断信息存储在跨6个32位第二物理寄存器的连续地址0x0000-0x0014中,同时,物理机上运行3个vf,分别是vf0、vf1和vf2。基于所接收到的访问请求中所包含的用户信息确定访问请求来自于目标虚拟功能vf1。此时,第二虚拟化子单元601被配置为对连续地址进行虚拟化,以得到与3个vf一一对应的3个虚拟化连续地址。第二确定子单元602被配置为基于3个vf来确定每一个vf在该vf对应的虚拟化连续地址中所对应的2个第二虚拟化寄存器。第二访问子单元603被配置为仅允许vf1对vf1对应的2个第二虚拟化寄存器。可以理解的是,vf1能够访问的这2个第二虚拟化寄存器在连续地址中对应于地址0x0008-0x000c。由此,实现了中断资源的隔离。
68.示例性的,与中断信号相关的第二中断信息例如可以是中断信号的配置信息,相
应地,第二物理寄存器为配置寄存器。
69.根据一些实施例,所述目标虚拟功能能够访问的所述第二多个第二虚拟化寄存器的起始地址与所述连续地址的起始地址相同。由此,在实现中断资源的隔离的基础上,又保持了多vf间寄存器访问的一致性。
70.根据一些实施例,中断控制器400还包括:第二写入模块,被配置为响应于所述目标虚拟功能对所述目标虚拟功能对应的第二多个第二虚拟化寄存器进行了写操作,将该第二多个第二虚拟化寄存器中写入的数据写入所述目标虚拟功能在所述连续地址中对应的第二多个第二物理寄存器中。
71.相应地,在vf1对第二多个第二虚拟化寄存器进行写操作后,第二写入模块需将vf1在对应的第二多个第二虚拟化寄存器中写入的数据写入vf1在连续地址中对应的第二多个第二物理寄存器中,从而实现了连续地址和多个虚拟化连续地址之间的双向映射。
72.根据本公开的另一方面,还提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行处理虚拟化中断的方法。
73.根据本公开的另一方面,还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行处理虚拟化中断的方法。
74.根据本公开的另一方面,还提供了一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被处理器执行时实现处理虚拟化中断的方法。
75.根据本公开的另一方面,还提供了一种芯片,包括如前所述的中断控制器。
76.如图7所示,电子设备700包括计算单元701,其可以根据存储在只读存储器(rom)702中的计算机程序或者从存储单元708加载到随机访问存储器(ram)703中的计算机程序,来执行各种适当的动作和处理。在ram 703中,还可存储电子设备700操作所需的各种程序和数据。计算单元701、rom 702以及ram 703通过总线704彼此相连。输入/输出(i/o)接口705也连接至总线704。
77.电子设备700中的多个部件连接至i/o接口705,包括:输入单元706、输出单元707、存储单元708以及通信单元709。输入单元706可以是能向电子设备700输入信息的任何类型的设备,输入单元706可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入,并且可以包括但不限于鼠标、键盘、触摸屏、轨迹板、轨迹球、操作杆、麦克风和/或遥控器。输出单元707可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元708可以包括但不限于磁盘、光盘。通信单元709允许电子设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙
tm
设备、802.11设备、wifi设备、wimax设备、蜂窝通信设备和/或类似物。
78.计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,
例如处理虚拟化中断的方法。例如,在一些实施例中,处理虚拟化中断的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由rom 702和/或通信单元709而被载入和/或安装到电子设备700上。当计算机程序加载到ram 703并由计算单元701执行时,可以执行上文描述的处理虚拟化中断的方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行处理虚拟化中断的方法。
79.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、复杂可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
80.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
81.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
82.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
83.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网
(lan)、广域网(wan)和互联网。
84.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
85.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行、也可以顺序地或以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
86.虽然已经参照附图描述了本公开的实施例或示例,但应理解,上述的方法、系统和设备仅仅是示例性的实施例或示例,本发明的范围并不由这些实施例或示例限制,而是仅由授权后的权利要求书及其等同范围来限定。实施例或示例中的各种要素可以被省略或者可由其等同要素替代。此外,可以通过不同于本公开中描述的次序来执行各步骤。进一步地,可以以各种方式组合实施例或示例中的各种要素。重要的是随着技术的演进,在此描述的很多要素可以由本公开之后出现的等同要素进行替换。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1