虚拟处理器中断跟踪的制作方法

文档序号:28609908发布日期:2022-01-22 12:22阅读:98来源:国知局
虚拟处理器中断跟踪的制作方法
虚拟处理器中断跟踪


背景技术:
技术领域
1.本技术涉及数据处理领域。更具体地讲,本技术涉及处理将由虚拟处理器处理的虚拟中断。
2.技术背景
3.虚拟化允许多个操作系统在同一件系统硬件上同时运行。每个操作系统可在虚拟处理器(或虚拟机vm)上运行,该虚拟处理器在其具有对系统硬件的处理器、外围设备、系统存储器和输入/输出设备的独占访问权限的印象下进行操作,但实际上该虚拟处理器与其他虚拟处理器共享该硬件。物理硬件可包括可映射到特定虚拟处理器的多个物理处理器。给定虚拟处理器可时常从一个物理处理器移动到另一个物理处理器。给定物理处理器可在给定时间具有映射到其的多于一个虚拟处理器,但可执行来自映射到该物理处理器的那些虚拟处理器中的特定虚拟处理器的指令。使得来自其的指令当前正被执行的虚拟处理器可被认为是驻留虚拟处理器,而映射到给定物理处理器但使得其指令当前未被执行的其他虚拟处理器可被认为是非驻留虚拟处理器。在包括多个物理处理器的一个物理服务器可被配置为支持许多虚拟机,甚至多达数十、数百或数千个虚拟机的情况下,虚拟化可能对企业服务器应用程序空间尤其有用。此类虚拟化的服务器可提供服务,诸如网络托管、云服务、数据库和存储管理。


技术实现要素:

4.至少一些示例提供了一种装置,该装置包括:中断分配器,该中断分配器用于将虚拟中断分配给一个或多个物理处理器,每个虚拟中断将由能够映射到所述一个或多个物理处理器的多个虚拟处理器中的一个虚拟处理器处理;以及控制电路,该控制电路用于保持对应于给定虚拟处理器的虚拟处理器中断跟踪信息,该虚拟处理器中断跟踪信息包括:未决中断记录,该未决中断记录指示哪些类型的虚拟中断对于该给定虚拟处理器是未决的;和未决中断状态指示,该未决中断状态指示不同于该未决中断记录,并且指示该给定虚拟处理器的未决中断状态,该未决中断状态指示针对该给定虚拟处理器的未决虚拟中断的数量是否为零。
5.至少一些示例提供了一种装置,该装置包括:用于将虚拟中断分配给一个或多个物理处理器的装置,每个虚拟中断将由能够映射到所述一个或多个物理处理器的多个虚拟处理器中的一个虚拟处理器处理;以及用于保持对应于给定虚拟处理器的虚拟处理器中断跟踪信息的装置,该虚拟处理器中断跟踪信息包括:未决中断记录,该未决中断记录指示哪些类型的虚拟中断对于该给定虚拟处理器是未决的;和未决中断状态指示,该未决中断状态指示不同于该未决中断记录,并且指示该给定虚拟处理器的未决中断状态,该未决中断状态指示针对该给定虚拟处理器的未决虚拟中断的数量是否为零。
6.至少一些示例提供了一种方法,该方法包括:将虚拟中断分配给一个或多个物理
处理器,每个虚拟中断将由能够映射到所述一个或多个物理处理器的多个虚拟处理器中的一个虚拟处理器处理;以及保持对应于给定虚拟处理器的虚拟处理器中断跟踪信息,该虚拟处理器中断跟踪信息包括:未决中断记录,该未决中断记录指示哪些类型的虚拟中断对于该给定虚拟处理器是未决的;和未决中断状态指示,该未决中断状态指示不同于该未决中断记录,并且指示该给定虚拟处理器的未决中断状态,该未决中断状态指示针对该给定虚拟处理器的未决虚拟中断的数量是否为零。
7.本技术的另外的方面、特征和优点将从结合附图阅读的示例的以下描述中显而易见。
附图说明
8.图1示意性地示出了具有多个中断控制器的数据处理系统的示例,该多个中断控制器将中断分配给物理处理器;
9.图2示出了中断控制器中的一个中断控制器的示例;
10.图3示出了基于消息的中断的示例,由消息指定的地址用于确定该基于消息的中断的中断类型;
11.图4示出了虚拟处理器中断跟踪信息的示例;
12.图5示出了未决中断映射、粗略未决映射和粗略启用未决映射的示例;
13.图6示出了用于控制指示给定虚拟处理器的未决中断状态的状态之间的转变的有限状态机(fsm);
14.图7是示出对接收到的针对非驻留虚拟处理器的未决中断的处理的流程图;
15.图8是示出响应于给定虚拟处理器的搜索触发事件的方法的流程图;并且
16.图9是示出响应于该搜索触发事件而执行中断搜索的方法的流程图。
具体实施方式
17.装置可具有一个或多个物理处理器,该一个或多个物理处理器可支持可映射到该一个或多个物理处理器的两个或更多个虚拟处理器。可提供中断分配器以将虚拟中断分配给相应物理处理器。例如,中断分配器可考虑可指定给定虚拟处理器所映射到的物理处理器的映射信息。如果当接收到以特定虚拟处理器为目标的虚拟中断时,该虚拟处理器驻留在特定物理处理器上使得其指令正在被执行,则可将该虚拟中断路由到相关物理处理器,使得其可由被该虚拟中断作为目标的虚拟处理器处理。
18.然而,有时可接收到以当前为非驻留状态的虚拟处理器为目标的虚拟中断,使得当该虚拟处理器可映射到特定物理处理器时,该虚拟中断当前未被执行。因此,可能期望记录一些跟踪信息,这些跟踪信息跟踪已接收到的针对特定虚拟处理器的未决中断,使得当该虚拟处理器稍后变成驻留状态时,可搜索该跟踪信息以识别应当被递送到新的驻留虚拟处理器的未决中断,然后该新的驻留虚拟处理器可处理这些中断,就好像虚拟处理器在接收到虚拟中断时已执行一样。因此,可提供控制电路来保持对应于给定虚拟处理器的虚拟处理器中断跟踪信息。
19.然而,可能存在可接收到的针对给定虚拟处理器的众多类型的虚拟中断,因此搜索指示哪些类型的虚拟中断对于给定虚拟处理器是未决的未决中断记录可能花费相对较
长的时间。当使得先前执行的虚拟处理器为非驻留状态并且新执行的虚拟处理器变成驻留状态,使得可执行对其未决中断的搜索时,这可增加与给定物理处理器处的驻留变化相关联的延迟。如果驻留改变操作太慢,则这可增加给定物理处理器不能执行对任何虚拟处理器的有用处理的停机时间。这可能是企业空间中云服务器或其他系统的特定问题,在该企业空间中,不同虚拟处理器的数量与物理处理器的数量相比可能非常多,使得驻留改变可能相对频繁。
20.在下面的示例中,控制电路保持虚拟处理器中断跟踪信息,该虚拟处理器中断跟踪信息包括指示哪些类型的虚拟中断对于给定虚拟处理器是未决的未决中断记录,并且还包括不同于该未决中断记录的未决中断状态指示。该未决中断状态指示指示给定虚拟处理器的未决中断状态。该未决中断状态至少指示针对给定虚拟处理器的未决虚拟中断的数量是否为零。通过记录跟踪未决虚拟中断的数量是否为零的一些状态信息,这可通过消除当已知将不存在针对给定虚拟处理器的未决虚拟中断时搜索未决中断记录的需要来加速驻留变化。
21.该装置可具有中断搜索电路,该中断搜索电路响应于与给定虚拟处理器相关联的搜索触发事件而执行中断搜索。中断搜索可包括搜索未决中断记录以识别将由给定虚拟处理器处理的未决中断。该操作可能相对较慢,因为未决中断记录可例如存储在可能具有一定访问延迟的存储器系统中,并且在一些示例中,中断搜索可能需要检查存储器中的多个不同高速缓存行,这些高速缓存行记录关于可能未决的不同类型的虚拟中断的信息。响应于搜索触发事件,当未决中断状态指示指示将由给定虚拟处理器处理的未决中断的数量为零时,中断搜索电路可抑制执行中断搜索。因此,由于不需要搜遍未决中断记录,搜索触发事件可被更快地响应,并且因此可消除与搜索该未决中断记录相关联的任何存储器访问延迟。这改善了性能。
22.在一些示例中,无论未决虚拟中断是启用中断还是禁用中断,未决中断状态均可指示针对给定虚拟处理器的这些未决虚拟中断的数量是否为零。
23.然而,一些系统可支持中断屏蔽,其中屏蔽信息可用于将某些类型的中断定义为禁用中断并且将其他类型的中断定义为启用中断,使得这些禁用中断是不应当被递送到对应虚拟处理器的中断类型。因此,在一些情况下,未决中断状态可指示针对给定虚拟处理器的启用未决虚拟中断的数量是否为零。对于这种示例,任何禁用未决虚拟中断不影响未决中断状态是否指示针对给定虚拟处理器的启用未决虚拟中断的数量为零。在一些情况下,执行中断搜索的中断搜索电路可具体地识别启用未决中断(因为禁用未决中断不需要被递送),因此响应于搜索触发事件,当未决中断状态指示指示将由给定虚拟处理器处理的启用未决中断的数量为零时,可抑制中断搜索,以避免在仅存在对于给定虚拟处理器是未决的禁用中断时引发搜索的延迟。
24.在其他示例中,未决中断状态可区分是否存在针对给定虚拟处理器的任何未决虚拟中断(启用的或禁用的),以及是否存在任何启用未决虚拟中断(即使仍存在至少一个禁用未决虚拟中断,该状态仍可指示启用未决虚拟中断的数量为零)。例如,未决中断状态指示可以是状态指示符,该状态指示符根据以下情况呈现不同的状态:未决中断记录是否完全没有未决中断,或者未决中断记录是否被填充但仅具有禁用未决中断,或者是否存在至少一个启用未决中断。通过根据禁用中断或启用中断的存在提供不同状态,那么这可根据
搜索是寻找所有未决中断还是仅寻找启用中断来进一步改善搜索时间。
25.因此,在一些示例中,未决状态指示可指示多种状态中的一种状态,并且那些状态可至少包括:未决启用状态,该未决启用状态指示存在针对给定虚拟处理器的至少一个启用未决中断;和至少一种另一种状态,该至少一种另一种状态指示以下中的至少一者:不存在针对给定虚拟处理器的未决中断;以及一个或多个禁用中断是针对给定虚拟处理器的唯一未决中断。
26.更一般地,未决中断状态指示可指示与给定虚拟处理器相关联的未决中断状态状态机的两种或更多种状态中的一种状态。控制电路可响应于与给定虚拟处理器相关联的事件(诸如,接收到以给定虚拟处理器为目标的虚拟中断,或者给定虚拟处理器变成驻留状态),触发在未决中断状态状态机的状态之间的转变。上述未决启用状态和至少一种另一种状态可以是状态机的状态中的一些,但是该状态机也可具有其他状态。
27.例如,在一个具体实施中,未决中断状态还可指示针对给定虚拟处理器的中断搜索是否正在进行。例如,状态机可包括指示中断搜索电路是否在针对给定虚拟处理器的中断搜索中途的搜索状态。在一些具体实施中,状态机还可包括“搜索(接收到启用中断)”状态,该搜索状态指示中断搜索正在进行并且自该搜索开始以来已接收到至少一个启用未决中断。这些状态可用于确定:在接收到另一个搜索触发事件时,已经正在进行的搜索是否将足以解决该另一个搜索触发事件,或者是否应在完成当前搜索时执行另一次中断搜索。当在未决状态指示为“搜索”状态时接收到针对给定虚拟处理器的启用未决中断时,控制电路可更新该未决中断状态指示以将当前状态切换为“搜索(启用)”状态。
28.这可能是有用的,因为可能可以在中断搜索正在进行时接收到另一个虚拟中断,并且如果该中断搜索已检查未决中断记录的与该中断类型对应的部分,则在当前正在进行的中断搜索中可能不会检测到该另一个虚拟中断。因此,如果在当前搜索已完成之前发生另一个搜索触发事件,则可能需要另一次搜索。另一方面,如果自搜索开始以来未接收到另一个启用虚拟中断,则可能不需要响应于该另一个中断触发事件而执行另一次搜索,因为如果自当前搜索开始以来尚未接收到针对给定虚拟处理器的启用中断,则当前正在进行的搜索(其是响应于较早的中断搜索触发事件而开始的)可能已足以处理该另一个搜索触发事件。因此,提供“搜索”状态和“搜索(启用)状态可有助于在可能的情况下避免在以下情况中中断搜索的延迟:发生针对给定虚拟处理器的另一个搜索触发事件,同时先前搜索仍然正在进行,并且自该搜索开始以来没有接收到另一个中断。
29.用于处理在先前搜索正在进行时接收到的另一个中断搜索触发事件的另选方法可以是:响应于该另一个中断搜索触发事件而中止当前搜索,并且重新开始搜索,因此这可考虑在先前搜索开始之后接收到的任何最近接收到的虚拟中断。然而,本发明人认识到,在发生另一个中断搜索触发事件时简单地中止中断搜索可能有拒绝对某些类型的中断的服务的风险,使得一些中断无限期地保持未决并且很少被处理,这对于在给定虚拟处理器内运行的一些应用程序而言可能是一个问题。例如,中断搜索可涉及顺序地检查未决中断记录的不同部分以检查哪些类型的虚拟中断是未决的,因此如果该中断搜索由于发生了另外的中断搜索触发事件持续被中止,则该未决中断记录的在搜索过程中稍后检查的部分可跟踪由于该中断搜索在该搜索到达未决中断记录的该部分之前被中止而仍未被检测到的一些未决中断。这种中止机制将在统计学上趋于在偏向未决中断记录的在中断搜索过程期间
最早搜索到的部分中记录的那些中断,这可能是不期望的,因为这可能导致其他中断被拒绝服务。
30.相反,在下面更详细描述的示例中,不是在当前中断搜索正在进行时接收到另一个中断搜索触发事件时中止该当前中断搜索,而是提供完成和重新开始机制,其中允许当前中断搜索完成,但是在完成之后,则重新开始中断搜索,为了确保能够在当前中断搜索中检查到完整的未决中断映射,从而导致不太偏向在未决中断映射的早期部分中记录的中断,因此减轻了拒绝服务问题。
31.因此,响应于检测到:在执行针对给定虚拟处理器的中断搜索中途,已发生针对给定虚拟处理器的另一个搜索触发事件,并且新的启用中断已对于给定虚拟处理器变成未决的,控制电路可更新未决中断状态指示以指示重新搜索状态。换句话讲,当发生搜索触发事件并且未决中断状态为上述“搜索(启用)”状态时,则该未决中断状态指示可被更新以切换为重新搜索状态。当中断搜索完成并且未决中断状态指示指示重新搜索状态时,那么中断搜索电路可重新开始针对给定虚拟处理器的中断搜索,使得晚到的中断随后可被考虑在内。与如前所述的响应于另一个搜索触发事件而中止当前搜索的另选方案相比,该方法降低了拒绝服务的风险。
32.另一方面,如果在未决中断状态指示指示“搜索”状态时发生搜索触发事件,那么可允许当前搜索在不切换为重新搜索状态的情况下完成,因此在完成当前搜索时不需要重新开始搜索。这是因为“搜索”状态(与“搜索(启用)”状态不同)指示自当前正在进行的搜索开始以来没有接收到另一个中断,并且因此响应于另一个搜索触发事件而执行另一次搜索将是冗余的,因为结果将是从当前搜索中已知的。因此,可通过避免响应于当前搜索正在进行时接收到的另一个搜索触发事件而执行另一次搜索来减少延迟。这改善了性能。
33.虚拟中断可与对应存储器地址相关联。例如,虚拟中断可以是基于消息的中断,该基于消息的中断由中断分配器接收到的所接收消息触发。例如,虚拟中断可以是根据pci express(pcie)标准的消息信号中断。与给定基于消息的中断相关联的存储器地址可以是对要被递送到目标虚拟处理器的中断类型的指示。未决中断记录可指示(明确或隐含地)对应于将由给定虚拟处理器处理的未决虚拟中断的存储器地址。例如,未决中断记录可提供具有多个位的位图,每个位指示是否存在针对对应存储器地址(即,对应中断类型)的未决中断。这些位可存储在存储器地址空间内,并且可能需要相对较大量的高速缓存行来存储针对可接收到的虚拟中断的每种类型的相应位指示,并且因此可需要相对较长的搜索时间。上述技术可对于减少与搜索这种类型的未决中断记录相关联的延迟尤其有用。
34.在一个示例中,虚拟处理器中断跟踪信息还可包括粗略启用未决中断记录,该粗略启用未决中断记录以比未决中断记录更粗略的粒度跟踪哪些组的中断类型包括至少一种中断类型,该至少一种中断类型的启用未决中断将由给定虚拟处理器处理。因此,尽管粗略启用未决中断记录可能不太精确,但搜索可能更快,因为粗略启用未决中断记录中的每个指示可对应于比未决中断记录中的每个指示更大的一组中断类型。粗略启用未决中断记录可指定包括启用未决中断的那些组的中断类型,并且忽略仅包括禁用未决中断的那些组的中断类型。这使得能够更快地搜索启用中断,这对于给定虚拟处理器的驻留变化可能是有用的。中断搜索电路可抑制对未决中断的对应于一组中断类型的一部分的搜索,针对该组中断类型,粗略启用未决中断记录指示不存在将由给定虚拟处理器处理的启用未决中
断。因此,粗略启用未决中断记录可消除搜索未决中断记录内不对应于任何启用未决中断的地址块的需要,这加速了中断搜索。
35.除了粗略启用未决中断记录之外,一些示例还可提供粗略未决中断记录,该粗略未决中断记录以比未决中断记录更粗略的粒度跟踪哪些组的中断类型包括对应于将由给定虚拟处理器处理的未决中断(启用未决中断或禁用未决中断)的至少一个地址。因此,虽然粗略启用未决中断记录跟踪包括启用未决中断的存储器地址块,但粗略未决中断记录可记录包括启用未决中断或禁用未决中断的块。如果有时除了搜索启用未决中断之外还需要搜索禁用未决中断,或者搜索以控制未决中断状态指示中的状态改变,则这可能是有用的。
36.如果认为不太可能需要搜索禁用未决中断,则其他方法可能不提供粗略未决中断记录,而可仅提供粗略启用未决中断记录。
37.导致执行中断搜索的搜索触发事件可以是一系列不同类型的事件。例如,搜索触发事件可以是导致处理系统被重置为已知状态的重置事件,在这种情况下,可能期望进行对中断跟踪信息的搜索,该中断跟踪信息可指示一些虚拟中断在重置之前尚未被服务。另选地,搜索触发事件可以是物理处理器的操作模式的改变或请求执行中断搜索的明确指令的执行。然而,在一个示例中,搜索触发事件可以是虚拟处理器驻留改变事件,该虚拟处理器驻留改变事件指示给定虚拟处理器将变成驻留在物理处理器中的一个物理处理器上。
38.在一些示例中,中断跟踪信息可存储在存储器系统中。控制电路可具有对多组中断跟踪信息的访问权限,其中每组中断跟踪信息对应于相应虚拟处理器。由于虚拟处理器的数量可能相对较多,因此实际上中断分配器和/或控制电路可能无法保持中断跟踪信息的本地存储装置足以存储关于所有虚拟处理器的中断跟踪信息。相反,可提供高速缓存存储器以高速缓存关于虚拟处理器的至少子集的中断跟踪信息的至少一部分,并且如果需要关于其他虚拟处理器的中断跟踪信息,则可从存储器系统获得该信息,但这可慢于该信息在高速缓存存储器中可获得的情况。
39.在一个示例中,控制电路可分别为高速缓存存储器和存储器保持单独的未决中断状态指示。高速缓存的未决中断状态指示可指示与针对给定虚拟处理器的未决中断记录的高速缓存在高速缓存存储器中的高速缓存部分相关联的未决中断状态,存储器未决中断状态指示可指示与针对给定虚拟处理器的该未决中断记录的存储在存储器系统中的基于存储器部分相关联的未决中断状态。该基于存储器部分可包括该高速缓存部分(因为该高速缓存部分可以是存储在存储器中的对应数据的副本)。然而,有时高速缓存部分可仅为未决中断记录的基于存储器部分的子集。另外,对于回写高速缓存,有时,如果高速缓存部分是脏的,则未决中断记录的高速缓存部分可不同于该未决中断记录的对应的基于存储器部分。通过提供分别对应于高速缓存部分和基于存储器部分的单独未决中断状态指示,这可允许中断搜索电路对是否需要搜索高速缓存存储器和/或存储器以发现对于给定虚拟处理器可能是未解决的未决中断作出更有针对性的决定。例如,如果已知高速缓存存储器没有针对给定虚拟处理器的未决中断,则可省略高速缓存存储器查找并且可直接查找存储器而无需首先经由高速缓存存储器查找。
40.图1示出了具有彼此通信的多个集成电路(芯片)4的数据处理系统2的示例。每个芯片包括多个物理处理器(cpu)6,并且具有可由该芯片上的处理器访问的一些片上存储器8。每个芯片还可具有一个或多个设备接口10,可通过该一个或多个设备接口从与该接口通
信的对应设备接收消息。例如,该设备可以是外围设备、输入/输出控制器、网络控制器等。每个芯片上的物理处理器6和设备接口10的数量可因芯片而异。应当理解,图1所示的芯片的特定数量仅为一个示例。其他示例可仅具有单个芯片或者可具有更多数量或更少数量的芯片。
41.每个芯片4具有对共享存储器12的访问权限,该共享存储器可存储可由芯片4中的任一个芯片访问的数据。在图1的示例中,共享存储器12是片外存储器,但是在其他示例中,共享存储器反而可位于芯片4中的一个芯片上,但是可由其他芯片4访问。数据可从共享存储器12加载到特定芯片的片上存储器8中。各个物理处理器6还可具有高速缓存存储器,该高速缓存存储器可高速缓存来自该芯片4的片上存储器8或共享存储器12的数据。应当理解,图1是简化图,并且虽然未示出,但可提供数据处理系统2的许多其他特征。
42.在一个示例中,数据处理系统2可以是虚拟化的服务器,该虚拟化的服务器可提供服务,诸如网络托管、云服务、数据库管理或存储管理。
43.提供中断控制器以处理需要在一个或多个物理处理器上进行中断处理的中断。例如,中断可基于经由设备接口10从给定设备发送的消息。分配中断控制器,使得芯片4中的每个芯片包括相应的通用中断控制器(gic)14,该gic负责将中断传递到对应芯片上的物理处理器6。每个芯片上的gic 14经由中断互连器16彼此通信。相应芯片4还可经由存储器互连器18彼此通信,该存储器互连器还可允许在共享存储器12中读取和写入数据。虽然在图1中,中断互连器16和存储器互连器18被示出为分开的,但在其他示例中,这些互连器可被组合以形成用于中断和存储器访问两者的共享互连器。
44.数据处理系统2是虚拟化的处理系统,因此能够执行多个虚拟处理器(或虚拟机),其中每个虚拟处理器能够映射到系统的不同物理处理器,包括不同芯片4上的处理器。一些虚拟处理器可能需要仅在某些物理处理器上提供的硬件特征,因此这可能限制哪个物理处理器可具有映射到其的虚拟处理器,而其他虚拟处理器可能不具有此类限制。关于将虚拟处理器映射到物理处理器的决定可由在处理系统2上运行的管理程序或其他软件元件做出。
45.图2示出了负责将中断分配给给定芯片4上的物理处理器6和在那些物理处理器6上运行的虚拟处理器的gic 14中的一个gic的示例。gic 14包括中断分配器20,该中断分配器负责路由关于如何将所接收的中断请求路由到可处理该中断请求的相关物理处理器的决定。由分配器20接收到的中断请求可包括在装置2的有线路径上断言的物理中断信号22。中断请求还可包括经由设备接口10从设备接收到的设备中断24。随着数据处理系统的复杂性增加,芯片上中断的数量增加可导致路由拥塞和管理复杂化(在这些芯片上中断全部与物理有线路径相关联的情况下),因此,对于一些系统,管理中断处理的更有效方式可以是使用基于消息的中断(诸如,用于使用pci express(rtm)总线实现的设备接口的信息信号中断(msi))。基于消息的中断可以是指定存储器地址的事务,其中所指定的特定存储器地址表示被断言的中断的类型。这允许单个有线通信信道在由消息的相应地址区分的多个中断类型之间共享。对于作为设备中断24从给定设备接口10接收到的基于消息的中断,中断转换服务(its)电路26可通过在定义与不同地址相关联的各种中断类型的表32中查找由消息指定的地址来将消息转换成适当的中断类型。例如,中断转换服务可根据从设备接收到的消息来生成中断id,并且可识别哪个特定目标处理器应该处理中断,该特定目标处理器
可以是物理处理器或虚拟处理器。虚拟处理器也可被称为“虚拟处理元件”或简称为vpe。
46.gic 14具有存储器访问电路18,该存储器访问电路控制从共享存储器12或对应芯片4的片上存储器8读取数据或向这些存储器写入数据。gic 14还可具有一些内部存储器30,该内部存储器可用于高速缓存从片上存储器8或共享存储器12读取的各种表或其他信息。内部存储器30存储由its 26用于将基于消息的中断映射到中断id和目标物理或虚拟处理器的its映射表32。gic存储器30还可高速缓存vpe配置表34,该vpe配置表提供了指示给定虚拟处理器映射到整个系统2中的哪个物理处理器的虚拟至物理处理器映射信息。vpe配置表34可能已过期并且不同于作为共享虚拟处理器映射信息存储在共享存储器12内的一组对应信息,该共享存储器可由系统中的所有gic 14访问。例如,该共享信息可以是下面更详细描述的一组虚拟处理器表(vpt)36。虽然vpt主要驻留在共享存储器12内,但一些vpt或vpt中的部分可任选地高速缓存在gic存储器30内。
47.分配器20使用vpe配置表34来决定如何将中断22、24路由到其相应目的地。如果vpe配置表34指示被中断作为目标的特定vpe映射到gic14负责的cpu 6中的一个cpu,则该中断可被路由到对应的物理处理器6。如果目标虚拟处理器映射到不同gic 14负责的不同芯片4上的cpu 6,则分配器20可通过中断互连器16将中断路由到另一个芯片4上的另一个中断控制器14,然后该另一个中断控制器可将该中断传递到所需的物理处理器。
48.为了将中断请求分配给给定gic 14负责的处理器,每个物理处理器6可具有负责将信号路由到该物理处理器的对应的再分配器42,并且与分配器通信,从而做出更全局的决定。再分配器42可负责控制与特定物理处理器的信号交换,并且可与相应物理处理器6内的cpu中断接口44通信,该cpu中断接口能够被cpu上运行的管理程序配置为控制cpu上运行的vpe对中断的处理。
49.gic 14包括用于基于vpt 36执行对针对给定vpe的未决中断的搜索的中断搜索电路39,以及用于保持vpt 36并控制中断搜索电路39何时以及如何执行搜索的控制电路38。虽然图2示出了控制电路38和中断搜索电路39设置在中断分配器20内,但它们也可在其他地方实现。
50.图3更详细地示出了由its 26提供的中断转换功能。所接收的设备中断是基于消息的中断24,其指定地址50和一些数据52。its 26在its映射表32中查找地址50,以识别中断类型54、将处理中断的目标虚拟处理器56和中断的一个或多个参数58,该一个或多个参数可基于基于消息的中断24的数据字段52或者可基于存储在its映射表32中的信息。例如,参数58可指示中断的属性,诸如用于控制该中断是否应当抢占较低优先级的其他未决中断的中断优先级。与消息24相关联的地址50也可由its 26传递,或者另选地可从传递到分配器20的信号中省略。因此,通过使用地址50来识别中断类型,这允许在多个不同类型的中断之间共享单个通信信道,与将专用有线信道用于不同类型的中断相比,这在硬件上可更有效。
51.图4示出了虚拟处理器表(vpt)36中的一个虚拟处理器表的示例,其为给定虚拟处理器vpex提供了虚拟处理器中断跟踪信息。如图4所示,中断跟踪信息可包括:未决中断记录(也称为未决中断映射)60,其跟踪哪些类型的中断对于给定虚拟处理器vpex是未决的;粗略未决映射62,其概述未决中断映射60中的哪些地址块具有所指示的未决中断;粗略启用未决映射64,其指示未决中断映射60的哪些地址块具有启用未决中断(排除可能已被与
给定虚拟处理器相关联的中断屏蔽信息屏蔽的那些未决禁用中断);和未决中断状态指示66,其指示跟踪给定虚拟处理器vpex的未决中断状态的多种有限状态机(fsm)状态中的一种状态。
52.图5示出了未决中断映射60、粗略未决映射62和粗略启用未决映射64的示例。未决中断映射60跟踪尚未能够被递送到对应的虚拟处理器vpex的那些未决中断。未决中断映射60包括多个位标志68,每个位标志对应于可被its 26指示为中断类型54的给定中断类型(或换句话讲,这可被视为指示未决的基于消息的中断的地址50)。应当理解,未决中断映射60仅指示未决中断的存在。与这些中断相关联的参数58可单独存储。
53.当给定虚拟处理器vpex变成驻留在特定cpu 6上时,则可能需要搜索未决中断映射60以识别在该虚拟处理器为非驻留时可能已接收到的任何未决中断。未决中断映射60可存储在共享存储器12或片上存储器8中,并且在未决中断映射60中的各个数据块中读取并且遍历该数据以识别哪些中断是未决的可能相对较慢。为了加速此类搜索,可提供粗略未决映射62和粗略启用未决映射64。粗略未决映射62包括多个位标志70,每个位标志对应于未决中断映射60内的位标志68的块72。每个粗略未决映射位标志70对应于使用逻辑或运算组合未决中断映射60的对应块72内的所有位标志68的或缩减运算的结果,使得粗略未决映射62中的位标志70在对应块72内存在所指示的一个或多个未决中断的情况下指示1。如果未决中断映射60的对应块72中的所有位标志为0,这指示在一组对应中断类型内不存在未决中断,则针对该块72的粗略未决映射位标志70为0。
54.类似地,粗略启用未决映射包括多个位标志74,每个位标志对应于未决中断映射60的块72中的一个块,但是对于粗略启用未决映射64,位标志74在对应块72中存在至少一个启用未决中断的情况下指示1,但在对应块72中不存在启用未决中断的情况下指示0,即使存在至少一个禁用中断未决。例如,对于图5中的块72-x,在该块内存在一个未决中断,因此粗略未决映射位标志70-x为1,但是如果该未决中断是禁用中断,则对应的粗略启用未决映射位标志74-x将为0。当接收到新的未决中断时,分配器20可检查对应中断类型是启用的还是禁用的,然后根据该中断是启用的还是禁用的来决定是否为一组对应中断类型设置粗略启用未决映射位标志74。相比之下,无论所接收的中断是启用的还是禁用的,都可设置粗略未决映射位标志70。
55.应当理解,图5中的相应位标志70、74、68的0和1的特定编码仅为一个示例,并且其他示例可使用不同的编码(例如,交换0和1的含义)。
56.粗略未决映射62和粗略启用未决映射64中的信息可用于加速对未决中断映射60的搜索。一些事件(诸如,vpe变成驻留在特定物理cpu 6上)可被视为触发对未决中断映射60的搜索以识别要被递送到对应vpe的未决中断的搜索触发事件。可将任何所识别的中断递送到针对该vpe的对应cpu,然后可在未决中断映射60中清除针对所递送中断类型的“未决”标志68。如果搜索禁用未决中断或启用未决中断,则中断搜索电路39可使用每个粗略未决映射位70来确定是否需要从存储器加载并搜遍未决中断映射60中的位标志68的对应块72。类似地,如果仅搜索启用未决中断(排除禁用未决中断),则中断搜索电路39可使用粗略启用未决映射64来确定需要加载和搜索未决中断映射60的哪些块72,并且可从该搜索中排除粗略启用未决映射64指示不包含任何启用中断的任何块72。通过避免加载和搜索未决中断映射60的一些块的需要,这可加速中断搜索并因此减少在哪个虚拟处理器驻留在特定物
理处理器6上之间切换的停机时间。
57.未决中断状态66根据有限状态机(fsm)指示给定虚拟处理器vpex的多种状态中的一种状态,如图6的示例所示。例如,未决中断状态指示可以是标识这些状态80至90中的特定状态的状态指示符。在该示例中,fsm在以下一组状态之间转变:
58.·
空80:未决中断映射60完全为空的,并且不指示针对给定虚拟处理器vpex的任何未决中断。
59.·
未决禁用82:针对vpex的未决中断映射60指示至少一个未决中断,但是在针对vpex的未决中断映射60中指示的所有未决中断是禁用中断。
60.·
未决启用84:未决中断映射60指示针对给定虚拟处理器vpex至少一个未决中断是未决的,该vpex包括至少一个启用中断。
61.·
搜索86:针对给定虚拟处理器vpex的中断搜索正在进行,但是在正在进行搜索时没有另外的启用中断被添加到未决中断映射60。
62.·
搜索(启用)88:针对给定虚拟处理器vpex的中断搜索正在进行,并且在搜索期间,另一个启用中断被添加到未决中断映射60。
63.·
重新搜索90:在执行先前搜索时发生了另一个搜索触发事件,在搜索期间启用中断被添加到未决中断映射60的情况下,使得存在该中断丢失的风险,并且因此当搜索完成时,应当重新开始搜索,使得可考虑新的启用中断。
64.控制电路38可控制fsm的状态之间的转变,以根据针对给定虚拟处理器vpex发生的各种事件来更新未决中断状态66。例如,当处于空状态80时,当禁用的中断被添加到未决中断映射60时,则fsm状态从空80转变为未决禁用82。相比之下,如果添加了启用中断,则转变将为从空80到未决启用84。如果在fsm状态为空80时检测到搜索触发事件(诸如,给定虚拟处理器vpex变成驻留状态),则不需要中断搜索电路39实际执行搜索,因为已从未决中断状态66知道未决中断映射60将不指示任何未决中断。
65.在当前状态为未决禁用82时,那么如果从未决中断映射60移除了最后一个未决中断,使得对于给定虚拟处理器vpex不再剩余未决中断,则状态66转变回空80。如果在处于未决禁用82时启用中断被添加到未决中断映射60,则状态66转变为未决启用84。如果发生了指示将执行搜索以检测在当前未决中断状态为未决禁用82时是否存在针对vpex的任何未决启用中断的搜索触发事件,则不需要执行搜索,因为未决禁用状态已指示不存在启用中断。另选地,虽然在图6中未示出,但是如果系统有时需要搜索未决禁用中断或未决启用中断,则搜索触发事件可触发从未决禁用82到搜索86的转变,但是这在仅需要搜索启用未决中断的系统中可能不是必需的。
66.如果当前状态为未决启用84并且从未决中断映射60中移除了最后一个未决中断,使得未决中断映射现在完全为空的,则状态转变回空80。如果最后一个启用未决中断被移除但仍然存在至少一个禁用中断未决,则控制电路38将未决中断状态从未决启用84转变为未决禁用82。如果在当前状态为未决启用84时检测到搜索触发事件,则控制电路触发中断搜索电路39开始搜索,并且未决中断状态66切换为搜索状态86。
67.当vpex的当前状态66为搜索86并且中断搜索电路39完成其搜索时,那么存在两种可能的转变。在中断搜索期间,任何启用未决中断可基于未决中断映射60来识别,并且然后可被递送以由对应的虚拟处理器vpex处理,使得在搜索完成之后,可不再剩余任何启用未
决中断,因为它们都已经被递送。如果存在为其设置粗略未决位70的任何中断类型块,但粗略启用未决位74被清除,则可确定剩余至少一个未决禁用中断。如果为给定块设置了粗略未决位70和粗略启用未决位74两者,则搜遍针对该块的未决中断映射60可识别哪些类型是未决的,然后可使用对应的中断屏蔽信息来区分禁用中断和启用中断,使得可确定是否将剩余任何未决禁用中断。因此,如果在搜索完成之后,至少一个禁用中断保持未决,则控制电路38将状态66切换回未决禁用82,而如果在搜索之后,确定未决映射完全为空的,则状态返回到空状态80。
68.如果在处于搜索状态时,在搜索期间另一个启用中断被添加到未决中断映射60,则控制电路38为对应虚拟处理器vpex将fsm状态66切换为搜索(启用)88。如果在处于搜索(启用)状态88时,当前正在进行的搜索完成,则控制电路38将fsm状态切换为未决启用,因为在搜索期间添加的中断将仍然是未解决的。在这种情况下,不需要重新开始搜索,因为自需要先前搜索以来没有任何其他搜索触发事件。
69.另一方面,如果在处于搜索(启用)状态88时发生了另一个搜索触发事件,则将fsm状态66被切换为重新搜索状态90。这指示一旦当前搜索完成,就应当触发另一次搜索。因此,如果检测到中断搜索电路39已完成其搜索并且当前状态为重新搜索90,则控制电路38触发中断搜索电路39重新开始其搜索并将fsm状态切换回搜索状态86。如果已遇到在搜索中途添加的晚到的中断,并且已产生了搜索中断映射的另一个原因,则不能假设先前执行的搜索将足以定位该晚到的中断,因此可能需要重复搜索。然而,通过允许初始搜索完成,这意味着在初始搜索期间仍然可检测到可记录在未决中断映射60的稍后检查部分中的一些内的潜在高优先级中断,然而如果在接收到另一个搜索触发事件时已中止了初始搜索,则如果这些较高优先级的中断比在较早搜索中途添加的新添加的中断优先级低,则这些较高优先级的中断可能有被拒绝服务的风险。因此,重新开始方法降低了拒绝对某些类型的中断的服务的风险。
70.因此,通过为有限状态机提供状态之间的转变并记录当前状态,该当前状态跟踪是否正在进行搜索以及是否存在针对给定虚拟处理器的任何未决启用中断或未决禁用中断,这可有助于加速搜索,因为如果当前状态为空80或者如果搜索仅用于启用中断并且当前状态为未决禁用82,则允许完全消除搜索,并且此外,通过提供粗略启用未决映射64,这可通过允许在已知未决中断映射60的一些块72不包含任何启用未决中断的情况下从搜索中省略这些块来进一步加速搜索。
71.图4示出了关于单个虚拟处理器的虚拟处理器跟踪信息,但应当理解,可将多组虚拟处理器跟踪信息存储在用于相应虚拟处理器的存储器中。应当理解,上述示例中所示的跟踪信息的特定格式仅为一个示例,并且也可以使用其他格式。
72.已被初始化的针对每个虚拟处理器的vpt 36可被记录在共享存储器系统12内,并且可能被高速缓存在片上存储器8或中断控制器存储器30内。通常,中断控制器存储器30可仅高速缓存关于虚拟处理器的特定子集(例如,最近遇到的一定数量的虚拟处理器)的跟踪信息。因此,当接收到its26决定其应当以特定虚拟处理器vpex为目标的设备中断24时,如果关于vpex的跟踪信息36当前在该中断控制器高速缓存存储器30内,则可更新其高速缓存存储器内的fsm状态66和未决中断映射60,然而如果所接收的中断以中断控制器不具有关于其的任何缓存信息的虚拟处理器作为目标,则控制电路38可控制存储器访问电路18来将
信息写入存储器,这使得未决中断被记录在与目标虚拟处理器相关联的未决中断映射60中。另外,控制电路38可从用于目标虚拟处理器的存储器读取未决中断状态66,然后使得所需的任何更新被写入未决中断状态指示66。
73.如图4中的虚线所示,在一些情况下,除了存储在存储器中的针对给定虚拟处理器vpex的vpt 36中的未决中断状态指示66之外,给定中断控制器14的控制电路38还可能可以保持单独的高速缓存的未决中断状态指示67。控制电路38可保持针对最近遇到的一定数量的虚拟处理器的高速缓存的未决中断状态指示67。例如,这些虚拟处理器可包括当前驻留在该中断控制器负责的cpu 6上的虚拟处理器,以及一个或多个最近驻留的虚拟处理器。该高速缓存的未决中断状态67可不同于记录在存储器中的对应虚拟处理器的vpt内的未决中断状态66。例如,虽然给定虚拟处理器驻留在特定物理处理器6上,但它将也可能驻留在别处,那么存储器中的vpt 36相对于高速缓存的未决中断状态已过期不是问题,前提条件是,如果刷新了保持在中断控制器存储器30内的给定虚拟处理器的高速缓存的未决中断状态67,则将其回写到存储器中的未决中断状态66。通过保持单独的高速缓存的未决中断状态指示67和存储器未决中断状态指示66,上述指示可各自根据与将中断添加到存储在高速缓存存储器或存储器内的未决中断映射60相关联的任何事件重复循环图6所示的fsm状态,这允许中断搜索电路39作出关于是否需要视情况搜索存储在高速缓存存储器或存储器中的vpt 36的部分的决定。另外,如果尚未需要,这允许出于性能原因而推迟到存储器的回写。
74.应当理解,图6中的有限状态机的示例仅为一个示例,并且其他具体实施可添加附加状态或者可移除图6所示的状态中的一些。例如,如果具体实施永远不需要搜索包括禁用中断和启用中断两者的中断,而是仅支持对未决启用中断的中断搜索,则可能不需要区分空状态80和未决禁用状态82,而是这些状态可组合成单种状态。因此,图6的示例不排除所定义的附加或另选状态的可能性。
75.图7是示出在接收到未决中断24时采取的动作的流程图,its 26确定该未决中断以当前为非驻留状态的给定虚拟处理器vpex为目标。如果目标虚拟处理器已为驻留状态,则可简单地将其递送到对应处理器6,并且可不需要设置未决中断映射60中的未决位。
76.在步骤100处,接收到以当前为非驻留状态的vpex为目标的未决中断。在步骤102处,作为响应,控制电路38触发对未决中断映射60中对应于所接收的中断的中断类型的位的设置。用于将所接收的中断的中断类型54映射到存储有未决中断映射60中的对应位的存储器系统中的存储器地址的映射函数可以是硬连线的(利用固定硬件映射)或者可能够基于可由控制电路38访问的可编程表而改变。在步骤102处,对针对vpex的未决中断映射60的更新可在中断控制器14的高速缓存存储器30中完成,或者可在存储器8、12中完成,这取决于关于该目标vpex的相关信息当前是否被高速缓存。
77.在步骤104处,控制电路38控制对粗略未决映射62中的对应位70的设置,其中所设置的位对应于包括所接收的中断的类型的一组中断类型。同样,地址映射函数可用于选择哪个存储器地址被写入有在步骤104处设置的位,并且该更新可在高速缓存存储器30内或在存储器8、12内完成。
78.在步骤106处,控制电路基于与vpex相关联的中断屏蔽信息来确定所接收的中断是启用类型还是禁用类型。如果所接收的中断类型被指示为禁用的,则在步骤108处,控制电路检查目标虚拟处理器vpex的当前未决中断状态66、67,并且如果当前中断状态为空80,
则将其更新为未决禁用82,而如果当前状态为除空80之外的任何状态,则不改变当前状态。
79.如果所接收的中断的未决中断类型为启用的,则在步骤110处,控制电路38触发对粗略启用未决映射64的对应于包括所接收的中断的类型的一组中断类型的位74的更新,以指示该位包括该组类型内的至少一个启用未决中断(在该位74尚未指示这一点的情况下)。在步骤112处,控制电路还更新对应虚拟处理器vpex的未决中断状态。如果当前状态为空80或未决禁用82,则将当前状态切换为未决启用84。如果状态已为未决启用84,则不改变。如果当前状态为搜索86,则更新vpex的状态66以指示搜索(启用)状态88。
80.图8是示出当检测到搜索触发事件时执行的处理的流程图。在步骤150处,控制电路38检测到给定虚拟处理器vpex已遇到搜索触发事件。例如,搜索触发事件可以是vpex已被使得驻留在中断控制器14负责的物理处理器6中的一个物理处理器上。因此,需要搜索启用中断。在搜索期间,可识别并递送启用中断以供虚拟处理器处理,然后可从所记录的关于该虚拟处理器vpex的跟踪信息36中清除这些启用中断。如果需要完整的系统搜索,则这在处理时间方面可能是相对昂贵的操作,因此如果可能的话希望能够加速这一操作。
81.因此,在步骤152处,在触发搜索之前,控制电路38检查由vpex的未决中断状态66指示的当前有限状态机状态66。如果需要,则在该当前有限状态机状态尚未被高速缓存的情况下,从存储器加载该当前有限状态机状态。如果当前状态为空80或未决禁用82,则在步骤154处,可抑制搜索操作,因为已知将不存在未决中断映射60中指示的未决启用中断,因此,这消除了从存储器系统8、12获取未决中断映射60的块并检查那些块以检查对应于启用中断的位的延迟。因此,在这种情况下,控制电路不调用中断搜索电路39,而是简单地返回指示没有启用中断未决的响应。
82.如果当前未决中断状态指示vpex当前处于搜索(启用)状态88,则这意味着先前搜索仍然正在进行,但是自该搜索开始以来接收到至少一个启用中断,使得在该搜索中可能尚未检测到该启用中断。由于存在另一个搜索触发事件,因此应当考虑稍后接收到的中断。因此,在步骤156处,控制电路38更新未决中断状态66以指示重新搜索状态90,以指示一旦该搜索完成就将需要另一次搜索。
83.另一方面,如果在步骤152处当前状态为未决启用84,则这意味着先前搜索没有正在进行,因此触发新搜索。在步骤158处,控制电路38更新未决中断状态66以指示vpex处于搜索状态86,并且在步骤160处,控制电路38控制中断搜索电路39来开始中断搜索,从而识别已接收到的针对vpex的启用未决中断。
84.图9更详细地示出了步骤160。在步骤162处,将标志(其用于跟踪是否在搜索中发现任何禁用未决中断)初始化为值0,这指示迄今为止还未检测到禁用未决中断。在步骤164处,中断搜索电路39读取粗略未决映射62和粗略启用未决映射64的位70、74,这些位对应于下一个待检查的未决中断映射的当前块72。在第一传递通过步骤164处,当前块将是未决中断映射60的第一块。在步骤166处,控制电路检查是否设置了针对当前块的相关粗略启用未决映射位74,该位指示存在未决中断映射60的对应块72中指示的至少一个启用中断。如果是,则在步骤168处,搜索未决中断映射60的当前块(如果需要,则在该块尚未被高速缓存的情况下,从存储器加载该块),并且识别该块中的任何未决启用中断并将其递送到正在执行目标虚拟处理器vpex的物理处理器6。未决映射60的对应于已递送中断的位68被清除,并且对应的粗略启用未决映射位74也被清除(因为所有启用中断已被递送,所以在未决映射60
的该块中不再存在任何启用未决中断)。同样,在步骤172处,如果该块中的任何未决中断为禁用中断,则如果禁用未决中断发现标志尚未被设置为1,则将其设置为1,以指示在搜索期间至少一个禁用中断已被发现为未决。如果没有发现禁用未决中断,则可清除粗略未决映射62中的对应位70。
85.另选地,如果在步骤166处确定粗略启用未决映射64的相关位74被设置为0,则由于在未决中断映射60的对应块中不存在启用未决中断,因此在步骤174处,抑制对该块72的搜索并且不需要从存储器加载或检查该块,从而加速搜索。在步骤176处,控制电路38或中断搜索电路39检查对应于当前处理块72的粗略未决映射位70,并且如果该粗略未决映射位被设置为1,则禁用未决中断发现标志被设置为1,以指示在搜索期间已发现至少一个禁用未决中断。需注意,通过提供不同于粗略启用未决映射64的粗略未决映射62,这允许即使未实际搜索未决中断映射60的对应块72,也识别出在该块中存在至少一个禁用未决中断。
86.无论是执行还是抑制针对当前块的搜索,在步骤178处,中断搜索电路39然后检测未决中断映射60的另一个块72是否仍然保持待搜索,并且如果是,则在步骤180处,该下一个待搜索块对于后续传递通过步骤164至178变成当前块。
87.最终,所有块都已被搜索或已基于粗略启用未决映射64确定不需要针对块进行搜索,然后,一旦未决映射60的所有块72已被处理并且没有剩余的块待搜索,则在步骤182处,确定搜索完成,其中在搜索中发现的任何启用未决中断均被递送了。
88.返回图8,一旦搜索完成,则在步骤190处,控制电路38确定已接收到其搜索触发事件的目标处理器vpex的当前未决中断状态66。如果当前状态为重新搜索90,则图8的方法返回到步骤158以将该状态更新为搜索,并且在步骤160处重新开始另一次中断搜索。这意味着,如果需要,可识别出并递送自先前搜索开始以来接收到的任何启用中断。
89.如果在步骤190处,当前状态为搜索(启用)88,则在步骤192处,当前状态切换为未决启用84。如果当前状态为搜索,则在步骤194处,根据禁用未决中断发现标志(如相对于图9所讨论的)检测是否剩余任何禁用未决中断,并且如果是,则在步骤196处,将当前状态切换为未决禁用82。如果在当前状态为搜索时没有禁用未决中断剩余并且搜索完成,则该方法从步骤194前进到步骤198,其中更新当前状态以指示空80,因为不再存在针对vpex的任何未决中断。
90.应当理解,在如上所述不区分空80和未决禁用状态82的另选具体实施中,涉及禁用未决中断发现标志的图8和图9的步骤可能是不需要的。还应当理解,使用禁用未决中断发现标志来跟踪禁用未决中断的存在仅为一种可能的具体实施,并且也可使用其他方法。例如,不是设置粘性的且通过处理未决中断映射60的相应块72而累积的标志,另一种方法可以是独立于搜索来检查粗略未决映射62,并且如果在粗略未决映射62中任何位均为1,则这可指示禁用未决中断的存在。
91.另外,虽然中断搜索电路39和控制电路38在图2的示例中被示出为硬件电路,但在其他示例中,该电路的功能中的一些可替代地由在cpu 6上执行的软件(例如,管理程序)来实现。例如,虽然可提供硬件电路38来执行图7至图9的步骤,以用于保持关于给定vpex的跟踪信息36(包括保持/更新如上所述的未决中断记录60、粗略未决映射62、粗略启用未决映射64和未决中断状态66),但是可以软件来实现中断搜索步骤(包括基于跟踪信息62、64、66决定是否需要搜索未决中断映射60的给定块72)。因此,在一些情况下,cpu 6将充当中断电
路39和(部分地)控制电路38。
92.因此,概括地说,通过使用如上所述的状态机跟踪未决中断状态,这可允许在已经知道将不存在针对给定虚拟处理器的未决启用中断的情况下完全消除中断搜索。另外,通过提供粗略启用未决映射64,这允许消除对未决中断映射60内的特定块72的搜索以加速搜索过程。无论哪种方式,这都可改善处理虚拟处理器内的实际程序所花费的部分时间,并减少在虚拟处理器之间切换的驻留切换时间的持续时间,以改善性能。
93.在本技术中,字词“被配置为
…”
用于意指装置的元件具有能够执行所限定的操作的配置。在该上下文中,“配置”意指硬件或软件的互连的布置或方式。例如,该装置可具有提供所限定的操作的专用硬件,或者可对处理器或其他处理设备进行编程以执行该功能。“被配置为”并不意味着装置元件需要以任何方式改变以便提供所限定的操作。
94.虽然本文已结合附图详细描述了本发明的示例性实施方案,但应当理解,本发明并不限于那些精确的实施方案,并且在不脱离所附权利要求书所限定的本发明的范围的前提下,本领域的技术人员可在其中实现各种变化和修改。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1