首页> 中国专利> 生成指示命令的分组和/或发出该命令的部分执行结果

生成指示命令的分组和/或发出该命令的部分执行结果

摘要

一实施例可包括要至少部分被包括在网络中的节点中的电路。该电路可至少部分暴露虚拟功能(VF),该电路的物理功能(PF)的子集可经由该虚拟功能来访问。该电路可至少部分生成分组,该分组可至少部分指示命令,或者该电路可至少部分发出由该网络中的另一(外部)节点对命令的执行的结果。该分组可至少部分由该另一节点接收。该命令可被从至少部分驻留于该节点中的虚拟机(VM)发出至该VF。该结果可至少部分被经由该VF发出至该VM。许多变化、修改和替代方案也是可能的,并且不背离本实施例的范围。

著录项

  • 公开/公告号CN104301297A

    专利类型发明专利

  • 公开/公告日2015-01-21

    原文格式PDF

  • 申请/专利权人 英特尔公司;

    申请/专利号CN201410240030.X

  • 发明设计人 P·G·酷奇;

    申请日2014-05-30

  • 分类号H04L29/06;G06F9/455;

  • 代理机构上海专利商标事务所有限公司;

  • 代理人毛力

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 04:27:34

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-05-25

    授权

    授权

  • 2015-02-18

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20140530

    实质审查的生效

  • 2015-01-21

    公开

    公开

说明书

技术领域

本文公开的实施例大体涉及生成和/或接收可至少部分指示一个或多个命令的一个或多个分组,和/或至少部分发出(issue)所述一个或多个命令的至少部分执行的一个或多个结果。 

背景技术

在一个传统虚拟化环境中,为了准许物理网络接口设备能够在多个虚拟机(VM)之间共享,虚拟机管理器(VMM)向该VM分配该物理网络接口设备的相应虚拟功能(VF)。这些VF对应于该物理网络接口设备的物理资源或功能的专用集合。如果根据在2010年1月20日发布的外围组件互连(PCI)特别兴趣组(SIG)单根输入/输出虚拟化(SR-IOV)和共享规范版本1.1(后文称为“SR-IOV规范”)来实现,则给定VF及其分配的VM之间的交互的至少一部分绕过了对该VMM的直接涉及。 

不幸的是,上述传统技术限于结合共存于同一主机上的VM和物理网络接口设备所使用。从而,在此传统技术中,驻留于网络中的一个主机中的VM不被分配到驻留于该网络中的另一个主机中的设备的VF。此外,期望能够实现VF以用于那些与网络接口设备相关联和/或使用网络接口设备实现的功能所不同的功能或附加于那些功能的功能。 

附图简述 

随着下列“详细描述”的进行并参考附图,各实施例的特征和优点将变得显而易见,其中,相同编号描绘了相同的部分,其中: 

图1示出一个实施例中的元素。 

图2示出一个实施例中的元素。 

图3示出一个实施例中的元素。 

虽然将参考说明性实施例继续进行以下详细描述,但其替换方案、修改以及变型对本领域技术人员而言将显而易见。因此,旨在宽泛地考虑所要求保护的主题。 

具体实施方式

图1示出了系统实施例100。系统100可至少部分包括网络102。网络102可至少部分包括一个或多个网络节点10、一个或多个网络节点20、和/或一个或多个网络节点30。一个或多个节点10可以经由一个或多个网络通信链路51A至少部分通信耦合于一个或多个节点20。一个或多个节点20还可以经由一个或多个网络通信链路51B至少部分通信耦合于一个或多个节点30。 

在此实施例中,“计算机”、“主机”、“服务器”、“客户机”、和/或“节点”可互换使用,并且可以是或可以至少部分包括:一个或多个终端站、智能电话、平板计算机、装置、通信设备、中间站、网络接口、客户机、服务器、存储、大容量存储、和/或其组件和/或部分。在此实施例中,“网络”、“信道”、“通信链路”和/或“通信通道”可互换使用,并且可以是或者可以包括例如一个或多个虚拟的、物理的和/或逻辑的机制、设备、模态和/或其部分,其可至少部分准许、帮助和/或允许两个或更多个实体至少部分通信耦合。 

在此实施例中,如果第一实体至少部分能够向第二实体传输和/或从第二实体接收一个或多个分组,则该第一实体可以(至少部分)“通信耦合”到第二实体。在此实施例中,分组可至少部分包括一个或多个符号、值、和/或字符,所述一个或多个符号、值、和/或字符可至少部分体现、表示和/或指示一个或多个命令和/或数据。也在本实施例中,“无线网络”可以是或可以包括至少部分地准许至少两个实体至少部分地无线通信耦合的网络。在本实施例中,“有线网络”可以是或可包括至少部分地准许至少两个实体至少部分经由非无线手段至少部分地通信耦合的网络。在此实施例中,数据可以是或可包括一个或多个命令(例如,一个或多个程序指令),和/或一个或多个这样的命令可以是或可包括数据。此外,在本实施例中,“指令”可包括数据和/或一个或多个 命令。类似地,在此实施例中,数据可包括一个或多个指令和/或一个或多个命令。 

在此实施例中,实体的一部分、子集或组分可以包括实体的全部或少于实体的全部。也在本实施例中,代理、进程、程序、驱动器、操作系统(OS)、虚拟机(VM)、虚拟机监视器(VMM)和/或应用可至少部分地包括一个或多个程序指令和/或至少部分地由一个或多个程序指令的执行而导致。 

此外,在此实施例中,VMM进程至少部分可以是或可包括至少部分涉及管理、控制和/或修改一个或多个VM、一个或多个VM的一个或多个部分和/或至少部分由一个或多个VM所使用的电路或至少部分与一个或多个VM相关联的一个或多个特征、功能和/或操作的至少一个进程。在此实施例中,VM至少部分可以是节点或可包括节点(和/或其一个或多个部分),所述节点(和/或其一个或多个部分)可以至少部分能够至少部分同时执行两个或更多个操作系统。 

如本文中使用的,“电路”可包括例如单个或任意组合形式的模拟电路、数字电路、硬连线电路、可编程电路、协处理器电路、状态机电路和/或可包括程序指令的存储器,该程序指令可由可编程电路执行。此外,在本实施例中,处理器、处理器核、核和控制器可分别包括相应的能够至少部分地执行一个或多个算术和/或逻辑操作的电路系统,诸如例如一个或多个相应的中央处理单元。在此实施例中,存储器和/或存储可以各包括下列类型的存储器中的一种或多种:半导体固件存储器、可编程存储器、非易失性存储器、大容量存储、只读存储器、电可编程存储器、随机存取存储器、闪存、固态驱动器存储器、硬盘/固定盘驱动器存储器、磁盘存储器、光盘存储器、相变存储器和/或其他计算机可读和/或可写存储器。在此实施例中,大容量存储可以是或可包括能够非易失地存储数据和/或可从其取回所存储的这样的数据的存储。此外,在此实施例中,硬盘/固定盘驱动器可以是或可包括例如一个或多个碟和/或盘(和/或其他电路),其中可至少部分电地和/或磁地向其存储和/或从其取回数据。而且,在此实施例中,固态驱动器可以是或可包括例如一个或多个闪存和/或相变存储器设备(和/或其他电路),其中可至少部分向其存储和/或从其取回数据。 

在此实施例中,一个或多个节点10可至少部分包括电路118A。电路118A 可至少部分包括一个或多个单核和/或多核主机处理器(HP)CPU12A、一个或多个未示出的芯片组、一个或多个未示出的用户界面、一个或多个计算机可读/可写存储器21A、和/或一个或多个网络设备(ND)40A(例如,一个或多个网络接口控制器/接口)。在此实施例中,一个或多个节点10中的一个或多个未示出的芯片组可至少部分通信耦合一个或多个HP12A、一个或多个存储器21A、和/或一个或多个ND40A。在此实施例中,机器可读程序指令可以至少部分地存储在一个或多个存储器21A中。在操作中,这些指令可由电路118A、一个或多个HP21A、和/或一个或多个ND40A访问和执行。在被这样访问和执行时,这可至少部分导致在这些相应组件中执行在本文中被描述为由这些相应组件执行的相应操作。 

而且,在此实施例中,一个或多个节点10的一个或多个未示出的用户界面可包括一个或多个未示出的图形用户界面系统。此未示出的图形用户界面系统可各包括例如一个或多个键盘、指点设备、和/或显示系统,它们可准许一个或多个人类用户(未示出)与系统100和/或其一个或多个组件(例如,一个或多个节点10)交互、向其输入命令和/或数据、从其接收数据、和/或至少部分监视其一个或多个操作。 

在此实施例中,一个或多个节点30可至少部分包括电路118C。电路118C可至少部分包括一个或多个单核和/或多核主机处理器(HP)CPU12B、一个或多个未示出的芯片组、一个或多个未示出的用户界面、一个或多个计算机可读/可写存储器21B、和/或一个或多个网络设备(ND)40B。在此实施例中,一个或多个节点30中的一个或多个未示出的芯片组可至少部分通信耦合一个或多个HP12B、一个或多个存储器21B、和/或一个或多个ND40B(例如,一个或多个网络接口控制器/接口)。在此实施例中,机器可读程序指令可以至少部分地存储在存储器21B中。在操作中,这些指令可由电路118C、一个或多个HP21B、和/或一个或多个ND40B访问和执行。在被这样访问和执行时,这可至少部分导致在这些相应组件中执行在本文中被描述为由这些相应组件执行的相应操作。 

而且,在此实施例中,一个或多个节点30的一个或多个未示出的用户界面可包括一个或多个未示出的图形用户界面系统。此未示出的图形用户界面系 统可各包括例如一个或多个键盘、指点设备、和/或显示系统,它们可准许一个或多个人类用户(未示出)与系统100和/或其一个或多个组件(例如,一个或多个节点30)交互、向其输入命令和/或数据、从其接收数据、和/或至少部分监视其一个或多个操作。 

在此实施例中,一个或多个节点20可至少部分包括电路118B。电路118B可至少部分包括一个或多个外部(例如,相对于一个或多个节点10、一个或多个节点30、电路118A、和/或电路118C而言的)设备和/或装置33,所述外部设备和/或装置可以至少部分通信耦合于一个或多个物理设备32。在此示例中,一个或多个物理设备32至少部分可以是或可包括存储器34。然而,如同下面将讨论的,替代地或附加地,一个或多个设备32至少部分可以是或可包括一个或多个其他和/或附加类型的设备(例如,不同于和/或附加于存储器)。在此示例中,设备和/或装置至少部分可以是或可包括能够:(1)至少部分基于一个或多个命令至少部分执行和/或协助执行一个或多个功能,和/或(2)至少部分发出和/或指示这一个或多个功能的至少部分执行的至少部分一个或多个结果的电路。 

在此实施例中,在操作中,至少部分由电路118A、一个或多个HP12A和/或ND40A执行的指令可至少部分导致一个或多个VMM进程/VMM60A、一个或多个VM62A、一个或多个VM62B和/或一个或多个VM62C至少部分被一个或多个节点10执行或驻留于一个或多个节点10。一个或多个VM62A可至少部分包括一个或多个OS31A。一个或多个VM62B可至少部分包括一个或多个OS31B。一个或多个VM62C可至少部分包括一个或多个OS31C。一个或多个OS31A可至少部分包括一个或多个虚拟功能驱动器(VFD)35A。一个或多个OS31B可至少部分包括一个或多个虚拟功能驱动器(VFD)35B。一个或多个OS31C可至少部分包括一个或多个虚拟功能驱动器(VFD)35C。 

在此实施例中,一个或多个ND40A可包括一个或多个物理功能(PF)120。在此实施例中,一个或多个PF120至少部分可以是或可包括(1)可至少部分包括在一个或多个ND40A中的物理电路的一个或多个部分,和/或(2)至少部分由该物理电路的该一个或多个部分实现、可访问和/或执行的一个或多个操作和/或功能、和/或至少部分包括在该物理电路的该一个或多个部分中的资源。 例如,在此实施例中,一个或多个PF120可至少部分包括一个或多个基址控制寄存器、操作电路、和/或其他电路,其可至少部分准许和/或协助至少部分与一个或多个装置33的通信和/或交互、和/或至少部分对一个或多个装置33的控制。例如,如下面将讨论的,这种通信、交互和/或控制至少部分可以是、可包括、可准许、和/或可协助(1)一个或多个分组70A和/或命令63A到一个或多个节点20、电路118B和/或装置33的传递,和/或(2)由一个或多个节点20、装置33、物理设备32、电路118B、和/或存储器34对一个或多个分组81A和/或一个或多个命令63A的执行的结果83A的传递。 

在此实施例中,一个或多个VMM60A可至少部分发出一个或多个命令到VM62A、62B、62C、电路118A、和/或ND40A,所述命令可至少部分导致一个或多个ND40A至少部分暴露于VM62A、62B和/或62C、一个或多个(且在此实施例中为多个)虚拟功能(VF)A、B和/或C,一个或多个PF120的一个或多个(且在此实施例中为多个)子集(SS)A、B和/或C可经由该虚拟功能能至少部分由VM62A、62B和/或62C访问。在此实施例中,暴露功能至少部分可以是、可涉及、可包括、可协助、可考虑、和/或可准许:(1)使该功能至少部分可用于使用和/或访问,至少部分(2)至少部分准许和/或协助该功能的至少部分的使用和/或访问,和/或(3)至少部分将该功能至少部分排他或非排他地分配以供该使用和/或访问。至少部分由一个或多个VMM60A所发出的这一个或多个命令还可至少部分导致:(1)将子集A、B和/或C分别至少部分指定和/或分配(排他地或非排他地)到这些VF A、B和/或C,和/或(2)将这些VF A、B和/或C分别至少部分指定和/或分配(例如,用于排他或非排他使用和/或访问)到VM62A、62B和/或62C。在此实施例中,VF可至少部分包括一个或多个PF的一个或多个子集、与其对接和/或协助其使用和/或访问。 

也在此实施例中,一个或多个ND40B可包括一个或多个PF124。在此实施例中,一个或多个PF124至少部分可以是或可包括(1)可至少部分包括在一个或多个ND40B中的物理电路的一个或多个部分,和/或(2)至少部分由该物理电路的该一个或多个部分实现、可访问和/或执行的一个或多个操作和/或功能。例如,在此实施例中,一个或多个PF124可至少部分包括一个或多个基址寄存器、控制寄存器、操作电路、和/或其他电路,其可至少部分准许和/或 协助至少部分与一个或多个装置33的通信和/或交互、和/或至少部分对一个或多个装置33的控制。例如,如下面将讨论的,这种通信、交互和/或控制至少部分可以是、可包括、可准许、和/或可协助(1)一个或多个分组70B和/或命令63B到一个或多个节点20、电路118B和/或装置33的传递,和/或(2)由一个或多个节点20、装置33、物理设备32、电路118B、和/或存储器34对一个或多个分组81B和/或一个或多个命令63B的执行的结果83B的传递。在此实施例中,一个或多个VMM60B可发出一个或多个命令到VM62D、62E和/或62F、电路118C、和/或ND40B,所述命令可至少部分导致一个或多个ND40B至少部分暴露于VM62D、62E和/或62F、一个或多个(并且在此实施例中为多个)VF D、VF E、和/或VF F,一个或多个PF124的一个或多个(并且在此实施例中为多个)子集(SS)D、E和/或F可经由所述VF至少部分对VM62D、62E、和/或62F可访问。至少部分由一个或多个VMM60B所发出的这一个或多个命令还可至少部分导致:(1)将子集D、E和/或F分别至少部分指定和/或分配(排他地或非排他地)到这些VF D、E和/或F,和/或(2)将这些VF D、E和/或F分别至少部分指定和/或分配(例如,用于排他或非排他使用和/或访问)到VM62D、62E和/或62F。 

在此实施例中,一个或多个节点10和/或一个或多个节点20之间经由一个或多个链路51A的通信,和/或一个或多个节点30和/或一个或多个节点20之间经由一个或多个链接51B的通信可遵守一个或多个通信协议和/或与一个或多个通信协议兼容。例如,这一个或多个通信协议可至少部分遵守电气和电子工程师协会(IEEE)标准802.3(2000年10月20日公开的2000版)中描述的以太网协议和/或与该以太网协议兼容。附加地或替代地,这一个或多个通信协议可遵守1981年9月发布的互联网工程任务组(IETF)评论请求(RFC)791和/或793中描述的传输控制协议和/或互联网协议和/或与所述协议兼容。当然,许多不同的,附加的,和/或其他的协议可以用于这样的数据和/或命令交换,而不会偏离此实施例(包括例如,前述协议和/或其他协议的以后开发的版本和/或更新)。附加地或替代地,在此实施例中,(1)VF A、B、C、D、E、和/或F的至少部分暴露,(2)这些VF与VMM60A和/或60B和/或VFD35A、35B、35C、35D、35E和/或35F的交互,和/或(3)这些VF到VMM的指定/分配和/或 子集A、B、C、D、E、和/或F分别到VF A、B、C、D、E、和/或F的指定/分配可至少部分遵守SR-IOV规范和/或与SR-IOV规范兼容。 

在此实施例中的操作中,VMM60A和/或VMM60B可以至少部分能够向一个或多个节点10中的VFD35A、35B和/或35C和/或一个或多个节点30中的35D、35E和/或35F分别提供一个或多个命令(例如,图3中所示的命令302)。这些VFD35A、35B、35C、35D、35E和/或35F可至少部分基于这一个或多个命令302被实例化为从多个可能实例INST A…N(参见图3)中选择的一个或多个可能的相应实例。这些可能实例INST A…N中的每一个实例可至少部分与设备的不同的(例如,相应的)类型DEV TYPE A…N相关联,所述设备的不同类型DEV TYPE A…N可以至少部分与不同命令格式(例如,具有可至少部分彼此相互不同的格式的命令)CMD FMT A…N相关联和/或可以至少部分能够处理这些命令格式。当在这些可能的实例INST A…N的相应实例中实例化之后,VFD35A、35B、35C、35D、35E、和/或35F可至少部分将其自身呈现给可与其相关联的相应的VMM60A和/或60B,作为可至少部分与相应的可能的实例INST A…N相关联的不同设备类型DEV TYPE A…N中的相应设备类型。这些不同设备类型DEV TYPE A…N可以能够提供和/或协助至少部分规定不同类型的服务,诸如例如存储、视频、音频、多媒体、加密、解密、和/或总线通信服务。至少部分作为此类实现的结果和/或部分,电路118A和/或118C可至少部分将VF A…F的一个或多个子集暴露于OS31A...31F和/或VM62A…62F,以至少部分协助规定这些不同类型的服务。这可至少部分协助:(1)一个或多个命令63A和/或63B的至少部分执行,和/或(2)一个或多个结果83A和/或83B被一个或多个节点20、装置33、设备32、和/或存储器34的至少部分发出。在此实施例中,实例可至少部分包括、体现、协助、导致和/或源自特定数据、变量、值、功能、操作和/或性质的配置和/或绑定。 

例如,在此实施例中,一个或多个装置33、设备32和/或存储器34可以是一种或多种设备类型的(例如DEV TYPE A),其中如果一个或多个命令63A至少部分与一个或多个命令格式CMD FMT A兼容,则所述设备类型可以能够至少部分执行一个或多个命令63A。在此示例中,VMM60A可至少部分发出一个或多个命令302,该一个或多个命令可至少部分导致所述VFD中的一个或多 个(例如,一个或多个VFD35A)被实例化为从可能的实例INST A…N选择的一个或多个可能的实例(例如INST A)。一个或多个实例INST A可至少部分与一个或多个设备类型DEV TYPE A相关联,所述设备类型可以至少部分能够至少部分执行可至少部分与一个或多个命令格式CMD FMT A相兼容的一个或多个命令。至少部分作为被实例化为一个或多个实例INST A的结果,一个或多个VFD35A可至少部分将其自身呈现给一个或多个VM62A、OS31A和/或电路118A,作为与一个或多个(例如,类型DEV TYPE A的)装置33、设备32和/或存储器34相同(或相兼容)的类型的一个或多个设备。替代地,在不偏离本实施例的情况下,取决于例如一个或多个装置33、设备32、和/或存储器34的特定设备类型,一个或多个命令63A可至少部分导致一个或多个VFD35A被实例化为可能的实例INST B…N中的一个或多个其他实例。在此替代中,取决于一个或多个VFD35A的特定实例,一个或多个VFD35A可至少部分将其自身呈现为与该实例相关联的一个或多个其他设备类型DEV TYPE B…N。 

同样,例如,在此实施例中,一个或多个装置33、设备32和/或存储器34可以是一种或多种设备类型的(例如DEV TYPE A),其中如果一个或多个命令63B至少部分与一个或多个命令格式CMD FMT A兼容,则所述设备类型可以能够至少部分执行一个或多个命令63B。在此示例中,VMM60B可至少部分发出一个或多个命令302,该一个或多个命令可至少部分导致所述VFD中的一个或多个(例如,一个或多个VFD35D)被实例化为从可能的实例INST A…N选择的一个或多个可能的实例(例如INST A)。一个或多个实例INST A可至少部分与一个或多个设备类型DEV TYPE A相关联,所述设备类型可以至少部分能够至少部分执行可至少部分与一个或多个命令格式CMD FMT A相兼容的一个或多个命令。至少部分作为被实例化为一个或多个实例INST A的结果,一个或多个VFD35D可至少部分将其自身呈现给一个或多个VM62D、OS31D和/或电路118C,作为与一个或多个(例如,类型DEV TYPE A的)装置33、设备32和/或存储器34相同(或相兼容)的类型的一个或多个设备。替代地,在不偏离本实施例的情况下,取决于例如一个或多个装置33、设备32、和/或存储器34的特定设备类型,一个或多个命令63B可至少部分导致一个或多个VFD35D被实例化为可能的实例INST B…N中的一个或多个其他实例。在此 替代中,取决于一个或多个VFD35D的特定实例,一个或多个VFD35D可至少部分将其自身呈现为与该实例相关联的一个或多个其他设备类型DEV TYPE B…N。 

例如,如图2中所示,在VMM60A已至少部分向VM62A…62C、OS31A…31C、电路118A、和/或ND40A发出可至少部分导致VF A…VF C的至少部分大致暴露、SS A…SS C的至少部分分配和/或一个或多个节点10中的VFD35A…35C的至少部分实例化的命令之后,可至少部分执行操作200。例如,作为操作200的一部分,电路118A、一个或多个OS31A、和/或VM62A可向一个或多个VFD35A至少部分生成和/或发出一个或多个命令63A。在此示例中,一个或多个命令63A可以至少部分是或包括用于读取(例如,至少部分与和一个或多个装置33、设备32和/或存储器34相同类型或相兼容类型的一个或多个设备相对应和/或至少部分经由所述设备可访问的)一个或多个物理存储设备的一个或多个部分的一个或多个命令,如由图2中的一个或多个操作202所示。至少部分响应于一个或多个命令63A,一个或多个VFD35A可至少部分生成一个或多个分组70A,该分组70A可至少部分封装和/或指示一个或多个命令63A,和/或可至少部分执行一个或多个直接存储器访问(DMA)操作以向一个或多个VF A至少部分发出这一个或多个分组70A,如由图2中的一个或多个操作204所示。至少部分响应于一个或多个分组70A,一个或多个VF A、一个或多个SS A、和/或ND40A可至少部分生成(如由一个或多个操作206所示)和/或至少部分发出(如由一个或多个操作208所示)一个或多个帧304(参见图3)到一个或多个节点20、电路118B、和/或一个或多个装置33。一个或多个帧304可至少部分包括、封装和/或指示一个或多个分组70A。一个或多个帧304至少部分可以是或可以包括一个或多个(例如,至少部分与以太网协议兼容的)以太网帧。在此实施例中,一个或多个操作206和/或208可至少部分经由一个或多个硬件卸载操作执行,所述卸载操作可以至少部分不涉及和/或利用一个或多个HP12A的处理开销和/或CPU循环。 

至少部分响应于一个或多个帧304,一个或多个装置33和/或电路118B可以从一个或多个帧304至少部分解封装(de-encapsulate)和/或解码一个或多个分组70A和/或命令63A,且这一个或多个命令63A可至少部分被提供至一个 或多个物理设备32和/或存储器34以便执行,至少部分如由一个或多个操作210所示。至少部分作为响应,一个或多个物理设备32和/或存储器34可至少部分执行一个或多个命令63A,如由一个或多个操作212所示。如前所述,在此示例中,一个或多个命令63A可以是或可包括一个或多个读取命令。相应地,至少部分执行一个或多个命令63A的一个或多个结果83A至少部分可以是或可包括从一个或多个设备32和/或存储器34读取的数据。一个或多个设备32和/或存储器34可至少部分将这一个或多个结果83A提供至一个或多个装置33,如由一个或多个操作214所示。至少部分响应于这一个或多个结果83A,一个或多个装置33可至少部分生成和/或发出一个或多个分组81A至一个或多个节点10、电路118A、和/或ND40A,所述分组81A可至少部分封装、包括和/或指示一个或多个结果83A(例如,在一个或多个未示出的以太网帧中),如由一个或多个操作216所示。至少部分响应于一个或多个分组81A,电路118A可至少部分解封装和/或解码(如由一个或多个操作217所示)一个或多个分组81A和/或结果83A,并且这些分组和/或结果可至少部分被提供至一个或多个VF A,如由一个或多个操作218所示。一个或多个VF A可经由一个或多个DMA操作(如由一个或多个操作220所示)向一个或多个VFD35A、OS31A和/或VM62A至少部分发出这一个或多个结果83A,和/或一个或多个VFD35A可向一个或多个OS31A和/或VM62A至少部分发出这一个或多个结果83A。 

同样,例如,在VMM60B已至少部分向VM62D…62F、OS31D…31F、电路118C、和/或ND40B发出命令之后(其中所述命令可至少部分导致VF D…VF F的至少部分大致暴露、和/或一个或多个节点30中的VFD35D…35F的至少部分实例化,可以结合一个或多个命令63B、分组70B、分组81B和/或结果83B至少部分执行至少部分类似于操作200的操作。当然,在不背离此实施例的情况下,取决于一个或多个装置33、设备32和/或存储器34的特定设备类型,可以执行其他类型的操作,例如,至少部分为了执行和/或协助其他类型的存储和/或其他服务(例如,视频、音频、多媒体、加密、解密、安全、总线通信和/或其他服务)的目的。 

从而,在此实施例中,可使用通用DMA操作来在适当的VF和/或VFD之间传送命令63A和/或63B,以便至少部分准许和/或协助在计算节点10、30的远 程的这些命令的至少部分执行,所述计算节点可至少部分包括该VF和/或VFD。有利地,因为这些命令可至少部分在位于这些计算节点10、30的远程/外部的一个或多个节点20处执行,所以该一个或多个远程节点20和/或组件(例如,一个或多个装置33、设备32和/或存储器34等)可被动态修改、添加、和/或移除(在此实施例中)而不必至少部分涉及重新引导和/或重启计算节点10、30以便重新配置和/或重新规定。 

从而,在此实施例的第一示例中,可提供一种用于结合网络中的至少一个节点使用的装置。该装置可包括要被至少部分包括在该至少一个节点中的电路。该电路可至少部分暴露至少一个虚拟功能,该电路的至少一个物理功能的至少一个子集可经由所述至少一个虚拟功能被访问。该电路可满足以下条件(a)和/或(b)。在条件(a)中,该电路可至少部分生成要至少部分由该网络中的至少一个其他节点接收的至少一个分组。该至少一个其他节点可在该至少一个节点外部。该至少一个分组可至少部分指示从至少一个虚拟机发出至该至少一个虚拟功能的至少一个命令,该至少一个虚拟机将至少部分驻留于该至少一个节点中。该至少一个其他节点可至少部分执行该至少一个命令。在条件(b)中,该电路可经由该至少一个虚拟功能向该至少一个虚拟机至少部分发出该至少一个命令被该至少一个其他节点的至少部分执行的至少一个结果。 

在此实施例的可包括第一示例的部分或全部元素的第二示例中,该至少一个虚拟机可至少部分包括至少一个驱动器以经由至少一个直接存储器访问操作至少部分发出至少一个其他分组至该至少一个虚拟功能。在此第二示例中,该至少一个其他分组可至少部分指示该至少一个命令。 

在此实施例的可包括第一和/或第二示例的部分或全部元素的第三示例中,该至少一个虚拟机可至少部分包括该至少一个驱动器以经由至少一个直接存储器访问操作至少部分接收来自该至少一个虚拟功能的至少一个其他分组。在此第三示例中,该至少一个其他分组可至少部分指示该至少一个结果。 

在此实施例的可包括前述示例中任一示例的部分或全部元素的第四示例中,该至少一个其他节点可至少部分包括可以能够至少部分执行该至少一个命令的类型的至少一个装置。该装置可包括至少一个虚拟功能驱动器以至少部分基于来自虚拟机监视器的至少一个其他命令而被实例化为从多个可能实例中 选择的至少一个可能实例。该至少一个可能实例可至少部分导致该至少一个驱动器将其自身呈现给该至少一个虚拟机,作为该至少一个装置的类型的至少一个设备。 

在此实施例的可包括第四示例的部分或全部元素的第五示例中,该多个可能实例可至少部分与不同类型的设备相关联,所述设备可至少部分与不同的命令格式相关联。当被实例化可能实例中的相应实例时,该至少一个驱动器可将其自身至少部分呈现给该至少一个虚拟机,作为至少部分与可能实例中的该相应实例相关联的不同类型的设备的相应设备。 

在此实施例的可包括前述示例中的任一示例的部分或全部元素的第六示例中,该电路可至少部分将多个虚拟功能暴露以便至少协助以下服务中的至少一者的规定:存储、视频、音频、多媒体、加密、解密、以及总线通信。在此实施例的可包括前述示例中的任一示例的第七示例中,该至少一个分组可以至少部分被包括在至少一个以太网帧中,并且该至少一个虚拟功能可至少部分以可至少部分与单一根输入/输出虚拟和共享相兼容的方式被暴露。 

在此实施例的第八示例中,可以提供计算机可读存储器,该计算机可读存储器可存储一个或多个指令,该一个或多个指令在被机器执行时导致可包括由前述示例中的任何示例中的电路和/或装置所执行的操作中的任何操作的任何组合的操作的执行。在此实施例的第九示例中,提供一种方法,该方法可至少部分在网络中实现。此第九示例的方法可包括(1)由在前述示例中的任一项中的电路和/或装置执行的任何操作的任何组合,和/或(2)可通过执行存储在此实施例的第八示例的计算机可读存储器中的一个或多个指令来执行的任何操作的任何组合。在此实施例的第十示例中,可提供用于执行可由前述示例中的任一项中的该方法、装置、计算机可读存储器、和/或电路执行的任何操作和/或任何操作组合的装置。 

有利地,此实施例不限于结合共存于同一节点上的VM和物理网络接口设备使用。有利地,在此实施例中,驻留于网络中的一个节点中的VM可被分配以使用和/或访问VF,其中所述VF可与驻留于该网络中的另一节点中的设备相关联和/或可用于访问驻留于该网络中的另一节点中的设备。更有利地,在此实施例中,可实现一个或多个VF,所述VF可以用于那些与网络接口设备相关 联和/或仅适用网络接口设备实现的功能所不同的功能或附加于那些功能。 

许多替代、修改和/或变化也是可能的,并且不背离本实施例的范围。例如,在此实施例的第十一示例中,可提供机器可读存储器,该机器可读存储器可存储指令和/或设计数据,诸如硬件设计语言,其可定义此处(例如在此实施例的前述示例的任一项中)描述的结构、电路、装置、特征等的一个或多个子集。相应地,各权利要求旨在涵盖所有这些替代、修改和/或变化。 

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号