专利名称:重定向物理设备控制器的中断而提供多个虚拟设备控制器的制作方法
技术领域:
本发明涉及一种装置,包括 处理器; 物理设备控制器;以及 虚拟化逻辑,用于接收来自所述物理设备控制器的第一中断,并作为响应,将来自多个虚拟设备控制器之一 的第二中断发送至所述处理器。
附图中举例而非限制性地示出本发明。
图1示出根据本发明一个实施例用于重定向中断的设备。
图2示出根据本发明一个实施例用于重定向中断的方法。 图3示出根据本发明一个实施例存储用于重定向中断的信息的条目。
具体实施例方式
如下所述,本发明能以用于重定向中断的装置或方法的形式实施。在本描述中,阐述了诸如组件和系统配置的众多具体细节,以便可以更全面地理解本发明。但是,本领域技术人员将明白,没有这些具体细节也可实现本发明。另外,没有详细示出一些熟知的结构、电路等,以免不必要地使本发明的描述晦涩难懂。 希望多个虚拟机可共享单个物理设备控制器,而无需VMM拦截涉及该设备控制器的所有事务,或无需将设备控制器重新设计成支持虚拟化。因此,本发明的实施例可用于重定向来自单个物理设备控制器的中断,以使得物理设备控制器看起来就像是多个虚拟设备控制器一样。 本发明的实施例的元件能以硬件、软件、固件、或硬件、软件或固件的任何组合的形式实现。术语"硬件"一般是指具有物理结构的元件,如电子、电磁、光、光电、机械、机电零件等。术语"软件"一般是指逻辑结构、方法、过程、程序、例行程序、进程、算法、公式、表达式等。术语"固件"一般是指在硬件结构(如闪存或只读存储器)中实现或实施的逻辑结构、方法、过程、程序、例行程序、进程、算法、公式或表达式。固件的实例有微代码、可写控制存储和微编程结构。 图1示出根据本发明一个实施例可在其中重定向中断的信息处理系统100。信息处理系统100包括裸平台硬件110,它可以是能够执行任何0S、 V匪或其它软件的任何装置。例如,裸平台硬件110可以是个人计算机、大型计算机、便携式计算机、手持设备、机顶盒、服务器或任何其它计算系统的硬件。在此实施例中,裸平台硬件110包括处理器120、芯片集130、系统存储器140和设备控制器150。 处理器120可以是具有一个或多个执行核的任何组件,其中每个执行核可基于各种不同类型的处理器中的任何处理器,这些不同类型的处理器包括通用微处理器,例如
Intel Pentium 处理器系列、Itanium 处理器系列、Intel 公司的其它处理器系列中的处理器或另一公司的另一处理器;或数字信号处理器或微控制器。尽管图1只示出一个
这样的处理器120,但裸处理硬件110可包括任何数量的处理器,包括任何数量的多核处
理器,每个多核处理器具有任何数量的执行核;以及任何数量的多线程处理器,每个多线程处理器具有任何数量的线程。 芯片集130可以是支持存储器操作、输入/输出操作、配置、控制、内部或外部接口、连接、或通信功能(例如,"胶合"逻辑和总线桥)和/或处理器120和/或系统100的任何类似功能的任何电路和逻辑组。芯片集130的各个元件可集合在单个芯片上、一对芯片上、散布在多个芯片中,和/或部分地、全部地、冗余地、或根据分布式方法集成到包括处理器120在内的一个或多个处理器中。在此实施例中,芯片集130包括如下所述的根据本发明一个实施例用于重定向中断的虚拟化逻辑132。在其它实施例中,虚拟化逻辑132可包含在系统100的其它地方。 系统存储器140可包括其上可存储诸如数据和/或指令的信息的任何介质,例如
静态或动态随机存取存储器、基于半导体的只读存储器或闪速存储器、磁或光盘存储器、或
可由处理器120读取的任何其它类型的介质、或这些介质的任何组合。 设备控制器150可表示任何类型的1/0、外围设备或可作为中断请求的来源的其
它设备的控制器,例如硬盘控制器、音频控制器、网络接口控制器、外围总线控制器等。设备
控制器150可在离散组件中实施,或可包含在具有任何其它设备控制器的集成组件中。在
一个实施例中,设备控制器150可表示多功能1/0、外围设备或其它设备控制器中的功能。设备控制器150可包括用于存储配置信息的配置存储设备152。 处理器120、芯片集130、系统存储器140和设备控制器150可根据任何已知方法彼此耦合或相互通信,这些已知方法可以是例如直接法、或通过一种或多种并行、顺序、流水线、异步、同步、有线、无线或其它总线或点对点连接或通信方式的间接法。例如,在此实施例中,芯片集130包括接口 131,接口 131用于通过任何这样的连接或其它通信方式从设备控制器150接收信号、消息和/或诸如中断请求的事务,或将信号、消息和/或事务传送至设备控制器150和/或系统100中的任何其它代理或组件。类似地,设备控制器150包括接口 151,接口 151用于向和/或从芯片集130和/或系统100中的任何其它代理或组件传送和/或接收信号、消息和/或事务。系统100还可包括任何数量的额外代理、组件或连接。 系统100还包括V匪160与VM 162和164。 V匪160可以是经安装而可在裸平台硬件110上运行或可供裸平台硬件110访问以向访客呈现VM( S卩,裸平台硬件110的抽象)或以其它方式创建VM、管理VM并在系统100内实现虚拟化策略的任何软件、固件或硬件主机。在其它实施例中,主机可以是能够控制裸平台硬件110的任何V匪、管理程序、OS、或其它软件、固件或硬件。访客可以是任何OS、包括V匪160的另一实例在内的任何V匪、任何管理程序、或任何应用或其它软件。 根据VM中呈现的处理器和平台的体系结构,每个访客预期能访问裸平台硬件110或由V匪160虚拟化的平台的资源,例如处理器和平台寄存器、存储器和输入/输出设备。图1示出两个VM 162和164,可在每个VM上安装访客0S和任何数量的访客应用。尽管图1示出两个VM,但在本发明的范围内,可创建任何数量的VM,并且可以安装任何数量的访客OS和访客应用以在每个VM上运行。 返回到芯片集130,虚拟化逻辑132可包括用于重定向来自物理设备控制器(如物理设备控制器150)的中断的任何电路、逻辑或其它结构,如固件。芯片集130还包括如上所述的接口 131、配置存储设备134和数据存储设备136。配置存储设备134和数据存储设备136可包括其上可存储信息的任何介质;例如,配置存储设备134可包括可编程寄存器,而数据存储设备136可包括静态随机存取存储器。虚拟化逻辑132可从配置存储设备134和/或数据存储设备136读取信息以及将信息写入到配置存储设备134和/或数据存储设备136,以确定要捕获哪些物理设备控制器的中断、每个共享的物理设备控制器当前分配给哪个VM、要将所捕获的每个VM的中断重定向到哪里等等,以及维持这样的状态。配置存储设备134和数据存储设备136可映射到处理器110的地址空间,以便可以利用它们来在虚拟化逻辑132与VM 162和164之间交换信息。 芯片集130可通过接口 131从设备控制器150接收中断请求。在一个实施例中,可根据任何已知的信令协议通过输入端子作为诸如水平或边缘触发中断信号的信号接收中断请求("管脚中断")。在另一实施例中,可根据任何已知的消息、事务或其它通信协议作为诸如总线消息或点对点事务的消息接收中断请求。例如,在设备控制器150通过外围组件互连E邓ress( "PCI-E邓ress")总线耦合到芯片集130的实施例中,总线协议可包括消息信号中断("MSI"),其中中断消息可包括32位地址字段和32位数据字段。包括利用基于信号和消息的中断请求的实施例在内的其它实施例也是可能的。 系统100可包括用于将中断请求按优先级排序并将它们递送给处理器120和/或
5系统100中的任何其它代理的一个或多个中断控制器。在一个实施例中,处理器120包括本地中断控制器122,芯片集130包括I/O中断控制器138。 可将中断请求引至处理器120以执行与设备控制器150相关联的中断处理程序。目标(intended)中断处理程序可由中断请求所传达的信息(例如,MSI中的地址和/或数据字段的内容)指示,或对于管脚中断,预期的中断处理程序可由输入端子、管脚或信号路径的身份(identity)指示。但是,为了支持设备控制器150的虚拟化,虚拟化逻辑132可捕获中断请求,即,虚拟化逻辑132拦截并修改要到处理器120的中断消息或信号。
图2示出根据本发明一个实施例可重定向中断的方法200。在对图2的方法实施例的描述中,可参照图1中的系统实施例的元件,但是,本发明的方法实施例在这方面不受限制。 在方法200的方框210中,配置信息处理系统(如系统100),使得将可以作为中断请求的来源的每个物理设备控制器(如设备控制器150)与中断处理程序相关联。可将配置信息存储在配置存储设备152中,配置存储设备152可以是例如MSI寄存器。
在包括MSI的实施例中,可通过例如虚拟化逻辑132来配置物理设备控制器150以利用它的MSI的地址字段中的第一地址值和数据字段中的第一数据值。根据由V匪160维持的系统存储器的视图,第一地址值可以是与本地中断控制器122相关联的地址。根据由VMM 160维持的系统存储器的视图,第一数据值可以是与设备控制器150的中断处理程序相关联的地址。 在包括管脚中断的实施例中,可通过以下方法来配置物理设备控制器150 :硬接线或软接线要由I/O中断控制器138接收的该物理设备控制器150的中断请求输出,使得该中断请求输出可由虚拟化逻辑132拦截。例如,可将中断请求输出多路传送至I/O中断控制器134或虚拟化逻辑132。 I/O中断控制器138可编程为使设备控制器150的中断处理程序与来自设备控制器150的中断请求输出所连接到的输入相关联。
在方框212,将虚拟化逻辑132配置成捕获来自设备控制器150的中断请求。
在包括MSI的实施例中,虚拟化逻辑132可包括配置存储设备134中的多个位置(location),这些位置可用在芯片集130和设备控制器150之间的总线上捕获的MSI事务的地址和数据值编程。例如,图3示出配置存储设备134中的条目300,条目300包括物理MSI地址字段310、物理MSI数据字段320、虚拟MSI地址字段330和虚拟MSI数据字段340。在此实施例中,可将第一地址值和第一数据值分别编程到物理MSI地址字段310和物理MSI数据字段320中。然后,如下文进一步描述的,可使用条目300来将虚拟设备控制器与物理设备控制器150相关联。也可用第一地址和第一数据值来编程以条目300格式的额外条目,以将额外虚拟设备控制器与物理设备控制器150相关联。 在包括管脚中断的实施例中,可将中断请求信号从可由本地中断控制器138接收切换为可由虚拟化逻辑132接收。 在方框214,可将虚拟化逻辑132配置成使表示物理设备控制器150的虚拟设备控制器中的一个或多个虚拟设备控制器与一个或多个VM相关联。 在利用MSI的实施例中,可用所捕获的MSI事务的地址和数据值编程的配置存储设备134中的位置可包括可用与VM相关联的地址和数据值编程的额外的对应位置(例如,虚拟MSI地址字段330和虚拟MSI数据字段340)。例如,VM 152可能不能访问所有系统存 储器140;因此,VM 152的系统存储器140视图可能不同于V匪150的视图。根据VM 152 的系统存储器140视图,与本地中断控制器122相关联的地址可能不是结合方框212描述 的第一地址值,而可能是第二地址,并且与设备控制器150的中断处理程序相关联的地址 可能不是第一数据值,而可能是第二数据值。因此,可用第二地址值编程虚拟MSI地址字段 330,并用第二数据值编程虚拟MSI数据字段340。 在利用管脚中断的实施例中,虚拟化逻辑132可配置成代表对应于物理设备控制 器150的虚拟设备控制器将中断请求发送至I/O中断控制器138。配置存储设备134或数 据存储设备136可包括用于存储来自物理设备控制器的中断请求输入与去往I/O中断控制 器138的中断请求输出之间的映射的位置。 在方框220,物理设备控制器150通过例如发出MSI事务或通过断言中断信号而 做出第一中断请求。在方框222,虚拟化逻辑132捕获中断请求。在方框224,虚拟化逻辑 132基于例如存储在数据存储设备136中的信息和/或通过轮询物理设备控制器150来确 定要将第一中断请求给哪个VM。在方框226,虚拟化逻辑132在数据存储设备136的队列、 缓冲器或其它位置中输入第一中断请求,使得VM可找到该请求以与虚拟化逻辑132交换信 息。 在方框230,虚拟化逻辑132将对应于但不同于方框220中的第一中断请求的第 二中断请求发送给处理器120。在一个实施例中,直到处理器120的控制权转移到第一中 断请求要到的那个VM时才发送第二中断请求。该第二中断请求可以是消息或信号的形式。 在它是消息的实施例中,消息中所包含的地址、数据和/或任何其它信息可以是对应于虚 拟设备控制器而非物理设备控制器的信息。例如,可在处理器120和芯片集130之间的总 线上发送MSI,其中地址字段中的虚拟MSI地址字段330是第二地址值,而数据字段中的虚 拟MSI数据字段340是第二数据值。在第二中断请求是信号的实施例中,可将信号从虚拟 化逻辑132发送到I/O中断控制器138,然后可将信号从I/O中断控制器138发送至处理器 120。基于在方框214的描述中所论述的映射,从虚拟化逻辑132发送的信号可以是对应于 虚拟设备控制器而非物理设备控制器150的信号。在任一实施例中,V匪160都可以不知道 信息对应的是虚拟设备控制器而非物理设备控制器,因为虚拟化是通过虚拟化逻辑132而 非V匪160执行的。 在方框240,处理器120接收第二中断请求,获取至中断处理程序的向量,并开始 在目标VM中执行中断处理程序。在方框242, VM可通过数据存储设备136与虚拟化逻辑 132交换信息。 在本发明的范围内,可在省略所示方框、增加额外方框、或重排、省略或添加额外 方框的组合的情况下执行方法200。诸如226和230的一些方框可并行执行。
可在从创建到模拟到制作的各种阶段中设计根据本发明实施例设计的任何组件 或组件的部分。表示设计的数据可用多种方式来表示该设计。首先,如同在模拟中有用一 样,可利用硬件描述语言或另一功能描述语言来表示硬件。另外或作为替代,可在设计过程 的某些阶段制作具有逻辑和/或晶体管门的电路级模型。此外,在某个阶段,大多数设计达 到可用表示各种设备的物理布局的数据来对其建模的程度。在利用常规半导体制造技术的 情况下,表示设备布局模型的数据可以是指定用于制造集成电路的掩膜的不同掩膜层上各种特征存在与否的数据。 在设计的任何表示中,可将数据存储在任何形式的机器可读介质中。经调制或以 其它方式生成以传送这样的信息的光或电波、存储器、或诸如盘的磁或光存储介质都可作 为机器可读介质。任何这些介质都可"携带"或"指示"本发明的实施例中所用的设计或其 它信息。当传送指示或携带这些信息的电载波时,在执行电信号的复制、缓冲或再传送的程 度,进行新的复制。因此,通信提供商或网络提供商的这些动作可构成对实施本发明技术的 诸如载波的制品进行复制。 因此,公开了用于重定向中断的装置、方法和系统。尽管描述并在附图中示出了某 些实施例,但应理解,这些实施例只是说明而非限制广泛的发明,并且本发明不限于所示和 所描述的特定构造和布置,在研读本公开后,本领域技术人员可联想到各种其它修改。在诸 如此类的技术领域中,发展迅速且不易预知进一步的进展,在不背离本公开的原理或随附 权利要求的范围的情况下,在赋予技术发展的促进下,所公开的实施例可容易在布置和细 节方面做出修改。
8
权利要求
一种装置,包括处理器;物理设备控制器;以及虚拟化逻辑,用于接收来自所述物理设备控制器的第一中断,并作为响应,将来自多个虚拟设备控制器之一的第二中断发送至所述处理器。
全文摘要
本发明公开通过重定向来自物理设备控制器的中断而提供多个虚拟设备控制器的装置、方法和系统的实施例。在一个实施例中,装置包括处理器、物理设备控制器和虚拟化逻辑。虚拟化逻辑用于接收来自物理设备控制器的第一中断,并作为响应,将来自多个虚拟设备控制器之一的第二中断发送至处理器。
文档编号G06F9/455GK101777005SQ200910217299
公开日2010年7月14日 申请日期2009年12月25日 优先权日2008年12月31日
发明者M·塔贝特, R·纳拉瓦迪, S·卡利纳海利, Z·博金 申请人:英特尔公司