CN105210041B - 针对虚拟处理器处理并路由中断 - Google Patents
针对虚拟处理器处理并路由中断 Download PDFInfo
- Publication number
- CN105210041B CN105210041B CN201480027941.2A CN201480027941A CN105210041B CN 105210041 B CN105210041 B CN 105210041B CN 201480027941 A CN201480027941 A CN 201480027941A CN 105210041 B CN105210041 B CN 105210041B
- Authority
- CN
- China
- Prior art keywords
- virtual
- interrupt
- processing unit
- pending
- processor
- 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
- 238000012545 processing Methods 0.000 claims abstract description 175
- 238000013500 data storage Methods 0.000 claims abstract description 51
- 230000004044 response Effects 0.000 claims abstract description 22
- 238000000034 method Methods 0.000 claims description 14
- 239000011800 void material Substances 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 claims description 2
- 239000003550 marker Substances 0.000 claims description 2
- 230000008569 process Effects 0.000 claims description 2
- 238000000151 deposition Methods 0.000 claims 1
- 101100189862 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) PEP8 gene Proteins 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 101150080255 PEP1 gene Proteins 0.000 description 3
- 101100049526 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) VPS13 gene Proteins 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000005611 electricity Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 235000013399 edible fruits Nutrition 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000010129 solution processing Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/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/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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
一种用于控制对在数据处理装置处接收的中断进行路由和处理的中断控制器,该数据处理装置包括至少一个物理处理单元和存储器,该至少一个物理处理单元被配置为运行多个虚拟处理器中的至少一个虚拟处理器,该存储器被配置为存储至少一个虚拟未决表格,该虚拟未决表格用于存储针对多个虚拟处理器中对应的虚拟处理器的未决虚拟中断。中断控制器包括:包括对应于至少一个物理处理单元的至少一个数据存储设备的再分配电路,至少一个数据存储设备被配置为存储针对虚拟未决表格的指针和针对未决表格的指针,该虚拟未决表格被配置为存储针对当前在对应的物理处理单元上运行的虚拟处理器的当前未决虚拟中断,该未决表格被配置为存储针对对应的物理处理单元的当前未决物理中断;被配置为接收用于中断虚拟处理器的虚拟中断的输入;和控制电路。该控制电路被配置为:响应于接收到虚拟中断,访问再分配电路中对应于虚拟处理器当前相关联的至少一个物理处理单元的至少一个数据存储设备,并且从数据存储设备中确定虚拟中断的虚拟处理器当前是否在物理处理单元上运行;如果是,则将虚拟中断添加到由再分配电路指向的虚拟未决表格中;以及如果否,则将虚拟中断存储在针对虚拟处理器的虚拟未决表格中,该虚拟未决表格被存储在存储器中。
Description
技术领域
技术领域涉及数据处理,更具体地涉及可以运行多个虚拟处理器和中断控制电路以针对虚拟处理器路由中断的数据处理器。
背景技术
在可以运行各种虚拟处理器的数据处理装置的领域中,控制和路由针对虚拟处理器的中断是很复杂的,并且需要大量的循环来解决。通常在具有同时运行的多个处理器的系统中,多个处理器中的一些是虚拟处理器,超级管理器控制中断并且确定将这些中断发送到哪里。
这通常使用中断转换表格来完成,中断转换表格定义通过软件查看到的中断的ID和中断应该被发送到的处理器。在针对虚拟处理器存在中断时,该表格将接收到的虚拟中断映射到物理中断。随后超级管理器需要完成反向映射,并随后在虚拟机器当前不活动的情况下不得不调度该虚拟机器。该反向映射通常需要大量的循环。此外,在存在很多虚拟处理器的情况下,存储这些映射的中断转换表格可能是非常大的。
期望能够利用较低的软件性能开销并且不需要存储大量的数据来处理虚拟中断。
发明内容
第一方面提供了一种中断控制器,该中断控制器用于控制对在数据处理装置处接收的中断的路由和处理,所述数据处理装置包括至少一个物理处理单元和存储器,所述至少一个物理处理单元被配置为运行多个虚拟处理器中的至少一个虚拟处理器,所述存储器被配置为存储至少一个虚拟未决表格,该虚拟未决表格用于存储针对所述多个虚拟处理器中相应的一个虚拟处理器的未决虚拟中断,所述中断控制器包括:
再分配电路,该再分配电路包括对应于所述至少一个物理处理单元的至少一个数据存储设备,所述至少一个数据存储设备被配置为存储针对虚拟未决表格的指针和针对未决表格的指针,该虚拟未决表格被配置为存储针对当前在对应的物理处理单元上运行的虚拟处理器的当前未决虚拟中断,该未决表格被配置为存储针对所述对应的物理处理单元的当前未决物理中断;
输入,该输入被配置为接收用于中断虚拟处理器的虚拟中断;
控制电路,该控制电路被配置为:
响应于接收到的所述虚拟中断,访问所述再分配电路中与当前关联于所述虚拟处理器的所述至少一个物理处理单元相对应的所述至少一个数据存储设备;以及
从所述数据存储设备中确定所述虚拟中断的所述虚拟处理器当前是否在所述物理处理单元上运行;以及
如果是,则将所述虚拟中断添加到由所述再分配电路指向的所述虚拟未决表格中;并且
如果否,则将所述虚拟中断存储在针对所述虚拟处理器的所述虚拟未决表格中,该虚拟未决表格被存储在所述存储器中。
本文描述的技术认为将虚拟中断发送到当前不活动的虚拟处理器不是简单的,并且对此的传统解决方案需要有效的软件介入。本发明认为存在与处理单元相关联的指示(一个或多个)虚拟处理器中的哪个当前在该处理单元上运行的电路时,访问该电路可以提供有关该虚拟处理器的当前状态。此外,在存储器中存在用于存储还针对当前未运行的虚拟处理器的未决虚拟中断的虚拟未决表格时,如果虚拟处理器当前不活动,则接收的虚拟中断可以被路由到适当的表格,并且该中断可以在稍后虚拟处理器被激活时被处理。当虚拟处理器是活动的时,该中断可以经由当前正被使用的虚拟未决表格被路由到该虚拟处理器。以这种方式,提供了一种不需要有效的软件介入的简单解决方案,该解决方案处理虚拟中断并且允许这些虚拟中断被存储在适当的未决表格中,而不用考虑将被中断的虚拟处理器当前是否是活动的。
在一些实施例中,响应于从所述数据存储设备中确定的所述虚拟处理器当前未在所述物理处理单元上运行,所述控制电路被配置为生成物理中断,并将所述物理中断存储到由所述再分配电路中被访问的数据存储设备指向的所述未决表格中,所述物理中断指示针对当前未运行的虚拟处理器存在未决中断。
虽然将当前不活动的虚拟处理器的未决虚拟中断简单地存储到存储器中的表格中足以,但是向处理器发送针对该虚拟处理器的中断已经到达的信号,以使得处理器可以在其认为适当的情况下决定激活该虚拟处理器,这会更有优势。因此,在一些实施例中,中断控制器中的控制电路会生成物理中断,并将其存储到由再分配电路中的访问数据存储设备指向的未决表格中。该中断指示针对当前未运行的虚拟处理器存在未决中断,并且处理器可以从中确定是否开始运行虚拟处理器。
在一些实施例中,所述控制电路被配置为设置存储在所述未决表格中的所述物理中断的优先级,在配置过程中依据所述虚拟中断的优先级和由软件对所述虚拟处理器设置的未决虚拟中断的优先级中的至少一个来设置所述优先级。
设置存储在未决表格中的物理中断的优先级是有优势的,这使得处理可以确定是否采用该中断。物理中断的优先级可以取决于虚拟中断的优先级,这使得重要的虚拟中断可以被快速采用。替代地和/或另外地,这可以取决于设备的配置,该设备被设置为以优先次序的方式或其他的方式排序针对特定虚拟处理器接收的虚拟中断。在任意情况中,物理中断对于处理器充当指示器,指示虚拟处理器等待中断,并且该指示器还提供快速采用该中断是如何重要的一些指示或其他。
在一些实施例中,所述数据处理装置包括多个处理单元,并且所述再分配电路包括多个所述数据存储设备,所述多个数据存储设备中的每一个数据存储设备与所述多个处理单元之一相对应。
虽然可能是单一的数据处理单元运行多个虚拟处理器,但是在许多实施例中会有多个处理单元并且会有具有与处理单元中的每一个相对应的数据存储设备的再分配电路。因此,中断控制器会访问与对应的处理单元相关联的再分配电路,其中该对应的处理单元与虚拟处理器相关联。
在一些实施例中,所述控制电路被配置为响应于接收到所述虚拟中断来访问存储在所述存储器中的一组分层表格,从而确定当前与所述虚拟处理器相关联的物理处理器单元。
控制电路需要确定虚拟处理器相关联的是不同物理处理单元中的哪一个,以便访问再分配电路中的适当的数据存储设备。这可以使用存储在存储器中的一组分层表格来完成,该组分层表格存储关于特定虚拟处理器当前与哪个处理单元相关联的信息。
在一些实施例中,所述数据处理装置包括与所述一组分层表格相关联的另外的表格,用于存储有关所述虚拟中断的信息,所述信息包括所述虚拟中断的优先级。
在与分层表格分开的表格中存储有关虚拟中断的数据是有优势的。路由中断需要分层表格,而分开的表格存储了其他信息,通常是诸如中断的优先级之类的配置信息。这样做的优势是分开的表格可以位于虚拟存储器内,该虚拟存储器是由在虚拟处理器上运行的OS从超级管理器分配给该虚拟处理器的池中分配的存储器。这允许该表格可以直接被虚拟处理器访问,从而允许该表格无需超级管理器的介入而被更新。
在一些实施例中,所述一组分层表格包括设备表格、中断转换表格、和虚拟处理单元表格,所述控制电路被配置为访问由所述虚拟中断标识的所述设备表格中的位置,所述访问的位置指示要访问的中断转换表格的部分,并访问在由所述设备表格标识的所述中断转换表格的所述部分中由所述虚拟中断标识的位置,存储在所述中断转换表格中的所述访问的位置中的数据提供了所述虚拟处理单元表格中的位置的指示,该位置存储了指示要被所述虚拟中断进行中断的所述虚拟处理器当前与所述多个处理单元中哪个处理单元相关联的数据。
分层表格组可以包括三个表格,这三个表格包括设备表格,该设备表格包括关于可以从其接收中断的系统的不同虚拟设备的信息。设备表格被用来索引到转换表格,该转换表格存储关于中断类型的信息,并提供到虚拟处理单元表格的指针,该虚拟处理单元表格提供关于虚拟处理器当前与哪个物理处理单元相关联的信息。就这方面而言,接收的中断会具有设备ID和数据,该设备ID指示中断从该设备被接收,数据是对如何索引到中断转换表格的指示。该设备ID允许索引到设备表格,从设备表格确定中断转换表格中对应于该设备的部分的大小和基地址。该基地址与中断的数据一起被用来索引到中断转换表格并确定中断的类型是虚拟的还是物理的,并且还查找用于指向虚拟处理单元表格的指针,从该虚拟处理单元表格可以发现再分配电路要被访问的、对应于适当的物理处理单元的地址还有存储器中虚拟未决表格的地址。以这种方式,存储在这些分层表格中的信息允许在没有软件介入的情况下将中断发送至每个虚拟处理器。
在一些实施例中,所述再分配电路包括与所述多个数据存储设备相关联的多个缓存,所述多个缓存被配置为存储当前在所述对应的物理处理单元上运行的所述虚拟处理器的所述虚拟未决表格。
在虚拟处理器是活动的时,再分配电路可以从对应于活动的虚拟处理器的虚拟未决表格中读取数据,并在中断控制器中将数据存储到与其相关联的缓存中。以这种方式,虚拟未决表格的信息可以很容易地被访问,并且存储在其中的物理中断可以根据它们的优先级被激活。
在一些实施例中,所述再分配电路包括多个单元,每个单元包括所述至少一个数据存储设备中的一个数据存储设备,并且每个数据存储设备与所述多个处理单元中的一个处理单元相关联,所述再分配电路的所述单元中的每个单元被配置为能对所述存储器中存储针对当前与所述对应的物理处理单元相关联的虚拟处理器的所述虚拟未决表格的部分进行唯一写入访问。
再分配电路可以以单元的方式排列,每个单元对应于特定的物理处理单元。再分配电路的单元中的每个单元可以被配置为能对所述存储器中存储针对当前与对应的物理处理单元相关联的虚拟处理器的虚拟未决表格的部分进行唯一写入访问。以这种方式,再分配电路具有这些虚拟未决表格的所有权,并且可以用同时没有其他人会尝试更新这些表格的认识来将其安全地更新。这移除了对更新的任何原子性要求,并允许经由该再分配电路对要被路由的虚拟中断进行控制,这样允许再分配电路按需更新表格,而且在有移动的需求时移动它们。以这种方式,虚拟中断可以以安全而且简单的方式被控制。
在一些实施例中,所述中断控制器被配置为响应于接收到移动命令来通过如下操作以对目标为一个虚拟处理器的虚拟中断进行移动从而将不同的虚拟处理器作为目标:
针对所述一个虚拟处理器和所述不同的虚拟处理器二者,确定所述虚拟未决表格的基地址和当前与所述虚拟处理器相关联的物理处理器单元;
访问所述再分配电路中对应于当前与所述一个虚拟处理器相关联的所述物理处理器单元的单元,以及将所述虚拟未决表格的基地址和关于所述不同的虚拟处理器相关联的所述物理处理单元的数据发送到所述再分配电路;
访问所述再分配电路中对应于当前与所述不同的虚拟处理器相关联的所述物理处理器单元的单元;
根据接收到的所述数据所述再分配电路被配置为清除针对所述一个虚拟处理器的所述虚拟未决表格中的所述虚拟中断的未决状态;以及
用所述未决虚拟中断更新所述不同的虚拟处理的虚拟未决表格。
在一个示例中,在目标为一个虚拟处理器的虚拟中断需要被移动到不同的虚拟处理器情况下,该唯一写入访问可能很便捷。这可以通过更新虚拟未决表格的简单方式来完成,由于再分配电路是对存储器的该部分具有写入访问的唯一电路,所以可以经由再分配电路来路由命令,并且可以以简单且有效的方式来移动虚拟未决中断。
在一些实施例中,所述中断控制器被配置为通过从所述虚拟未决表格中删除所述中断来清除所述虚拟中断的未决状态。
虚拟中断的未决状态可以通过从未决表格中删除该虚拟中断来被简单地清除。其随后可以在不同的表格中被设置。
在一些实施例中,对应于当前与所述不同的虚拟处理器相关联的所述物理处理器单元的所述再分配单元被配置为确定所述虚拟中断的所述虚拟处理器当前是否在所述物理处理单元上运行,如果否,则将物理中断存储到由所述再分配电路中的所述访问的数据存储设备指向的所述未决表格中,所述物理中断指示针对当前未运行的虚拟处理器存在未决虚拟中断。
当移动虚拟中断时,针对与现在已经接收中断的虚拟处理器相关联的物理处理单元设置物理中断可能是很便捷的。以这种方式,物理处理单元可以按需选择并启动该虚拟处理器。
在一些实施例中,所述中断控制器被配置为通过在所述移动命令之后发出阻碍命令来响应所述移动命令,以使得对所述再分配电路的读取访问直到由所述移动命令触发的对所述再分配电路的访问完成为止才能完成。
当在虚拟处理器之间移动虚拟中断时,设置阻碍命令以确保在另外的命令被发出之前中断序列完成可能是便捷的。例如,确保中断在旧的处理器上不再是未决的可能是可取的。因此,该阻碍命令会导致通过与由移动命令对再分配电路使用的相同标准结构的阻塞式读取(blocking read)。应当注意的是,可能已经与虚拟中断的移动相关联的物理中断可能针对新的虚拟处理器被重新生成,但是原来生成的物理中断没有被移动。这并不是问题,因为这仅会导致不必要的超级管理器进入,这可能在性能上不是非常有效,但不会引起任何错误。阻碍命令可以是独立的命令,或者移动命令可以是移动命令和阻碍命令的组合,例如MOV sync。把这两种命令作为独立的命令使得多个移动命令能够被连续地执行,随后发送单个阻碍命令,例如,MOV、MOV、MOV、sync。
在一些实施例中,响应于接收到在物理处理单元之间移动的命令,即发送将与所述多个物理处理单元中的一个物理处理单元相关联的虚拟处理器移动到所述多个物理处理单元中不同的物理处理单元的信号,所述中断控制器被配置为:
访问所述再分配电路中对应于与所述虚拟处理器最初相关联的所述物理处理单元的数据存储设备,并从所述指针中确定所述虚拟处理器当前是否在运行,并且如果是,则所述再分配电路被配置为将来自由所述指针指向的所述虚拟未决表格的数据写入存储在存储器中的对应虚拟未决表格;以及
更新所述分层表格,使得所述虚拟处理器与所述多个物理处理单元中不同的物理处理单元相关联。
可以完成的另外的实现方式是在物理处理单元之间移动虚拟处理器。关于针对虚拟处理器的中断的信息被存储在虚拟未决表格中的方式意味着在虚拟处理器的移动发生时传输虚拟中断,这种方法相对简便,并且可以作为一组简单的步骤完成:访问再分配电路,并按需更新各种数据存储设备和分层表格。
在一些实施例中,所述中断控制器被配置为停止向正被移动的虚拟处理器发送任何新接收的中断,直到完成所述分层表格的所述更新。
在虚拟处理器在物理处理单元之间被移动的情况下,中断控制器可能希望停止对正在被移动的虚拟出处理器发送任何新接收的中断,直到完成分层表格的更新。如果没有这么做,则新接收的中断可能被错误路由。
在一些实施例中,所述中断控制器被配置为在物理处理单元之间移动的命令之后发出阻碍命令,所述中断控制器在发出另外的中断之前等待对于所述阻碍命令的响应,所述响应指示已经完成对所述分层表格的所述更新。
为了确保在发送另外的中断之前完成表格的更新,可以使用阻碍命令,对阻碍命令的响应指示完成分层表格的更新。
本发明的第二方面提供了一种数据处理装置,包括:
至少一个物理处理单元,所述至少一个物理处理单元被配置为运行多个虚拟处理器中的至少一个虚拟处理器;
存储器,该存储器被配置为存储至少一个虚拟未决表格,该至少一个虚拟未决表用于存储针对所述多个虚拟处理器中相应的一个虚拟处理器的未决虚拟中断;以及
中断控制器,该中断控制器用于根据本发明的第一方面控制和处理中断。
在一些实施例中,所述存储器被配置为存储用于控制所述中断的一组分层表格,所述分层表格包括设备表格、中断转换表格、和虚拟处理单元表格,所述表格可响应于所述中断中的一个中断而被访问,所述中断指示在所述设备和中断转换表格中进行访问的位置;
所述设备表格存储针对所述中断转换表格的指针;
所述中断转换表格存储针对所述虚拟处理单元表格的指针和中断标识符;以及
所述虚拟处理单元表格存储指示如下内容的数据:将被所述虚拟中断进行中断的所述虚拟处理器当前与所述多个处理单元中的哪个处理单元相关联。
本发明的第三方面提供了一种控制对数据处理装置处接收的中断的路由和处理的方法,所述数据处理装置包括至少一个物理处理单元和存储器,所述至少一个物理处理单元被配置为运行多个虚拟处理器中的至少一个虚拟处理器,所述存储器被配置为存储至少一个虚拟未决表格,该虚拟未决表格用于存储针对所述多个虚拟处理器中相应的一个虚拟处理器的未决虚拟中断,所述方法包括如下步骤:
接收用于中断虚拟处理器的虚拟中断;
确定所述虚拟处理器当前与所述至少一个物理处理单元中的哪个物理处理单元相关联;
访问再分配电路中对应于当前与所述虚拟处理器相关联的所述至少一个物理处理单元的数据存储设备;
从所述数据存储设备中确定所述虚拟中断的所述虚拟处理器当前是否在所述至少一个物理处理单元上运行;
如果是,则将所述虚拟中断添加到由所述再分配电路指向的所述虚拟未决表格中;以及
如果否,则将所述虚拟中断存储在针对所述虚拟处理器的所述虚拟未决表格中,该虚拟未决表格被存储在所述存储器中。
本发明的第四方面提供了一种用于控制数据处理装置来根据本发明的第三方面执行方法的计算机程序。
本发明的第五方面提供了用于控制对在数据处理装置处接收的中断进行路由和处理的装置,所述数据处理装置包括用于运行多个虚拟处理装置中的至少一个虚拟处理器装置的至少一个物理处理装置,和用于存储至少一个虚拟未决表格的存储器装置,该虚拟未决表格用于存储针对所述多个虚拟处理装置中相应的一个虚拟处理装置的未决虚拟中断,所述中断控制装置包括:
再分配装置,该再分配装置包括对应于所述至少一个物理处理装置的至少一个数据存储装置,所述至少一个数据存储装置用于存储针对虚拟未决表格的指针和针对未决表格的指针,其中该虚拟未决表格被配置为存储针对当前在对应的物理处理装置上运行的虚拟处理装置的当前未决虚拟中断,该未决表格被配置为存储针对所述对应的物理处理装置的当前未决物理中断;
输入装置,用于接收针对中断虚拟处理器的虚拟中断;
控制装置,用于:
响应于接收到所述虚拟中断,访问所述再分配电路中对应于虚拟处理器当前相关联的至少一个物理处理单元的至少一个数据存储装置,以及
从所述数据存储装置中确定所述虚拟中断的所述虚拟处理器当前是否在所述物理处理单元上运行;以及
如果是,则将所述虚拟中断添加到由所述再分配电路指向的所述虚拟未决表格中;以及
如果否,则将所述虚拟中断存储在针对所述虚拟处理器的所述虚拟未决表格中,该虚拟未决表格被存储在存储器中。
本发明的以上对象、特征、和优点以及其他对象、特征、和优点通过下文结合附图进行阅读的示意性实施例的详细说明将是显而易见的。
附图说明
图1示出了根据本发明的实施例的中断控制器;
图2示出了根据本发明的实施例的数据处理装置;
图3示意性地示出了根据本发明的实施例的利用各种分层表格进行中断的中断控制器;
图4示意性地示出了根据本发明的实施例,虚拟中断是如何被路由的;
图5示出了将虚拟中断移动到不同的虚拟处理器;
图6示出了移动虚拟处理器和路由与该虚拟处理器相关联的未决虚拟中断;以及
图7示出了对根据本发明的实施例的方法中的步骤进行阐述的流程图。
示例非限定性实施例的描述
图1示出了根据本发明的实施例的中断控制器10。该中断控制器被配置为针对具有多个处理单元的处理装置控制中断,其中多个处理单元中至少有一些运行虚拟处理器。中断控制器10具有输入12,经由该输入12中断控制器10从虚拟设备接收包括虚拟中断的中断,中断控制器10还具有用于处理接收到的中断的控制电路14和再分配电路16。再分配电路被分成若干部分,每个部分与处理装置的物理处理单元相对应。
一收到虚拟中断,控制电路14就会访问存储器(未示出),并从存储在其中的各种表格中确定虚拟中断的虚拟处理器相关联的是处理装置的哪个处理单元。由此可以确定应该访问的再分配电路16的部分。
控制电路14随后会访问再分配电路16中对应于当前与中断的虚拟处理器相关联的物理处理单元的部分。再分配电路的不同部分各自包括寄存器18和19。寄存器18存储对应的物理处理单元上当前活动的虚拟处理器的虚拟未决表格位于哪里的指示符,寄存器19存储针对该处理单元的物理中断的未决表格将在哪里找到的指示符。在该实施例中,存储在寄存器19中的指示符是以指针的形式指向该位置。
在该实施例中,再分配电路16的每个部分还具有与其相关联的缓存20。当虚拟处理器在处理单元上是活动的时,存储针对该虚拟处理器的未决虚拟的虚拟未决表格被存储在该缓存20中,以使得这些表格可以很容易的被再分配电路16访问。
缓存20还存储指示未决虚拟中断的优先级的数据,并且控制电路14将从缓存中确定优先级并选择具有最高优先级的中断,并按需将其发送到运行虚拟处理器的处理单元。控制电路14还控制存储在指针19指向的物理未决表格中的任意物理中断的选择和传输。这些中断的优先级也被存储。
图2示出了数据处理装置30内的中断控制器10。数据处理装置30从外部的虚拟设备40接收虚拟中断,该虚拟设备40可以在数据处理装置外部的物理设备50上运行。在一些实施例中,这些设备可以是与数据处理装置30有关的外围设备。
在该实施例中,数据处理装置30具有三个CPU 60、62、和64。CPU1 60具有当前在其上运行的一个虚拟处理器,CPU2 62具有当前在其上运行的两个虚拟处理器,而CPU3 64上没有。中断控制器10和CPU 60、62、和64中的每一个经由总线70被连接到存储器80。存储器80存储虚拟未决表格,该虚拟未决表格存储针对特定虚拟处理器的未决虚拟中断。在该实施例中,这些虚拟未决表格被示为VPT1、VPT2、VPT3和VPT4。VPT1与在CPU2上运行的虚拟处理器1相对应。VPT2与在CPU上运行的虚拟处理器2相对应,而VPT3与在CPU1上运行的虚拟处理器3相关,并且VPT4与当前不活动的虚拟处理器相关。
这些虚拟未决表格VPT1-4中的每一个存储未决虚拟中断。这些中断的优先级被存储在相关的配置表格89中,该配置表格89可从对应的再分配电路进行访问,虚拟未决表格将存储有关如何索引到该配置表格以获得优先级的信息以及可能的其他配置信息(例如,针对每个未决中断的使能信息)。在分开的配置表格中存储优先级的优势是分开的配置表格可以在虚拟存储中被设置,使得该配置表格可以通过虚拟处理器进行访问,从而允许其在无需超级管理器的介入下被更新。以这种方式,虚拟处理器自身可以改变未决中断的优先级。就这方面而言,在更新配置表格时,软件会向中断控制器10发送无效命令。中断控制器会将无效命令路由至适当的再分配电路,随后该再分配电路可以重新加载已经变更的配置表格。
虚拟未决表格中的每一个虚拟未决表格由再分配电路中对应于当前与虚拟处理器相关联的CPU的部分所有。虚拟处理器可以在其由CPU运行时与该CPU相关联,或者如果虚拟处理器当前不活动但在CPU控制之下以使得虚拟处理器被激活时其将在该CPU上运行,则虚拟处理器与该CPU相关联。再分配电路16具有对虚拟未决表格的唯一写入访问,因此更新虚拟未决表格可以仅由再分配电路16中对应于与相应的虚拟处理器相关联的处理单元的部分来完成。
就这方面而言,与特定处理器单元相关联的再分配电路16具有针对当前在该处理单元上活动的任意虚拟处理器的虚拟未决表格的指针。因此,在与CPU2相关联的再分配电路部分中存储有针对VPT1和VPT2的指针。在该实施例中,这些表格的当前版本也被存储在再分配电路16中的缓存20内。这允许再分配电路16很容易地访问这些未决表格并处理未决虚拟中断,并且将最高优先级的未决虚拟中断发送至当前运行对应的虚拟处理器的CPU。在该方面,CPU将具有虚拟中断输入端口,在该情形中有两个端口,因为存在两种潜在的虚拟中断。
虚拟中断将被发送到作为CPU内的虚拟处理器的一部分运行的中断处置器,该CPU将使用通常确认物理中断的相同的软件确认接收到的虚拟中断。
在该实施例中,具有对应的未决表格VPT4的虚拟处理器4当前是不活动的。然而,该虚拟处理器4与CPU3 64相关联,因此如果由中断控制器10接收的新的虚拟中断指定虚拟处理器4,则中断控制器10内的控制电路14随后将访问存储器80中的分层表格84,并将从这些表格中确定虚拟处理器4当前相关联的是处理单元60、62、64中的哪一个,在该情况下是CPU3 64。随后将访问与CPU3相关联的再分配电路16,并且会确定虚拟处理器4当前不是活动的。再分配电路16将用其已经接收到的虚拟中断更新VPT4,并且还可以生成物理中断,并将该物理中断添加到也被存储在存储器中的物理中断未决表格88,再分配电路16可以使用再分配电路中与CPU3相关联的部分中的指针来访问该物理中断未决表格88。
该物理中断将进入物理中断未决表格88,并且将被及时选择并被发送到CPU3,在此该物理中断会向CPU3指示存在针对虚拟处理器4的未决虚拟中断。随后CPU3可以依据当前执行的任务的优先级和该中断的优先级来选择激活该虚拟处理器,并且当该虚拟处理器被激活时,虚拟未决表格VPT4随后将被访问,并且未决虚拟中断可以根据优先级被处理。
图3更详细地示出了该处理。在示例中示出了中断来自虚拟设备被在数据处理单元处接收。该中断将具有指示中断控制器内应该被写入的寄存器的地址。该中断具有数据(数据x)并且具有设备ID(该中断被从其接收的设备的IDA)。中断控制器会向指定的地址写入设备ID和数据x,这会向中断控制器发送虚拟中断已经被接收的信号,并且中断控制器将访问存储器中的分级表格84。
第一个被访问的表格是使用接收的设备ID被索引到的设备表格85。对设备表格的访问返回有关针对该设备的下一个表格(专用于该设备的中断转换表格86)中空间大小以及针对该设备的该表格中基地址的信息。就这方面而言,可以针对每个设备分别有中断转换表格,或者可以是只有单一的表格,如本文的情况是每个设备具有该表格的特定部分。
随中断一起被接收的数据x从设备表格85提供的基地址索引到中断转换表格86。如果索引对于中断转换表格86中关于该设备的部分的指示大小过大的话,则会出现错误和错误陷阱。假设索引不是很大,则中断转换表格被访问,并且从该表格中获得中断ID和指针。中断ID指示该中断是虚拟中断还是物理中断,在该情况中,接收的中断是由虚拟设备生成的虚拟中断,并且指针指向另外的表格,当是虚拟中断时,该另外的表格会是虚拟处理单元表格87。虚拟处理单元表格87存储关于当前与该虚拟处理器相关联且对应于虚拟处理器当前相关联的物理处理单元的再分配电路的信息。虚拟处理单元表格87还给出了虚拟未决表格在存储器中的地址。虚拟处理单元表格87还提供对配置表格的索引,该配置表格存储关于不需要被路由的中断的信息。该信息包括中断的优先级和使能位。
因此,中断控制器10可以使用表格85、86、和87以及来自中断的信息,以针对虚拟中断确定虚拟处理器相关联的是哪一个处理单元以及针对该处理器的未决表格的地址。如果接收的中断是来自物理设备(设备IDB)的物理中断,则该物理中断会使用物理设备IDB索引到设备表格85,并且该中断会向中断转换表格86提供来自存储在设备表格85中的基地址的指针,并且中断转换表格会接着存储针对收集表格83中的位置的指针,该收集表格83具有针对该特定物理处理单元的再分配电路地址以及针对物理中断的未决表格的指针。
图4示意性地示出了对虚拟中断的接收和路由。非虚线箭头的尾部指示信息的来源,头部指示该信息的应用。因此,中断在ITS处被接收,ITS是对应于之前附图中的中断控制器的中断转换服务,并且使用与中断相关联的指针来访问中断转换表格,并执行中断映射来将中断映射到适当的虚拟ID空间或当确定是物理中断时映射到物理ID空间。
就这方面而言,在存在多个虚拟处理器的情况下,存在多个虚拟ID空间,依据作为目标的虚拟处理器,中断会被映射到适当的虚拟ID空间。中断转换服务还会通过访问适当的再分配器来确定目标的虚拟处理器当前是否在运行。如果否,则其会生成物理中断,并且该物理中断会被发送到物理ID空间中的物理中断表格。该物理中断会具有普通物理中断的所有属性,例如优先级,优先级表示物理中断可以根据优先级被发送到处理器,这样做的结果是通过物理中断来将非活动的虚拟处理器的任意重要的未决虚拟中断通知给超级管理器,而无需超级管理器轮询这些虚拟处理器,但是这不会被较为不重要的虚拟中断所中断。
图5示出了被接收的虚拟中断可如何被移动到不同的虚拟处理器。就这方面而言,由于管理虚拟中断的方式,通过使执行中断转换的再分配电路中断控制器来协调移动,将中断从一个虚拟处理器重定向到新的虚拟处理器是可能的。因此,中断控制器会查找中断当前被定向到的再分配电路的部分,并且会向其发送相关的虚拟处理器的虚拟未决表格的基地址以及将要移动的中断的中断ID。中断控制器还会发送关于新目标的信息,该信息是再分配电路的新部分的基地址和新虚拟未决表格的基地址。
再分配电路具有针对虚拟未决表格的唯一写入访问,并因此再分配电路可以控制移动。再分配电路会从相关的中断的虚拟未决表格中读取,并确定所提供的中断ID是否是未决的。如果是,则再分配电路通过写入虚拟未决表格来消除该中断ID的未决状态。随后向再分配电路的新部分发送具有新虚拟未决表格基地址和中断ID的消息,并且该消息使中断被写入该表格,如果与该表格相关的虚拟处理器当前不在运行,则可以发送物理中断的信号,使得处理器得知存在未决的虚拟中断。
软件还可以在各种命令之后发出阻碍命令(图5的SYNCR命令),以确保中断序列在任意其他命令被发送之前完成。该阻碍命令会导致通过与移动命令所使用的相同标准结构的阻塞式读取。由于消息已被配置,所以这些消息相对于彼此不能被重新排序。
应当注意的是,如果被移动的虚拟中断在当前不活动的虚拟处理器的虚拟未决表格中,则其在物理中断表格中会有与其相关联的物理中断以用于向软件发送信号:针对当前没有运行的虚拟处理器存在未决虚拟中断。在该实施例中,该物理中断没有以任何方式被删除或改变,并且会及时触发软件以启动虚拟处理器,对于该虚拟处理器不再存在未决虚拟中断。这不会引起错误,所以并不是个大问题。
参考图5,该序列被示意性地示出为软件发送移动命令指示中断X应该被从VCPU1移动到VCPU2。软件可以在该命令之后发送阻碍(SYNCR命令),如果发送了SYNCR命令,则会在发送其他中断之前等待由在阻碍之后发送的对SYNCR请求的响应所指示的移动命令完成。就这方面而言,用于读取将要被移动的中断的读取命令在SYNCR命令之后,这些命令可以充当阻塞后续命令直到返回某一值,或者如果再分配器不繁忙则再分配器可以响应于读取,或者如果再分配器繁忙则其可以返回其繁忙的指示。在这种情况中,读取和SYNCR命令可以被再发出直到返回某一值。
中断转换服务ITS还会停止向VCPU1发送中断并开始将中断发送至VCPU2。用于旧处理器VCPU1的目标再分配器会向VCPU2的目标再分配器发送未决中断,VCPU2的目标再分配器会适当地更新未决表格。
图6示出了将虚拟CPU从第一处理单元移动到第二处理单元以及如何根据本发明的实施例管理虚拟中断以允许这以简便的方式被执行的示例。因此,软件将在再分配电路中与第一处理单元相关的部分中更新存储有虚拟未决表格指针的寄存器,使其不再指向将被移动的虚拟处理器的虚拟未决表格,这么做的结果是如果虚拟处理器对虚拟未决表格是活动的,则为了确保虚拟未决表格是最新的,再分配电路的该部分会从它的缓存中清除任何条目。如果虚拟处理器不活动,则不需要执行该步骤。中断控制器随后会停止向该虚拟CPU发送新的中断。
阻碍指令随后会被发送到再分配电路的该部分,以确保在完成以上步骤之前没有新的中断被发送。再分配电路可以通过将自身的阻碍指令发送至结构来响应于该阻碍指令,以确保虚拟未决更新变得一致并且确保其到达主存储器。
随后分层表格将需要被更新,以指向与被移动的虚拟处理器的第二处理器单元相关联的再分配电路,随后不停止发送中断。阻碍还可以被用来确保该步骤的完成。现在软件可以更新新的再分配电路中的虚拟未决表格指针,从而指向虚拟处理器的虚拟未决表格以作为开始运行该虚拟处理器的部分。
关于图6,这些步骤通过如下被示出:软件发送移动命令以将虚拟处理器从旧的处理单元移动到新的处理单元,以及软件在阻碍已经被发送时等待完成。中断转换服务停止向旧的处理器发送新的中断,并开始将这些中断发送至新的处理单元。随后会更新表格,使得分层表格指示新的处理器单元,并且再分配器的指针也被更新,使得这些指针指示虚拟处理器现在与新的处理单元相关联。
图5和图6示出的移动命令的意义是,这些移动命令表示已经存在的物理命令的虚拟等同物,这样比较容易实现。
在上述的实施例中,中断的某些属性被存储在与图2的分层转换表格82、84、86分开的表格中。这些表格在图3中被示出,并且是针对虚拟中断的配置表格。针对物理中断存在类似的配置表格,但没有被示出。这些属性是在路由中断的过程中不需要的那些属性,但可能在稍后的处理中需要。因此,这些属性包括例如中断的优先级和使能位之类的事项。
由于在物理实现方式中这些事项被存储在可由软件寻址的表格中,所以当被虚拟化时软件会尝试访问该表格。在该实现方式中,虚拟属性表格实际上是由在VCPU上运行的OS从超级管理器分配给它的池中分配的存储器。这可以全部通过现有的存储器虚拟化技术来实现。针对该表格的指针被超级管理器提供给再分配电路,在VCPU上的软件尝试在其虚拟再分配器中设置表格时再分配电路获得该指针。
在该表格中存储比在主转换表格中尽可能多的属性是有优势,因为该表格可以通过快速标准存储虚拟化技术由VCPU直接访问,而对转换表格的更新需要超级管理器的介入。因此,例如可以降低改变中断的优先级的成本。
图7示出了图示根据本发明的实施例的方法中的步骤的流程图。针对虚拟处理器的虚拟中断被接收,并且表格被访问以确定当前与该虚拟处理器相关联的物理处理单元,还确定存储针对该虚拟处理器的未决虚拟中断的虚拟未决表格的存储器中的地址。与相关的物理处理单元相关联的再分配电路随后可以被访问,并且从该电路可以确定虚拟处理器当前是否在运行。这是因为当前运行的任意虚拟处理会具有针对该虚拟处理器内的虚拟未决表格的指针。因此,这些指针与已确定的虚拟未决表格的地址之间的比较会确定虚拟处理器是否在运行。
如果虚拟处理器在运行,则虚拟中断可以被添加到虚拟未决表格,该虚拟未决表格将被存储到再分配电路内的缓存中。如果虚拟处理器没有在运行,则虚拟中断可以被添加到存储器中的虚拟未决表格。另外,物理中断可以被添加到同样由再分配电路中的指针指向的物理中断未决表格。该物理中断向处理单元发送信号:针对当前没有运行的虚拟处理器存在未决的虚拟中断。该物理中断的优先级可以被设置,以使得例如虚拟处理器在需要时被激活,以及在虚拟中断不重要或者确定该虚拟处理器具有较低的优先级时不被激活。
虽然在本文中通过参考附图详细地描述了示意性实施例,但应该理解的是权利要求并不限于这些精确的实施例,并且在不脱离所附加权利要求的范围和精神的情况下,本领域技术人员可以对其实施各种改变和修改。例如,可以利用独立权利要求的特征做出从属权利要求的特征的各种组合。
Claims (21)
1.一种用于控制对在数据处理装置处接收的中断进行路由和处理的中断控制器,所述数据处理装置包括至少一个物理处理单元和存储器,所述至少一个物理处理单元被配置为运行多个虚拟处理器中的至少一个虚拟处理器,所述存储器被配置为存储至少一个虚拟未决表格,该至少一个虚拟未决表格用于存储针对所述多个虚拟处理器中对应的虚拟处理器的未决虚拟中断,所述中断控制器包括:
再分配电路,该再分配电路包括对应于所述至少一个物理处理单元的至少一个数据存储设备,所述至少一个数据存储设备被配置为存储针对虚拟未决表格的指针和针对未决表格的指针,所述虚拟未决表格被配置为存储针对当前在对应的物理处理单元上运行的虚拟处理器的当前未决虚拟中断,所述未决表格被配置为存储针对所述对应的物理处理单元的当前未决物理中断;
输入,该输入被配置为接收用于中断虚拟处理器的虚拟中断;
控制电路,该控制电路被配置为:
响应于接收到所述虚拟中断,访问所述再分配电路中对应于当前与所述虚拟处理器相关联的所述至少一个物理处理单元的至少一个数据存储设备;
从所述至少一个数据存储设备中确定所述虚拟中断的虚拟处理器当前是否在所述至少一个物理处理单元上运行;以及
如果是,则将所述虚拟中断添加到由所述再分配电路指向的虚拟未决表格中;以及
如果否,则将所述虚拟中断存储在针对所述虚拟处理器的虚拟未决表格中,该虚拟未决表格被存储在所述存储器中;
其中所述控制电路被配置为:响应于从所述至少一个数据存储设备中确定所述虚拟处理器当前没有在所述至少一个物理处理单元上运行,生成物理中断,并将所述物理中断存储到由所述再分配电路中被访问的数据存储设备指向的未决表格中,所述物理中断指示针对当前没有运行的虚拟处理器存在未决中断。
2.如权利要求1所述的中断控制器,其中所述控制电路被配置为设置存储在所述未决表格中的所述物理中断的优先级,在配置过程中,所述优先级是依据所述虚拟中断的优先级和软件对所述虚拟处理器设置的未决虚拟中断的优先级中的至少一个来设置的。
3.如任意前述的权利要求所述的中断控制器,其中所述数据处理装置包括多个处理单元,并且所述至少一个数据存储设备包括多个数据存储设备,所述多个数据存储设备中的每一个数据存储设备与所述多个处理单元之一相对应。
4.如权利要求3所述的中断控制器,其中所述控制电路被配置为:响应于接收到所述虚拟中断,访问存储在所述存储器中的一组分层表格,以确定当前与所述虚拟处理器相关联的物理处理单元。
5.如权利要求4所述的中断控制器,其中所述一组分层表格包括设备表格、中断转换表格和虚拟处理单元表格,所述控制电路被配置为访问由所述虚拟中断标识的所述设备表格中的位置,所访问的位置指示要访问的中断转换表格的部分,并访问由所述设备表格标识的所述中断转换表格的部分中由所述虚拟中断标识的位置,存储在所述中断转换表格中所访问的位置中的数据提供对所述虚拟处理单元表格中的位置的指示,该位置存储指示要被所述虚拟中断所中断的所述虚拟处理器当前与所述多个处理单元中的哪个处理单元相关联的数据。
6.如权利要求4或权利要求5所述的中断控制器,包括与所述一组分层表格相关联的另外的表格,该另外的表格用于存储关于所述虚拟中断的信息,所述信息包括所述虚拟中断的优先级。
7.如权利要求1所述的中断控制器,所述再分配电路包括与所述至少一个数据存储设备相关联的多个缓存,所述多个缓存被配置为存储当前在所述对应的物理处理单元上运行的所述虚拟处理器的虚拟未决表格。
8.如权利要求3所述的中断控制器,其中所述再分配电路包括多个单元,每个单元包括所述至少一个数据存储设备中的一个数据存储设备,并且每个数据存储设备与所述多个处理单元中的一个处理单元相关联,所述再分配电路的所述多个单元中的每个单元被配置为具有对所述存储器中存储当前与所述对应的物理处理单元相关联的虚拟处理器的虚拟未决表格的部分的唯一写入访问。
9.如权利要求8所述的中断控制器,所述中断控制器被配置为响应于接收到移动命令,通过如下操作将目标为一个虚拟处理器的虚拟中断移动到不同的虚拟处理器:
针对所述一个虚拟处理器和所述不同的虚拟处理器二者,确定所述虚拟未决表格的基地址和当前与所述虚拟处理器相关联的物理处理单元;
访问所述再分配电路中对应于当前与所述一个虚拟处理器相关联的物理处理单元的单元,以及将所述虚拟未决表格的基地址和关于所述不同的虚拟处理器相关联的物理处理单元的数据发送到所述再分配电路;
访问所述再分配电路中对应于当前与所述不同的虚拟处理器相关联的物理处理单元的单元;
所述再分配电路被配置为根据接收到的所述数据,清除针对所述一个虚拟处理器的虚拟未决表格中的所述虚拟中断的未决状态;以及
用所述未决虚拟中断更新所述不同的虚拟处理器的所述虚拟未决表格。
10.如权利要求9所述的中断控制器,其中所述中断控制器被配置为通过从所述虚拟未决表格中删除所述虚拟中断来清除所述虚拟中断的未决状态。
11.如权利要求9或权利要求10所述的中断控制器,其中所述再分配电路中对应于当前与所述不同的虚拟处理器相关联的物理处理单元的单元被配置为:确定所述虚拟中断的虚拟处理器当前是否在物理处理单元上运行,如果没有在运行,则将物理中断存储到由所述再分配电路中的被访问的数据存储设备指向的未决表格中,所述物理中断指示针对当前没有在运行的虚拟处理器存在未决虚拟中断。
12.如权利要求9所述的中断控制器,所述中断控制器被配置为通过在所述移动命令之后发出阻碍命令来响应所述移动命令,以使得对所述再分配电路的读取访问直到由所述移动命令触发的对所述再分配电路的访问完成为止才能完成。
13.如权利要求4所述的中断控制器,所述中断控制器被配置为响应于接收到在物理处理单元之间移动的命令,即发送将与所述至少一个物理处理单元中的一个物理处理单元相关联的虚拟处理器移动到所述至少一个物理处理单元中不同的物理处理单元的信号,所述中断控制器:
访问所述再分配电路中对应于最初与所述虚拟处理器相关联的所述物理处理单元的数据存储设备,并从指针中确定所述虚拟处理器当前是否在运行,如果是,则所述再分配电路被配置为将来自指针指向的虚拟未决表格的数据写入存储在存储器中的对应的虚拟未决表格;以及
更新所述分层表格,以使得所述虚拟处理器与所述至少一个物理处理单元中所述不同的物理处理单元相关联。
14.如权利要求13所述的中断控制器,其中所述中断控制器被配置为停止向正被移动的虚拟处理器发送任何新接收的中断,直到完成所述分层表格的更新。
15.如权利要求14所述的中断控制器,其中所述中断控制器被配置为在所述在物理处理单元之间移动的命令之后发出阻碍命令,所述中断控制器在发出另外的中断之前等待对于所述阻碍命令的响应,所述响应指示已经完成对所述分层表格的更新。
16.一种数据处理装置,包括:
至少一个物理处理单元,所述至少一个物理处理单元被配置为运行多个虚拟处理器中的至少一个虚拟处理器;
存储器,所述存储器被配置为存储至少一个虚拟未决表格,该虚拟未决表格用于存储针对所述多个虚拟处理器中相应的虚拟处理器的未决虚拟中断;以及
中断控制器,所述中断控制器用于根据任意前述的权利要求来控制和处理中断。
17.如权利要求16所述的数据处理装置,其中所述存储器被配置为存储用于控制虚拟中断的一组分层表格,所述分层表格包括设备表格、中断转换表格和虚拟处理单元表格,所述分层表格可响应于所述虚拟中断中的一个虚拟中断而被访问,所述虚拟中断指示所述设备表格和所述中断转换表格中要访问的位置;
所述设备表格存储针对所述中断转换表格的指针;
所述中断转换表格存储针对所述虚拟处理单元表格的指针和虚拟中断标识符;以及
所述虚拟处理单元表格存储指示如下内容的数据:将被所述虚拟中断所中断的虚拟处理器当前与多个处理单元中的哪个处理单元相关联。
18.一种控制对在数据处理装置处接收的中断进行路由和处理的方法,所述数据处理装置包括至少一个物理处理单元和存储器,所述至少一个物理处理单元被配置为运行多个虚拟处理器中的至少一个虚拟处理器,所述存储器被配置为存储至少一个虚拟未决表格,该虚拟未决表格用于存储针对所述多个虚拟处理器中相应的虚拟处理器的未决虚拟中断,所述方法包括如下步骤:
接收用于中断虚拟处理器的虚拟中断;
确定所述至少一个物理处理单元中当前与所述虚拟处理器相关联的物理处理单元;
访问再分配电路中对应于当前与所述虚拟处理器相关联的所述至少一个物理处理单元的数据存储设备;
从所述数据存储设备中确定所述虚拟中断的虚拟处理器当前是否在所述至少一个物理处理单元上运行;
如果是,则将所述虚拟中断添加到由所述再分配电路指向的虚拟未决表格中;以及
如果否,则将所述虚拟中断存储在针对所述虚拟处理器的虚拟未决表格中,该虚拟未决表格被存储在所述存储器中;
其中响应于从所述数据存储设备中确定所述虚拟处理器当前没有在所述至少一个物理处理单元上运行,生成物理中断,并将所述物理中断存储到由所述再分配电路中被访问的数据存储设备指向的未决表格中,所述物理中断指示针对当前没有运行的虚拟处理器存在未决中断。
19.如权利要求18所述的方法,还包括对响应于接收到移动命令来将接收到的虚拟中断从一个虚拟处理器移动到不同的虚拟处理器的进一步步骤:
针对所述一个虚拟处理器和所述不同的虚拟处理器,确定所述虚拟未决表格的基地址,并确定当前与所述虚拟处理器相关联的物理处理单元;
访问所述再分配电路中对应于当前与所述一个虚拟处理器相关联的物理处理单元的数据存储设备,并且将所述虚拟未决表格的基地址和关于与所述不同的虚拟处理器相关联的物理处理单元的数据发送到所述再分配电路;
清除所述一个虚拟处理器的虚拟未决表格中的所述虚拟中断的未决状态;以及
访问所述再分配电路中对应于当前与所述不同的虚拟处理器相关联的物理处理单元的数据存储设备,并且用所述未决虚拟中断更新所述不同的虚拟处理器的虚拟未决表格。
20.一种计算机可读介质,具有指令,该指令在由处理装置的一个或多个处理器执行时,可操作用于执行根据权利要求18-19中任一项所述的方法。
21.一种用于控制对在数据处理装置处接收的中断进行路由和处理的中断控制装置,所述数据处理装置包括用于运行多个虚拟处理装置中的至少一个虚拟处理装置的至少一个物理处理装置和用于存储至少一个虚拟未决表格的存储器装置,该虚拟未决表格用于存储针对所述多个虚拟处理装置中相应的虚拟处理装置的未决虚拟中断,所述中断控制装置包括:
再分配装置,该再分配装置包括对应于所述至少一个物理处理装置的至少一个数据存储装置,所述至少一个数据存储装置用于存储针对虚拟未决表格的指针和针对未决表格的指针,该虚拟未决表格被配置为存储针对当前在对应的物理处理装置上运行的虚拟处理装置的当前未决虚拟中断,该未决表格被配置为存储针对所述对应的物理处理装置的当前未决物理中断;
输入装置,用于接收用于中断虚拟处理装置的虚拟中断;
控制装置,用于:
响应于接收到所述虚拟中断,访问所述再分配装置中对应于当前与所述虚拟处理装置相关联的至少一个物理处理装置的至少一个数据存储装置;
从所述至少一个数据存储装置中确定所述虚拟中断的虚拟处理装置当前是否在所述至少一个物理处理装置上运行;以及
如果是,则将所述虚拟中断添加到由所述再分配装置指向的虚拟未决表格中;
如果否,则将所述虚拟中断存储在针对所述虚拟处理装置的虚拟未决表格中,该虚拟未决表格被存储在所述存储器装置中;以及
响应于从所述至少一个数据存储装置中确定所述虚拟处理装置当前没有在所述至少一个物理处理装置上运行,生成物理中断,并将所述物理中断存储到由所述再分配装置中被访问的数据存储装置指向的未决表格中,所述物理中断指示针对当前没有运行的虚拟处理装置存在未决中断。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/898,816 US9378162B2 (en) | 2013-05-21 | 2013-05-21 | Handling and routing interrupts to virtual processors |
US13/898,816 | 2013-05-21 | ||
PCT/GB2014/051279 WO2014188155A1 (en) | 2013-05-21 | 2014-04-24 | Handling and routing interrupts to virtual processors |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105210041A CN105210041A (zh) | 2015-12-30 |
CN105210041B true CN105210041B (zh) | 2019-11-15 |
Family
ID=50687510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480027941.2A Active CN105210041B (zh) | 2013-05-21 | 2014-04-24 | 针对虚拟处理器处理并路由中断 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9378162B2 (zh) |
KR (1) | KR102233169B1 (zh) |
CN (1) | CN105210041B (zh) |
GB (1) | GB2528600B (zh) |
MY (1) | MY168402A (zh) |
WO (1) | WO2014188155A1 (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9766917B2 (en) * | 2014-10-29 | 2017-09-19 | Red Hat Israel, Ltd. | Limited virtual device polling based on virtual CPU pre-emption |
KR20170032502A (ko) * | 2015-09-14 | 2017-03-23 | 삼성전자주식회사 | 스토리지 장치 및 그것의 인터럽트 발생 방법 |
US10585826B2 (en) * | 2016-01-25 | 2020-03-10 | Advanced Micro Devices, Inc. | Using processor types for processing interrupts in a computing device |
US10042720B2 (en) | 2016-02-22 | 2018-08-07 | International Business Machines Corporation | Live partition mobility with I/O migration |
US10042723B2 (en) | 2016-02-23 | 2018-08-07 | International Business Machines Corporation | Failover of a virtual function exposed by an SR-IOV adapter |
US10002018B2 (en) | 2016-02-23 | 2018-06-19 | International Business Machines Corporation | Migrating single root I/O virtualization adapter configurations in a computing system |
US10025584B2 (en) | 2016-02-29 | 2018-07-17 | International Business Machines Corporation | Firmware management of SR-IOV adapters |
US9760512B1 (en) | 2016-10-21 | 2017-09-12 | International Business Machines Corporation | Migrating DMA mappings from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system |
US9740647B1 (en) | 2016-10-21 | 2017-08-22 | International Business Machines Corporation | Migrating DMA mappings from a source I/O adapter of a computing system to a destination I/O adapter of the computing system |
US9785451B1 (en) | 2016-10-21 | 2017-10-10 | International Business Machines Corporation | Migrating MMIO from a source I/O adapter of a computing system to a destination I/O adapter of the computing system |
US9720863B1 (en) | 2016-10-21 | 2017-08-01 | International Business Machines Corporation | Migrating MMIO from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system |
US9715469B1 (en) | 2016-10-21 | 2017-07-25 | International Business Machines Corporation | Migrating interrupts from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system |
US9720862B1 (en) | 2016-10-21 | 2017-08-01 | International Business Machines Corporation | Migrating interrupts from a source I/O adapter of a computing system to a destination I/O adapter of the computing system |
US10055248B1 (en) * | 2017-02-22 | 2018-08-21 | Red Hat, Inc. | Virtual processor scheduling via memory monitoring |
DE112018002293T5 (de) * | 2017-05-01 | 2020-02-27 | Fisher-Rosemount Systems, Inc. | Industrielles steuerungssystem mit offener architektur |
US11487574B2 (en) * | 2017-09-19 | 2022-11-01 | Microsoft Technology Licensing, Llc | Targeted interrupts for virtual processors |
CN107861763B (zh) * | 2017-12-01 | 2022-03-11 | 麒麟软件有限公司 | 一种面向飞腾处理器休眠过程的中断路由环境恢复方法 |
CN108123850B (zh) * | 2017-12-25 | 2020-04-24 | 上海交通大学 | 针对中断持有者抢占问题的综合调度方法及装置 |
US11188369B2 (en) * | 2018-11-26 | 2021-11-30 | International Business Machines Corporation | Interrupt virtualization |
WO2020164820A1 (en) | 2019-02-14 | 2020-08-20 | International Business Machines Corporation | Directed interrupt virtualization |
CN113424150A (zh) | 2019-02-14 | 2021-09-21 | 国际商业机器公司 | 具有运行指示符的定向中断虚拟化 |
TWI764082B (zh) | 2019-02-14 | 2022-05-11 | 美商萬國商業機器公司 | 用於經引導中斷虛擬化之中斷信號之方法、電腦系統及電腦程式產品 |
WO2020164819A1 (en) | 2019-02-14 | 2020-08-20 | International Business Machines Corporation | Directed interrupt for multilevel virtualization with interrupt table |
TWI759677B (zh) * | 2019-02-14 | 2022-04-01 | 美商萬國商業機器公司 | 用於具有回退之經引導中斷虛擬化之方法、電腦系統及電腦程式產品 |
BR112021016093A2 (pt) | 2019-02-14 | 2021-10-26 | International Business Machines Corporation | Interrupção dirigida para virtualização de multiníveis |
TWI727607B (zh) | 2019-02-14 | 2021-05-11 | 美商萬國商業機器公司 | 用於具有中斷表之經引導中斷虛擬化之方法、電腦系統及電腦程式產品 |
JP7448550B2 (ja) | 2019-02-14 | 2024-03-12 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ブロッキング・インジケータを使用した有向割り込みの仮想化方法、システム、プログラム |
US11579920B2 (en) * | 2020-07-21 | 2023-02-14 | Arm Limited | Virtual processor interrupt tracking |
CN113918311B (zh) * | 2021-12-10 | 2022-07-01 | 北京智芯微电子科技有限公司 | 多核系统的软中断路由方法及响应软中断的方法和芯片 |
GB2619311B (en) * | 2022-05-31 | 2024-06-05 | Advanced Risc Mach Ltd | Doorbell physical interrupt control |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102341783A (zh) * | 2009-01-26 | 2012-02-01 | 超威半导体公司 | 用于各个处理器的辅助中断虚拟化的访客中断控制器 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02208740A (ja) | 1989-02-09 | 1990-08-20 | Fujitsu Ltd | 仮想計算機制御方式 |
US6961806B1 (en) | 2001-12-10 | 2005-11-01 | Vmware, Inc. | System and method for detecting access to shared structures and for maintaining coherence of derived structures in virtualized multiprocessor systems |
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 |
US7590982B1 (en) | 2003-12-17 | 2009-09-15 | Vmware, Inc. | System and method for virtualizing processor and interrupt priorities |
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 |
EP1669864B1 (en) * | 2004-12-03 | 2010-06-02 | STMicroelectronics Srl | A process for managing virtual machines in a physical processing machine, corresponding processor system and computer program product therefor |
US8286162B2 (en) | 2005-12-30 | 2012-10-09 | Intel Corporation | Delivering interrupts directly to a virtual processor |
US8271989B2 (en) | 2008-02-07 | 2012-09-18 | International Business Machines Corporation | Method and apparatus for virtual processor dispatching to a partition based on shared memory pages |
US8504752B2 (en) | 2008-06-24 | 2013-08-06 | Panasonic Corporation | Virtual machine control device, virtual machine control program, and virtual machine control circuit for managing interrupts of plural virtual machines |
GB2462258B (en) | 2008-07-28 | 2012-02-08 | Advanced Risc Mach Ltd | Interrupt control for virtual processing apparatus |
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 |
US9003094B2 (en) * | 2011-08-30 | 2015-04-07 | Red Hat Israel, Ltd. | Optimistic interrupt affinity for devices |
US9152587B2 (en) | 2012-05-31 | 2015-10-06 | Freescale Semiconductor, Inc. | Virtualized interrupt delay mechanism |
US20140331001A1 (en) * | 2013-05-02 | 2014-11-06 | Lsi Corporation | Command Barrier for a Solid State Drive Controller |
-
2013
- 2013-05-21 US US13/898,816 patent/US9378162B2/en active Active
-
2014
- 2014-04-24 MY MYPI2015703828A patent/MY168402A/en unknown
- 2014-04-24 KR KR1020157032257A patent/KR102233169B1/ko active IP Right Grant
- 2014-04-24 WO PCT/GB2014/051279 patent/WO2014188155A1/en active Application Filing
- 2014-04-24 CN CN201480027941.2A patent/CN105210041B/zh active Active
- 2014-04-24 GB GB1518020.1A patent/GB2528600B/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102341783A (zh) * | 2009-01-26 | 2012-02-01 | 超威半导体公司 | 用于各个处理器的辅助中断虚拟化的访客中断控制器 |
CN103761145A (zh) * | 2009-01-26 | 2014-04-30 | 超威半导体公司 | 用于各个处理器的辅助中断虚拟化的访客中断控制器 |
Also Published As
Publication number | Publication date |
---|---|
GB2528600A (en) | 2016-01-27 |
US20140351471A1 (en) | 2014-11-27 |
GB201518020D0 (en) | 2015-11-25 |
US9378162B2 (en) | 2016-06-28 |
GB2528600B (en) | 2020-12-23 |
CN105210041A (zh) | 2015-12-30 |
WO2014188155A1 (en) | 2014-11-27 |
KR102233169B1 (ko) | 2021-03-29 |
KR20160010863A (ko) | 2016-01-28 |
MY168402A (en) | 2018-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105210041B (zh) | 针对虚拟处理器处理并路由中断 | |
CN104636181B (zh) | 用于迁移虚拟机的方法和系统 | |
JP4402997B2 (ja) | ストレージ装置 | |
EP2307972B1 (en) | Interrupt control for virtual processing apparatus | |
US6185638B1 (en) | Method and system for dynamically assigning addresses to an input/output device | |
JP6406707B2 (ja) | 半導体記憶装置 | |
CN104239238B (zh) | 用于管理转换旁视缓冲的方法和装置 | |
CN100349150C (zh) | 通过直接存储器访问控制器传输数据的系统及方法 | |
JP2015001828A (ja) | 割当プログラム、割当装置および割当方法 | |
JPH10283210A (ja) | 仮想計算機システム間の仮想計算機移動制御方式 | |
WO2014022402A1 (en) | Coherence management using a coherent domain table | |
WO2013088473A1 (en) | Storage system and method for controlling memory in storage system | |
US20130219393A1 (en) | Zoning data to a virtual machine | |
JP2003131908A (ja) | 記憶制御装置 | |
CN104050115A (zh) | 一种存储控制器及其使用方法 | |
CN103577347B (zh) | 用于操作存储器设备的方法和用于存储器操作的系统 | |
US20090172212A1 (en) | System and method for managing input/output requests in data processing systems | |
CN104298519B (zh) | 用于配置操作系统的装置及其方法 | |
JP5158576B2 (ja) | 入出力制御システム、入出力制御方法、及び、入出力制御プログラム | |
EP1990729A1 (en) | Processor device and instruction processing method | |
US20080313366A1 (en) | Information processing apparatus, system control device, and input/output requesting method | |
JP3964821B2 (ja) | プロセッサ、キャッシュシステム及びキャッシュメモリ | |
US10241920B2 (en) | Systems and methods for coordinating interdependent asynchronous reads | |
JP2006164218A (ja) | ストレージシステム及びそのキャッシュ制御方法 | |
US10430216B1 (en) | Virtual machine automated selection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |