CN101128807B - 用于扩充中断控制器和合成中断来源的系统和方法 - Google Patents

用于扩充中断控制器和合成中断来源的系统和方法 Download PDF

Info

Publication number
CN101128807B
CN101128807B CN2006800062444A CN200680006244A CN101128807B CN 101128807 B CN101128807 B CN 101128807B CN 2006800062444 A CN2006800062444 A CN 2006800062444A CN 200680006244 A CN200680006244 A CN 200680006244A CN 101128807 B CN101128807 B CN 101128807B
Authority
CN
China
Prior art keywords
virtual
interruption
interruptable controller
look
interrupting information
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.)
Expired - Fee Related
Application number
CN2006800062444A
Other languages
English (en)
Other versions
CN101128807A (zh
Inventor
R·A·伏加
N·T·刘易斯
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN101128807A publication Critical patent/CN101128807A/zh
Application granted granted Critical
Publication of CN101128807B publication Critical patent/CN101128807B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)

Abstract

本发明的各个实施例针对扩充中断控制器(AIC)和提供更丰富合成信息(即“合成中断”或“SI”)的合成中断来源(SIS)。AIC和SIS提供用于发送和接收中断,尤其是发送到虚拟机和由其接收的中断的有效手段。这些实施例中的若干个特别针对被扩展以接受和传递与传入中断相关联的附加信息的中断控制器。对一些这样的实施例,对中断控制器的存储器映射扩展包括使用附加信息来填充的数据结构作为中断传递的一部分。尽管此处所述的若干实施例在虚拟机系统的上下文中公开,但此处公开的本发明也可应用于传统计算机系统(没有虚拟化层)。

Description

用于扩充中断控制器和合成中断来源的系统和方法
发明领域
本发明一般涉及中断控制器领域,尤其涉及在虚拟机(也被称为“处理器虚拟化”)中使用的中断控制器。更具体地,本发明针对在虚拟机环境中使用的扩充中断控制器,以及包含由所述扩充中断控制器使用的更丰富的中断信息的合成中断来源。
发明背景计算机包括被设计成执行一组特定的系统指令的通用中央处理单元(CPU)。具有类似架构或设计规范的一组处理器可被认为是同一处理器系列的成员。目前的处理器系列的示例包括由亚利桑那州凤凰城摩托罗拉有限公司制造的Motorola680X0处理器系列;加利福尼亚州桑尼维尔市英特尔公司制造的Intel 80X86处理器系列;以及摩托罗拉有限公司制造并在加利福尼亚州库珀蒂诺市苹果计算机有限公司所制造的计算机中使用的PowerPC处理器系列。尽管一组处理器可由于其类似的架构或设计考虑而处于同一系列中,但处理器可根据其时钟速度和其它性能参数而在一系列内变化很大。
每一系列的微处理器执行该处理器系列独有的指令。一处理器或一系列处理器可执行的指令集合被称为处理器的指令集。作为示例,Intel 80X86处理器系所使用的指令集与PowerPC处理器系列所使用的指令集不兼容。Intel 80X86指令集基于复杂指令集计算机(CISC)格式。Motorola PowerPC指令集基于精简指令集计算机(RISC)格式。CISC处理器使用大量指令,其中的某一些可执行相当复杂的功能,但一般要求多个时钟周期来执行。RISC处理器使用以高得多的速率执行的较少数目的可用指令来执行一组较简单的功能
处理器系列在各计算机系统之间的唯一性一般也导致计算机系统的硬件架构的其它元件之间的不兼容性。使用来自Intel 80X86处理器系列的处理器制造的计算机系统的硬件架构将不同于使用来自PowerPC处理器系列的处理器制造的计算机系统的硬件架构。由于处理器指令集和计算机系统硬件架构的唯一性,应用软件 程序一般被编写为运行在运行特定操作系统的特定计算机系统上。
处理器虚拟化
计算机制造商想要通过使更多而非更少的应用程序在与该计算机制造商的产品线相关联的微处理器系列上运行来最大化其市场份额。为了扩大可在计算机系统上运行的操作系统和应用程序的数目,开发了一种技术领域,其中被称为主机的具有一种类型的CPU的给定计算机将包括仿真器程序,它允许主机计算机仿真被称为客机(guest)的不相关类型的CPU的指令。因此,主机计算机将执行会使得一条或多条主机指令响应于给定的客机指令而被调用的应用程序。因此,主机计算机既可运行为其自身硬件架构设计的软件,又可运行为具有不相关硬件架构的计算机编写的软件。作为一个更具体的示例,例如由苹果计算机制造的计算机系统可运行为基于PC的计算机系统而编写的操作系统和程序。也有可能使用仿真器程序来在单个CPU上并发地操作多个不兼容的操作系统。在这种安排中,尽管每一操作系统彼此不兼容,但仿真器程序可主存两个操作系统之一,从而允许本来不兼容的操作系统在同一计算机系统上并发运行。
当客机计算机系统在主机计算机系统上仿真时,客机计算机系统被称为“虚拟机”,因为客机计算机系统仅作为一个特定的硬件架构的操作的纯软件表示而存在于主机计算机系统中。术语仿真器、虚拟机和处理器仿真有时被互换使用以表示模拟或仿真整个计算机系统的硬件架构的能力。作为示例,加利福尼亚州圣马特奥市Connectix公司所创建的Virtual PC软件仿真包括Intel 80X86奔腾处理器和各种主板组件和卡的整个计算机。这些组件的操作在运行在主机上的虚拟机中仿真。在诸如具有PowerPC处理器的计算机系统等主机计算机的操作系统软件和硬件架构上执行的仿真器程序模拟整个客机计算机系统的操作。
仿真器程序用作主机的硬件架构与仿真环境内运行的软件所发送的指令之间的互换。该仿真环境可由虚拟机监控程序(VMM)创建,它是直接运行在硬件上的软件层且通过展示与VMM正虚拟化的硬件相同的接口来虚拟化机器的所有资源(这允许VMM不会被运行在其上的操作系统层注意到)。在这种配置中,主机操作系统(HOS)和VMM可在同一物理硬件上并排运行。或者,仿真器程序可以是直接运行在物理计算机硬件上并仿真另一硬件配置的HOS本身。在该实施例的一个特定实现中,HOS软件可特别包括“超级管理程序”的一个实施例。
超级管理程序是存在于HOS的内核层附近且操作来允许一个或多个除HOS 以外的次要操作系统使用包括计算机系统的物理处理器在内的计算机系统硬件的控制程序。超级管理程序仿真次要操作系统的操作环境,使得次要操作系统相信它正在其通常的硬件和/或操作系统环境中操作且它处在计算机系统的逻辑控制之下,即使实际上它可能在另一硬件和/或操作系统环境中操作且处于计算机系统的逻辑控制之下的可能是HOS。这是重要的,因为众多操作系统运作,使得该操作系统必须如它处于计算机系统硬件的排他逻辑控制之下一般操作。因此,对同时在单个计算机系统上作运作多个操作系统而言,每一操作系统的超级管理程序必须作用于掩盖其它操作系统的存在,使得每一操作系统如它具有对整个计算机系统的排他控制一般运作。
为简明起见,包括但不限于VMM和超级管理程序的处理器虚拟化程序此处被统称为“虚拟化器”。而且,此处在超级管理程序的上下文中公开的本发明的任何方面也被假定为对VMM(或其它虚拟化器)同样有效和公开,反之亦然。
中断控制器
如本领域技术人员所知并领会的,在典型的计算机系统(例如,执行单个操作系统的物理硬件)中,硬件设备(网卡、打印机、其它外设等)通过中断来与运行在每一处理器核心上的处理器核心软件通信。然而,尽管系统中每一处理器核心与其它硬件之间存在若干类型的交互,但是从核心外部发起的所有这样的交互均通过单个、简单的中断传递机制。而且,在传统系统中,中断向量的数目非常有限,这使得有必要将多个事件一起归组在每一组的单个公共中断下。因此,当处理器核心软件接收到中断时,它必须采取若干步骤来标识中断的原因和上下文,因为现有的中断传递机制一般不能可靠地标识中断的来源或原因。此外,单个中断也可仅指示来自单个物理或虚拟设备的若干类似事件之一。例如,在较高的抽象层实现的消息通信机制可能需要数百或数千个单独可寻址信号以便执行,而核心处理器软件必须确定哪一可寻址信号对应于从这些类型的设备中接收到的中断。
当系统在超级管理程序、VMM或其它机器虚拟化技术(统称为“虚拟化器”)的控制下运行时,由虚拟设备向分区(虚拟机的实例)提供的服务一般经由与典型计算机系统中的硬件设备相同的中断机制来向该分区发送信号。然而,在虚拟机环境中,不仅虚拟机的各设备被虚拟化了,而且每一虚拟机的处理器核心也被虚拟化了。因此,每一这样的被虚拟化的处理器核心的核心处理器软件因它必须与虚拟化器(例如,超级管理程序或VMM)通信以便实际处理中断而被进一步复杂化,其 中这些中断可由硬件设备和虚拟化设备两者生成(其中后者仅作为软件存在)。因为现有的中断传递机制一般不能够可靠地标识中断来源,尤其是由软件生成的中断,因此在虚拟化环境中,标识中断的来源和本质所需的处理器资源更是昂贵得多。而且,与中断相关联的数据一般必须可被硬件和系统软件广泛地访问,且在虚拟化器主存多个互不信任的系统软件的典型情况中难以进行可信的传递。(在这样的情况中,需要使用中断将信息推入分区内,且即使当所有的分区都正参与同一中断管理方案时,与这些中断相关联的任何信息也需要针对相邻分区中的恶意操作系统进行保护。)
因此,由于中断可能来自每一VM中的若干不同的来源(包括硬件和软件来源两者),其中多个来源比硬件总线上的设备“更远”(因此需要更多的物理处理器周期来完成),本领域中需要一种包括更多信息以便于增强机器虚拟化系统的性能和效用的更丰富的中断传递机制。
本发明的各个实施例针对扩充中断控制器(AIC)和提供更丰富中断信息(或“合成中断”,即“SI”)的合成中断来源(SIS)。AIC和SIS提供用于发送和接收中断,尤其是发送到虚拟机和由其接收的中断的有效手段。这些实施例中的若干个特别针对一种被扩展以接受和传递与传入中断相关联的附加信息的中断控制器。对一些这样的实施例,对中断控制器的存储器映射扩展包括使用附加信息来填充的数据结构作为中断传递的一部分。尽管此处所述的若干实施例是在虚拟机系统的上下文中公开的,但此处公开的本发明也可应用于传统计算机系统(没有虚拟化层)。
当结合附图阅读前述概述以及之后对优选实施例的详细描述时,它们能被更好地理解。为阐述本发明起见,附图中示出了本发明的示例性构造;然而,本发明不限于所公开的特定方法和手段。附图中:
图1是表示可在其中包括本发明的各方面的计算机系统的框图;
图2示出了计算机系统中的仿真操作环境的硬件和软件架构的逻辑分层;
图3A示出了一虚拟化计算系统,其中仿真由主机操作系统执行(或者直接或者经由超级管理程序);
图3B示出了一替换虚拟化计算系统,其中仿真由与主机操作系统并排运行的虚拟机监控程序执行;
图4A是示出典型硬件中断控制器(也被称为“高级可编程中断控制器”,即“APIC”)的框图;
图4B是示出典型虚拟中断控制器,即虚拟机中的虚拟化APIC的框图;
图5A示出了典型中断过程流的过程流程图;
图5B示出了使用本发明的若干实施例中所提供的扩充中断控制器的改进的概念上的中断处理过程的过程流程图;
图6A是示出本发明的一些实施例的扩充中断控制器的框图,其中中断控制器接口被扩展以接受并可靠地传递与传入中断(例如,消息信号发送中断)相关联的附加信息;以及
图6B是示出本发明的一些实施例的扩充中断控制器的框图,其中中断控制器接口被扩展以接受并可靠地传递与传入中断相关联的附加信息(其中关于中断的附加信息由中断来源放置在共享存储器位置中)。
详细地描述本发明的主题以满足法定要求。然而,描述本身不旨在限制本专利的范围。相反,发明人构想了所要求的主题可结合其它目前或将来的技术按照其它方式来具体化,以包括不同的步骤或类似于本文档中所描述的步骤的步骤的组合。而且,尽管术语“步骤”可在此处用于指示所采用的方法的不同元素,但除非当明确描述了各个步骤的顺序时,否则该术语不应被解释为暗示此处公开的各个步骤之间的任何特定顺序。
计算机环境
本发明的众多实施例可在计算机上执行。图1和以下讨论旨在提供对可在其中实现本发明的合适的计算环境的简要一般描述。尽管不是必需的,但本发明将在如诸如程序模块等由诸如客户机工作站或服务器等计算机执行的计算机可执行指令的通用上下文中描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等,它们执行特定任务或实现特定抽象数据类型。而且,本领域的技术人员可以理解,本发明可以使用其它计算机系统配置实现,包括手持式设备、多处理器系统、基于微处理器或可编程消费者电子产品、网络PC、小型机、大型机等。本发 明也可以在分布式计算环境中实现,其中任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
如图1所示,示例性通用计算系统包括常规个人计算机20等,它包括处理单元21、系统存储器22和将包括系统存储器在内的各种系统组件耦合至处理单元21的系统总线23。系统总线23可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制器、外围总线和使用各种总线体系结构中的任一种的局部总线。系统存储器包括只读存储器(ROM)24和随机存取存储器(RAM)25。基本输入/输出系统26(BIOS)包含有助于诸如启动时在个人计算机20中元件之间传递信息的基本例程,它被存储在ROM24中。个人计算机20还可以包括从硬盘(未示出)中读取或向其写入的硬盘驱动器27,从可移动磁盘29中读取或向其写入的磁盘驱动器28,以及从诸如CD ROM或其它光学介质等可移动光盘31中读取或向其写入的光盘驱动器30。硬盘驱动器27、磁盘驱动器28和光盘驱动器30分别由硬盘驱动器接口32、磁盘驱动器接口33和光盘驱动器接口34连接至系统总线23。驱动器及其相关联的计算机可读介质为个人计算机20提供了对计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。尽管此处所示的示例性环境使用硬盘、可移动磁盘29和可移动光盘31,但本领域的技术人员应该理解,也可以在示例性操作环境中使用可以存储可由计算机访问的数据的其它类型的计算机可读介质,诸如盒式磁带、闪存卡、数字多功能盘、贝努利盒式磁盘、随机存取存储器(RAM)、只读存储器(ROM)等。
可以在硬盘、磁盘29、光盘31、ROM24或RAM25上存储多个程序模块,包括操作系统35、一个或多个应用程序36、其它程序模块37和程序数据38。用户可以通过诸如键盘40和定点设备42等输入设备向个人计算机20输入命令和信息。其它输入设备(未示出)可以包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等。这些和其它输入设备通常由耦合至系统总线的串行端口接口46连接至处理单元21,但也可以由诸如并行端口、游戏端口或通用串行总线(USB)等其它接口连接。监视器47或其它类型的显示设备也经由诸如视频适配器48等接口连接至系统总线23。除监视器47之外,个人计算机一般包括其它外围输出设备(未示出),诸如扬声器和打印机。图1的示例性系统还包括主机适配器55、小型计算机系统接口(SCSI)总线56以及连接至SCSI总线56的外部存储设备62。
个人计算机20可使用至一个或多个远程计算机,诸如远程计算机49的逻辑连接在网络化环境下操作。远程计算机49可以是另一台个人计算机、服务器、路 由器、网络PC、对等设备或其它常见的网络节点,且通常包括上文相对于个人计算机20描述的许多或所有元件,尽管在图1中只示出存储器存储设备50。图1中所示逻辑连接包括局域网(LAN)51和广域网(WAN)52。这样的连网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。
当在LAN连网环境中使用时,个人计算机20通过网络接口或适配器53连接至LAN51。当在WAN连网环境中使用时,个人计算机20通常包括调制解调器54或用于在诸如因特网等广域网52上建立通信的其它装置。调制解调器54可以是内置或外置的,它通过串行端口接口46连接至系统总线23。在网络化环境中,相对于个人计算机20所描述的程序模块或其部分可以存储在远程存储器存储设备中。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其它手段。而且,尽管预期到本发明的众多实施例尤其适用于计算机化的系统,然而本文不旨在将本发明限制于这些实施例。
虚拟机
从概念上的观点来看,计算机系统一般包括运行在基础硬件层上的一层或多层软件。这种分层是出于抽象原因来完成的。通过为给定一层软件定义接口,该层可由其上方的其它层不同地实现。在良好设计的计算机系统中,每一层仅了解(且仅依赖于)其下方紧接的一层。这允许替换层或“堆栈”(多个邻接层)而不会负面地影响所述层或堆栈上方的各层。例如,软件应用程序(较上层)一般依赖于较低层的操作系统层(较低层)以将文件写入某种形式的持久存储,且这些应用程序不必理解将数据写入软盘、硬盘驱动器或网络文件夹之间的区别。如果使用新操作系统组件替换了该较低层以便写入文件,则较上层软件应用程序的操作保持不受影响。
分层软件的灵活性允许虚拟机(VM)呈现实际上是另一软件层的虚拟硬件层。以此方式,VM可为其上方的软件层创建所述软件层正运行在其自身专用的计算机系统上的假象,因此VM可允许多个“客机系统”在单个“主机系统”上并发运行。
图2是表示计算机系统中的仿真操作环境的硬件和软件架构的逻辑分层的示意图。在该图中,仿真程序94直接或间接地在物理硬件架构92上运行。仿真程序94可以是(a)与主机操作系统并排运行的虚拟机监控程序、(b)具有本机仿真能力的专用主机操作系统、或(c)具有超级管理程序组件的主机操作系统,其中 所述超级管理程序组件执行所述仿真。仿真程序94仿真客机硬件架构96(示为虚线以便示出该组件是“虚拟机”的事实,即硬件实际不存在而相反由所述仿真程序94来仿真)。客机操作系统98在所述客机硬件架构96上执行,而软件应用程序100在客机操作系统98上运行。在图2的仿真操作环境中,且由于仿真程序94的操作,软件应用程序100可运行在计算机系统90中,即使软件应用程序100被设计成在与主机操作系统和硬件架构92一般不兼容的操作系统上运行。
图3A示出包括在物理计算机硬件102上直接运行的主机操作系统软件层104的虚拟化计算系统,其中主机操作系统(主机OS)104通过展示与主机OS正在仿真(即“虚拟化”)的硬件相同的接口来提供对物理计算机硬件102的资源的访问,这又允许主机OS不被其上运行的操作系统层注意到。为了执行仿真,主机操作系统104可以是具有本机仿真能力的特别设计的操作系统,或者它可以是具有所结合的用于执行仿真的超级管理程序组件的标准操作系统。
再次参考图3A,主机OS104上方是两个虚拟机(VM)实现VM A108和VM B110,VM A108可以是例如虚拟化Intel386处理器,而VM B110可以是例如Motorola680X0处理器系列之一的虚拟化版本。在每一VM108和110中,分别有客机操作系统(客机OS)A112和B114。运行在客机OS A112上的是两个应用程序,应用程序A1116和应用程序A2118,而运行在客机OS B114上的是应用程序B1120。
关于图3A,重要的是注意到VM A108和VM B110(以虚线示出)是虚拟化计算机硬件表示,它们仅作为软件构造存在且由于专用软件代码的存在而使之成为可能,专用软件代码不仅分别向客机OS A112和客机OS B114提供VM A108和VM B110,而且执行客机OS A112和客机OS B114与真实物理计算机硬件102间接交互所需的所有软件步骤。
图3B示出了其中仿真由与主机操作系统104"并排运行的虚拟机监控程序(VMM)104'执行的替换虚拟化计算系统。对某些实施例而言,VMM可以是运行在主机操作系统104上方并仅通过所述主机操作系统104来与计算机硬件交互的应用程序。在其它实施例中,且如图3B中所示,VMM可以改为包括部分独立的软件系统,它在某些层上经由主机操作系统104与计算机硬件102间接交互,而在其它层上,VMM与计算机硬件102直接交互(类似于主机操作系统与计算机硬件直接交互的方式)。而在又一些实施例中,VMM可包括在所有层上与计算机硬件102直接交互(类似于主机操作系统与计算机硬件直接交互的方式)而不利用主机操作 系统104(尽管在协调对所述计算机硬件102的使用和避免冲突等的范围内仍与所述主机操作系统104交互)的完全独立软件系统。
预期了用于实现VMM的所有这些变型以形成如此处所述的本发明的替换实施例,且此处没有一项内容应被解释为将本发明限于任何特定VMM配置。此外,对应用程序116、118和120之间分别经由VM A108和/或VM B110的交互(假定处于硬件仿真情形中)的任何参考应被解释为实际上是应用程序116、118和120与VMM之间的交互。同样地,对应用程序VM A108和/或VM B110与主机操作系统104和/或计算机硬件102之间的交互(假定在计算机硬件102上直接或间接执行计算机指令)的任何参考应被解释为实际上是VMM与主机操作系统104或计算机硬件102之间适当的交互。
扩充中断控制器
图4A是示出典型硬件中断控制器(也被称为“高级可编程中断控制器”或“APIC”)的框图。APIC400包括由总线402互连的两组组件:I/O APIC410和本地APIC420。
在该非限定性示例中,且如对示例性I/O APIC412所示,I/O APIC412、414和416中的每一个包括二十四(24)条输入线,例如418a、418b和418c,来处理至多二十四(24)个唯一设备中断。基于所接收的特定设备中断(即,取决于激活了哪一条输入线),每一I/O APIC使用逻辑路由表(未示出)来经由公共总线402将特定中断转发给分别对应于特定处理器核心432、434或436的本地APIC422、424或426之一(每一处理器具有其自己的相应的本地APIC组件)。
当从I/O APIC412、414或416之一接收中断之后,该非限定性示例中可至多接收二十四(24)个唯一中断的每一本地APIC422、424或426分别向其处理器核心432、434或436通知所接收的中断。该处理器核心然后停止正在做的事,并立即开始确定哪一设备引起了中断且为何原因的繁重过程。当处理器核心最终收集了关于该中断的这种附加信息之后,处理器核心通过通知本地APIC基于处理器核心能够确定的关于中断的来源和原因的新信息来对其它现有但尚未完成的中断事件重定优先级以结束(conclude)该中断。处理器核心然后继续处理接下来的最高优先级中断(取决于其相对优先级,这可以是它在处理最近中断之前开始工作的同一中断事件,或者这可以是该最新中断)。
尽管每一本地APIC可对约二百四十(240)个唯一中断事件发出信号,且每 一I/O APIC一般可对约二十四(24)个唯一中断事件发出信号,但用于在I/OAPIC与本地APIC之间通信的典型PCI总线不够精密复杂以区分中断来源等(例如,它不具有足够的唯一信号线)。因此,特定处理器核心的本地APIC所接收的中断可能对应于一个以上(可能若干个)可能的中断事件,因此需要处理器核心确定哪一设备引起了中断(通过轮询其对应于该中断的若干设备)以及确定中断的原因(通过从中断设备中收集关于中断原因的附加信息)。在物理硬件中,这种轮询和信息收集是非常低效和资源密集的,且这种低效在虚拟机环境中还要再大若干数量级。
图4B是示出典型虚拟中断控制器,即虚拟机中的虚拟化APIC的框图。虚拟APIC450逻辑上包括与图4A的硬件APIC相同的结构组件(未示出),不同之处在于如虚拟机领域的技术人员所公知且容易理解地,虚拟APIC450作为软件表示存在且因此对主机硬件处理器要求多得多的指令来执行中断操作,尤其是关于客机操作系统、超级管理程序(或其它虚拟化器)和物理硬件之间的交互的中断操作。
图5A是一般示出如此处已经对图4A提及且类似于图4B的典型中断过程流(尽管后者由于虚拟机、VMM和物理主机硬件之间的必要附加交互而更为复杂)的过程流程图。一般而言,在步骤502处,由源设备生成中断,且在步骤504处,该中断经由中断输入线被连接至所述设备的I/O APIC接收。在步骤506处,I/OAPIC进行逻辑路由表查找来确定哪一处理器核心和相应的本地APIC被指定为接收该特定中断,并在步骤508处基于该查找,将中断转发给所指定的本地APIC。在步骤510处,该特定本地APIC接收该中断并对其定优先级以便进一步处理。在步骤512处,处理器核心接收中断以便处理,但因为它不知道该中断的来源或原因,因此它必须轮询可能引起该中断的各个设备直到标识了正确的设备并确定了中断的原因。在步骤514处,基于步骤512处所确定的中断的来源和中断的原因(一起构成“中断信息”即“i.i.”),处理器然后处理该中断,且当完成时接收本地APIC必须提供的接下来的最高优先级中断。
尽管这种方法一般是低效的,但对物理硬件(中断控制器和核心处理器)而言绰绰有余,而当在虚拟机环境中被虚拟化时,这种低效被放大了。然而,不同于难以修改的物理硬件,虚拟硬件(即,在虚拟机环境中被虚拟化的机器)相对易于修改,且因此此处本发明的众多实施例针对经由扩充中断控制器来简化中断处理。
图5B是示出使用本发明的若干实施例中所提供的扩充中断控制器的改进的概念上的中断处理过程的过程流程图。在图中,在步骤522处,源设备所生成的中断(在这种情况中,虚拟设备被增强因此包括“合成中断来源”即“SIC”)附带 有包括关于中断的来源和原因的数据(在虚拟机的情况中,这些数据可由对所利用的虚拟设备作出的增强来自动生成)的中断信息。在步骤554处,该中断和附带的中断信息(它们一起构成“合成中断”即“SI”)被扩充中断控制器(AIC)接收并被给定优先级,且在步骤556处,它们由处理器核心处理而无需向设备轮询进一步的信息。
还应注意到,对本发明的若干这样的实施例,当诸如从实际物理硬件设备接收到标准(非SI)中断时,可进行常规的中断处理,尽管预期了甚至物理硬件设备也可被增强来提供SI而非标准中断。
图6A和6B是示出本发明的某些实施例的扩充中断控制器的框图,其中各自的中断控制器接口被扩展来接受并可靠地传递与传入中断(即,SI)相关联的附加信息。在图6A中,虚拟I/O APIC612被扩展来经由例如消息信号发送中断从中断来源606直接接受附加信息。该附加信息与中断本身一起构成标识该中断来源和该中断原因的合成中断(SI)。该附加信息以及该中断经由总线602从I/O APIC612被传递给适当的本地APIC622,后者又将该信息直接提供给其核心处理器632。对某些替换实施例,本地APIC也可被增强来接收附加信息,并基于它所接收的该附加信息以及中断优先级来对该中断定优先级。
在图6B,中断由I/O APIC612接收并被传递给本地APIC622,且又被传递给处理器核心632,但关于该中断的附加信息由中断来源606放置在可由核心处理器632自动访问的共享存储器位置608中,来代替轮询设备以确定该中断的来源和原因,因为共享存储器位置中的该附加信息标识了中断的来源和中断的原因。对某些替换实施例,本地APIC也可被增强来访问共享存储器位置中的附加信息,并基于它所接收的该附加信息和中断优先级来对该中断定优先级。
扩充中断控制器的附加增强
除前述以外,由于在超级管理程序系统中,某些中断可由软件发送,因此重要的是中断接收方(即,核心处理器)具有发现该中断的来源的可靠方式以便确定它未被其它恶意软件哄骗。类似地,分区可能需要知道与该中断相关联的某些信息被完整地传递。这可通过定义对中断控制器的存储器映射扩展来完成,该扩展具有作为至处理器核心的中断传递的一部分被填充的指定结构。该结构中的某些域将包含由发送方提供的参数,尤其是给出关于正发送信号的事件的更多细节的“原因码”。其它域,尤其是“发送分区标识符”域将由中断控制器提供。由于这种结构 仅可由接收方和中断控制器访问,因此接收方可依赖于中断参数的真实性。由于这种接收作为传递中断的一部分来填充,因此对该附加信息的检索也比传统的搜索和查询发送方模型高效得多。这些结构与常规中断向量相关联,因此中断优先级区分和传递可适应并继续利用当前机制。
对某些实施例,系统可包含允许设备被分配给特定分区的附加虚拟化硬件。在这种情况中,由这样的设备发出的中断及相关联的参数可按照与软件发起中断相同的方式来保护。
而且,由于典型中断控制器已经具有用于发送处理器间中断的工具,因此当该工具从虚拟机环境中的分区内访问以提供用于将中断发送给该分区内的虚拟处理器的相同服务时是有利的。尽管需要用于将中断发送给其它分区或用于在发送分区内发送带参数的中断的单独工具,但该单独工具可以是类似于常规控制器的命令寄存器系列,或者它可以是功能接口,而不论中断如何被发送,该接收中断的机制保持不变。
此外,当需要诸如用于高层通信协议的可读/可写信号发送等众多类似中断事件时,可提供替换安排,其中中断继续指示布尔条件而没有其它信息。然而,尽管常规中断提供该基本功能,但常规中断向量是相对稀缺的资源,因此这些实施例可使用中断控制器中的附加空间来保持单个常规中断向量背后相对较大的标志位图,从而实际上按某一操作系统指定因子增大了中断请求表的大小。这种位图倍增可在影响分派优先级的粒度级之上或之下进行,且假定使用硬件难以复制的必要虚拟寄存器相当易于使用软件来虚拟化时,该位图倍增在虚拟机上下文中相当易于进行。例如,在常规APIC中,尽管中断向量的前四位指示其优先级,最后四位被用于区分相同优先级的不同信号,但此处所述的位图扩展可将后一组从16个可能的值扩充为例如4096个或以上的不同值。如带有上述参数的中断一样,这些中断可由扩展命令寄存器系列或功能接口发送。对某些实施例,可任意配置单个常规中断向量来处理任一种类的中断或这两种中断。
类似地,本发明的其它实施例也可用于建立两个分区之间使用的更高层通信协议。尽管为打包消息以便通过面向字节流的传输和其它类似机制来传输设计了各种方法,但对足够小的消息,整个消息正文可作为关于中断的参数来发送,从而有效地将消息的通知和传递捆绑成一个实体。这又允许接收方接收整条消息而无需从分区内转移到虚拟化器,因为当中断被接收时整个消息正文已经存在于该分区的地址空间中。当与消息相关联的数据过大而无法完全位于参数工具内时,更高层的编 组(marshal)层必须以较不有效的方式来移动信息,但大多数消息将能位于对中断参数允许的空间内,从而可更高效地被处理。对某些实施例,参数区的大小可在编译时或运行时配置以得到特定负载的最优平衡。该概念可被实现为分区之间的最优异步通信协议,从而各自互相发送中断。该协议可包括(a)简单的单机消息传递协议,带有或不带有与所发起的消息相关联的响应消息;(b)常规RPC协议,它向调用者展示了同步和/或异步功能接口,使用中断来跨分区边界编组动作和数据;和/或(c)具有任意数目的参与者的对等安排,各自互相自由地发送中断。
跨分区同步可以是本发明的各个实施例的另一应用。尽管操作系统一般提供通过与其调度者共享数据结构来起作用的同步原语,但在分区和另一机制之间一般不需要对这样的数据结构的共享。在这一点上,可建立分区内的一类同步化对象,使得多个分区中的对象可反映单个逻辑状态。这一机制可允许分区内和分区间同步通过同一接口来进行。
结论
此处所述的各个系统、方法和技术可使用硬件或软件或其适当组合来实现。因此本发明的方法和装置或其某些方面或部分可采用包含在诸如软盘、CD-ROM、硬盘驱动器或任何其它机器可读存储介质等有形介质中的程序代码(即,指令)的形式,其中当程序代码被加载到诸如计算机等机器内并由其执行时,该机器成为用于实现本发明的装置。在程序代码在可编程计算机上执行的情况中,计算机一般包括处理器、该处理器可读的存储介质(包括易失性和非易失性的存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。一个或多个程序优选地以高级过程或面向对象编程语言实现来与计算机系统通信。然而,如果需要,可以使用汇编或机器语言来实现程序。在任何情况中,该语言可以是编译或解释语言,且与硬件实现相结合。
本发明的方法和装置也可以具体化为通过诸如电线或电缆、光纤或任何其它形式的传输等某些传输介质传输的程序代码的形式,其中,当程序代码由诸如EPROM、门阵列、可编程逻辑器件(PLD)、客户计算机、录影机等机器接收、加载并执行时,该机器成为用于实现本发明的装置。当在通用处理器上实现时,程序模块结合处理器来提供用于执行本发明的功能的独特的装置。
尽管结合各个附图的优选实施例描述了本发明,但是可以理解,可以使用其它类似的实施例,或可以对所述实施例进行修改或添加,来用于实现本发明的相同 的功能而不与之背离。例如,尽管在仿真个人计算机功能的数字设备的上下文中描述了本发明的示例性实施例,但是本领域的技术人员可以认识到,本发明不限于这样的数字设备,如在本申请中所述,本发明可以应用于任何数目的现有或新兴计算设备或环境,诸如游戏控制台、手持式计算机、便携式计算机等,无论是有线还是无线,且可以被应用于通过通信网络连接并跨该网络交互的任何数目的这样的计算设备。而且,应该强调,尤其因为无线网络化设备的数量持续增长,此处构想了各种计算机平台,包括手持式设备操作系统和其它应用程序专用硬件/软件接口系统。从而,本发明不应该限于任何单个实施例,而应根据所附权利要求书的宽度和范围来解释。
最后,此处所述的公开实施例可适用于在其它处理器体系结构、基于计算机的系统或系统虚拟化中使用,且由此处进行的公开明确地预期这样的实施例,因此,本发明不应限于此处描述的具体实施例,相反可以被最广义地解释。同样,对用于除处理器虚拟化之外的目的的合成指令的使用也可以由此处进行的公开所预期,且在除处理器虚拟化之外的上下文中对合成指令的任何这样的使用应最广义地添加此处进行的公开的意义。

Claims (15)

1.一种用于计算机系统中的扩充的中断控制的方法,所述计算机系统包括带有虚拟设备的虚拟机,所述方法包括:
从所述虚拟设备生成和发送合成中断,所述合成中断包括中断信号和相应的中断信息两者,所述合成中断由I/O虚拟中断控制器接收,所述中断信息包括对作为中断来源的虚拟设备的标识以及所述中断信号的原因;
使用所述I/O虚拟中断控制器接收所述合成中断并将其路由到相应的虚拟本地中断控制器,该虚拟本地中断控制器对于一虚拟处理器核心而言是本地的;
由所述虚拟本地中断控制器基于所述中断信息对所述合成中断确定优先级;以及
根据所述优先级将所述中断信号发送到虚拟处理器核心。
2.如权利要求1所述的方法,其特征在于,所述虚拟中断控制器使用所述中断信息来对所述合成中断确定处理优先级,从而无需轮询任何设备来执行以下任务:标识所述中断的来源和/或确定所述中断的原因。
3.如权利要求2所述的方法,其特征在于,所述虚拟本地中断控制器包括一个虚拟本地高级可编程中断控制器APIC,并且其中所述虚拟APIC被配置为确定中断信号的优先级而不涉及相应的虚拟处理器核心。
4.如权利要求2所述的方法,其特征在于,所述中断信息经由共享存储器位置从所述虚拟设备发送到所述虚拟本地中断控制器。
5.一种用于计算机系统中的扩充的中断控制的系统,所述系统包括:
一个或多个虚拟处理器核心;
一个或多个虚拟本地中断控制器,其分别对于相应的虚拟处理器核心是本地的;
虚拟机的虚拟设备,所述虚拟设备作为中断源时将中断信号和相应的中断信息两者发送给I/O虚拟中断控制器,所述中断信息包括对作为中断来源的虚拟设备的标识以及所述中断信号的原因;
I/O虚拟中断控制器,其接收所述中断信号和相应的中断信息,并将其路由到相应的虚拟本地中断控制器;
其中所述虚拟本地中断控制器在从I/O虚拟中断控制器接收到所述中断信号和相应的中断信息后基于中断信息为合成中断确定优先级,并根据所述优先级将所述中断信号发送到虚拟处理器核心。
6.如权利要求5所述的系统,其特征在于,所述虚拟中断控制器使用所述中断信息来对所述中断确定处理优先级。
7.如权利要求6所述的系统,其特征在于,所述虚拟I/O中断控制器使用所述中断信息以从多个虚拟本地中断控制器中确定一个虚拟本地中断控制器以发送所述中断信号。
8.如权利要求6所述的系统,其特征在于,还包括共享存储器,其中所述中断信息经由所述共享存储器从所述虚拟设备传输给所述虚拟本地中断控制器。
9.一种用于实施计算机系统中的扩充的中断控制的方法,其中所述计算机系统包括虚拟机,所述虚拟机包括可作为中断来源的虚拟设备,所述计算机系统还包括多个虚拟I/O中断控制器,多个虚拟本地高级可编程中断控制器APIC,以及和所述虚拟本地APIC对应的虚拟处理器,所述方法包括:
从所述虚拟设备产生中断信号和对应于中断信号的中断信息两者,并将所述二者发送给所述多个虚拟I/O中断控制器中的一个,其中所述中断信息包括对作为中断来源的虚拟设备的标识以及所述中断信号的原因;
所述虚拟I/O中断控制器确定将中断信号发送到哪个虚拟本地APIC;
所述虚拟I/O中断控制器将所述中断信号和中断信息路由到所确定的虚拟本地APIC;
接收中断信号和中断信息的虚拟本地APIC基于中断信息为中断确定优先级;
所述虚拟本地APIC根据所述优先级将中断信号发送给虚拟处理器核心。
10.如权利要求9所述的方法,其特征在于,所述中断信息包括:对所述中断来源的标识和/或所述中断的原因。
11.如权利要求10所述的方法,其特征在于,所确定的虚拟本地APIC使用所述中断信息对所述中断确定处理优先级。
12.如权利要求11所述的方法,其特征在于,所述中断信号由所确定的本地APIC确定优先级而不涉及相应的虚拟处理器核心。
13.如权利要求11所述的方法,其特征在于,所述中断信息经由共享存储器从所述虚拟设备传输到所述虚拟中断控制器或相应的虚拟处理器核心。
14.一种用于实现计算机系统中的虚拟中断控制的设备,所述计算机系统包括带有虚拟设备的虚拟机,所述设备包括:
用于从所述虚拟设备生成和发送合成中断的装置,所述合成中断包括中断信号和相应的中断信息两者,所述合成中断由I/O虚拟中断控制器接收,所述中断信息包括对作为中断来源的虚拟设备的标识以及所述中断信号的原因;
用于使用所述I/O虚拟中断控制器接收所述合成中断并将其路由到相应的虚拟本地中断控制器的装置,该虚拟本地中断控制器对于一虚拟处理器核心而言是本地的;
用于由所述虚拟本地中断控制器基于所述中断信息对所述合成中断确定优先级的装置;以及
用于根据所述优先级将所述中断信号发送到虚拟处理器核心的装置。
15.如权利要求14所述的设备,其特征在于,还包括用于经由一共享存储器将所述中断信息从所述虚拟装置传输到所述虚拟本地中断控制器或所述虚拟处理器核心的装置。
CN2006800062444A 2005-03-28 2006-03-28 用于扩充中断控制器和合成中断来源的系统和方法 Expired - Fee Related CN101128807B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/092,012 2005-03-28
US11/092,012 US7689747B2 (en) 2005-03-28 2005-03-28 Systems and methods for an augmented interrupt controller and synthetic interrupt sources
PCT/US2006/011487 WO2006105208A2 (en) 2005-03-28 2006-03-28 Systems and methods for an augmented interrupt controller and synthetic interrupt sources

Publications (2)

Publication Number Publication Date
CN101128807A CN101128807A (zh) 2008-02-20
CN101128807B true CN101128807B (zh) 2011-10-26

Family

ID=37036531

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800062444A Expired - Fee Related CN101128807B (zh) 2005-03-28 2006-03-28 用于扩充中断控制器和合成中断来源的系统和方法

Country Status (8)

Country Link
US (1) US7689747B2 (zh)
EP (1) EP1854014A4 (zh)
JP (1) JP2008535099A (zh)
KR (1) KR20070115883A (zh)
CN (1) CN101128807B (zh)
IL (1) IL184614A0 (zh)
TW (1) TW200707211A (zh)
WO (1) WO2006105208A2 (zh)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7802073B1 (en) * 2006-03-29 2010-09-21 Oracle America, Inc. Virtual core management
US9032127B2 (en) * 2006-09-14 2015-05-12 Hewlett-Packard Development Company, L.P. Method of balancing I/O device interrupt service loading in a computer system
US20080082710A1 (en) * 2006-09-29 2008-04-03 Dell Products L.P. System and method for managing system management interrupts in a multiprocessor computer system
US8219788B1 (en) 2007-07-23 2012-07-10 Oracle America, Inc. Virtual core management
US7627706B2 (en) * 2007-09-06 2009-12-01 Intel Corporation Creation of logical APIC ID with cluster ID and intra-cluster ID
US7769938B2 (en) 2007-09-06 2010-08-03 Intel Corporation Processor selection for an interrupt identifying a processor cluster
GB2462258B (en) * 2008-07-28 2012-02-08 Advanced Risc Mach Ltd Interrupt control for virtual processing apparatus
US8331362B2 (en) * 2008-12-30 2012-12-11 Juniper Networks, Inc. Methods and apparatus for distributed dynamic network provisioning
US8565118B2 (en) * 2008-12-30 2013-10-22 Juniper Networks, Inc. Methods and apparatus for distributed dynamic network provisioning
US8190769B1 (en) 2008-12-30 2012-05-29 Juniper Networks, Inc. Methods and apparatus for provisioning at a network device in response to a virtual resource migration notification
US8255496B2 (en) 2008-12-30 2012-08-28 Juniper Networks, Inc. Method and apparatus for determining a network topology during network provisioning
US20100174841A1 (en) * 2008-12-31 2010-07-08 Zohar Bogin Providing multiple virtual device controllers by redirecting an interrupt from a physical device controller
US9424211B2 (en) * 2008-12-31 2016-08-23 Intel Corporation Providing multiple virtual device controllers by redirecting an interrupt from a physical device controller
US8055827B2 (en) * 2009-01-26 2011-11-08 Advanced Micro Devices, Inc. Guest interrupt controllers for each processor to aid interrupt virtualization
JP5320140B2 (ja) * 2009-04-14 2013-10-23 株式会社日立製作所 計算機システム、割込み中継回路及び割込み中継方法
US8356130B2 (en) * 2009-08-14 2013-01-15 Advanced Micro Devices, Inc. Mechanism for recording undeliverable user-level interrupts
US8953603B2 (en) 2009-10-28 2015-02-10 Juniper Networks, Inc. Methods and apparatus related to a distributed switch fabric
US8442048B2 (en) * 2009-11-04 2013-05-14 Juniper Networks, Inc. Methods and apparatus for configuring a virtual network switch
KR101242661B1 (ko) * 2009-12-11 2013-03-12 한국전자통신연구원 컴퓨터 시스템에서 인터럽트 컨트롤러의 가상화 장치 및 방법
US8566492B2 (en) 2009-12-31 2013-10-22 Intel Corporation Posting interrupts to virtual processors
US8380908B2 (en) * 2009-12-31 2013-02-19 Intel Corporation Emulation of an input/output advanced programmable interrupt controller
US20110197004A1 (en) * 2010-02-05 2011-08-11 Serebrin Benjamin C Processor Configured to Virtualize Guest Local Interrupt Controller
US8606975B2 (en) * 2010-05-21 2013-12-10 Oracle International Corporation Managing interrupts in a virtualized input/output device supporting multiple hosts and functions
US8891406B1 (en) 2010-12-22 2014-11-18 Juniper Networks, Inc. Methods and apparatus for tunnel management within a data center
US8893267B1 (en) 2011-08-17 2014-11-18 Applied Micro Circuits Corporation System and method for partitioning resources in a system-on-chip (SoC)
CN103049318B (zh) * 2011-10-11 2017-10-17 北京科银京成技术有限公司 分区操作系统的虚拟中断方法
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
US8914566B2 (en) * 2012-06-19 2014-12-16 Teradyne, Inc. Managing interrupts
US9436626B2 (en) 2012-08-09 2016-09-06 Freescale Semiconductor, Inc. Processor interrupt interface with interrupt partitioning and virtualization enhancements
US9442870B2 (en) 2012-08-09 2016-09-13 Freescale Semiconductor, Inc. Interrupt priority management using partition-based priority blocking processor registers
RU2514141C1 (ru) 2012-09-28 2014-04-27 Закрытое акционерное общество "Лаборатория Касперского" Способ эмуляции вызовов системных функций для обхода средств противодействия эмуляции
US9009368B2 (en) 2012-10-23 2015-04-14 Advanced Micro Devices, Inc. Interrupt latency performance counters
US9021143B2 (en) 2012-11-30 2015-04-28 Intel Corporation Polling of I/O devices on host initiated communication transports
JP6123487B2 (ja) * 2013-05-28 2017-05-10 富士通株式会社 制御装置、制御方法及び制御プログラム
JP6241178B2 (ja) 2013-09-27 2017-12-06 富士通株式会社 ストレージ制御装置,ストレージ制御方法及びストレージ制御プログラム
US9417801B2 (en) * 2014-03-27 2016-08-16 Intel Corporation Virtual general-purpose I/O controller
US9910699B2 (en) 2014-10-28 2018-03-06 Intel Corporation Virtual processor direct interrupt delivery mechanism
US10049064B2 (en) * 2015-01-29 2018-08-14 Red Hat Israel, Ltd. Transmitting inter-processor interrupt messages by privileged virtual machine functions
JP6464777B2 (ja) 2015-01-30 2019-02-06 富士通株式会社 情報処理装置及びプログラム
US9747225B2 (en) 2015-05-05 2017-08-29 Microsoft Technology Licensing, Llc Interrupt controller
CN108196945B (zh) * 2016-12-08 2022-06-07 阿里巴巴集团控股有限公司 一种核间通信方法、装置和虚拟化设备
US11809888B2 (en) 2019-04-29 2023-11-07 Red Hat, Inc. Virtual machine memory migration facilitated by persistent memory devices
US11989144B2 (en) 2021-07-30 2024-05-21 Advanced Micro Devices, Inc. Centralized interrupt handling for chiplet processing units
CN113886054B (zh) * 2021-12-03 2022-04-15 芯来科技(武汉)有限公司 一种中断处理装置、芯片和电子设备
US20230315659A1 (en) * 2022-03-29 2023-10-05 Mellanox Technologies, Ltd. Interrupt emulation on network devices

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61206043A (ja) * 1985-03-11 1986-09-12 Hitachi Ltd 仮想計算機システムにおける割込制御方法
US5418968A (en) * 1990-10-31 1995-05-23 Gobeli; Gregg P. System and method for controlling interrupt processing
JP3093293B2 (ja) * 1991-02-08 2000-10-03 日本電気株式会社 情報処理装置の割り込み方式
GB2277388B (en) * 1993-04-19 1997-08-13 Intel Corp Programmable multi-processor interrupt controller system with a processor integrated local interrupt controller
US6240483B1 (en) * 1997-11-14 2001-05-29 Agere Systems Guardian Corp. System for memory based interrupt queue in a memory of a multiprocessor system
US6295573B1 (en) * 1999-02-16 2001-09-25 Advanced Micro Devices, Inc. Point-to-point interrupt messaging within a multiprocessing computer system
JP2001209548A (ja) * 2000-01-28 2001-08-03 Matsushita Electric Ind Co Ltd マイクロコンピュータシステム
JP2004030161A (ja) * 2002-06-25 2004-01-29 Hitachi Ltd コンピュータシステムにおける割り込み制御方法、コンピュータシステム、半導体集積回路、及びプログラム
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
JP2004355543A (ja) * 2003-05-30 2004-12-16 Toshiba Corp 情報処理装置および割り込み通知方法
WO2004114132A1 (ja) * 2003-06-20 2004-12-29 Fujitsu Limited 割り込み制御方法、割り込み制御装置及び割り込み制御プログラム
US8984199B2 (en) * 2003-07-31 2015-03-17 Intel Corporation Inter-processor interrupts
US7177967B2 (en) * 2003-09-30 2007-02-13 Intel Corporation Chipset support for managing hardware interrupts in a virtual machine system
US7139857B2 (en) * 2003-11-12 2006-11-21 Standard Microsystems Corporation Method and apparatus for handling interrupts
US7222203B2 (en) * 2003-12-08 2007-05-22 Intel Corporation Interrupt redirection for virtual partitioning

Also Published As

Publication number Publication date
CN101128807A (zh) 2008-02-20
US20060218328A1 (en) 2006-09-28
US7689747B2 (en) 2010-03-30
KR20070115883A (ko) 2007-12-06
WO2006105208A2 (en) 2006-10-05
IL184614A0 (en) 2007-12-03
EP1854014A2 (en) 2007-11-14
JP2008535099A (ja) 2008-08-28
WO2006105208A3 (en) 2007-06-07
EP1854014A4 (en) 2010-03-31
TW200707211A (en) 2007-02-16

Similar Documents

Publication Publication Date Title
CN101128807B (zh) 用于扩充中断控制器和合成中断来源的系统和方法
US11256749B2 (en) Graph data processing method and apparatus, and system
CN104965757B (zh) 虚拟机热迁移的方法、虚拟机迁移管理装置及系统
EP3432549B1 (en) Method and apparatus for processing user requests
US10572290B2 (en) Method and apparatus for allocating a physical resource to a virtual machine
CN101784989B (zh) 在逻辑分区之间分配网络适配器资源的方法和系统
US11347480B2 (en) Transpose operations using processing element array
CN102609298B (zh) 基于硬件队列扩展的网卡虚拟化系统及其方法
CN109086241A (zh) 基于应用的动态异构多核系统和方法
CN104704471A (zh) 虚拟网络中的虚拟机多播/广播
CN110063051A (zh) 可重新配置的服务器
CN104428752A (zh) 将虚拟机流卸载至物理队列
CN104395886A (zh) 多租户中间件云服务技术
CN105979007A (zh) 加速资源处理方法、装置及网络功能虚拟化系统
CN104052789A (zh) 用于虚拟联网系统的负载平衡
US10831536B2 (en) Task scheduling using improved weighted round robin techniques
CN103218266B (zh) 虚拟机与外部机器通信时使用的方法、设备及虚拟机系统
CN104094224A (zh) 超虚拟化非对称gpu处理器
US10572421B2 (en) Topology-aware parallel reduction in an accelerator
KR20210105378A (ko) 프로그래밍 플랫폼의 사용자 코드 작동 방법 및 플랫폼, 노드, 기기, 매체
WO2022271223A1 (en) Dynamic microservices allocation mechanism
WO2014127668A1 (zh) 虚拟机安全组的配置方法及装置
US11467946B1 (en) Breakpoints in neural network accelerator
CN107888663A (zh) 一种分发文件的方法、设备及计算机可读介质
CN111262771B (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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150428

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150428

Address after: Washington State

Patentee after: MICROSOFT TECHNOLOGY LICENSING, LLC

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20111026