CN102105871B - 虚拟处理设备的中断控制 - Google Patents
虚拟处理设备的中断控制 Download PDFInfo
- Publication number
- CN102105871B CN102105871B CN200980129320.4A CN200980129320A CN102105871B CN 102105871 B CN102105871 B CN 102105871B CN 200980129320 A CN200980129320 A CN 200980129320A CN 102105871 B CN102105871 B CN 102105871B
- Authority
- CN
- China
- Prior art keywords
- virtual
- data
- interrupt
- control program
- look
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
Abstract
一种支持一个或多个虚拟处理设备的数据处理系统配备外部中断接口硬件(26)和虚拟接口硬件(28)。管理程序软件响应于该外部中断接口硬件(26)所接收到的中断,而将表征该中断的数据写入该虚拟接口硬件(28)的列表寄存器(18)。接着,被仿真的虚拟数据处理设备的虚拟机的客户操作系统可以从该虚拟接口硬件(28)处读取表征要由该虚拟机处理的中断的数据。该虚拟机与该客户操作系统与该虚拟接口硬件(28)互动,如同其是外部接口硬件。该管理程序软件负责维护该虚拟接口硬件(28)内的数据以便正确反映该外部接口(26)所接收到的排队中断。
Description
技术领域
本发明涉及数据处理系统。更具体地,本发明涉及使用一个或多个虚拟处理设备的数据处理系统内的中断处置。
背景技术
已知的是,给数据处理系统提供对一个或多个虚拟处理设备的虚拟化支持。此系统的一个示例为特定处理器被物理地实施并且希望提供对多个虚拟机的支持。在这些情况中,物理处理器能够执行软件(举例来说,管理程序软件)以便提供对多个虚拟机的支持,举例来说在正在执行的虚拟机之间进行切换。
提供此虚拟化支持的系统内的一个特定问题是如何处置中断。尤其是在实时处理的领域中,中断处理速度经常是数据处理系统的关键性能参数。一种方式是在所支持的每一个虚拟处理系统的管理程序码中提供以软件为基础的虚拟中断控制器。该虚拟处理系统存取该中断控制器的尝试导致进入该管理程序,其接着能够模拟正确的响应。如果对中断控制器的存取是频繁的,则这可能不利地降速。每个中断的处理通常涉及最少两次中断控制器存取,并且经常涉及更多。再者,某些虚拟处理系统对中断控制器进行频繁的存取,以便改变处理器的活动优先级等级。因此,这种提供所需功能的以软件为基础的虚拟中断控制器技术对整体性能有显著的负面影响。
也可能建立一种以硬件为基础的机构,其自然支持多个虚拟机并且将每个虚拟机的中断控制器存取映射至适当的硬件动作。不过,这种硬件方式可能涉及不利得大的硬件开销并且也可能在能够支持多少个中断及/或虚拟机方面施加潜在限制性的约束。
另一方式是使用部分虚拟化(paravirtualisation)以通过使用更高效的超呼叫(hypercall)来减少中断的开销。即使利用这些方式,在物理中断到达时仍会有至少一次管理程序进入并且在完成中断处理时会有另外次(以便使得能够重新使能物理中断)。
发明内容
从一个方面来看,本发明提供一种使用为一个或多个虚拟处理设备提供虚拟化支持的用于处理数据的设备来处理中断信号的方法,所述方法包括以下步骤:
响应于用于处理数据的所述设备所接收到的中断信号,将表征所述中断信号的数据写入各个虚拟处理设备的一个或多个虚拟接口中的至少一个,所述一个或多个虚拟接口以硬件提供且分别包含用于储存相关联虚拟处理设备的未完成中断的列表的一个或多个列表寄存器,所述未完成中断列表包含指示物理中断数和虚拟中断数的数据;
响应于所述至少一个虚拟接口的所述列表寄存器内的所述未完成中断的列表,产生虚拟中断信号以触发与所述相关联虚拟处理设备所进行的中断处理对应的中断处理,并且提供表征所述虚拟中断信号的数据以便从所述至少一个虚拟接口内所包含的一个或多个接口寄存器处进行读取;
响应于所述虚拟中断信号,使用彷佛在所述相关联虚拟处理设备上执行的第一控制程序来从所述一个或多个接口寄存器处读取表征所述中断信号的数据;以及
响应于从所述一个或多个接口寄存器处读取的表征所述中断信号的所述数据,执行在所述第一控制程序的控制下的并且对应于所述相关联虚拟处理设备所进行的中断处理的中断处理;
其中响应于在所述第一控制程序的控制下完成所述中断处理,将所述虚拟数据处理设备使用的虚拟中断数映射至和用于处理数据的所述设备接收到的所述中断信号相关联的物理中断数以及利用所述物理中断数来触发向所述中断信号的来源发信通知所述完成。
此技术为中断处理中涉及的常见操作提供以硬件为基础的(因而快速的)支持,其不招致如上面讨论的以全硬件为基础的方式的高开销成本和限制。再者,其提供比以纯软件为基础的方式更高的性能,在以纯软件为基础的方式中对中断控制器的每次存取被捕捉。
本技术提供一种硬件虚拟接口,其包含:一个或多个列表寄存器,储存相关联虚拟处理设备的未完成中断的列表;以及一个或多个接口寄存器,用于提供表征由此硬件所产生的虚拟中断信号的数据。彷佛在与目前未完成中断列表相关联的虚拟处理设备上执行的第一控制程序(诸如举例来说,客户操作系统)响应于该虚拟中断信号以从接口寄存器处读取表征中断信号的数据并且接着实施对应于该相关联虚拟处理设备所进行的中断处理的处理。这种配置提供比捕捉对中断控制器的每次存取更高的性能,因为一个或多个虚拟接口以硬件提供,而且不会招致全硬件模型的高硬件成本和限制。虚拟接口的硬件可以在相关联的虚拟处理设备之间被共享,使得当虚拟机被切换时,虚拟接口内的状态也被切换。实际上,这并非严重的缺点,因为当虚拟机被切换时,需要交换更大量的寄存器而且此类虚拟机切换操作已经耗费大量的时间。
当在第一控制程序控制下被处理的中断完成之后,可以实施从该虚拟中断数映射回至该物理中断数,从而使用由此推知的物理中断数来触发向该中断信号的来源发信通知该完成。
将表征该中断信号的数据写入虚拟接口可以使用由该设备执行的第二控制程序(诸如举例来说,管理程序控制程序)来实施。
第一控制程序可能通过在第一控制程序的控制下将数据写入一个或多个接口寄存器,来写入指示对应于该相关联虚拟处理设备所进行的中断处理的处理的完成的数据。这能够提供一种发信通知中断结束事件的机构。
可以使用第二控制程序从一个或多个接口寄存器处读取指示中断处理的完成的数据,以通知该相关联虚拟处理设备所进行的中断处理已完成。这可能用来发信通知系统内其它层级(诸如产生原始中断且正在等待该中断的完成通知的物理设备)这种完成。
如上面提及,多个虚拟处理设备可以共享以硬件提供的虚拟接口,且在本文中,第二控制程序能够控制目前哪个虚拟处理设备正在使用该虚拟接口。如果第二控制程序为管理程序,则其通常会已经管理哪个虚拟机是活动的且因此当虚拟机被切换时虚拟接口的使用可能也被切换。
用于处理数据的设备可能是多处理设备(也就是,包含多个处理器核心的设备),且这些处理器中的每个可能具有以硬件提供的且依据该对应处理器正在支持哪个虚拟处理设备而受控的虚拟接口。
第二控制程序可能关于一个或多个虚拟处理设备中的每个维护表征未完成中断的数据,包括管理列表寄存器的内容和来自那些列表寄存器的任何溢出。
储存在列表寄存器内的未完成中断,可能代表已出现但尚未通知第一控制程序的一个或多个待处理的中断以及已通知第一控制程序但仍须由第一控制程序进行中断处理的一个或多个活动中断。
该数据处理设备可能使用外部中断控制器,其以硬件提供且具有一个或多个外部接口寄存器以管理从该处理设备外面接收物理中断信号。
从外部接口寄存器处读取表征中断信号的数据,能够用来向外部系统确认收到该中断信号。该外部中断控制器可能不会优先处理在多个中断信号输入处接收到的中断信号;或者可以利用配置标记进行切换,以便依据该数据处理设备的基本状态(举例来说,虚拟处理设备现在是否正在被模拟)优先处理。
用于处理数据的设备所接收到的物理中断可能具有和它们相关联的中断数,而由以硬件提供的虚拟接口所产生的虚拟中断信号可能具有和其相关联的虚拟中断数。第二控制程序能够实施该物理中断数与该虚拟中断数之间的映射。
第二控制程序能够在使用多处理器系统时选择多个虚拟处理设备中的哪个要用来实施该中断处理。可能的是,多个虚拟处理设备能够处理特定中断而该第二控制程序能够以试图改善总操作效率的方式指派中断给这些候选虚拟处理设备中的适当的设备。该第二控制程序也可能响应于软件产生的中断信号,取代用于处理数据的设备所接收到的物理中断信号。此类软件产生的中断信号可以由该第二控制程序本身产生。举例来说,这些软件产生的中断信号也可能由虚拟处理设备中的一个产生。
要明白的是,列表寄存器代表用于储存表征未完成中断的数据的有限资源。为解决此问题,如果一个或多个列表寄存器溢出,则第二控制程序可能缓冲表征未完成中断的数据。当该一个或多个列表寄存器内的闲置空间变得可用时,第二控制程序还能够用于以被该第二控制程序缓冲的且表征未完成中断的数据来再填该一个或多个列表寄存器。
可以通过由硬件提供与该第二控制程序的虚拟接口接着用被缓冲的未完成中断来填充空白空间以产生再填中断,来触发列表寄存器的再填。
该再填中断的产生可以由溢出标记来闸控,使得如果该第二控制程序未缓冲表征未完成中断的任何数据,则列表寄存器内的空白空间当其因其它中断完成而变成可用时无须立刻被再填。
该虚拟接口可能包含:优先级寄存器,储存指示与彷佛目前正在相关联虚拟数据处理设备上所实施的任何中断处理相关联的优先级等级的数据。以此方式用优先级寄存器来追踪(一个或多个)优先级等级,允许做出关于新出现的中断是否应该先占(pre-empt)既有中断处理以及其它控制措施的适当的控制判断。
虚拟中断信号的产生以及表征虚拟中断信号的数据的写入可以由该虚拟接口在硬件控制下来实施。
一个或多个列表寄存器能够储存各种不同格式的数据,例如表征以下特征的数据:物理中断数;虚拟中断数;多处理设备内关于软件中断的请求处理设备;优先级数值;有效标记;以及区分用于处理数据的所述设备所接收到的中断信号类型的标记。
列表寄存器能够储存指示相应未完成中断究竟是待处理中断还是正在动作中断的数据,举例来说,待处理/活动标记。
该一个或多个接口寄存器能够储存指示物理中断数和/或多处理设备内关于软件中断的请求处理设备的数据。
一个或多个控制寄存器可能与该虚拟接口相关联并且储存指示各种不同信息的数据,所述信息包含:与嵌套中断相关联的活动优先级列表;在没有在追踪所述中断处理的数据中的相应更新的情况下完成的中断处理的实例计数;指示要被缓冲的未完成中断的标记;优先级屏蔽数值;以及优先级二元点数值,和使能该虚拟接口的标记。
当产生虚拟中断信号时,其可能具有相关联的优先级数值,且产生虚拟中断信号的步骤可能依据该相关联优先级数值和储存在优先级寄存器内的优先级数值的比较,使得目前正被实施的中断处理不会因用于处理数据的设备接收到的较低优先级中断信号的原因而被中断。
此优先级控制可能依据以下中的一个或多个:优先级屏蔽数值(指示与目前活动中断处理相关联的优先级等级);以及优先级二元点数值(指示新中断应该超过正被处理的目前活动中断的量以便先占该目前活动中断)。
从本发明的另一方面来看,提供为一个或多个虚拟处理设备的提供虚拟化支持的用于处理数据的设备,所述设备包括:
外部中断接口电路系统,响应于用于处理数据的所述设备所接收到的中断信号而将表征所述中断信号的数据写入一个或多个外部接口寄存器以便和第二控制程序进行通信;以及
虚拟中断接口电路系统,提供至各个虚拟处理设备的虚拟接口,所述虚拟接口包含用于储存相关联虚拟处理设备的未完成中断的列表的一个或多个列表寄存器,所述未完成中断列表包含指示物理中断数和虚拟中断数的数据,所述一个或多个列表寄存器至少可由所述第二控制程序写入;其中
响应于所述列表寄存器内的未完成中断的所述列表,所述虚拟中断接口电路系统用来:
产生虚拟中断信号以触发中断处理,所述中断处理对应于所述相关联虚拟处理设备所进行的中断处理且在第一控制程序的控制下;以及
将表征所述虚拟中断信号的数据写入所述虚拟接口的所述虚拟中断接口电路系统内包含的一个或多个虚拟接口寄存器;
其中响应于在所述第一控制程序的控制下完成所述中断处理,将所述虚拟数据处理设备使用的虚拟中断数映射至与用于处理数据的所述设备接收到的所述中断信号相关联的物理中断数并且利用所述物理中断数来触发向所述中断信号的来源发信通知所述完成。
附图说明
现在将仅通过示例的方式参考附图来描述本发明的实施例,在所述附图中:
图1示意性地示出与支持虚拟数据处理设备的系统内的中断处理相关联的硬件与软件元件;
图2示意性地示出虚拟接口;
图3示意性地示出数据处理的设备,其包含外部中断接口与虚拟接口;
图4示出物理中断数与虚拟中断数之间的映射;
图5为示意性地示出管理程序软件对接收到中断信号的响应的流程图;
图6为示意性地示出虚拟接口硬件对程序化其中一个列表寄存器的响应的流程图;
图7为示意性地示出虚拟接口硬件对接收到中断确认信号的响应的流程图;
图8为示意性地示出客户操作系统对接收到虚拟中断信号的响应的流程图;
图9为示意性地示出虚拟接口硬件对接收到中断结束信号的响应的流程图;
图10为示意性地示出管理程序软件对再填中断的响应的流程图;
图11为示意性地示出管理程序为检查列表寄存器内的已完成中断而执行的处理的流程图;以及
图12为示意性地示出管理程序在背景切换(举例来说,虚拟机切换)时所执行的某些操作的流程图。
具体实施方式
图1示出支持虚拟数据处理设备的系统内的中断处理所涉及的硬件与软件的各部分。这些元件包含外部中断接口2,其可能具有英国剑桥的ARM有限公司所提供的类型的通用中断控制器(general interrupt controller, GIC)的形式。响应于该外部中断接口2的是管理程序软件4(第二控制程序),其与该外部中断接口2以及也以硬件提供的虚拟接口6交换信号。管理程序软件4负责指派物理中断给虚拟处理设备以及由一个或多个虚拟装置8来产生软件中断。管理程序软件4控制哪一个或哪些虚拟处理设备目前活动以及可能需要的此类虚拟处理设备之间的任何背景切换。
要明白的是,基础硬件可能是单处理器;或者,可能是多处理设备,例如在包含多个处理器核心的多处理器中。在有一个以上候选者处理所关心的中断的情况下,多处理实施例中的管理程序软件4负责指派特殊的中断给特殊的虚拟处理设备。
在虚拟接口6(VGIC)以下的层级提供客户操作系统软件10(第一控制程序),其从该虚拟接口6读取表征中断的数据以及将数据写至该虚拟接口(例如中断结束信号)作为管理/处置中断的一部分。客户操作系统10包含用于处理所接收到的中断信号的中断处置软件12。应用程序14和中断处置软件12在客户操作系统10上执行,彷佛它们正在该相关联的虚拟处理设备上执行。因此,针对一个特定处理器(或该处理器的实例/用途)被写入的应用软件14和中断处置器12可以在图1的系统内被重新使用而不需要大幅修改,因为虚拟接口6与管理程序4一起提供一种模拟它们连同周围中断机构一起被写入其中的特定处理器的环境。
在图1中所示的示例中使用单处理器核心并且客户操作系统10的两个实例被示为在进行背景切换时被切换。当进行此类虚拟机切换时,控制此切换的管理程序4也切换储存在该虚拟接口4内表征中断的数据(其包含由该管理程序储存在软件内的任何已缓冲数据),使得该虚拟接口内的数据目前可供正被支持的目前虚拟机使用。
图2示意性地示出虚拟接口硬件16。虚拟接口硬件16包含用于储存目前使用中的相关联虚拟机的未完成中断的列表的列表寄存器18。储存在每一个未完成中断的列表寄存器内的数据包含:物理中断数;虚拟中断数;多处理设备内关于软件中断的请求处理设备;优先级数值;有效标记;区分不同类型中断(物理/软件)的标记;以及其它数据,例如指示列表寄存器18内的特殊条目为空白的空白标记。虚拟接口硬件16内还提供接口寄存器20,用以提供表征要被传送至基础虚拟机以供该基础虚拟机处理的中断的数据。此数据可能包含寄存器,其被存取以确认中断、发信通知中断结束、发信通知优先级等级等。此虚拟接口硬件16中提供的接口寄存器20的配置方式和外部接口硬件2的配置方式相同。执行该客户操作系统的虚拟机能够和接口寄存器20互动,其方式如同那些接口寄存器为外部接口硬件的一部分。
列表寄存器18由管理程序4管理。接口寄存器20由客户操作系统管理。再者,被耦合至列表寄存器18与接口寄存器20两者的控制电路系统22用来控制这些硬件机构的互动,如下面将作进一步说明。本技术领域的人员会明白,控制电路系统22可能具有各种不同的物理形式,以便达到配合图6、7及9所示的操作。
图3示出集成电路24,其包含以响应于多个物理中断信号的通用中断控制器形式的外部接口硬件26。虚拟接口硬件28被提供在集成电路2内以配合彷佛在集成电路4所模拟的虚拟机上执行的客户操作系统使用。该集成电路内还包含一个或多个处理器核心30及用于储存软件(例如管理程序软件、客户操作系统软件、中断处置码、应用码等等)的存储器32。也可能存在物理装置(例如视频控制器34)以给集成电路24提供其它功能。如所示,外部接口硬件26受控于管理程序软件,而虚拟接口硬件28受控于客户操作系统。管理程序软件和客户操作系统两者皆在一个或多个处理器核心30上执行。如果提供多处理器核心30,则这些中的每个皆可能配备自己的虚拟接口硬件28。虚拟接口硬件28的此类多个实例可以由该管理程序软件共同管理,该管理程序软件在此实施例中还正在控制多处理器核心的执行。
图4示出给出外部接口硬件26所接收到的物理中断数、可以被选择来由该管理程序软件操作的虚拟机实例以及可以由那些虚拟机使用的虚拟中断数之间的映射的表。如所示,每个物理中断数均不同。给定虚拟机可能具有使用的多个虚拟中断数,举例来说,虚拟机#1使用虚拟中断数#1、#2和#7。给定虚拟机可能重新使用也被不同虚拟机使用的虚拟中断数,举例来说,虚拟机#2具有其自己的虚拟中断数#1与#2并且这些通常独立于虚拟机#1类似编号的虚拟中断。图4中所示的映射数据由管理程序软件来管理与使用以用表征外部接口硬件26收到的物理中断信号且需要由虚拟机中的一个来服务的数据填充列表寄存器18。当中断通过虚拟机中的一个完成处理且其希望经由外部接口硬件26通知外部硬件此类完成时,此数据也可以用来实施适当的反向映射。
外部接口硬件26可以通过适当的标记被配置成不优先处理其物理地接收的中断而将优先级留给基础管理程序软件。可选地,外部接口硬件26可以根据已知的中断控制器技术提供某种优先级措施(如果这是期望的话)。在某些实施例中,当外部接口硬件26被管理程序软件读取以确定已收到的物理中断的细节时,这被外部接口硬件26视为中断确认信号。接着,一旦处置该中断的虚拟机已完成处理且经由虚拟接口硬件28将此发信通知至外部接口硬件26,可以随后针对所关心的中断送出中断结束信号。因此,客户操作系统会在虚拟接口28上写至(接口寄存器20内的)EOI中断,虚拟接口28会使用储存在列表寄存器18中的物理中断数将EOI通知直接转发到外部接口硬件26(真实GIC)。
图5为当从外部接口硬件26处接收物理中断信号或者接收由虚拟装置在该管理程序软件内部产生或由在虚拟机中的一个上执行的软件且经由该管理程序软件产生的软件中断信号时该管理程序软件的动作的流程图。在步骤36处,管理程序接收中断信号且被向量引导(vector)至预设部分的码处以处理该中断信号。在步骤38处,管理程序读取外部接口硬件26以确定已出现的物理中断的物理中断数。在步骤40处,管理程序软件在图4的表数据内找出哪一个虚拟机要处置该物理中断信号以及什么是所关心的物理中断的虚拟中断数。步骤40为利用管理程序软件开始处理软件中断的时点。要明白的是,在图4中所示的每一个物理中断皆已事先分配要处置该物理中断的虚拟机。该管理程序软件还可以动态指派应该使用哪一个虚拟机来处置特殊的物理中断,举例来说,依据不同虚拟机的负载/状态。
返回图5,步骤42判断要用来处置所接收到的中断的虚拟机是否为目前活动虚拟机。如果并非如此,则该中断在步骤44处被加入目标虚拟机的待处理中断列表。目前非活动虚拟机的待处理列表为由该管理程序软件管理且详述每一个非活动虚拟机的待处理中断的可能多个此类列表中的一个。当调度虚拟机时,其中断待处理列表数据则作为背景切换操作的一部分被写入列表寄存器18与接口寄存器20中。步骤46判断是否需要因新收到中断信号而重新调度目前活动虚拟机(虚拟处理设备)。如果需要此类重新调度,则在步骤48处利用背景切换来实施此,如将配合图12进行描述的。如果不需要重新调度,则处理前进至步骤50,在该处返回到客户操作系统。在这种情况下,待处理中断已被管理程序记录并且在相关联的虚拟机被该管理程序软件调度来执行时将由该虚拟机及时地处理。
步骤52判断表征所接收到的中断的数据是否可以被写入列表寄存器18内,也就是,列表寄存器18内是否有足够的空间。可以通过搜寻被标记为空白的条目来达到此目的。可选地,该软件可以事先分开维护那些条目为空白的列表,以避免需要实施搜寻。如果有足够空间,则步骤54如前面所述地利用表征所接收到的中断的数据来程序化列表寄存器。在步骤54处将数据写到列表寄存器18用来触发更新与被储存在列表寄存器18内的各种中断相关联的虚拟中断状态。此状态更新根据图6中所示的处理在控制电路系统22的硬件控制下被实施。
如果步骤52处的判断是列表寄存器18中没有空间供新收到的中断使用,则处理前进至步骤56,在该处检查列表寄存器18以查看它们是否包含任何已完成中断。此已完成中断检查可以根据下面配合图11所述的处理来实施。如果在列表寄存器18内找到已完成中断,则其从列表寄存器处被清空。步骤48判断列表寄存器18内现在是否有空间供新收到的中断使用。如果因在步骤56处移除已完成中断而有空间可用,则处理前进至步骤54。如果列表寄存器18内仍然没有空间,则步骤60判断该新中断的优先级是否高于已经存在于列表寄存器18内的任何中断。如果该新中断具有较高优先级,则其可以取代列表寄存器18内的较低优先级中断(优选地是最低优先级中断),被移除的中断被置入管理程序软件所保存的软件列表中。溢出位也被设定,以指示除了列表寄存器18中的中断以外还有待处理中断。这些处理步骤被示于步骤62与64中。接着处理前进至步骤54。
如果步骤60处的判断是该新中断的优先级没有高于填充列表寄存器18的既有中断,则步骤66设定溢出状态位且新收到的中断被加入软件中的管理程序内所保存的待处理中断列表。在步骤54与66之后,处理前进至步骤50,在该处返回到客户操作系统。
图5中实施的处理在本示例实施例中受控于管理程序软件且由该管理程序软件完成(action)。要明白的是,由此把图5中所示的部分功能移到硬件中的其它布置也将是可能的。一般来说,硬件中实施的功能和软件中实施的功能之间的划分可以不同于本文所述的示例实施例,不过依然采用本技术。
图6为每当对列表寄存器18进行写入时对那些列表寄存器内所保存的虚拟中断所实施的状态更新操作(举例来说,图5中的步骤54)的流程图。图6中所示的处理是在硬件控制下实施,也就是,在图2中所示的控制电路系统22的控制下实施。
在步骤68处,识别寄存器列表18内的最高优先级待处理中断和最高优先级活动中断。步骤68处的判断识别是否没有待处理中断(如果列表寄存器18内的所有数据被写入从而清除该数据(也就是,所有条目皆被标示为空白)则可能出现此结果)。在这种情况下,处理前进至步骤72,在该处使被供应至处理器核心30的虚拟中断信号VINT无效(deassert)。
嵌套中断可能正由目前的虚拟机来处置,使得至少一个中断被部分地处理(活动)。如果步骤70处的判断为有某些待处理中断,则步骤74判断最高优先级待处理中断的优先级是否大于最高优先级活动中断的优先级。如果并非如此,则不需要响应于写到列表寄存器18来进行任何动作,因为目前活动中断仍然适用。因此,处理可能前进至步骤72。
步骤76判断最高优先级待处理中断的优先级是否超过构成部分列表寄存器18的优先级屏蔽寄存器中所储存的优先级。如果最高优先级待处理中断确实超过优先级屏蔽寄存器指示,则处理前进至步骤78,在该处使虚拟中断信号VINT有效(assert)以便触发相关联处理器的客户操作系统以向量引导至其中断处置器12中的一个,以读取虚拟接口硬件28并且开始处理新抵达的中断。
优先级二元点数值也可能与列表寄存器18相关联(也就是,储存在图2中示出为“状态(Status)”的控制寄存器内)。该二元点数值可以定义新收到中断的优先级必须超过先前活动中断的优先级以便先占该先前活动中断的量。情况可能是,只要新收到中断的优先级明显大于目前活动的中断,就将容许先占该目前活动中断而不必等待其完成。存在和从一个中断至另一中断的切换相关联的开销,其可能无法由新收到中断的优先级超过目前中断的优先级的程度来证实。
图7示出当接口寄存器20内的中断确认寄存器被读取从而触发产生中断确认信号时在控制电路系统22的控制下由虚拟接口硬件16所实施的处理。当收到此中断时,则步骤80用来识别列表寄存器18内的最高优先级待处理中断和最高优先级活动中断。接着,步骤82、84和86识别表征目前正被处理的中断的系统的中断确认与状态是否是自洽的。如果步骤82、84和86中的任何测试失败,则处理前进至步骤88,在该处返回指示伪中断处理的信号(此数值为从中断确认寄存器处读取的结果)。如果步骤82、84和86全部通过,则步骤90用来将要被确认的列表寄存器18内所保存的中断的状态设为活动。步骤92设定优先级位,对应于形成如图2中所示的优先级寄存器部分的优先级寄存器内现在活动中断的优先级。步骤94根据图6来触发该状态的更新。作为读取该中断确认寄存器的结果,步骤96返回该现在活动的中断的虚拟机中断数。
图8示出客户操作系统软件对中断的处理。在步骤98处,该客户操作系统接收虚拟中断信号(举例来说,参见图6的步骤78)。在步骤100处,客户操作系统从接口寄存器20处读取虚拟机中断数。步骤102使用此虚拟机中断数来选择适当的处置软件12。接着,步骤104执行此中断处置软件12。当该处置软件已完成执行时,其在步骤106处通过写入接口寄存器20内的中断结束寄存器来发送中断结束信号给虚拟接口硬件16。步骤108代表返回到其正常处理流程(例如执行图1中所示的应用程序14中的一个)的客户操作系统。
图9示出虚拟接口硬件16对根据图8的步骤106向接口寄存器20通知的中断结束事件的响应。步骤110用来找出列表寄存器18内的最高优先级活动中断。如果如在步骤112处判断的那样找到此中断,则步骤114将此中断标示为已完成。如果物理中断数针对现在完成的中断被设定,则这在步骤116处被判断(经设定的物理中断区分该现在完成的中断和由软件产生的中断和/或识别该物理中断为需要中断结束确认的中断)。如果在步骤116处识别物理中断数,则步骤118发送中断结束信号给外部中断接口26。如果未设定物理中断数,则步骤118被略过。
步骤120在优先级寄存器内清除该现在完成的中断的优先级位。步骤122判断列表寄存器18内是否有任何待处理或活动中断。如果没有任何此类待处理或活动中断,则处理前进至步骤124,在该处实施根据图6的状态更新操作。如果列表寄存器18内有待处理或活动中断,则处理前进至步骤126,在该处判断溢出状态位是否被设定以指示该管理程序软件具有和尚未被写入列表寄存器18中的其它待处理中断有关的细节。如果溢出位并未被设定,则处理再次前进至步骤124。如果溢出状态位被设定,则处理前进至步骤128,在该处在处理前进至步骤124之前使再填中断有效。该管理程序软件如图10中的讨论那样来响应于再填中断。
如果步骤112处的判断是列表寄存器18内目前不存在任何活动中断,则步骤130清除被设定在优先级寄存器内的最高优先级位。步骤132接着使该管理程序软件的再填中断有效,而步骤134递增已被接收但尚未通过将对应中断标示为已完成而被处理的待处理中断结束信号的已储存计数。
图9中所示的处理是在控制电路系统22所控制的虚拟接口硬件16的硬件控制下实施的。
图10示出管理程序软件对再填中断的响应。步骤136处,该再填中断触发指向该管理程序软件的预设部分的向量。步骤138接着实施对列表寄存器18内已完成的中断的检查并且从该列表中移除任何已完成的中断,如将配合图11进行描述的。
步骤140判断待处理中断结束计数(参见图9的步骤134)是否超过零。如果待处理中断结束计数没有超过零,则处理前进至步骤142,在该处判断列表寄存器18内是否有任何空白槽。如果有此类空白槽,则步骤144在该管理程序以软件维护的列表中找出最高优先级的待处理或活动中断,其中该最高优先级的待处理或活动中断先前不存在于列表寄存器18内。在某些实施例中,中断可能在该管理程序的软件列表内被指出并且同时在列表寄存器18内被指出。在本示例实施例中,中断被列在该管理程序或列表寄存器18所维护的其中一个软件体列表内。
如果步骤146指示已在步骤144处识别了此类最高优先级中断,则步骤148用来将此条目拷贝至列表寄存器18中。对列表寄存器18进行此写入会触发根据图6的状态更新。此时处理返回到步骤142以判断硬件列表内是否有任何进一步的空白槽。
如果步骤146指示管理程序维护的软件列表内没有保存任何待处理或活动中断,则处理前进至步骤150,在该处在从该再填中断返回之前清除溢出状态位。
如果步骤142处的判断是列表寄存器18内没有任何空白槽,则步骤152判断管理程序所维护的软件列表是否为空白。如果此列表为空白,则步骤150清除溢出状态位。如果该软件维护的列表非空白,则步骤154设定该溢出状态位(其可能已经被设定)。
如果步骤140处的判断是待处理中断结束计数大于零,则处理前进至步骤156,在该处识别该软件维护的列表上的最高优先级的活动中断。接着步骤158判断是否针对该软件列表上的该最高优先级的活动中断来设定物理中断数。如果此物理中断数被设定,则这指示应该在步骤160处经由外部中断接口26发送中断结束信号。如果未设定任何物理中断数,则步骤160可以被略过。步骤162删除从该软件维护的列表中识别的中断,而步骤164在让处理返回到步骤140之前递减中断结束计数。
图11示出管理程序软件为实施前面讨论的完成中断操作的检查而实施的处理。步骤166找出硬件列表18内被标示为完成的任何条目。如果步骤168判断没有找到任何此类条目,则处理前进至步骤170,在该处终止此检查。如果找到此类完成条目,则步骤170在该软件维护的列表内找出任何对应的条目。步骤172与174接着在必要时从该软件列表及从相关的列表寄存器18处删除已完成的条目。要明白的是,在此图11示例中,中断被维护在软件列表与列表寄存器18两者中。如果中断仅被维护在这些地方之一中,则可以从该硬件列表处删除该硬件列表中已完成的条目(举例来说,该条目被标示为空白)而不需要将其从软件列表处删除,因为软件列表中不会存在任何拷贝。这些维护操作的性能给管理程序呈现这样的机会:视该中断完成的情况来实施任何工作(对软件产生的中断来说,这可能涉及回呼(callback)以指示处理完成)。这也呈现这样的机会:在上面配合图5讨论的空白槽列表中加入现在空闲的槽。
图12示出管理程序在背景切换时(也就是,在虚拟机改变时)所实施的处理。步骤176检查已完成的中断。已完成中断的该检查可以是根据图11的示例。步骤178接着利用来自硬件列表(列表寄存器18)的数据更新由管理程序管理的软件维护的待处理中断列表。此软件列表是针对进行切换的虚拟机之外的虚拟机并且可在切换回到该虚拟机时回复(reinstated)。步骤180将所有列表寄存器18标示为空白。步骤182在要被切换至的新虚拟机的软件列表中找出最高优先级中断,而步骤184将这些识别的最高优先级中断写入列表寄存器18中。要明白的是,在切换虚拟机切换时会实施大量的进一步额外处理且图12中所示的步骤对应于切换虚拟中断硬件的背景和相关联软件列表所需要的动作。
Claims (55)
1.一种使用为一个或多个虚拟处理设备提供虚拟化支持的用于处理数据的设备来处理中断信号的方法,所述方法包括以下步骤:
响应于用于处理数据的所述设备所接收到的中断信号,将表征所述中断信号的数据写入各个虚拟处理设备的一个或多个虚拟接口中的至少一个,所述一个或多个虚拟接口以硬件提供且分别包含储存相关联虚拟处理设备的未完成中断列表的一个或多个列表寄存器,所述未完成中断列表包含指示物理中断数和虚拟中断数的数据;
响应于所述至少一个虚拟接口的所述列表寄存器内的所述未完成中断列表,产生虚拟中断信号以触发与所述相关联虚拟处理设备所进行的中断处理相应的中断处理,所述至少一个虚拟接口具有用于提供表征所述虚拟中断信号的一个或多个接口寄存器;
响应于所述虚拟中断信号,使用在所述相关联虚拟处理设备上执行的第一控制程序以从所述一个或多个接口寄存器处读取表征所述中断信号的所述数据;以及
响应于从所述一个或多个接口寄存器处读取的表征所述中断信号的所述数据,实施在所述第一控制程序的控制下的且对应于所述相关联虚拟处理设备所进行的中断处理的中断处理;
其中响应于在所述第一控制程序的控制下完成所述中断处理,将所述虚拟数据处理设备使用的虚拟中断数映射至与用于处理数据的所述设备接收到的所述中断信号相关联的物理中断数并且利用所述物理中断数来触发向所述中断信号的来源发信通知所述完成。
2.如权利要求1所述的方法,其中所述将表征所述中断信号的数据写入一个或多个虚拟接口中的所述至少一个是使用由用于处理数据的所述设备所执行的第二控制程序来实施的。
3.如权利要求2所述的方法,进一步包括以下步骤:在所述第一控制程序的控制下,将指示所述中断处理的完成的数据写入所述一个或多个接口寄存器。
4.如权利要求3所述的方法,进一步包括以下步骤:使用所述第二控制程序从所述一个或多个接口寄存器处读取指示所述中断处理的完成的数据,以将所述相关联虚拟处理设备所进行的所述中断处理记为已完成。
5.如权利要求2-4中任一项所述的方法,其中多个虚拟处理设备共享以硬件提供的虚拟接口,且所述第二控制程序控制目前哪个虚拟处理设备正在使用所述虚拟接口。
6.如权利要求1所述的方法,其中用于处理数据的所述设备是包括多个处理器的多处理设备,每一个处理器皆具有以硬件提供的虚拟接口,所述虚拟接口依据所述处理器正在支持哪一个虚拟处理设备而受控。
7.如权利要求2所述的方法,其中所述第二控制程序关于所述一个或多个虚拟处理设备中的每一个维护表征未完成中断的数据。
8.如权利要求2所述的方法,其中所述第二控制程序管理所述一个或多个列表寄存器中表征未完成中断的数据的换入与换出,以便对应于目前活动的虚拟处理设备。
9.如权利要求7所述的方法,其中所述未完成中断包括以下中的一个或多个:
待处理中断,因用于处理数据的所述设备接收到的所述中断信号而引起的且尚未通知所述第一控制程序;以及
活动中断,已经通知所述第一控制程序且仍在所述第一控制程序的控制下经受所述中断处理。
10.如权利要求2所述的方法,包括:
在外部中断控制器的多个中断信号输入中的一个处接收所述中断信号;
响应于所述中断信号,提供表征要从所述外部中断控制器的一个或多个外部接口寄存器中的一个处被读取的所述中断信号的原始数据给所述外部中断控制器;以及
作为所述中断处理的一部分利用所述第二控制程序来从外部接口寄存器处读取表征所述中断信号的所述原始数据以响应于所述中断信号。
11.如权利要求10所述的方法,其中所述利用所述第二控制程序来从所述外部接口寄存器处读取表征所述中断信号的所述原始数据用来确认所述中断信号的接收。
12.如权利要求10或11所述的方法,其中所述外部中断控制器不会优先处理在多个中断信号输入处接收到的中断信号。
13.如权利要求12所述的方法,其中所述外部中断控制器响应于配置标记的设定而切换成优先处理在多个中断信号输入处接收到的中断信号。
14.如权利要求2所述的方法,其中用于处理数据的所述设备所接收到的所述中断信号具有物理中断数,所述虚拟中断信号具有虚拟中断数,且所述第二控制程序用来在所述物理中断数和所述虚拟中断数之间进行映射。
15.如权利要求2所述的方法,其中所述第二控制程序选择所述多个虚拟处理设备中的哪一个要用来实施所述中断处理。
16.如权利要求2所述的方法,其中所述第二控制程序还响应于软件产生的中断信号来取代用于处理数据的所述设备所接收到的所述中断信号。
17.如权利要求16所述的方法,其中所述软件产生的中断信号被产生在所述第二控制程序内。
18.如权利要求16和17中任一项所述的方法,其中所述软件产生的中断信号由虚拟处理设备中的一个所产生。
19.如权利要求2所述的方法,其中如果所述一个或多个列表寄存器溢出,则所述第二控制程序缓冲表征未完成中断的数据。
20.如权利要求19所述的方法,其中当所述一个或多个列表寄存器内的闲置空间变得可用时,所述第二控制程序用被所述第二控制程序缓冲的且表征未完成中断的所述数据来再填所述一个或多个列表寄存器。
21.如权利要求20所述的方法,其中当所述中断处理在所述第一控制程序的控制下已完成且所述第二控制程序正在缓冲表征未完成中断的数据时,以硬件提供的所述一个或多个虚拟接口产生再填中断以触发由所述第二控制程序进行的所述再填。
22.如权利要求21所述的方法,其中所述再填中断的产生受控于溢出标记,所述溢出标记是在所述第二控制程序正在缓冲表征未完成中断的数据时由所述第二控制程序设定的。
23.如权利要求21或22所述的方法,其中以硬件提供的所述一个或多个虚拟接口包含计数器寄存器,其被配置成维护在所述第二控制程序能够响应于所述再填中断之前已完成的中断处理实例的计数。
24.如权利要求1所述的方法,其中所述至少一个虚拟接口包含储存优先级数据的优先级寄存器,所述优先级数据指示与目前正在所述相关联虚拟数据处理设备上所实施的任何中断处理相关联的优先级等级。
25.如权利要求1所述的方法,其中所述虚拟中断信号的所述产生和表征所述虚拟中断信号的所述数据的所述写入是在所述虚拟接口的硬件控制下实施的。
26.如权利要求1所述的方法,其中一个或多个列表寄存器储存指示以下中的一个或多个的数据:
多处理设备内关于软件中断的请求处理设备;
优先级数值;
有效标记;以及
区分用于处理数据的所述设备所接收到的中断信号的类型的标记。
27.如权利要求9所述的方法,其中一个或多个列表寄存器储存指示对应未完成中断是待处理中断还是活动中断的数据。
28.如权利要求1所述的方法,其中一个或多个接口寄存器储存指示以下中的一个或多个的数据:
物理中断数;以及
多处理设备内关于软件中断的请求处理设备。
29.如权利要求1所述的方法,其中与所述虚拟接口相关联的一个或多个控制寄存器储存指示以下中的一个或多个的数据:
与嵌套中断相关联的活动优先级列表;
在没有在追踪所述中断处理的数据中的相应更新的情况下完成的中断处理的实例的计数;
指示被缓冲的未完成中断的标记;
优先级屏蔽数值;
优先级二元点数值;以及
使能所述虚拟接口的标记。
30.如权利要求2所述的方法,其中所述第二控制程序是管理程序控制程序。
31.如权利要求1所述的方法,其中所述第一控制程序是客户操作系统程序。
32.如权利要求24所述的方法,其中用于处理数据的所述设备所接收到的所述中断信号具有相关联的优先级数值,且所述响应于所述至少一个虚拟接口的所述列表寄存器内的所述未完成中断列表而产生虚拟中断信号的所述步骤是依据所述相关联优先级数值和被储存在所述优先级寄存器中的所述优先级数据的比较,使得目前正被实施的中断处理不会因用于处理数据的所述设备接收到的较低优先级中断信号而被中断。
33.如权利要求32所述的方法,其中所述比较还依据优先级屏蔽数值和优先级二元点数值中的一个或多个。
34.一种为一个或多个虚拟处理设备提供虚拟化支持的用于处理数据的设备,所述设备包括:
外部中断接口电路系统,响应于用于处理数据的所述设备所接收到的中断信号而将表征所述中断信号的数据写入一个或多个外部接口寄存器以便和第二控制程序进行通信;以及
虚拟中断接口电路系统,提供至各个虚拟处理设备的虚拟接口,所述虚拟接口包含储存相关联虚拟处理设备的未完成中断列表的一个或多个列表寄存器,所述一个或多个列表寄存器至少能由所述第二控制程序写入,所述未完成中断列表包含指示物理中断数和虚拟中断数的数据,其中,所述虚拟中断接口电路系统被配置成响应于所述列表寄存器内的所述未完成中断列表而产生虚拟中断信号以触发中断处理并将表征所述虚拟中断信号的数据写入所述虚拟接口的所述虚拟中断接口电路系统内包含的一个或多个虚拟接口寄存器,所述中断处理对应于所述相关联虚拟处理设备所进行的中断处理且在第一控制程序的控制下,
其中,响应于在所述第一控制程序的控制下完成所述中断处理,所述未完成中断列表中包含的所述虚拟数据处理设备使用的虚拟中断数被映射至与用于处理数据的所述设备接收到的所述中断信号相关联的物理中断数,所述虚拟接口利用所述物理中断数来触发向所述中断信号的来源发信通知所述完成。
35.如权利要求34所述的设备,其中所述一个或多个虚拟接口寄存器包含字段,该字段被指派给在所述第一控制程序的控制下的对指示所述中断处理的完成的数据的写入。
36.如权利要求34或35所述的设备,其中所述一个或多个虚拟接口寄存器包含字段,该字段被指派给由所述第二控制程序进行的对指示所述中断处理的完成的数据的读取,从而将所述相关联虚拟处理设备所进行的所述中断处理记为已完成。
37.如权利要求34所述的设备,其中多个虚拟处理设备共享所述虚拟中断接口电路系统,且所述第二控制程序控制目前哪个虚拟处理设备正在使用所述虚拟中断接口电路系统。
38.如权利要求34所述的设备,其中用于处理数据的所述设备是包括多个处理器的多处理设备,每一个处理器皆具有以硬件提供的虚拟接口,所述虚拟接口依据所述处理器正在支持哪一个虚拟处理设备而受控。
39.如权利要求34所述的设备,其中利用所述第二控制程序来从外部接口寄存器处对表征所述中断信号的所述数据的读取用来触发所述外部中断接口电路系统以确认所述中断信号的接收。
40.如权利要求34所述的设备,其中所述外部中断接口电路系统不会优先处理在多个中断信号输入处接收到的中断信号。
41.如权利要求40所述的设备,其中所述外部中断接口电路系统响应于配置标记的设定而切换成优先处理在多个中断信号输入处接收到的中断信号。
42.如权利要求34所述的设备,其中如果所述一个或多个列表寄存器溢出,则所述第二控制程序缓冲表征未完成中断的数据。
43.如权利要求42所述的设备,其中当所述一个或多个列表寄存器内的闲置空间变得可用时,所述第二控制程序用被所述第二控制程序缓冲的且表征未完成中断的所述数据来再填所述一个或多个列表寄存器。
44.如权利要求43所述的设备,其中当所述中断处理在所述第一控制程序的控制下已完成且所述第二控制程序正在缓冲表征未完成中断的数据时,所述虚拟中断接口电路系统产生再填中断以触发由所述第二控制程序进行的所述再填。
45.如权利要求44所述的设备,其中所述再填中断的产生受控于溢出标记,所述溢出标记在所述第二控制程序正在缓冲表征未完成中断的数据时由所述第二控制程序来设定。
46.如权利要求44所述的设备,其中所述虚拟中断接口电路系统包含计数器寄存器,其被配置成维护在所述第二控制程序能够响应于所述再填中断之前已完成的中断处理的实例的计数。
47.如权利要求34所述的设备,其中所述虚拟中断接口电路系统包含储存优先级数据的优先级寄存器,所述优先级数据指示与目前正在相关联虚拟数据处理设备上所实施的任何中断处理相关联的优先级等级。
48.如权利要求34所述的设备,其中一个或多个列表寄存器储存指示以下中的一个或多个的数据:
多处理设备内关于软件中断的请求处理设备;
优先级数值;
有效标记;以及
区分用于处理数据的所述设备所接收到的中断信号的类型的标记。
49.如权利要求34所述的设备,其中一个或多个列表寄存器储存指示相应未完成中断是否是以下一个的数据:
待处理中断,其因用于处理数据的所述设备接收到所述中断信号而引起但尚未通知所述第一控制程序;以及
活动中断,其已通知所述第一控制程序且仍在所述第一控制程序的控制下经受所述中断处理。
50.如权利要求34所述的设备,其中一个或多个虚拟接口寄存器储存指示以下中的一个或多个的数据:
物理中断数;以及
多处理设备内关于软件中断的请求处理设备。
51.如权利要求34所述的设备,其中与所述虚拟中断接口电路系统相关联的一个或多个控制寄存器储存指示以下中的一个或多个的数据:
与嵌套中断相关联的活动优先级列表;
在没有在追踪所述中断处理的数据中的相应更新的情况下完成的且能让被实施的第二控制程序存取的中断处理的实例的计数;
指示要被所述第二控制程序缓冲的未完成中断的标记;
优先级屏蔽数值;
优先级二元点数值;以及
使能所述虚拟接口的标记。
52.如权利要求34所述的设备,其中所述第二控制程序是管理程序控制程序。
53.如权利要求34所述的设备,其中所述第一控制程序是客户操作系统程序。
54.如权利要求47所述的设备,其中用于处理数据的所述设备所接收到的所述中断信号具有相关联优先级数值,且所述虚拟中断接口电路系统依据所述相关联优先级数值和被储存在所述优先级寄存器中的所述优先级数据的比较来响应于所述中断信号的接收而产生虚拟中断信号,使得目前正被实施的中断处理不会因用于处理数据的所述设备接收到的较低优先级中断信号而被中断。
55.如权利要求54所述的设备,其中所述比较还依据优先级屏蔽数值和优先级二元点数值中的一个或多个。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0813794.5A GB2462258B (en) | 2008-07-28 | 2008-07-28 | Interrupt control for virtual processing apparatus |
GB0813794.5 | 2008-07-28 | ||
PCT/GB2009/001398 WO2010012970A1 (en) | 2008-07-28 | 2009-06-03 | Interrupt control for virtual processing apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102105871A CN102105871A (zh) | 2011-06-22 |
CN102105871B true CN102105871B (zh) | 2015-04-29 |
Family
ID=39747067
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980129320.4A Active CN102105871B (zh) | 2008-07-28 | 2009-06-03 | 虚拟处理设备的中断控制 |
Country Status (10)
Country | Link |
---|---|
US (1) | US8131901B2 (zh) |
EP (1) | EP2307972B1 (zh) |
JP (1) | JP5499029B2 (zh) |
KR (1) | KR101607905B1 (zh) |
CN (1) | CN102105871B (zh) |
GB (1) | GB2462258B (zh) |
IL (1) | IL210062A (zh) |
MY (1) | MY151287A (zh) |
TW (1) | TWI511049B (zh) |
WO (1) | WO2010012970A1 (zh) |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009157178A1 (ja) * | 2008-06-24 | 2009-12-30 | パナソニック株式会社 | 仮想計算機制御装置、仮想計算機制御プログラム及び仮想計算機制御回路 |
GB2462258B (en) * | 2008-07-28 | 2012-02-08 | Advanced Risc Mach Ltd | Interrupt control for virtual processing apparatus |
US8180944B2 (en) * | 2009-01-26 | 2012-05-15 | Advanced Micro Devices, Inc. | Guest interrupt manager that records interrupts for guests and delivers interrupts to executing guests |
US8689213B2 (en) * | 2009-12-14 | 2014-04-01 | Citrix Systems, Inc. | Methods and systems for communicating between trusted and non-trusted virtual machines |
EP2513792B1 (en) * | 2009-12-17 | 2016-08-17 | Intel Corporation | Cooperated interrupt moderation for a virtualization environment |
US8566492B2 (en) * | 2009-12-31 | 2013-10-22 | Intel Corporation | Posting interrupts to virtual processors |
US20110197004A1 (en) * | 2010-02-05 | 2011-08-11 | Serebrin Benjamin C | Processor Configured to Virtualize Guest Local Interrupt Controller |
JP5508903B2 (ja) * | 2010-03-05 | 2014-06-04 | ルネサスエレクトロニクス株式会社 | 情報処理装置、半導体集積回路装置および異常検出方法 |
KR20120065097A (ko) * | 2010-12-10 | 2012-06-20 | 한국전자통신연구원 | 단말 가상화 환경에서 사용자 입력 처리 성능 향상을 위한 인터럽트 처리 장치 및 그 방법 |
JP5639913B2 (ja) * | 2011-02-02 | 2014-12-10 | 株式会社日立製作所 | 計算機システム、及びその制御方法 |
US8949498B2 (en) * | 2011-08-11 | 2015-02-03 | Mellanox Technologies Ltd. | Interrupt handling in a virtual machine environment |
US8886862B2 (en) | 2011-08-11 | 2014-11-11 | Mellanox Technologies Ltd. | Virtualization of interrupts |
CN102339230B (zh) * | 2011-09-01 | 2014-01-29 | 西安交通大学 | 复用客户操作系统设备驱动的实现方法 |
US9547546B2 (en) * | 2012-03-12 | 2017-01-17 | Nxp Usa, Inc. | Interrupt supervision system, processing system and method for interrupt supervision |
US9229884B2 (en) | 2012-04-30 | 2016-01-05 | Freescale Semiconductor, Inc. | Virtualized instruction extensions for system partitioning |
US9152587B2 (en) * | 2012-05-31 | 2015-10-06 | Freescale Semiconductor, Inc. | Virtualized interrupt delay mechanism |
CN102799465B (zh) * | 2012-06-30 | 2015-05-27 | 华为技术有限公司 | 分布式虚拟化系统的虚拟中断管理方法及装置 |
US9442870B2 (en) | 2012-08-09 | 2016-09-13 | Freescale Semiconductor, Inc. | Interrupt priority management using partition-based priority blocking processor registers |
US9436626B2 (en) | 2012-08-09 | 2016-09-06 | Freescale Semiconductor, Inc. | Processor interrupt interface with interrupt partitioning and virtualization enhancements |
US9009368B2 (en) | 2012-10-23 | 2015-04-14 | Advanced Micro Devices, Inc. | Interrupt latency performance counters |
US9075789B2 (en) * | 2012-12-11 | 2015-07-07 | General Dynamics C4 Systems, Inc. | Methods and apparatus for interleaving priorities of a plurality of virtual processors |
US9104490B2 (en) * | 2012-12-27 | 2015-08-11 | Intel Corporation | Methods, systems and apparatuses for processor selection in multi-processor systems |
KR101499668B1 (ko) * | 2013-01-31 | 2015-03-06 | 주식회사 시큐아이 | 가상 실행 환경에서 네트워크 프레임을 전달하기 위한 장치 및 방법 |
US9158569B2 (en) | 2013-02-11 | 2015-10-13 | Nvidia Corporation | Virtual interrupt delivery from a graphics processing unit (GPU) of a computing system without hardware support therefor |
US9329880B2 (en) | 2013-02-13 | 2016-05-03 | Red Hat Israel, Ltd. | Counter for fast interrupt register access in hypervisors |
US10331589B2 (en) * | 2013-02-13 | 2019-06-25 | Red Hat Israel, Ltd. | Storing interrupt location for fast interrupt register access in hypervisors |
US9063918B2 (en) * | 2013-02-15 | 2015-06-23 | International Business Machines Corporation | Determining a virtual interrupt source number from a physical interrupt source number |
US9378162B2 (en) | 2013-05-21 | 2016-06-28 | Arm Limited | Handling and routing interrupts to virtual processors |
US9330035B2 (en) * | 2013-05-23 | 2016-05-03 | Arm Limited | Method and apparatus for interrupt handling |
CN103559085B (zh) * | 2013-10-21 | 2016-10-05 | 福建星网锐捷通讯股份有限公司 | 一种嵌入式系统中进行中断以及临界事件管理操作的方法 |
US10380047B2 (en) | 2014-04-07 | 2019-08-13 | Mellanox Technologies, Ltd. | Traffic-dependent adaptive interrupt moderation |
US9910699B2 (en) | 2014-10-28 | 2018-03-06 | Intel Corporation | Virtual processor direct interrupt delivery mechanism |
US9952987B2 (en) * | 2014-11-25 | 2018-04-24 | Intel Corporation | Posted interrupt architecture |
US10467161B2 (en) | 2016-05-25 | 2019-11-05 | Mellanox Technologies, Ltd. | Dynamically-tuned interrupt moderation |
US10552212B2 (en) * | 2016-11-28 | 2020-02-04 | Arm Limited | Data processing |
US10423446B2 (en) | 2016-11-28 | 2019-09-24 | Arm Limited | Data processing |
US10671426B2 (en) | 2016-11-28 | 2020-06-02 | Arm Limited | Data processing |
CN109753341A (zh) * | 2017-11-07 | 2019-05-14 | 龙芯中科技术有限公司 | 虚拟接口的创建方法和装置 |
US11080088B2 (en) * | 2018-12-19 | 2021-08-03 | Intel Corporation | Posted interrupt processing in virtual machine monitor |
US11308215B2 (en) | 2019-03-08 | 2022-04-19 | International Business Machines Corporation | Secure interface control high-level instruction interception for interruption enablement |
CN111752877A (zh) * | 2019-03-27 | 2020-10-09 | 阿里巴巴集团控股有限公司 | 一种处理器及其中的中断控制器 |
US11204796B2 (en) | 2019-04-11 | 2021-12-21 | International Business Machines Corporation | Dynamic assignment of interrupts based on input/output metrics |
US11194611B2 (en) | 2019-07-29 | 2021-12-07 | International Business Machines Corporation | Dynamic assignment of interrupts based on input/output metrics |
CN111338761B (zh) * | 2020-02-28 | 2023-10-03 | 深圳航天科技创新研究院 | 一种51单片机虚拟中断控制器及实现方法 |
US11579920B2 (en) * | 2020-07-21 | 2023-02-14 | Arm Limited | Virtual processor interrupt tracking |
CN112799991B (zh) * | 2021-01-07 | 2022-12-20 | 牛芯半导体(深圳)有限公司 | Pcie交换芯片 |
US11595472B2 (en) | 2021-01-19 | 2023-02-28 | Mellanox Technologies, Ltd. | Controlling packet delivery based on application level information |
CN113406696B (zh) * | 2021-06-01 | 2023-04-07 | 成都高新减灾研究所 | 实现移动设备地震监测的方法及设备 |
CN114153560A (zh) * | 2021-11-18 | 2022-03-08 | 中汽创智科技有限公司 | 一种虚拟中断处理方法、装置、设备及介质 |
US11792139B2 (en) | 2022-01-24 | 2023-10-17 | Mellanox Technologies, Ltd. | Efficient packet reordering using hints |
GB2619311A (en) * | 2022-05-31 | 2023-12-06 | Advanced Risc Mach Ltd | Doorbell physical interrupt control |
CN117032644B (zh) * | 2023-10-08 | 2023-12-12 | 广东凯普生物科技股份有限公司 | 基于嵌入式软件的串口通信系统及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1506861A (zh) * | 2002-12-11 | 2004-06-23 | ض� | 用于控制虚拟机系统中的外部中断的机制 |
US7209994B1 (en) * | 2004-05-11 | 2007-04-24 | Advanced Micro Devices, Inc. | Processor that maintains virtual interrupt state and injects virtual interrupts into virtual machine guests |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4843541A (en) * | 1987-07-29 | 1989-06-27 | International Business Machines Corporation | Logical resource partitioning of a data processing system |
JPH02208740A (ja) * | 1989-02-09 | 1990-08-20 | Fujitsu Ltd | 仮想計算機制御方式 |
JPH06187178A (ja) * | 1992-12-18 | 1994-07-08 | Hitachi Ltd | 仮想計算機システムの入出力割込み制御方法 |
JP2723847B2 (ja) * | 1995-08-16 | 1998-03-09 | 日本電気アイシーマイコンシステム株式会社 | マイクロプロセッサ |
TW472210B (en) * | 2000-09-15 | 2002-01-11 | Inventec Corp | Method for implementing application interrupt in Windows operating system |
US7818808B1 (en) * | 2000-12-27 | 2010-10-19 | Intel Corporation | Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor |
JP4140286B2 (ja) * | 2002-06-04 | 2008-08-27 | 株式会社日立製作所 | 計算機システム |
US7000051B2 (en) * | 2003-03-31 | 2006-02-14 | International Business Machines Corporation | Apparatus and method for virtualizing interrupts in a logically partitioned computer system |
US7281075B2 (en) * | 2003-04-24 | 2007-10-09 | International Business Machines Corporation | Virtualization of a global interrupt queue |
US7130949B2 (en) * | 2003-05-12 | 2006-10-31 | International Business Machines Corporation | Managing input/output interruptions in non-dedicated interruption hardware environments |
US7424709B2 (en) * | 2003-09-15 | 2008-09-09 | Intel Corporation | Use of multiple virtual machine monitors to handle privileged events |
US7237051B2 (en) * | 2003-09-30 | 2007-06-26 | Intel Corporation | Mechanism to control hardware interrupt acknowledgement in a virtual machine system |
US7590982B1 (en) * | 2003-12-17 | 2009-09-15 | Vmware, Inc. | System and method for virtualizing processor and interrupt priorities |
US7937700B1 (en) * | 2004-05-11 | 2011-05-03 | Advanced Micro Devices, Inc. | System, processor, and method for incremental state save/restore on world switch in a virtual machine environment |
US7689747B2 (en) * | 2005-03-28 | 2010-03-30 | Microsoft Corporation | Systems and methods for an augmented interrupt controller and synthetic interrupt sources |
US7533207B2 (en) * | 2006-12-06 | 2009-05-12 | Microsoft Corporation | Optimized interrupt delivery in a virtualized environment |
JP4249779B2 (ja) * | 2006-12-25 | 2009-04-08 | 株式会社東芝 | デバイス制御装置 |
GB2462258B (en) * | 2008-07-28 | 2012-02-08 | Advanced Risc Mach Ltd | Interrupt control for virtual processing apparatus |
-
2008
- 2008-07-28 GB GB0813794.5A patent/GB2462258B/en active Active
-
2009
- 2009-06-03 MY MYPI20110148 patent/MY151287A/en unknown
- 2009-06-03 EP EP09784596A patent/EP2307972B1/en active Active
- 2009-06-03 WO PCT/GB2009/001398 patent/WO2010012970A1/en active Application Filing
- 2009-06-03 JP JP2011520574A patent/JP5499029B2/ja active Active
- 2009-06-03 KR KR1020117004420A patent/KR101607905B1/ko active IP Right Grant
- 2009-06-03 CN CN200980129320.4A patent/CN102105871B/zh active Active
- 2009-06-04 US US12/457,263 patent/US8131901B2/en active Active
- 2009-06-11 TW TW098119566A patent/TWI511049B/zh active
-
2010
- 2010-12-16 IL IL210062A patent/IL210062A/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1506861A (zh) * | 2002-12-11 | 2004-06-23 | ض� | 用于控制虚拟机系统中的外部中断的机制 |
US7209994B1 (en) * | 2004-05-11 | 2007-04-24 | Advanced Micro Devices, Inc. | Processor that maintains virtual interrupt state and injects virtual interrupts into virtual machine guests |
Also Published As
Publication number | Publication date |
---|---|
EP2307972A1 (en) | 2011-04-13 |
GB2462258B (en) | 2012-02-08 |
WO2010012970A1 (en) | 2010-02-04 |
JP2011529240A (ja) | 2011-12-01 |
GB0813794D0 (en) | 2008-09-03 |
TW201005650A (en) | 2010-02-01 |
IL210062A0 (en) | 2011-02-28 |
US20100023666A1 (en) | 2010-01-28 |
EP2307972B1 (en) | 2012-12-19 |
IL210062A (en) | 2014-08-31 |
GB2462258A (en) | 2010-02-03 |
KR20110048531A (ko) | 2011-05-11 |
KR101607905B1 (ko) | 2016-03-31 |
CN102105871A (zh) | 2011-06-22 |
MY151287A (en) | 2014-04-30 |
JP5499029B2 (ja) | 2014-05-21 |
TWI511049B (zh) | 2015-12-01 |
US8131901B2 (en) | 2012-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102105871B (zh) | 虚拟处理设备的中断控制 | |
CN104881596B (zh) | 在安全处理环境中修改存储器权限 | |
CN105210041B (zh) | 针对虚拟处理器处理并路由中断 | |
CN104636181B (zh) | 用于迁移虚拟机的方法和系统 | |
CN103761145B (zh) | 用于各个处理器的辅助中断虚拟化的访客中断控制器 | |
CN102622329B (zh) | 多核计算机中的远程核操作 | |
RU2285947C2 (ru) | Способ обеспечения безопасности с детерминированным выполнением в реальном времени многозадачных приложений типа управление-регулирование с локализацией ошибок | |
US8255591B2 (en) | Method and system for managing cache injection in a multiprocessor system | |
CN101171572A (zh) | 在具有动态逻辑分区的计算环境中管理计算机存储器 | |
CN106575271A (zh) | 管理存储设备 | |
US9086920B2 (en) | Device for managing data buffers in a memory space divided into a plurality of memory elements | |
CN104025050A (zh) | 在图形处理单元上虚拟机之间变化 | |
JP2011529240A5 (zh) | ||
CN103034524A (zh) | 半虚拟化的虚拟gpu | |
JP2019500705A (ja) | 選択的リソースマイグレーションを用いるネットワーク接続型メモリ | |
KR101893966B1 (ko) | 메모리 관리 방법 및 장치, 및 메모리 컨트롤러 | |
JP2023545818A (ja) | チップ・システム、仮想割り込み処理方法および対応する装置 | |
CN104865904B (zh) | 一种面向多周期运算任务的无扰组态方法 | |
CN100419688C (zh) | 中断控制装置及控制方法 | |
CN110291507A (zh) | 用于提供对存储器系统的加速访问的方法和装置 | |
CN102597972A (zh) | 虚拟计算机系统、区域管理方法及程序 | |
CN104298519B (zh) | 用于配置操作系统的装置及其方法 | |
CN100487654C (zh) | 使用转移中修改虚拟化设备自描述信息的方法 | |
CN100492299C (zh) | 一种嵌入式软件开发的方法及系统 | |
CN108845969B (zh) | 适用于不完全对称多处理微控制器的操作控制方法及操作系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |