CN104321749B - 用于管理虚拟化环境中的中断的体系结构和方法 - Google Patents

用于管理虚拟化环境中的中断的体系结构和方法 Download PDF

Info

Publication number
CN104321749B
CN104321749B CN201280071792.0A CN201280071792A CN104321749B CN 104321749 B CN104321749 B CN 104321749B CN 201280071792 A CN201280071792 A CN 201280071792A CN 104321749 B CN104321749 B CN 104321749B
Authority
CN
China
Prior art keywords
client
processor
interruption
real
instruction
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
Application number
CN201280071792.0A
Other languages
English (en)
Other versions
CN104321749A (zh
Inventor
J·A·科尔曼
S·M·厄尔莱因
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Priority to CN201710472572.3A priority Critical patent/CN107273199B/zh
Publication of CN104321749A publication Critical patent/CN104321749A/zh
Application granted granted Critical
Publication of CN104321749B publication Critical patent/CN104321749B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Computer And Data Communications (AREA)

Abstract

一种方法,可包括:识别指示客户操作系统(OS)的实时模式操作的信号并在该客户OS正在运行时直接将用于第一处理器的中断路由至该客户OS,而不引起从由该客户OS执行到由主机系统执行的转移。其他实施例被公开和声明。

Description

用于管理虚拟化环境中的中断的体系结构和方法
背景技术
当前,多个设备需要最佳运行的实时操作系统,同时非实时应用的需求仍然流行。随着处理体系结构诸如多个核处理器的增殖,在单个平台满足两种需要是有用的,其可通过增加处理器核的复杂度实现。
虚拟化长期用于安全并且可靠地对多个应用域服务。这允许负载平衡以及鲁棒性。然而,当前实时操作系统无法容易地作为真正虚拟化实体而存在而不牺牲响应能力。这很大程度上由于在虚拟化环境处理中断的过程所导致。
在某些设置中,程序诸如管理程序,也称为虚拟机管理器(VMM),将虚拟操作平台呈现至称为客户的多个操作系统或客户操作系统。术语“虚拟机”(VM),其表示管理程序所管理的实体,总体上指代完全隔离的客户操作系统,安装于一般主机操作系统。
管理程序可安装于硬件主机,其任务为运行客户OS。当应用在虚拟化环境运行时,管理程序管理用于给定客户OS的应用的中断。例如,当用于第一客户OS的中断递送至管理程序时,虚拟机(VM)退出被触发,其中发生从客户执行到主机执行的转移。在中断成功地在管理程序处理之后,发生后续VM进入并且中断被注入至客户OS。然后客户OS重新开始执行并且就将管理程序注入的中断视为生成自客户OS自己的设备之一的中断。中断处理可导致中断延迟,具有当非虚拟化应用直接运行于硬件主机时产生的中断延迟的多倍的持续时间。由于许多应用对中断延迟敏感,其增加了延迟(还有其他因素),限制虚拟化的普及使用。
结合上述和其他考虑,需要当前的改进。
附图说明
图1说明了第一系统的一个实施例。
图2说明了图1的系统的体系结构的细节。
图3描述与本实施例一致的中断处理的一个示例。
图4说明了与本实施例一致的中断转译的一个示例。
图5描述了与多种实施例一致的用于处理中断的一种情形。
图6描述了与多种实施例一致的用于处理中断结束的一种情形。
图7说明了第一逻辑流程一个实施例。
图8说明了第二逻辑流程的一个实施例。
图9说明了第三逻辑流程的一个实施例。
图10说明了第四逻辑流程的一个实施例。
图11说明了计算体系结构的实施例。
具体实施方式
多种实施例针对用于在虚拟化环境中管理中断的技术。除其他优点,实施例可改进成本可承受性、可伸缩性、模块性、可扩展性或操作者、设备或网络的互操作性。
现参考附图,其中相同的参考数字用于指代全文中相同的元件。在如下描述中,为进行说明,多个特定细节被提出,以提供其全面理解。然而,显而易见的是,新的实施例可被实施,而不需要这些特定细节。在其它实例中,熟知的结构和设备在框图形式中示出,以实现其描述。其意图在于涵盖属于所声明主题的精神和范围的所有修改、等同和备选。
在多种实施例,硬件和/或软件中断可被管理以当应用运行于客户操作系统时降低应用的中断延迟。多种实施例呈现了新的体系结构,其通过提供伪发布的中断来降低关联于用于实时应用的中断的开支。在多种实施例,客户OS直接处理中断,而不是具有最初处理中断的管理程序。
关联于中断的开支的降低可使运行于客户操作系统的实时应用以如同应用直接运行于非虚拟化环境的硬件的相同的中断延迟操作。由本实施例提供的优点包括加强多个实时工作量的能力。特别地,本实施例使 N-1实时工作量利用虚拟化来加强,其中N包含任何正整数并且N-1的值仅由实时操作系统所固定的系统中核的数量N限制,假设一个核专用于管理程序和/或其他活动。本实施例致力于运行对虚拟化环境中的中断延迟敏感的实时应用的能力,由此提供虚拟化处理的可伸缩性以及低延迟操作的鲁棒性。这提供了虚拟化许多实时应用的能力,其目前为止由于减少中断延迟的关键性而总体上限于运行于本地硬件。作为这种应用的示例,在用于控制机器诸如机器人设备的多种工业控制操作中,计时可能非常关键,使得需要减少中断延迟。其他示例包括产生高分组速率传输的网络应用,其中及时响应分组的能力可由于高中断延迟而大打折扣,以使分组因为中断而丢弃。因此,由于相比于非虚拟化操作所产生的更大的中断延迟,这限制了在虚拟化环境中运行该实时应用的能力。
为解决该问题,在多种实施例,中断的直接处理或发布,可通过提供在系统中管理一个或多个客户OS的无记号管理程序来完成。无记号管理程序不需要定时器记号或其他外部中断,用于合适地在正在运行实时客户OS的处理器核上起作用。在其它实施例,管理程序可基于记号,并可在其他处理核的多个客户之间实现时间分片(time slicing),其不需要实时客户固定于其上。
图1说明了与多种实施例一致的用于处理中断的系统100的框图。如所说明的,系统100可从中断源102接收中断(未独立示出),用于由运行于系统100的应用来处理。在中断102源递送硬件中断的情况下,中断可为来自硬件设备的信号,其当处理器设备执行操作时被发送至处理器设备。然后目的处理器设备可停止正常处理,诸如应用的运行,并可执行关联于中断源102的存储器中的例程或程序。如图1所说明的,系统100可包括一个或多个处理器104a-104n,在某些实施例其可为多核平台的处理器核。系统100还包括管理程序106和一个或多个客户操作系统(OS)108m-108z,其中a,n,m和z表示任何正整数。一个或多个客户OS108m-108z可运行于虚拟化环境中的管理程序106之上,如图2进一步描述。系统100还包括实时中断模块110用于管理中断,下文描述了其操作。
与进一步的实施例一致,图2说明了图1的系统100的体系结构的细节。图2描述两个虚拟机(VM)202a,202b,其包括相应的客户OS 108m, 108n。每个VM 202a,202b还包括应用,诸如相应的非实时应用204a-1, 204b-1和实时应用204a-2,204b-2。在多种实施例,当客户OS正在运行实时应用时,并当客户OS正在运行非实时应用时,实时中断模块110 可用于管理用于客户OS的中断。实时中断模块110可体现于软件,硬件或硬件和软件的组合。在某些实施例,实时中断模块可包括于管理程序 106,一个或多个客户OS 108m-108z和/或处理器104a-104n的其他部分。
在实时中断模块110至少部分地包括于管理程序106的某些实施例中,管理程序106可从传统操作修改,以使其可操作以支持两个独立的操作模式,用于一个或多个客户OS108m-108z。在第一操作模式,非实时操作模式,管理程序106可执行为传统管理程序,其中要应用于给定处理器104a-104n的中断由管理程序106处理。非实时操作模式可适用于当非实时应用正在运行时管理一个或多个客户OS 108m-108z,诸如前述非实时应用204a-1,204b-1。以这种方式,因为非实时应用可能对中断延迟不敏感,管理程序处理过程中断所产生的开支是可接受的,使管理程序106以传统方式来处理中断。
在多种实施例,一个或多个客户OS 108m-108z可进入第二、实时操作模式,其当实时应用,诸如实时应用204a-2,204b-2,正在运行时可能是所希望的。在实时操作模式,如图3说明的,所有外部中断可直接路由至目的客户OS,而不是由管理程序106处理。图3描述了与本实施例一致的实时操作模式的一个中断处理的示例。中断源102可生成中断,示出为中断请求(IRQ)302,处理器104a将其直接路由至客户OS 108m。以这种方式,进入的中断可路由至客户OS而不产生VM退出事件,其指代在所谓的非根(root)操作模式到根(root)操作模式之间的转移。根(root) 操作模式指代当处理器可在没有虚拟化而运行主机系统时或当管理程序在虚拟化为活动时控制操作时的状态。在非根(root)模式,处理器操作是不同的。例如,结构诸如虚拟机控制结构(VMCS)可用于控制处理器操作并确定特定指令如何被执行。VMCS可位于存储器304,其存储主机和客户两者的完整的CPU状态,以及某些控制位(例如,何时从当前模式退出)。非根(root)模式特别地用于客户OS正在运行时。因此,VM退出事件可需要从指令由VM或客户OS执行到由主机或管理程序执行的转移。由于,在图3的示例中,IRQ302直接路由至客户OS 108m,管理程序106未被调用,并且不产生VM退出。
由于避免了外部处理步骤,在实时操作模式中操作的能力所带来的VM退出事件的防止可在运行实时应用时特别有用。此外,在实时和非实时操作模式之间切换的能力提供了应用操作的灵活性,其可对中断延迟不明显敏感。
因此,例如,在非实时操作模式,当客户OS 108m正在运行非实时应用204a-1时,由管理程序106的中断接收可产生VM退出,其中指令执行从客户OS 108传输至管理程序106。当中断处理完成时,VM进入可被执行,其指代从根(root)模式到非根(root)模式操作的转移。因此,在 VM进入发生之后,执行返回客户OS 108m,并且非实时应用204a-1在中断被接收之前运行。每次在客户OS 108m系统正在运行非实时应用 204a-1时中断被处理时,VM进入和VM退出事件可生成显著延迟。然而,如果非实时应用204a-1足以对中断延迟不敏感,则该中断延迟是可接受的。
相反,当客户OS 108m正在运行实时应用204a-2时,在实时应用 204a-2正在运行时执行的任何VM退出和/或VM进入操作可产生中断延迟,其持续时间对实时应用204a-2的最佳操作是不可接受的或不希望的。因此,客户OS 108m希望进入实时操作模式,其中当实时应用204a-2将被运行时,中断不产生VM退出,并且相反直接路由至客户OS 108m,如图3所描述。
在多种实施例,在支持实时应用的虚拟化操作的系统中实时操作模式可当客户OS运行于管理程序时被启动。例如,当实时应用正在运行或将被客户OS运行时,客户OS可生成信号以进入实时模式操作。在实时中断模块110的至少一部分被包含于管理程序106中的实施例中,由客户OS生成的用于实时操作模式的特定信号可路由至管理程序。当管理程序接收特定信号时,管理程序可将信号识别为指示用于客户OS的实时模式操作被请求。然后,系统100的操作可被修改以使用于给定处理器的中断在客户OS正在运行时直接路由至客户OS的核而不产生VM退出操作。
在一个实施例,客户OS可对管理程序进行“VM调用”,指示客户 OS准备好进入实时操作模式。作为响应,管理程序可采取一个或多个动作来设置实时模式的操作。在某些实施例,管理程序可在运行客户OS的处理器的VMCS中执行改变。例如,管理程序可改变VMCS的域,其确定接收的中断是否用于导致VM退出。因此,管理程序可“清除”指示中断用于导致VM退出的位。然后,当中断由运行客户OS的处理器接收时,没有产生VM退出,处理器仍在非根(root)操作模式,并且客户OS 仍在实时操作模式。
应当理解,在VM退出被禁止用于所接收的外部中断的实施例中,发送至运行客户OS的处理器的所有中断将被客户OS接收。除了其他类型的中断,这包括处理器间中断(IPI)。因此,希望客户OS正在运行于其上的管理程序不发送任何中断(包括定时器中断)至运行客户OS的处理器。因此,与多种实施例一致,运行实时应用的客户OS可固定于特定处理器。例如,再次参见图1,客户OS 108m可固定于处理器104a,客户OS 108n可固定于处理器104b等。在多核平台的实施例,每个处理器104a-104n可表示独立的处理器核。这使客户OS将实时设备编程成客户OS所固定的目标处理器(核),由此始终在该处理器(核)接收那些中断。在某些实施例,实时中断模块110可将客户OS固定在特定处理器核,以使在不同的处理器核之间不产生迁移,即使当实时应用没有运行于客户OS时,而在其它实施例管理程序106可操作以在不同的处理器或核之间以限制形式迁移客户OS,其中,在客户OS被迁移的任何时间,管理程序106更新多种数据结构以保证正确的中断转发。
与多种实施例一致,因为给定处理器的所有中断可由运行于该处理器的客户OS接收,中断格式可按需修改,以使该中断按照使客户OS正确地解释中断的格式被递送至客户OS。在一个实施例,管理程序106可经由实时中断模块110生成直接转译,用于被送往客户OS的中断。该转译可将由硬件生成的中断从第一格式转译为第二格式,以该第二格式,客户OS合适地处理该中断。
图4说明了与本实施例一致的中断转译的一个示例。在说明的示例中,中断源102可生成具有特定格式的IRQ 402。例如,中断源可为机器人设备硬件,其生成中断“4”(对应于IRQ 402的格式),以指示特定动作。IRQ 402可递送至管理程序106,其可识别中断“4”表示对应于客户 OS 108m的格式的中断“12”的特定动作。因此,管理程序可利用例如软件例程执行中断“4”到中断“12”的转译。转译的中断可作为IRQ 404 转发至客户OS 108m,其正确地将中断解释为指示由中断源102生成的中断“4”所表示的特定动作,并且因此以正确方式处理中断。
在某些实施例,硬件转译表(未示出)可用于将中断从由硬件中断源生成的格式转译为实时客户OS的正确的格式。例如,返回先前示例,为表示特定硬件中断的中断“4”和中断“12”之间的转译可被编程到硬件或控制硬件的设备驱动器中。
在多种附加的实施例,设置可被调整,以保证客户OS不从运行中被抢占,除非客户OS执行指令 以引起VM退出。在一个实施例,实时中断模块11O可修改典型管理程序初始化,以禁止HLT退出。术语“HLT 退出”指代当“暂停”(HLT)命令由运行客户OS的处理器执行时执行VM 退出。因此,再次参见图1,当客户OS 108m运行于处理器104a时,处理器,经由客户OS108m,可执行HLT指令,其将处理器104a设置于空闲状态。在传统操作下,HLT指令的执行可使VM退出,其中产生到根(root)操作模式的转移。因此,管理程序106可被调用,以使当空闲状态被终止时,客户OS 108m不再运行。相反,与本实施例一致,因为VM 退出并未由HLT指令的执行触发,客户OS 108m在处理器104a退出空闲状态之后保持处理器控制。在一个实施例,HLT退出的禁止可通过修改控制域实现。例如,指定HLT指令的客户执行是否使VM退出的位的值可设置为“零”,以指示在HLT执行时VM退出不发生。尽管HLT退出的禁止防止客户正在运行的处理器由其他虚拟机使用,该禁止通过保持由客户OS控制而可保证低延迟。
为减少中断延迟的效应,还可希望减少可抢占客户OS的附加的事件,特别当关键实时应用运行于客户OS时。因此,当运行于实时操作模式时,实时中断模块110可指示客户OS降低或消除可导致VM退出的动作。
应当理解,根据本实施例的禁止客户OS的抢占可改变设备驱动器在管理程序中仿真的方式。例如,如果系统中的硬驱动机(hard drive)被共享,在虚拟化处理器正在运行客户OS的传统操作下,由硬驱动机生成的中断被路由至自举处理器,其正确地将中断转发至虚拟化处理器。这促成VM退出,VM退出时,该处理器上的管理程序通过VMCS注入中断。然而,根据本实施例,实时中断模块110可暂时修改自举处理器的操作或发送信号至自举处理器,指示自举处理器将由硬驱动机生成为处理器间中断(IPI)的中断转发至实时客户处理器以模仿所转译的中断。
图5描述了与多种实施例一致的用于处理中断的一种情形。如所说明的,硬驱动机502生成中断IRQ 504。中断由自举处理器506接收,其将作为IPI508的中断发送至处理器104a。IPI 508可被路由至客户OS 108m而不调用管理程序106。
根据进一步的实施例,处理中断结束(EOI)的方式可被调整。EOI 为发送至可编程中断控制器(PIC)的信号,其可为高级PIC(APIC),以指示对给定中断的中断处理完成。在EOI传统的处理的情况下,当客户OS正在运行时,当中断过程完成时,客户OS生成EOI,其导致VM 退出。客户OS正在运行于其上的管理程序被调用,并且,如果中断已被正确地处理,则转发EOI至PIC。然后EOI可用于使PIC清除寄存器中的对应位,诸如服务中寄存器(ISR),并由此使更多IRQ由PIC生成。然而,每次客户OS生成EOI时,操作模式从非根(root)模式转移到根(root) 操作模式,并且控制返回管理程序。因此,即使进入的IRQ最初被设置为在客户OS正在运行时绕过管理程序,在EOI生成的VM退出之后处理的中断将由于客户OS不再运行而产生延迟。
因此,在多种实施例,本地PIC,诸如APIC,可例如通过实时中断模块110编程,以使EOI的生成不产生VM退出。因此,当中断的处理完成,并且EOI被生成时,管理程序不被调用并且客户OS仍然运行。
图6描述了与多种实施例一致的用于处理EOI的一种情形。如所说明的,客户OS108m生成EOI 602,其可在中断成功处理之后发生,同时客户OS 108m正操作于实时模式,如上所讨论。EOI 602可发送至虚拟APIC 604,其可设置成执行传统硬件APIC的至少某些功能。当EOI 602 被生成时,虚拟APIC 604可基于数据结构的设置而确定,诸如EOI位图,无论VM退出是否发生。在所说明的情形中,EOI 602不引起VM退出,管理程序106不被调用,并且APIC 604可通知处理器104a关联于EOI 602 的中断完成,以使进一步的中断可按需处理。以这种方式,源于VM退出和/或VM进入的任何延迟被避免,并且运行于客户108m的任何实时应用由于接收、处理、并完成中断而不退出非根(root)模式而可继续具有所产生的最小延迟。
在虚拟APIC未被使用的某些实施例中,本地中断延迟仍可被实现,但以更低的频率。换言之,当中断被接收并且客户OS运行于实时模式时,中断可指向客户OS而不产生VM退出。然而,为确认中断,管理程序通过EOI的生成而被调用。
表I呈现了根据一个实施例的多种设置的综述,可应用于在客户OS 运行期间管理中断。如所说明的,“外部中断退出”位可设置为“0”,以使外部中断直接被引导至客户而不导致VM退出。例如,中断可直接递送至客户中断描述符表(IDT),其将中断请求关联于合适的中断处理方 (interrupt handler)。当位设置为“1”时VM退出产生于中断的接收,如上所讨论。
表I
类似地,“虚拟化APIC访问”位可设置为“0”,以使当客户OS试图访问APIC页时,不发生VM退出。
对给定的运行OS的处理器的APIC具有称为任务优先权寄存器 (TPR)的特征,其提供特定存储器位置,由此(客户)OS可与APIC 通信。“使用TPR阴影”位的值确定客户OS在APIC写入TPR是否导致 VM退出。
如表I进一步说明的和先前讨论的,EOI位图可设置为“1”以使由客户OS生成的EOI被引导至虚拟化APIC页;其他情况下,当位图设置为“0”时,发生VM退出。这同样适用于“APIC寄存器虚拟化”进入,其中,如果值为“1”,客户OS对APIC页的访问(读/写)被引导至虚拟化APIC,否则发生VM退出。最终,“HLT退出”位可设置为零,以当HLT命令被执行时禁止VM退出,如先前讨论的。表I说明的设置的组仅仅是示例性的,并且位图/寄存器设置的其他组合,以及附加的或不同的位图/寄存器可例如,根据应用来使用。
本文包括一组流程图,表示用于执行新的公开体系结构的方面的示例性方法。尽管为了简化说明,本文以流程图或流图的形式示出了一个或多个方法,例如,示出和描述为一系列动作,但应当理解并领会,方法不限于动作的顺序,某些动作可根据实际情况以不同的顺序发生和/或与本文示出和描述的其他动作并发。例如,本领域技术人员将理解并领会,方法可选地表示为一系列相关状态或事件,诸如在状态图中。此外,并非方法说明的所有动作在新的实现中是必需的。
图7说明了示例性逻辑流700。在框702,信号被识别,其发送自客户OS,指示实时模式的操作。例如,信号可采用VM调用的形式。在框704,中断,诸如外部中断,被接收用于第一处理器。在框706,用于第一处理器的中断直接路由至运行于第一处理器的客户OS,而不引起VM退出操作,否则在VM退出操作中,将会发生非根(root)操作模式到根(root)操作模式之间的转移。
图8说明了示例性逻辑流800。在框802,客户OS固定于第一处理器。在框804,第一客户OS系统耦合于无记号管理程序。在框806,系统调用从客户OS中被识别,其指示实时操作模式。在框808,位在虚拟机控制结构(VMCS)中被清除,其当外部中断被接收时触发VM退出。在框810,在客户OS运行于实时操作模式时,外部中断在客户OS被接收。在框812,因为位在VMCS中被清除,VM退出被防止并且管理程序未被调用。
图9说明了另一示例性逻辑流900。在框902,中断被接收用于第一处理器,诸如第一处理器核。在框904,运行于第一处理器核的目的客户 OS被确定。然后流程移动至框906,其中确定运行于第一处理器核的客户OS是否处于实时操作模式。如果否,流进入框908,其中中断请求被转发至目的客户OS,以触发VM退出。如果,在框906,客户OS运行于实时操作模式,流程移动至框910,其中中断请求被转译成与客户OS 兼容的格式。以这种方式,客户可解释中断并以合适的方式处理中断请求。
图10说明了进一步示例性逻辑流1000。在框1002,中断处理完成。在框1004,中断结束(EOI)被发送至控制器,诸如高级可编程中断控制器(APIC)用于处理。然后流程移动至框1006,其中EOI位图的位值被检查。如果位图值未被设置为“1”,流程移动至框1008,其中VM退出被启动。如果位图值不等于“1,”流程移动至框1010,其中EOI被引导至虚拟化APIC页,用于处理。
图11说明了示例性计算体系结构1100的实施例,适用于实现先前描述的多种实施例。如在本申请所使用的,术语“系统”和“组件”意图指代计算机相关实体,无论是硬件,硬件和软件的组合,软件或执行中的软件,其示例由示例性计算体系结构1100提供。例如,组件可为,但不限于,运行于处理器的进程、处理器、硬盘驱动器、多个存储驱动器(光和/或磁存储介质的)、对象、可执行程序、执行线程、程序和/或计算机。以说明的形式,运行于服务器的应用和服务器两者可为组件。一个或多个组件可驻留于进程和/或执行线程,以及组件可本地化于一个计算机和/ 或分布在两个或多个计算机之间。进一步,组件通过多种类型的通信媒体可通信地相互耦合,以协同操作。该协同可包括单向或双向信息交换。例如,组件可以通过通信媒体传输的信号的形式传送信息。信息可实现为分配至多种信号线的信号。在该分配中,每个消息为信号。然而,进一步的实施例可选地使用数据消息。该数据消息可通过多种连接发送。示例性连接包括并行接口、串行接口,以及总线接口。
在一个实施例,计算体系结构1100可包含或实现为电子设备的一部分。电子设备的示例可包括而非限制于,移动设备、个人数字助理、移动计算设备、智能电话、蜂窝电话、手机、单向寻呼机、双向寻呼机、消息传递设备、计算机、个人计算机(PC)、桌面计算机、膝上型计算机、笔记本计算机、手持计算机、平板计算机、服务器、服务器阵列或服务器群组、web服务器、网络服务器、互联网服务器、工作站、微型计算机、大型计算机、超级计算机、网络设备、web设备、分布式计算系统、多处理器系统、基于处理器的系统、消费电子器件、可编程消费电子器件、电视、数字电视、机顶盒、无线接入点、基站、用户站、移动用户中心、无线电网络控制器、路由器、集线器,网关、桥、交换机、机器或其组合。该实施例不限于该环境。
计算体系结构1100包括多种通用计算元件,诸如一个或多个处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、计时设备、视频卡、音频卡、多媒体输入/输出(I/O)组件等。然而,实施例不限于由计算体系结构1100实现。
如图11所示,计算体系结构1100包含处理单元1104、系统存储器 1106和系统总线1108。处理单元1104可为多种商业可用处理器中的任一个。双微处理器和其他多处理器体系结构还可作为处理单元1104使用。系统总线1108提供用于系统组件的接口,包括,但不限于,系统存储器 1106到处理单元1104的接口。系统总线1108可为若干类型的总线结构中的任一种,其可进一步利用多种商业可用总线体系结构中的任一个来互联至存储器总线(具有或不具有存储器控制器)、外围总线,以及本地总线。
计算体系结构1100可包含或实现多种制造产品。制造产品可包含计算机可读存储介质以存储逻辑。实施例还可至少部分地实现为包含于非暂存计算机可读介质中或包含在非暂存计算机可读介质上的指令,其可由一个或多个处理器读取并执行,以实现本文描述的操作的执行。计算机可读存储介质的示例可包括能够存储电子数据的任何有形的媒体,包括易失性存储器或非易失性存储器,可移除或非可移除存储器,可擦除或非可擦除存储器,可写或可重写存储器等。逻辑的示例可包括可执行计算机程序指令,利用任何合适的代码类型实现,诸如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象代码、可视代码等。
系统存储器1106可包括多种类型的计算机可读存储媒体,以一个或多个更高速的存储器单元的形式,诸如只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双数据速率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、聚合物存储器诸如铁电聚合物存储器、双向半导体存储器(ovonic memory)、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS) 存储器、磁或光卡或适用于存储信息的其他任何类型的媒体。在所说明的图11所示的实施例,系统存储器1106可包括非易失性存储器1110和 /或易失性存储器1112。基本输入/输出系统(BIOS)可存储于非易失性存储器1110。
电子设备1102可包括多种类型的计算机可读存储媒体,以一个或多个更低速存储器单元的形式,包括内部硬盘驱动器(HDD)1114、磁性软盘驱动器(FDD)1116以读写可移除磁盘1118,以及光盘驱动器1120 以读写可移除光盘1122(例如,CD-ROM或DVD)。HDD 1114、FDD 1116 和光盘驱动器1120可分别通过HDD接口1124、FDD接口1126和光驱动器接口1128连接于系统总线1108。用于外部驱动器实现的HDD接口 1124可包括通用串行总线(USB)和IEEE 1394接口技术中的至少一个或二者。
驱动器和相关计算机可读媒体提供数据、数据结构、计算机可执行指令等的易失性和/或非易失性存储。例如,多个程序模块可存储于驱动器和存储器单元1110、1112中,包括操作系统1130、一个或多个应用程序1132、其他程序模块1134和程序数据1136。
一个或多个应用程序1132、其他程序模块1134,以及程序数据1136 可包括例如,搜索组件122和显示组件124。
用户可将命令和信息通过一个或多个有线/无线输入设备、例如键盘1138和指点设备(诸如鼠标1140)输入至电子设备1102。其他输入设备可包括麦克风、红外(IR)远程控制、游戏杆、游戏板、触控笔、触摸屏幕或类似物。上述和其他输入设备通常通过耦合于系统总线1108 的输入设备接口1142连接于处理单元1104,但可通过其他接口诸如并行端口、IEEE 1394串行端口、游戏端口、USB端口、IR接口等来连接。
监视器1144或其他类型的显示设备也经由接口诸如视频适配器 1146连接于系统总线1108。除监视器1144之外,计算机典型地包括其他外围输出设备,诸如扬声器、打印机等。
电子设备1102可利用逻辑连接经由至一个或多个远程计算机,诸如远程计算机1148的有线和/或无线通信而操作于网络环境。远程计算机 1148可为工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设备、对等设备或其他公共网络节点,并且典型地包括相对于电子设备1102描述的多个或所有元件,然而为简单起见,仅说明了存储器/存储设备1150。描述的逻辑连接包括至局域网(LAN)1152 和/或更大网络例如广域网(WAN)1154的有线/无线连接。该LAN和 WAN网络环境常用于办公室和公司,并实现企业范围的计算机网络,诸如内联网,其全部可连接至全局通信网络,例如,互联网。
当在LAN网络环境中使用时,电子设备1102通过有线和/或无线通信网络接口或适配器1156连接于LAN 1152。适配器1156可实现与LAN 1152的有线和/或无线通信,其还可包括设置于其上的无线接入点,用于与适配器856的无线功能通信。
当用于WAN网络环境时,电子设备1102可包括调制解调器1158 或连接于WAN 1154的通信服务器或具有其他方式,用于通过WAN 1154 建立通信,诸如以互联网的形式。调制解调器1158,其可为内部或外部和有线和/或无线设备,经由输入设备接口1142连接至系统总线1108。在网络环境中,相对于电子设备1102描述的程序模块或其部分,可存储于远程存储器/存储设备1150。应当理解,示出的网络连接是示例性的,而在计算机之间建立通信链路的其他方式也可使用。
电子设备1102可操作以利用IEEE 802标准家族与有线和无线设备或实体相通信,诸如在操作上设置成与例如打印机、扫描仪、桌面和/或便携式计算机、个人数字助理(PDA)、通信卫星、任何一种关联于无线可检测标签的装置或位置(例如,售货亭、报刊亭、卫生间)无线通信(例如,IEEE 802.11空中调制技术)的无线设备,以及电话。这包括至少Wi-Fi(或无线高保真)、WiMax和蓝牙TM无线技术。因此,通信可为利用传统网络的预定义结构或仅为至少两个设备的之间自组织通信。Wi-Fi网络使用无线电技术,称为IEEE 802.11x(a、b、g、n等),以提供安全、可靠、快速的无线连接。Wi-Fi网络可用于相互连接计算机、连接至互联网,以及连接至有线网络(其使用IEEE 802.3相关的媒体和功能)。
某些实施例可利用表达“一个实施例”或“一实施例”及其派生词来描述。该术语表示结合该实施例描述的特定特征、结构或特性包括于至少一个实施例。词语“在一个实施例中”在说明书多处的出现并非一定全部参考同一实施例。进一步,某些实施例可利用表达“耦合”和“连接”及其派生词描述。该术语不一定意图作为相互的同义词。例如,某些实施例可利用术语“连接”和/或“耦合”描述,以指示两个或多个元件相互直接物理或电性接触。然而,术语“耦合”还可表示两个或多个元件不直接相互接触,但仍然协同或相互交互。
在一个实施例,计算机实现的方法可包括识别指示客户操作系统 (OS)的实时模式操作的信号并在客户OS正在运行时直接将用于第一处理器的中断路由至客户OS,而不引起从客户OS执行到由主机系统执行的转移。
在另一实施例,计算机实现的方法可进一步包括,响应于信号,清除虚拟机控制结构(VMCS)中指示外部中断要生成其中发生从由客户 OS执行到由主机系统执行的转移的VM退出的位。
可选地或附加地,在另一实施例,计算机实现的方法可包括在客户 OS实时操作期间将客户OS固定于第一处理器。
可选地或附加地,在进一步的实施例,计算机实现的方法可包括当客户OS执行HLT指令时禁止客户OS执行VM退出操作。
可选地或附加地,在又另一实施例,计算机实现的方法可包括指示自举处理器将由硬驱动机生成的作为处理器间中断(IPI)的中断转发至客户OS。
可选地或附加地,在进一步的实施例,计算机实现的方法可包括设置直接转译结构,用于要转发至客户OS的中断。
可选地或附加地,在另一实施例,计算机实现方法可包括将中断转译为客户操作系统的中断格式。
可选地或附加地,在进一步的实施例,计算机实现的方法可包括编程耦合于第一处理器的虚拟高级可编程中断控制器(APIC),以当中断结束(EOI)被生成时防止VM退出。
可选地或附加地,在另一实施例,计算机实现的方法可包括转发EOI 至虚拟化APIC页用于处理。
在另一实施例,可选地或附加地,装置可配置以执行任一先前实施例的方法。
在进一步的实施例,可选地或附加地,至少一个机器可读介质可包括复数个指令,其响应于在计算设备执行,而使计算设备实现根据任一先前实施例的方法。
在进一步的实施例,装置可包括处理器电路和可操作于处理器电路的实时中断模块,以识别接收自运行于第一处理器的客户操作系统的信号(OS),该信号指示客户OS的实时模式操作,并且将用于第一处理器的中断直接路由至客户OS,而不产生从非根操作模式到根操作模式的转移。
在另一实施例,该实时中断模块可操作于处理器电路,以清除虚拟机控制结构(VMCS)中指示外部中断要响应于该信号而生成VM退出的位。
可选地或附加地,在另一实施例,该实时中断模块可操作于处理器电路,以在客户OS实时操作期间将客户OS固定在第一处理器。
可选地或附加地,在进一步的实施例,该实时中断模块可操作于处理器电路,以当客户OS执行HLT指令时禁止客户OS执行VM退出操作。
可选地或附加地,在进一步的实施例,实时中断模块可操作于处理器电路,以在客户OS的实时操作期间将中断转译为客户OS的中断格式。
可选地或附加地,在另一实施例,该实时中断模块可操作于处理器电路,以编程耦合于第一处理器的虚拟高级可编程中断控制器(APIC),以当中断结束(EOI)被生成时防止VM退出,并将EOI转发至虚拟化 APIC页用于处理。
可选地或附加地,在另一实施例,该实时中断模块可操作于处理器电路,以指示自举处理器输出作为处理器间中断的外部中断,用于转发至客户OS。
可选地或附加地,在另一实施例,任一先前实施例的装置可包括数字显示器,以呈现客户OS的输出。
需要强调,本公开的摘要被提供以使读者快速掌握所公开技术的特性。应当理解,摘要并非用于解释或限制权利要求的范围或含义。此外,在前的详细描述中,可见多种特征在单个实施例中相互组合,用于简化公开。本公开的方法不应被解释为反映所声明的实施例需要比每个权利要求的明确陈述更多的特征的意图。相反,如以下权利要求所反映的,创造性主题在于少于单个公开实施例的所有特征。因此如下权利要求在此整合于详细描述,而每个权利要求独立作为单个实施例。在所附权利要求中,术语“包括”和“在...中”分别作为相应术语“包含”和“其中”的简明语言的等同。此外,术语“第一”、“第二”、“第三”等,仅仅用于标示,而并非意图将数字需求施加于其对象。
以上的描述包括公开的体系结构的示例。当然不可能描述组件和/ 或方法的每个可以想到的组合,但本领域普通技术人员可以理解,多个进一步组合和排列是可能的。因此,新的体系结构意图包括所有这种改变、修改和变型,其属于所附权利要求的精神和范围。
多种实施例可利用硬件元件、软件元件或两者的组合实现。硬件元件的示例可包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑设备(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体设备、芯片、微芯片、芯片组等。软件的示例可包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、规程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定实施例是否利用硬件元件和/或软件元件实现可根据任何数量的因素变化,诸如所需计算速率、功率级、热容差、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能约束。
某些实施例可利用表达“耦合”和“连接”及其派生词描述。该术语并非意图作为相互的同义词。例如,某些实施例可利用术语“连接”和/或“耦合”描述,以表示两个或多个元件相互直接物理或电性接触。然而,术语“耦合”还可表示两个或多个元件不直接相互接触,但仍然协同或相互交互。
某些实施例的实现可利用例如计算机可读介质或制品,其可存储指令或指令集,其如果由计算机执行则可使计算机执行根据该实施例的方法和/或操作。该计算机可包括,例如,任何合适的处理平台、计算平台、计算设备、处理设备、计算系统、处理系统、计算机、处理器等,并可利用任何合适的硬件和/或软件的组合实现。计算机可读介质或制品可包括,例如,任何合适的类型的存储器单元、存储器设备、存储器制品、存储器介质、存储设备、存储制品、存储介质和/或存储单元,例如,存储器、可移除或非可移除媒体、可擦除或非可擦除媒体、可写或可重写媒体、数字或模拟媒体、硬盘、软盘、压缩盘只读存储器(CD-ROM)、可记录压缩盘(CD-R)、可重写压缩盘(CD-RW)、光盘、磁媒体、磁光媒体、可移除存储器卡或盘、多种类型的数字多样性盘(DVD)、磁带、磁带盒等。指令可包括任何合适的类型的代码,诸如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、加密代码等,利用任何合适的高级、低级、面向对象的、可视的、编译和/或解释的编程语言实现。
除非特别地另行声明,应当理解,术语诸如“处理”、“计算”、“运算”、“确定”等,指代计算机或计算系统或类似电子计算设备的动作和/或过程,其将计算系统的寄存器和/或存储器中表示为物理量(例如,电子)的数据操作和/或变换为计算系统的存储器、寄存器或其他这样的信息存储、传输或显示设备中类似表示为物理量的其他数据。该实施例不限于该环境。
尽管该主题已用针对结构特征和/或方法的动作的特定语言描述,应当理解,所附权利要求中定义的主题并非一定限于上述特定特征或动作。相反,上述特定特征和动作公开为实现权利要求的示例形式。

Claims (28)

1.一种计算机实现的方法,包括:
识别指示在第一处理器上运行的客户操作系统OS的实时模式操作的信号,其中所述第一处理器是处理器核;
对所述客户OS禁止暂停HLT退出;以及
在该客户OS正在运行时将用于所述第一处理器的中断直接路由至该客户OS,而不引起从由该客户OS的执行到由主机系统的执行的转移。
2.根据权利要求1的计算机实现的方法,包括:响应于该信号,清除虚拟机控制结构(VMCS)中指示外部中断要生成其中发生从由该客户OS执行到由主机系统执行的转移的虚拟机(VM)退出的位。
3.根据权利要求1的计算机实现的方法,包括:在该客户OS的实时操作期间将该客户OS固定于第一处理器。
4.根据权利要求1的计算机实现的方法,包括:通过设置位的值来禁止该客户OS的HLT退出,所述位的值指示当该客户OS执行HLT指令时是否要执行虚拟机(VM)退出操作。
5.根据权利要求1的计算机实现的方法,包括:指示自举处理器将由硬驱动机生成的作为处理器间中断(IPI)的中断转发至该客户OS。
6.根据权利要求1的计算机实现的方法,包括:设置直接转译结构,用于要转发至该客户OS的中断。
7.根据权利要求1的计算机实现的方法,包括:将该中断转译为该客户操作系统的中断格式。
8.根据权利要求1的计算机实现的方法,包括:编程耦合于第一处理器的虚拟高级可编程中断控制器(APIC),以当中断结束(EOI)被生成时防止虚拟机(VM)退出。
9.根据权利要求8的计算机实现的方法,包括:转发该EOI至虚拟化APIC页用于处理。
10.一种设备,包括:用于执行权利要求1至9的任一个的方法的装置。
11.至少一个机器可读介质,包括:多个指令,其响应于在计算设备执行,而使该计算设备实施根据权利要求1至9任一个的方法。
12.一种装置,包括:
处理器电路;
实时中断模块,可操作于该处理器电路,用于:
识别接收自运行于第一处理器的客户操作系统OS的信号,该信号指示该客户OS的实时模式操作,其中所述第一处理器是处理器核;
对所述客户OS禁止暂停HLT退出;以及
将用于第一处理器的中断直接路由至该客户OS,而不引起从非根操作模式到根操作模式的转移。
13.根据权利要求12的装置,该实时中断模块可操作于该处理器电路,以清除虚拟机控制结构(VMCS)中指示外部中断要响应于该信号而生成虚拟机(VM)退出的位。
14.根据权利要求12的装置,该实时中断模块可操作于该处理器电路,以在该客户OS的实时操作期间将该客户OS固定于第一处理器。
15.根据权利要求12的装置,该实时中断模块可操作于该处理器电路,以通过设置位的值来禁止该客户OS的HLT退出,所述位的值指示当该客户OS执行HLT指令时是否要执行虚拟机(VM)退出操作。
16.根据权利要求12的装置,该实时中断模块可操作于该处理器电路,以在该客户OS的实时操作期间将该中断转译为该客户OS的中断格式。
17.根据权利要求12的装置,该实时中断模块可操作于该处理器电路,用于:
编程耦合于第一处理器的虚拟高级可编程中断控制器(APIC),以当中断结束(EOI)被生成时防止虚拟机(VM)退出;
以及转发该EOI至虚拟化APIC页用于处理。
18.根据权利要求12的装置,该实时中断模块可操作于该处理器电路,以指示自举处理器输出作为处理器间中断的外部中断,用于转发至该客户OS。
19.根据权利要求12的装置,包括:数字显示器,以呈现该客户OS的输出。
20.一种装置,包括:
用于识别指示在第一处理器上运行的客户操作系统(OS)的实时模式操作的信号的部件,其中所述第一处理器是处理器核;
用于对所述客户OS禁止暂停HLT退出的部件;以及
用于在该客户OS正在运行时将用于第一处理器的中断直接路由至该客户OS而不引起从由该客户OS执行到由主机系统执行的转移的部件。
21.根据权利要求20的装置,包括:用于响应于该信号而清除虚拟机控制结构(VMCS)中指示外部中断要生成其中发生从由该客户OS执行到由主机系统执行的转移的虚拟机(VM)退出的位的部件。
22.根据权利要求20的装置,包括:用于在该客户OS的实时操作期间将该客户OS固定于第一处理器的部件。
23.根据权利要求20的装置,包括:用于通过设置位的值来禁止该客户OS的HLT退出的部件,所述位的值指示当该客户OS执行HLT指令时是否要执行虚拟机(VM)退出操作。
24.根据权利要求20的装置,包括:用于指示自举处理器将由硬驱动机生成的作为处理器间中断(IPI)的中断转发至该客户OS的部件。
25.根据权利要求20的装置,包括:用于设置直接转译结构的部件,所述直接转译结构用于要转发至该客户OS的中断。
26.根据权利要求20的装置,包括:用于将该中断转译为该客户操作系统的中断格式的部件。
27.根据权利要求20的装置,包括:用于编程耦合于第一处理器的虚拟高级可编程中断控制器(APIC)以当中断结束(EOI)被生成时防止虚拟机(VM)退出的部件。
28.根据权利要求27的装置,包括:用于转发该EOI至虚拟化APIC页用于处理的部件。
CN201280071792.0A 2012-03-29 2012-03-29 用于管理虚拟化环境中的中断的体系结构和方法 Active CN104321749B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710472572.3A CN107273199B (zh) 2012-03-29 2012-03-29 用于管理虚拟化环境中的中断的体系结构和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/031310 WO2013147817A1 (en) 2012-03-29 2012-03-29 Architecture and method for managing interrupts in a virtualized environment

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201710472572.3A Division CN107273199B (zh) 2012-03-29 2012-03-29 用于管理虚拟化环境中的中断的体系结构和方法

Publications (2)

Publication Number Publication Date
CN104321749A CN104321749A (zh) 2015-01-28
CN104321749B true CN104321749B (zh) 2019-01-29

Family

ID=49260877

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201280071792.0A Active CN104321749B (zh) 2012-03-29 2012-03-29 用于管理虚拟化环境中的中断的体系结构和方法
CN201710472572.3A Active CN107273199B (zh) 2012-03-29 2012-03-29 用于管理虚拟化环境中的中断的体系结构和方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201710472572.3A Active CN107273199B (zh) 2012-03-29 2012-03-29 用于管理虚拟化环境中的中断的体系结构和方法

Country Status (4)

Country Link
US (2) US9594703B2 (zh)
EP (4) EP3244307A1 (zh)
CN (2) CN104321749B (zh)
WO (1) WO2013147817A1 (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9323628B2 (en) * 2012-10-09 2016-04-26 Dh2I Company Instance level server application monitoring, load balancing, and resource allocation
US10331589B2 (en) * 2013-02-13 2019-06-25 Red Hat Israel, Ltd. Storing interrupt location for fast interrupt register access in hypervisors
US9355050B2 (en) * 2013-11-05 2016-05-31 Qualcomm Incorporated Secure, fast and normal virtual interrupt direct assignment in a virtualized interrupt controller in a mobile system-on-chip
US9936059B2 (en) * 2014-05-29 2018-04-03 Fortinet, Inc. Management of wireless access points via virtualization
US11249777B2 (en) * 2014-07-10 2022-02-15 Red Hat Israel, Ltd. Virtual machine context management
US9772868B2 (en) * 2014-09-16 2017-09-26 Industrial Technology Research Institute Method and system for handling interrupts in a virtualized environment
KR20160039846A (ko) * 2014-10-02 2016-04-12 한국전자통신연구원 인터럽트 처리 시스템 및 인터럽트 처리 방법
US9697029B2 (en) 2014-10-30 2017-07-04 Red Hat Israel, Ltd. Guest idle based VM request completion processing
US9760353B2 (en) 2014-12-19 2017-09-12 Signalfx, Inc. Dynamically changing input data streams processed by data stream language programs
US10394692B2 (en) * 2015-01-29 2019-08-27 Signalfx, Inc. Real-time processing of data streams received from instrumented software
US9483301B2 (en) * 2015-02-26 2016-11-01 Red Hat Israel, Ltd. Dynamic virtual machine function enabling
US10002016B2 (en) 2015-07-23 2018-06-19 Red Hat, Inc. Configuration of virtual machines in view of response time constraints
US10713195B2 (en) * 2016-01-15 2020-07-14 Intel Corporation Interrupts between virtual machines
CN105718320B (zh) * 2016-01-18 2020-11-06 华为技术有限公司 一种时钟任务处理方法、装置及设备
US10963280B2 (en) * 2016-02-03 2021-03-30 Advanced Micro Devices, Inc. Hypervisor post-write notification of control and debug register updates
US10127068B2 (en) 2016-06-30 2018-11-13 Amazon Technologies, Inc. Performance variability reduction using an opportunistic hypervisor
US10310887B2 (en) 2017-02-22 2019-06-04 Red Hat, Inc. CPU overcommit with guest idle polling
US10437308B2 (en) * 2017-06-05 2019-10-08 Red Hat, Inc. Predictive virtual machine halt
CN109284178A (zh) * 2017-07-21 2019-01-29 中兴通讯股份有限公司 一种基于kvm虚拟化的中断透传方法及装置
CN108073451B (zh) * 2017-12-20 2020-09-22 北京东土科技股份有限公司 一种多核cpu上异构操作系统间中断处理方法及装置
WO2019127080A1 (en) * 2017-12-27 2019-07-04 Intel Corporation Systems and methods of efficiently interrupting virtual machines
CN110609730B (zh) * 2018-06-14 2023-04-07 阿里巴巴集团控股有限公司 一种实现虚拟处理器间中断透传的方法及设备
JP7041041B2 (ja) * 2018-10-11 2022-03-23 ファナック株式会社 数値制御装置
US11237859B2 (en) * 2018-11-28 2022-02-01 Red Hat Israel, Ltd. Securing virtual machines in computer systems
GB2581821B (en) * 2019-02-28 2021-06-30 Advanced Risc Mach Ltd Conditional yield to hypervisor instruction
US11042495B2 (en) * 2019-09-20 2021-06-22 Advanced Micro Devices, Inc. Providing interrupts from an input-output memory management unit to guest operating systems
US11182184B2 (en) * 2019-10-23 2021-11-23 Red Hat, Inc. Implementing high-performance virtual machines for bare metal simulation
US11513983B2 (en) 2020-05-15 2022-11-29 International Business Machines Corporation Interrupt migration
CN111745651B (zh) * 2020-06-15 2022-04-05 哈工大机器人(合肥)国际创新研究院 一种智能机器人操作系统结构及其运作方法
CN112783601A (zh) * 2020-12-30 2021-05-11 科东(广州)软件科技有限公司 一种异构系统的中断处理方法、装置、设备及存储介质
CN113360422B (zh) * 2021-07-13 2022-02-18 科东(广州)软件科技有限公司 一种异构系统中实时操作系统设备收发数据的方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101004726A (zh) * 2005-12-30 2007-07-25 英特尔公司 直接传送中断到虚拟处理器
US7356817B1 (en) * 2000-03-31 2008-04-08 Intel Corporation Real-time scheduling of virtual machines
CN102171672A (zh) * 2008-12-31 2011-08-31 英特尔公司 用于执行安全的嵌入式容器的处理器扩展

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6467007B1 (en) * 1999-05-19 2002-10-15 International Business Machines Corporation Processor reset generated via memory access interrupt
US7191440B2 (en) * 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
JP3920818B2 (ja) * 2003-07-22 2007-05-30 株式会社東芝 スケジューリング方法および情報処理システム
JP2006146758A (ja) * 2004-11-24 2006-06-08 Matsushita Electric Ind Co Ltd コンピュータシステム
US7904903B2 (en) * 2005-06-30 2011-03-08 Intel Corporation Selective register save and restore upon context switch using trap
US7533207B2 (en) * 2006-12-06 2009-05-12 Microsoft Corporation Optimized interrupt delivery in a virtualized environment
US8819699B2 (en) * 2006-12-29 2014-08-26 Intel Corporation Controlling virtual machines based on performance counters
JP5352848B2 (ja) * 2008-11-28 2013-11-27 株式会社日立製作所 仮想計算機の制御方法及び計算機装置
CN101620547B (zh) * 2009-07-03 2012-05-30 中国人民解放军国防科学技术大学 X86计算机虚拟化的物理中断处理方法
KR101640769B1 (ko) * 2009-11-06 2016-07-19 삼성전자주식회사 가상화 시스템 및 그것의 명령어 실행 방법
US8566492B2 (en) * 2009-12-31 2013-10-22 Intel Corporation Posting interrupts to virtual processors
US9524297B2 (en) 2011-12-29 2016-12-20 Intel Corporation Management of collaborative teams
US8892802B2 (en) * 2012-01-01 2014-11-18 International Business Machines Corporation Enhancing interrupt handling in a virtual environment
US11249777B2 (en) * 2014-07-10 2022-02-15 Red Hat Israel, Ltd. Virtual machine context management

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7356817B1 (en) * 2000-03-31 2008-04-08 Intel Corporation Real-time scheduling of virtual machines
CN101004726A (zh) * 2005-12-30 2007-07-25 英特尔公司 直接传送中断到虚拟处理器
CN102171672A (zh) * 2008-12-31 2011-08-31 英特尔公司 用于执行安全的嵌入式容器的处理器扩展

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
hardware assisted virtualization Intel virtualization technology;Matias Zabaljauregui;《http://lettieri.iet.unipi.it/virtualization/Vtx.pdf》;20080601;第1-54页

Also Published As

Publication number Publication date
US10169269B2 (en) 2019-01-01
EP3376380B1 (en) 2021-10-27
EP2831728B1 (en) 2018-09-26
EP2831728A4 (en) 2015-12-09
EP3376380A2 (en) 2018-09-19
WO2013147817A1 (en) 2013-10-03
US9594703B2 (en) 2017-03-14
US20170109197A1 (en) 2017-04-20
EP2831728A1 (en) 2015-02-04
EP3376380A3 (en) 2018-10-03
EP3958121A1 (en) 2022-02-23
CN107273199A (zh) 2017-10-20
US20140082240A1 (en) 2014-03-20
CN107273199B (zh) 2021-01-15
EP3244307A1 (en) 2017-11-15
CN104321749A (zh) 2015-01-28

Similar Documents

Publication Publication Date Title
CN104321749B (zh) 用于管理虚拟化环境中的中断的体系结构和方法
US11188376B1 (en) Edge computing system
US10684865B2 (en) Access isolation for multi-operating system devices
US10474489B2 (en) Techniques to run one or more containers on a virtual machine
US9529650B2 (en) Method and apparatus for accessing hardware resource
US10467033B2 (en) Enabling efficient nested virtualization
US20180024854A1 (en) Technologies for virtual machine migration
JP2011100431A (ja) 仮想マシン制御装置及び仮想マシン制御方法
US20180060103A1 (en) Guest code emulation by virtual machine function
WO2018039967A1 (zh) 虚拟机切换方法、装置、电子设备和计算机程序产品
CN105511941B (zh) 辅助计算机系统中多个管理程序的联合操作的系统和方法
WO2019028682A1 (zh) 一种多系统共享内存的管理方法及装置
US20210042138A1 (en) Computing devices
US9715403B2 (en) Optimized extended context management for virtual machines
US20150212956A1 (en) Updating virtual machine memory by interrupt handler
US20200341789A1 (en) Containerized workload scheduling
US20150347169A1 (en) Scheduler limited virtual device polling
US20190370103A1 (en) Watchdog timer hierarchy
KR20160106100A (ko) 다중 운영 체제 디바이스에 대한 동적 재할당
CN104679575B (zh) 输入输出流的控制系统及其方法
US10171370B1 (en) Distribution operating system
US9569241B2 (en) Sharing devices assigned to virtual machines using runtime exclusion
CN109284178A (zh) 一种基于kvm虚拟化的中断透传方法及装置
US9710296B2 (en) Allocating cost of disk usage to a linked clone virtual machine
Avramidis Experimental evaluation of a CPU Live Migration on ARM based Bare metal Instances

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