在分区环境中显露设备特征的制作方法

文档序号:6454442阅读:150来源:国知局
专利名称:在分区环境中显露设备特征的制作方法
技术领域
本发明的实施例涉及分区技术领域,更具体地说,涉及分区环境 中的设备驱动器。
背景技术
在分区环境(如虚拟化环境)中,可以创建访客操作环境的许多 实例。这些访客环境或分区可以相互独立地运行。通常,诸如管理程 序的软件层直接在系统硬件上运行,并将虚拟平台显露给访客分区。 在这种方案下,可以将设备或硬件元件作为具有一些通用特性的才莫型 显露给访客分区。
软件层将基本的设备特征提炼成类似设备共有的通用模型。这种 提炼的一个问题是,可能不能完全利用设备的特定或唯一特征。在许 多应用中,可能需要访问设备特有功能性以便利用设备提供的增值或 唯一特征。


通过参照以下描述和用于说明本发明的实施例的附图可以最好
地理解本发明的实施例。图中
图1A是示出可以在其中实现本发明的一个实施例的网络系统的
图1B是示出根据本发明的一个实施例的处理系统的图; 图2是示出根据本发明的一个实施例的分区环境的图; 图3是示出根据本发明的一个实施例的设备接口过程的流程图; 图4是示出根据本发明的一个实施例的用于处理本地事务的过程 的流程图;图5A是示出根据本发明的一个实施例的从应用到设备的输/v/输 出控制调用操作的第 一 部分的流程的图5B是示出根据本发明的一个实施例的从应用到设备的输入/输 出控制调用操作的第二部分的流程的图6A是示出根据本发明的一个实施例的从设备到应用的状态改 变通知操作的第 一部分的流程的图6B是示出根据本发明的一个实施例的从i殳备到应用的状态改 变通知操作的第二部分的流程的图。
具体实施例方式
本发明的一个实施例是用于处理输^/输出(1/0)事务的技术。 访客分区中的仿真设备驱动器(driver)在处理I/O事务时经由操作系统 (OS)来代表应用与虚拟机(VM)管理器交互。I/O事务是应用与 设备之间的事务。以通信方式耦合到仿真设备驱动器的服务分区中的 设备仿真器在处理I/O事务时经由OS来代表设备特有驱动器与VM 管理器交互。设备特有驱动器与设备接口 ( interface to the device)。
在以下描述中,阐述了众多具体细节。但是,应了解,在没有这 些具体细节的情况下,也可以实现本发明的实施例。在其它情况中, 没有示出熟知的电路、结构和技术,以免混淆对本描述的理解。
本发明的一个实施例可以作为过程来描述,该过程通常描绘成流 程图、操作程序图、结构图或框图。尽管流程图可以将操作作为连续 过程来描述,但是其中许多操作可以并行或同时执行。流程图中的循 环或迭代可以通过单个迭代来描述。应了解,维护一个或多个循环索 引或计数器以便更新关联的计数器或指针。此外,操作的顺序可以重 新排列。过程在其操作完成时终止。过程可以对应于方法、程序、步 骤等。框图可以包含描述元件、项、组件、设备、单元、子单元、结 构、方法、进程、功能、操作、功能性或任务等的方框或4莫块。功能 性或操作可以自动或手动地^L行。本发明的一个实施例是用于在分区环境中处理应用与I/O设备之 间的I/O事务的技术。该技术允许通用仿真设备显露和服务于对于真
实设备的驱动器和硬件来说唯一或特殊的功能性。这可以通过代理从
访客分区到拥有或控制真实设备硬件的服务分区的标准驱动器I/O控 制接口来执行。通过I/0控制代理,将来自应用的用于执行某个动作
的所有查询直接传递给标准设备驱动器,而不管这些查询是标准的还 是定制的。这些查询对于为表示真实硬件而创建的模型来说是不透明
的。然后,可以通过设备特有驱动器来实践(hornor)设备特有的任 何定制命令。该技术不限于严格虚拟化的环境。它可以扩展到其中一 个分区拥有或控制真实设备硬件并将同类仿真设备呈现给其它分区 的任何环境。可以采用任何分区环境,而不管是利用虚拟化还是利用 任何其它类型的技术创建的。
图1A是示出可以在其中实现本发明的一个实施例的系统10的 图。系统IO表示利用10千兆位以太网的局域网(LAN)应用。系统 10包括两个校园20和50以及链路25。
每个校园20和50表示利用网络互连来链接个人计算机(PC)、 工作站和服务器的企业。他们可以具有聚集成10千兆位以太网下行 链路的多个1000BASE-X或1000BASE-T段。链路25可以是长距离 (如40 km)连接两个校园20和50的单才莫光纤链路。
校园20和50在基础设施方面可以类似。每个校园中的网络可以 包括建筑物、数据中心或计算机室。校园20可以包括交换机/路由器 (如交换机/路由器30和交换机/路由器35 )和LAN 42。才吏园50可以 包括交换机/路由器(如交换机/路由器60和交换机/路由器65 )和LAN 72。交换机/路由器30和60通常设置在对应校园的边缘。它们通过链 路25连接在一起。交换机/路由器30和35以高达10千兆位/秒(Gbps ) 的速度在短距离(如30-80米)内经由多模光纤链路32连接。交换机 /路由器35连接到LAN 42。类似地,交换机/路由器60和65以高达 10千兆位/秒(Gbps)的速度在短距离(如30-80米)内通过多冲莫光纤链路62连接。交换机/路由器65连接到LAN72。
LAN 42提供到服务器、PC或工作站(如服务器40和个人计算 机(PC) /工作站45)的连接。类似地,LAN 72提供到服务器、PC 或工作站(如服务器70和PC/工作站75 )的网络连接。服务器40或 70提供特定操作以支持该计算环境。它们可以是连接到各种打印机 的打印服务器,连接到诸如磁带驱动器、廉价磁盘冗余阵列(RAID) 的大容量存储设备的存储服务器,用于提供诸如视频、音频或图形的 多媒体服务的媒体服务器,或具有特定功能的任何月l务器。每个服务 器通常包括一个或多个具有到对应LAN的网络连接的网络接口卡 (NIC)。 PC/工作站45或75可以是运行虚拟化平台环境的处理系统。
图IB是示出可以在其中实现本发明的一个实施例的处理系统 45/75的图。系统45/75包括处理器单元110、存储器控制器(MC) 120、主存储器130、图形处理器125、输X/输出控制器(IOC) 140、 互连145、大容量存储设备接口 150、输入/输出(1/OH殳备147广147K 和网络接口卡(NIC) 160。
处理器单元110表示具有任何类型的体系结构的中央处理单元, 如利用超线程、安全性、网络、数字々某体技术的处理器、单核处理器、 多核处理器、嵌入式处理器、移动处理器、微控制器、数字信号处理 器、超标量计算机、向量处理器、单指令多数据(SMD)计算机、 复杂指令集计算机(CISC)、精筒指令集计算机(RISC)、超长指令 字(VLIW)或混合体系结构。
MC 120提供对诸如主存储器130和IOC 140的存储器和输入/输 出i殳备的控制和配置。MC 120可以集成到芯片组中,该芯片組集成 了多种功能性,如图形、々某体、隔离执行沖莫式、主机-夕卜围总线接口、 存储器控制、功率管理等。MC 120或MC 120中的存储器控制器功能 性可以集成在处理器单元110中。在一些实施例中,位于处理器单元 110内部或外部的存储器控制器可以为处理器单元110中的所有核或 处理器工作。在其它实施例中,它可以包括可以分别为处理器单元110中的不同核或处理器工作的不同部分。
主存储器130用于存储系统代码和数据。主存储器130通常用动 态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、或 任何其它类型的存储器(包括那些无需刷新的存储器)来实现。主存 储器130可以包括诸如DRAM的存储器设备的多个通道。DRAM可 以包括具有8.5千兆位/秒(GB/s)带宽的双倍数据速率(DDR2)设 备。在一个实施例中,存储器130包括分区环境135。分区环境135 可以支持应用与设备之间的I/O事务,这些I/O事务将设备的附加或 唯一特征显露给(expose to)应用。分区环境135提供可以相互独立才喿 作的多个VM的创建。
图形处理器125是提供图形功能性的任何处理器。图形处理器125 也可以集成到MC 120中以形成图形和存储器控制器(GMC)。图形 处理器125可以是经由诸如加速图形端口 (AGP)的图形端口或外围 组件互连(PCI) Express互连与MC 120接口的图形卡,如图形性能 加速(AGP)卡。图形处理器125提供到显示监视器127的接口 ,该 显示监视器127例如为标准顺序扫描监视器、电视(TV)输出设备和 最小化传输差分信号(TMDS)控制器。显示监视器127可以是任何 显示设备,如阴极射线管(CRT )监视器、电视机、液晶显示器(LCD )、 平板显示器、和数字CRT。
IOC 140具有设计成用于支持I/O功能的多种功能性。IOC 140也 可以与MC 120 —起或与MC 120分离地集成到芯片组中以执行I/O功 能。1OC140可以包括多个接口和I/O功能,.如外围组件互连(PCI) 总线接口、处理器接口、中断控制器、直接存储器,取(DMA)控制 器、功率管理逻辑、计时器、系统管理总线(SM^us)、通用串行总 线(USB)接口、大容量存储设备接口、低引脚计数(LPC)接口、 无线互连、直接媒体接口 (DMI)等。
互连145提供到外围设备的接口 。互连145可以点对点或连接到 多个设备。为清楚起见,没有示出所有互连。预期互连145可以包括任何互连或总线,如外围组件互连(PCI) 、 PCI Express、通用串行 总线(USB)、小型计算机系统接口 (SCSI)、串行SCSI和直接々某 体接口 (DMI)等。
大容量存储设备接口 150与用于存储诸如代码、程序、文件、数 据和应用的文档信息的大容量存储设备接口 。大容量存储设备接口可 以包括SCSI、串行SCSI、高级技术附件(ATA)(并行和/或串行)、 集成驱动电子装置(IDE)、增强IDE、 ATA分组接口 (ATAPI)等。 大容量存储设备可以包括致密盘(CD)只读存储器(ROM) 152、数 字视频/多功能盘(DVD) 153、软盘驱动器154和硬盘驱动器155、 磁带驱动器156以及任何其它磁或光存储设备。大容量存储设备提供 用于读取机器可访问介质的机构。
I/O设备147广147k可以包括用于执行I/O功能的任何I/O设备。 1/0设备147rl47K的实例包括输入设备控制器(如键盘、鼠标、跟踪 球、定位设备)、媒体卡(如音频、视频、图形)、网络卡、和任何 其它外围控制器。
NIC 160提供到服务器40/70的网络连接。在一个实施例中,NIC 160与32位和64位外围组件互连(PCI)总线标准二者兼容。它通常 符合PIC局部总线修订版2.2、 PCI-X局部总线修订版1.0或 PCI-Express标准。处理系统中可以有多于一个NIC 160。通常,NIC 160 支持标准以太网最小和最大帧大小(64-1518字节)、帧格式、以及 电子和电气工程师协会(IEEE) 802.2逻辑链路控制(LLC)规范。 它也可以支持全双工千兆位以太网接口、基于帧的流控制、以及定义 有线以太网的物理层和数据链路层的其它标准。它.可以支持由正EE
太网。NIC160可以是无线网络适配器。它可以符合PCI总线和通用 串行BUS (USB )标准。它可以覆盖IEEE 802.11g标准的高达1000% 覆盖区和范围。
NIC 160也可以是主机总线适配器(HBA),如小系统小接口(SCSI)主机适配器或光纤通道(FC)主机适配器。SCSI主机适配 器可以包含用于执行SCSI事务的板上硬件和固件、或用于从SCSI设 备引导或配置SCSI主机适配器的适配器基本输A/输出系统(BIOS)。 FC主机适配器可用于与光纤通道总线接口。它可以与1 Gbps光纤通 道存储区域网(SAN)自动协商速度而以高速(如2Gbps)操作。它 可以由合适的固件或软件来支持以便在带内FC或带外互联网协议
(IP)支持下提供本地和远程HBA的发现、净良告和管理。它可以在 硬件奇偶校验和循环冗余码(CRC)支持下具有帧级多路复用和乱序 帧重组、用于构造支持的板上上下文高速緩存、和端对端数椐保护。
图2是示出根据本发明的一个实施例的如图1所示的分区环境 135的图。分区环境135包括访客分区210、 VM管理器265和服务分 区220。可以利用虛拟化来进行分区。分区环境135中的任何一个组 件都可以通过软件、固件、 >埂件或其任意组合来实现。
访客分区210可以是在平台或处理系统45/75上创建的用于在物 理硬件组件上操作的虚拟分区的一个实例。它可以包括标准设备应用 230、定制设备应用235、操作系统(OS)层240、和仿真设备驱动器 260。标准设备应用(application)230可以是使用标准设备的应用。标准 设备是可以建模成具有某个最少特征子集的通用设备的设备。定制设 备应用235可以是使用定制接口设备的应用。定制接口设备可以是具 有唯一或特殊的附加特征的设备。这些特征对于应用有用。因此,需
要能够访问这些唯一或特殊的特征而不是如标准设备中的通用或最 少特征。OS层240可以包括支持访客分区210的OS组件。它可以包 括标准应用编程接口 (API)函数调用。仿真设备驱动器260可以利 用这些标准API调用来与应用230或235通信。
仿真设备驱动器260是设备接口 250的一部分。i殳备接口 250耦 合到VM管理器265以便服务于设备290。它可以通过软件、固件、 硬件或其任意组合来实现。设备接口 250提供用于保留或显露设备290 的唯一或特殊特征的机制。这些唯一或特殊特征不会一支传统技术掩盖住,而是显露给应用235。设备接口 250可以通用以便与同一类中的 不同设备一起工作。设备可以形成为具有不同特性和/或功能性的类。 例如,网络类可以包括所有网络适配器;存储类可以包括所有存储设 备,等等。仿真设备驱动器260在处理I/O事务时经由OS 240来代表 应用230或235与VM管理器265交互。I/O事务是应用230或235 与设备290之间的事务。
VM管理器265管理着在平台上创建的VM。它们包括访客分区 210和服务分区220。 VM管理器265用作用于在访客分区210与服务 分区220之间传送信息的管道。它管理着VM接口任务,包括向设备 ^接口 250发送通知。
服务分区220可以包括设备仿真器270、 OS层275、和设备特有 驱动器280。设备仿真器270是设备接口 250的一部分。它以通信方 式耦合到仿真设备驱动器260,并在处理I/O事务时经由OS 275来代 表设备特有驱动器280与VM管理器265交互。OS 275可以包含与服 务分区220中的设备驱动器有关的OS組件。它可以与OS240相同。 它可以包括标准应用编程接口 (API)函数调用。设备仿真器270可 以利用这些标准API调用来与i殳备特有驱动器280通信。
设备特有驱动器280与设备290接口 ,并具有用于控制或配置设 备290的固件或软件形式的特定程序或例行程序。设备290可以是具 有对于应用235有用的附加或特殊特征的任何I/O设备。它可以是如 图1所示的NIC160。
图3是示出根据本发明的一个实施例的设备接口过程300的流程图。
一旦开始,过程300在处理I/O事务时从访客分区经由操作系统 (OS)来代表应用与VM管理器交互(方框310) 。 1/0事务是应用 与I/O设备之间的事务。I/O事务可以由应用发起,如I/O控制(IOCTL) 函数调用。此类IOCTL调用的一个实例可以是向无线网络适配器发出 的返回位于适配器可见范围内的所有接入点的列表的请求。I/O事务也可以由I/0设备发起,如主动通知。此类主动通知的一个实例可以 是状态改变(如电缆断开、下行链路状态)。从访客分区与VM管理 器的交互将在图5A和6B中进一步说明。
接着,过程300在处理I/O事务时从服务分区经由OS来代表设 备特有驱动器与VM管理器交互(方框320)。设备特有驱动器与设 备接口。它可以包含设置、配置或控制设备的特定函数或程序。从服 务器分区与VM管理器的交互将在图5B和6A中进一步说明。然后, 过程300终止。
图4是示出根据本发明的 一个实施例的用于处理本地事务的过程 400的流程图。
一旦开始,过程400从应用接收I/O事务请求(方框410) 。 I/O 请求可以由直接与应用接口的OS组件截取。接着,过程400确定I/O 事务请求是否可以在本地处理(方框420)。当之前已经执行过该处 理并且已经将结果緩存(如存储在高速緩存中)时,可以在本地处理 1/0事务。例如,可以緩存设备名称或链路状态。通过緩存I/0事务的 值或结果,可以高效且快速地执行处理。
如果确定可以在本地处理I/O事务请求,则过程400将状态返回 给OS(方框430)。该状态可以指示无需等待该操作,因为它可以在 某个预定的时间段内完成。接着,过程400在本地处理I/O事务(方 框440)。例如,可以从高速緩存检索设备名称,并将设备名称返回 给请求的应用。然后,过程400终止。
如果确定不能在本地处理I/O事务请求,则过程400转到以远程 模式处理I/O事务(方框450)。以远程模式的处理由设备接口 250 (图2)来执行,这将在图5A、 5B、 6A和6B中更全面地说明。然 后,过程400终止。
图5A是示出根据本发明的一个实施例的从应用到设备的输X/输 出控制调用操作的第一部分的流程500A的图。流程500A涉及如图2 所示的包括OS 240和仿真设备驱动器(emulated device driver)260的访客分区210、以及VM管理器265。仿真设备驱动器260在处理I/O事 务时从访客分区210与VM管理器265交互。
当访客分区210中的OS 240从应用接收到远程I/O事务请求(如 IOCTL调用)(方框510)时,流程500A开始。应用可以是标准设 备应用230或定制设备应用235 (图2)。然后,OS 240将调用传递 给仿真设备驱动器260。仿真设备驱动器260将IOCTL调用置于由访 客分区210与服务分区220共享的存储器中(方框515)。这可以涉 及获得调用信息(如命令、变元)并准备正确格式的调用信息用于检 索。然后,仿真设备驱动器260将IOCTL调用转发给(proxy to ) VM 管理器265 (方框520 )。这可以涉及向VM管理器265发出呼叫以 通知其该请求。然后,仿真设备驱动器260将未决状态返回给OS240 以指示I/O事务未决(方框525 )。这是为了确保该过程符合OS 240 的某个时限规定。然后,OS 240等待未决状态清零(方框530 )。
一旦从仿真设备驱动器260接收到通知,VM管理器265通知服 务分区220该未决I/O事务(如IOCTL调用)(方框535 )。这可以 通过在发送软件中断之后进行恢复操作、或通过给服务分区220的任 何其它通知来执行。然后,服务分区220继续如图5B所示的处理。 随后,VM管理器265从服务分区220接收I/O事务完成的通知。接 着,它通知访客分区I/O事务的结果(方框540)。这可以通过在发 送软件中断之后进行恢复操作、或给仿真设备驱动器260的任何其它 通知来执行。
一旦从VM管理器265接收到通知,仿真设备驱动器260从共享 存储器获得结果(方框545 )。然后,它通知OS 240结果可用并将未 决状态清零(clear)(方框550 )。 一旦接收到清零后的未决状态,OS 240 获得结果并将结果返回给应用(方框555 )。
图5B是示出根据本发明的一个实施例的从应用到设备的输A/输 出控制调用操作的第二部分的流程500B的图。流程500B涉及如图2 所示的包括OS 275和设备仿真器270的服务分区220、以及VM管理器265。设备仿真器270在处理I/O事务时从服务分区220与VM管 理器265交互。
当设备仿真器270从VM管理器265接收到通知时,流程500B 开始。设备仿真器270从共享存储器获得IOCTL调用信息(方框560 )。 接着,它利用对OS 275的标准API调用来执行IOCTL调用(方框565 )。 OS 275将IOCTL调用传递给设备特有驱动器280 (图2 ),设备特有 驱动器280执行该命令或将该命令发送给设备290。因为设备特有驱 动器280是设备特有的,所以它能够访问i殳备的唯一或附加特征。因 此,这些唯一特征可以变成可用或显露给请求的应用。然后,设备290 执行所请求的I/0事务。取决于I/O事务的特定性质,可以将结果返 回给设备特有驱动器280或更新它在状态寄存器内的状态。接着,设 备特有驱动器280相应地获得结果。然后,OS275从设备特有驱动器 280获得I/O事务的结果(方框570)。接着,它将结果置于由服务分 区220与访客分区210共享的存储器中(方框575 ),并通知设备仿 真器270。这可以是存储I/O事务信息的相同的共享存储器或是不同 的共享存储器。接着,设备仿真器270通知VM管理器265该结果(方 框580)。然后,如图5A中的方框540所示,VM管理器265通知访 客分区210。
图6A是示出根据本发明的一个实施例的从设备到应用的状态改 变通知操作的第一部分的流程600A的图。流程600A涉及包括OS 275 和设备仿真器270的服务分区220、以及VM管理器265。设备仿真 器270在处理I/O事务时从服务分区220与VM管理器265交互。
当OS 275从设备特有驱动器280(图2 )接收状态改变的通知(方 框610)时,流程600A开始。状态改变可以是需要注意的设备状态 的任何改变。它可以由诸如电缆断开、下行链路状态等任何事件引起。 接着,OS275通知设备仿真器270该状态改变(方框615)。 一旦接 收到通知,设备仿真器270将状态改变信息置于由服务分区220与访 客分区210共享的存储器中(方框620)。接着,它将状态改变通知转发给VM管理器265 (方框625 )。 一旦接收到通知,VM管理器 265通知访客分区210该状态改变(方框630)。这可以通过在^L件 中断之后进行恢复操作、或任何其它通知技术来执行。
图6B是示出根据本发明的一个实施例的从设备到应用的状态改 变通知操作的第二部分的流程600B的图。流程600B涉及如图2所示 的包括OS 240和仿真设备驱动器260的访客分区210、以及VM管理 器265。仿真设备驱动器260在处理I/O事务时从访客分区210与VM 管理器265交互。
一旦从VM管理器265接收到通知,仿真设备驱动器260从共享 存储器中获得状态改变信息(方框635 )。接着,它利用对OS240的 标准API调用来向OS 240 7〉布状态改变(方框640 )。状态改变现在 可供应用使用和/或访问(方框645 )。
本发明的实施例的元件可以通过硬件、固件、專欠件或其任意组合 来实现。术语硬件一般是指具有物理结构的元件,如电子、电磁、光、 电-光、机械、电-机零件、组件或设备等。术语软件一般是指逻辑结 构、方法、过程、程序、例行程序、进程、算法、公式、函数、表达 式等。术语固件一般是指在硬件结构(如闪速存储器)中实现或实施 的逻辑结构、方法、过程、程序、例行程序、进程、算法、z^式、函 数、表达式等。固件的实例可以包括微代码、可写控制存储、微编程 结构。当在库t件或固件中实现时,本发明的一个实施例的元件本质上 是用于执行必需任务的代码段。软件/固件可以包括用于执行在本发明 的一个实施例中描述的操作的实际代码、或仿效或才莫拟这些才喿作的代
码。程序或代码段可以存储在处理器或机器可访问介质中,或通过传 输介质由以载波实施的计算机数据信号、或经载波调制的信号来传 送。"处理器可读或可访问介质"或"机器可读或可访问^h质"可以 包括可存储、传送或转移信息的任何介质。处理器可读或^u器可访问 介质的实例包括电子电路、半导体存储器设备、只读存储器(ROM)、 闪速存储器、可擦除ROM( EROM)、可擦除可编程ROM( EPROM)、软盘、致密盘(CD) ROM、光盘、硬盘、光纤介质、射频(RF)链 路等。计算机数据信号可以包括通过诸如电子网络通道、光纤、空气、 电磁、RF链路等传输介质传播的任何信号。代码段可以经由诸如互 联网、内联网等计算机网络下载。机器可访问介质可以在制造品中实
操作的数据。机器可访问介质还可包括嵌在其中的程序代码。程序代 码可以包括用于执行上文描述的操作的机器可读代码。术语"数据" 在这里是指出于机器可读的目的而编码的任何类型的信息。因此,它 可包括程序、代码、数据、文件等。
本发明的实施例的所有或一部分可以通过^/f牛、软件、或固件、 或其任意组合来实现。硬件、软件、或固件元件可以具有数个相互耦 合的元件。.硬件模块通过机、电、光、电磁或任何物理连接耦合到另 一个模块。软件模块通过函数、过程、方法、子程序、或子例行程序 调用、跳转、链路、参数、变量、和变元传递、函数返回等耦合到另 一个才莫块。软件才莫块耦合到另一个才莫块以接收变量、参数、变元、指 针等,和/或生成或传递结果、更新后的变量、指针等。固件才莫块通过 以上硬件和软件耦合方法的任意组合耦合到另一个模块。硬件、软件 或固件模块可以耦合到另一个硬件、软件、或固件模块中的任意一个 模块。模块也可以是用于与在平台上运行的操作系统交互的软件驱动 器或接口。模块还可以是用于配置、设置、初始化硬件设备、向硬件 设备发送数据和从硬件设备接收数据的硬件驱动器。 一种装置可以包 括硬件、软件和固件模块的任意组合。
尽管就几个实施例描述了本发明,但本领域的技术人员将意识 到,本发明不限于所描述的实施例,而是在实施时可以具有在随附权 利要求的精神和范围内的修改和变更。因此,应将本描述视为是说明 性而不是限制性的。
权利要求
1. 一种装置,包括位于访客分区中的仿真设备驱动器,用于在处理输入/输出(I/O)事务时经由操作系统(OS)来代表应用与虚拟机(VM)管理器交互,所述I/O事务是所述应用与设备之间的事务;以及位于服务分区中以通信方式耦合到所述仿真设备驱动器的设备仿真器,用于在处理所述I/O事务时经由所述OS来代表设备特有驱动器与所述VM管理器交互,所述设备特有驱动器与所述设备接口。
2. 如权利要求1所述的装置,其中所述仿真设备驱动器将源自所 述应用的输7v/输出控制(IOCTL)调用转发给所述VM管理器,所述 VM管理器通知所述设备仿真器所述IOCTL调用。
3. 如权利要求2所述的装置,其中所述仿真设备驱动器将IOCTL 调用信息置于在所述访客分区与所述服务分区之间共享的存储器中, 并将未决状态返回给所述0S。
4. 如权利要求3所述的装置,其中所述设备仿真器一旦从所述 VM管理器接收到通知便从所述共享存储器获得所述IOCTL调用信 息,并利用标准应用编程接口 (API)来对所述OS执行所述IOCTL 调用。
5. 如权利要求4所述的装置,其中所述设备仿真器通知所述VM 管理器所述IOCTL调用的结果,所述OS将所述结果置于所述共享存 储器中。
6. 如权利要求5所述的装置,其中所述仿真设备驱动器从所述共 享存储器获得所述结果,并通知所述OS所述结果以^f更将所述未决状 态清零,所述OS将所述结果返回给所述应用。
7. 如权利要求1所述的装置,其中所迷设备仿真器将源自所述设 备特有驱动器的状态改变转发给所述VM管理器,并将所述状态改变 置于在所述访客分区与所述服务分区之间共享的存储器中,所迷VM管理器通知所述仿真设备驱动器所述状态改变。
8. 如权利要求7所述的装置,其中所述仿真设备驱动器一旦从所 述VM管理器接收到通知便从所述共享存储器获得所述状态改变,并 利用标准应用编程接口 (API)来向所述OS公布所述状态改变,所述 状态改变可供所述应用访问。
9. 一种方法,包括在处理输/v/输出(I/O)事务时从访客分区经由操作系统(OS) 来代表应用与虚拟机(VM)管理器交互,所述I/0事务是所述应用与 设备之间的事务;以及在处理所述I/O事务时从服务分区经由所述OS来代表设备特有 驱动器与所述VM管理器交互,所述设备特有驱动器与所述设备接口 。
10. 如权利要求9所述的方法,其中从所述访客分区的交互包括 将源自所述应用的输7v/输出控制(IOCTL)调用转发给所述VM管理器,所述VM管理器通知所述设备仿真器所述IOCTL调用。
11. 如权利要求10所述的方法,其中从所述访客分区的交互还包括将IOCTL调用信息置于在所述访客分区与所述服务分区之间共 享的存储器中;以及将未决状态返回给所述OS。
12. 如权利要求11所述的方法,其中从所述服务分区的交互包括一旦从所述VM管理器接收到通知便从所述共享存储器获得所述 IOCTL调用信息;以及利用标准应用编程接口 (API)来对所述OS执行所述IOCTL调用。
13. 如权利要求12所述的方法,其中从所述服务分区的交互还包括通知所述VM管理器所述IOCTL调用的结果,所述OS将所述结果置于所述共享存储器中。
14. 如权利要求13所述的方法,其中从所述访客分区的交互还包括从所述共享存储器获得所述结果;以及通知所述OS所述结果以便将所述未决状态清零,所述OS将所 述结果返回给所述应用。
15. 如权利要求9所述的方法,其中从所迷服务分区的交互包括 将源自所述设备特有驱动器的状态改变转发给所述VM管理器;以及将所述状态改变置于在所述访客分区与所述服务分区之间共享 的存储器中,所述VM管理器通知所述仿真设备驱动器所述状态改变。
16. 如权利要求15所述的方法,其中从所述访客分区的交互包括一旦从所述VM管理器接收到通知便从所述共享存储器获得所述 状态改变;以及利用标准应用编程接口 (API)来向所述OS^S布所述状态改变, 所述状态改变可供所述应用访问。
17. —种系统,包括连接到网络以接收和发送分组的网络接口卡(NIC),所述NIC支持全2又工千兆^f立以太网冲妄口 ;用于管理虚拟机(VM)接口任务的VM管理器;以及 耦合到所述VM管理器以服务于所述NIC的设备接口 ,所迷设备接口包括位于访客分区中的仿真设备驱动器,用于在处理输入/输出 (I/O)事务时经由操作系统(OS)来代表应用与所述VM管理器交 互,所述I/O事务是所述应用与设备之间的事务;以及位于服务分区中以通信方式耦合到所述仿真设备驱动器的 设备仿真器,用于在处理所述I/O事务时经由所述OS来代表设备特有驱动器与所述VM管理器交互,所述设备特有驱动器与所述设备接 口 。
18. 如权利要求17所述的系统,其中所述仿真设备驱动器将源自 所述应用的输^/输出控制(IOCTL)调用转发给所述VM管理器,所 述VM管理器通知所述设备仿真器所述IOCTL调用。
19. 如权利要求18所述的系统,其中所述仿真设备驱动器将 IOCTL调用信息置于在所述访客分区与所述服务分区之间共享的存 储器中,并将未决状态返回给所述OS。
20. 如权利要求19所述的系统,其中所述设备仿真器一旦从所述 VM管理器接收到通知便从所述共享存储器获得所述IOCTL调用信 息,并利用标准应用编程接口 ( API)来对所述OS执行所述IOCTL 调用。
21. 如权利要求20所述的系统,其中所述设备仿真器通知所述 VM管理器所述IOCTL调用的结果,所述OS将所述结果置于所述共 享存储器中。
22. 如权利要求21所述的系统,其中所述仿真设备驱动器从所述 共享存储器获得所述结果,并通知所述OS所述结果以便将所述未决 状态清零,所述OS将所述结果返回给所述应用。
23. 如权利要求17所述的系统,其中所述设备仿真器将源自所述 设备特有驱动器的状态改变转发给所述VM管理器,并将所述状态改 变置于在所述访客分区与所述服务分区之间共享的存储器中,所述 VM管理器通知所述仿真设备驱动器所述状态改变。
24. 如权利要求23所述的系统,其中所述仿真设备驱动器一旦从 所述VM管理器接收到通知便从所述共享存储器获得所述状态改变, 并利用标准应用编程接口 (API)来向所述OS 厶布所述状态改变,所 述状态改变可供所述应用访问。
25. —种制造品,包括包括数据的机器可访问介质,所述数据在由机器访问时使所述机器执行包括以下步骤的操作在处理输/v/输出(I/O)事务时从访客分区经由操作系统(OS) 来代表应用与虚拟机(VM)管理器交互,所述I/O事务是所述应用与 设备之间的事务;以及在处理所述I/O事务时从服务分区经由所述OS来代表设备特有 驱动器与所述VM管理器交互,所述设备特有驱动器与所述设备4妄口 。
26. 如权利要求25所述的制造品,其中使所述机器执行从所述访 客分区的交互的数据包括在由机器访问时使所述机器执行包括以下 步骤的操作的数据将源自所述应用的输A/输出控制(IOCTL)调用转发给所述VM 管理器,所述VM管理器通知所述设备仿真器所述IOCTL调用。
27. 如权利要求26所述的制造品,其中使所述机器执行/人所述访步骤的操作的数据将IOCTL调用信息置于在所述访客分区与所述服务分区之间共 享的存储器中;以及将未决状态返回给所述OS。
28. 如权利要求27所述的制造品,其中使所述机器执行从所述服 务分区的交互的数据还包括在由机器访问时使所述机器执行包括以 下步骤的操作的数据一旦从所述VM管理器接收到通知便从所述共享存储器获得所述 IOCTL调用信息;以及利用标准应用编程接口 ( API)来对所述OS执行所述IOCTL调用。
29. 如权利要求28所述的制造品,其中使所述机器执行从所述服下步骤的操作的数据通知所述VM管理器所述IOCTL调用的结果,所述OS将所述结果置于所述共享存储器中。
30.如权利要求29所述的制造品,其中使所述机器执行从所述访下步骤的操作的数据从所述共享存储器获得所述结果;以及通知所述OS所述结果以便将所述未决状态清零,所述OS将所 述结果返回给所述应用。
全文摘要
本发明的一个实施例是用于处理输入/输出(I/O)事务的技术。访客分区中的仿真设备驱动器在处理输入/输出(I/O)事务时经由操作系统(OS)来代表应用与虚拟机(VM)管理器交互。I/O事务是应用与设备之间的事务。以通信方式耦合到仿真设备驱动器的服务分区中的设备仿真器在处理I/O事务时经由OS来代表设备特有驱动器与VM管理器交互。设备特有驱动器与设备接口。
文档编号G06F9/46GK101416161SQ200780012109
公开日2009年4月22日 申请日期2007年3月30日 优先权日2006年3月31日
发明者J·杰克逊, M·D·金尼, R·拉波波尔特, S·戈夫曼 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1