CN102576349B - 输入/输出(i/o)虚拟化系统中主计算机与外围资源之间的通信 - Google Patents

输入/输出(i/o)虚拟化系统中主计算机与外围资源之间的通信 Download PDF

Info

Publication number
CN102576349B
CN102576349B CN201080047014.9A CN201080047014A CN102576349B CN 102576349 B CN102576349 B CN 102576349B CN 201080047014 A CN201080047014 A CN 201080047014A CN 102576349 B CN102576349 B CN 102576349B
Authority
CN
China
Prior art keywords
epf
principal computer
methods
equipment
host
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
CN201080047014.9A
Other languages
English (en)
Other versions
CN102576349A (zh
Inventor
K·R·基肖尔
基隆·马尔万卡尔
皮特·科尔克帕崔克
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.)
SanDisk Technologies LLC
Original Assignee
INTELLIGENT IP Inc
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
Priority claimed from US12/751,543 external-priority patent/US8412860B2/en
Application filed by INTELLIGENT IP Inc filed Critical INTELLIGENT IP Inc
Publication of CN102576349A publication Critical patent/CN102576349A/zh
Application granted granted Critical
Publication of CN102576349B publication Critical patent/CN102576349B/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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0058Bus-related hardware virtualisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Small-Scale Networks (AREA)

Abstract

输入/输出(IO)虚拟化(IOV)系统提出了通过向多个主机系统多次呈现单个设备,来在多个主计算机之间共享计算机外围设备。将多个主计算机与多个IO设备相耦合或相连的IOV系统向主计算机提供IO虚拟化和主机-至-主机通信服务。系统包括与IO设备耦合的设备接口,以及与多个主计算机中的每个主计算机耦合的主机接口。在第一域中初始化IO设备。每个主机接口向与其耦合的主计算机暴露独立IO设备的功能单元。每个主计算机从主机域访问功能单元,其中所述主机域是对于执行访问的主计算机特定的独立域。第一域不同于主机域。

Description

输入/输出(I/O)虚拟化系统中主计算机与外围资源之间的通信
相关申请
本申请要求2009年8月18日提交的美国(US)专利申请号为61/234,972的权益。
本申请是2010年3月31日提交的US专利申请号12/751,543的部分接续申请。
本申请涉及2008年11月5日提交的US专利申请号为12/265,695。
本申请涉及2009年1月14日提交的US专利申请的号为12/353,659。
技术领域
本公开总体上涉及网络体系结构。
背景技术
对于PCIExpress(PCIe)设备,常规技术包括已知是单根输入/输出虚拟化(SR-IOV)的标准。SR-IOV允许多个操作系统在单个计算机内同时运行,以通过在存在单个根复合体的PCIe拓扑中提供本地输入/输出(IO或I/O)虚拟化,来本地共享PCIe设备。典型地,单根复合体(singlerootcomplex)表示具有单个芯片集的中央处理复合体,PCIe根复合体存在于该中央处理复合体中。因此,SR-IOV允许多个客户操作系统在单个处理复合体上的虚拟机环境中运行,以访问具备SR-IOV能力的设备中的多个功能。
已经规定了多根IOV(MR-IOV),其在SR-IOV上构建,以在多根复合体共享PCIe层级的拓扑中提供本地I/O虚拟化。然而,MR-IOV需要在迄今为止还没有实现的结构体、端点和系统层次上实现。
此外,常规技术包括已经开发用于实现IO虚拟化的专用系统。然而,这些系统并不提供与系统中的主机和IO设备的本地透明PCIe连接,并且还需要在主机上运行专用IO资源模块或驱动器。
以太网上的光纤信道(FCoE)是另一种常规技术,其允许使用在以太网帧中封装的且在以太网结构体上传输的光纤信道协议来隧穿存储流量。然而,对于实现FCoE而言大范围的基础结构更换将是必要的,例如需要更换以下部件:与客户端服务器(以太网)和存储(光纤信道)网络相关联的开关结构体、IO设备以及驱动器。
常规系统还包括ExpressEther,该ExpressEther是一种系统体系结构,其提供一种机制以在以太网结构体上传输PCIe流量。然而,该系统不提供对PCIe设备的功能层次的共享,而是只向给定主机连续地分配整个设备。此外,所述系统不提供主机至主机的通信。
并入以供参考
在此按照同样的程度并入本说明书中提及的每个专利、专利申请和/或公开的全部内容以供参考,就如同具体地且单独地示出了将每个单独的专利、专利申请和/或公开并入以供参考。
附图说明
图1A是根据实施例的输入/输出虚拟化(IOV)系统的框图。
图1B是根据实施例的IOV系统的另一框图。
图2是根据备选实施例的IOV系统的框图。
图3是根据实施例的用于结构体寻址的流程图。
图4是根据备选实施例的用于结构体寻址的流程图。
图5是根据实施例的发送者标识翻译的流程图。
图6是根据实施例的存储器地址翻译的流程图。
图7是根据实施例的用于控制主计算机与I/O设备之间通信的流程图。
具体实施方式
本文描述了一种输入/输出(IO)虚拟化(IOV)系统,其提供了用于在多个主计算机之间共享计算机外围设备或资源的机制。在多个主机系统上对单个设备的这种共享称作“输入/输出虚拟化”,原因在于将单个资源多次展现给多个主机系统。将多个主计算机和多个IO设备与受管理的传输结构体相耦合或相连的IOV系统向主计算机提供了IO虚拟化和主机至主机的通信服务。所述主机可以是任意类型或大小的,并且可以在任何操作系统或管理程序上运行,以向客户操作系统提供虚拟化环境。与IOV系统的主机接口是PCI-Express(PCIe),其可用于几乎每种现代计算机上,尤其是服务器类别的机器。IO设备是基于PCIe的,以提供与工业标准设备的最大兼容性,但并非限于此。
在以下描述中将介绍许多具体细节,以全面理解本发明实施例,并能够对本发明实施例进行描述。然而,相关技术领域的技术人员应该认识到,可以在没有一个或多个具体细节的情况下或者利用其它部件、系统等来实践这些实施例。在其他示例中,没有示出或者没有详细描述公知结构或操作,以避免混淆所公开实施例的方面。
图1A是根据实施例的输入/输出虚拟化(IOV)系统10的框图。IOV系统10包括多个IOV接口设备01-02。实施例的IOV接口设备包括与主计算机11相耦合或连接的主机接口设备01,其中至少一个主机接口设备01与至少一个主计算机11相耦合或相连(例如,主机接口0耦合或连接至主机0(计算机),主机接口X耦合或连接至主机X(计算机),其中X是任何编号)。实施例的IOV接口设备还包括与IO设备12相耦合或连接的端点接口设备02,其中至少一个端点接口设备02耦合或连接至至少一个IO设备12(例如,设备接口0耦合或连接至外围设备0,设备接口Y耦合或连接至外围设备Y,(其中Y是任何编号))。主计算机接口01和设备接口02是诸如FPGA或ASIC设备之类的高速数字逻辑设备的形式,但并非限于此。
IOV系统还包括传输结构体20。传输结构体20是可升级、低等待时间、高带宽的互连结构体,其将主机11、IO设备12和IOV接口设备01-02耦合或连接至系统。实施例的管理CPU(MCPU)30经由本文称作MCPU接口40的接口耦合或连接至传输结构体20。MCPU接口也可以是FPGA或ASIC设备和/或在软件中实现,但是实施例并非限于此。
一般而言,IOV系统提供了在MCPU30的PCIe域中初始化外围资源12,然后越过结构体20向相应PCIe域中的主机11暴露外围资源12或者使其可用。MPCU30在向主机11暴露控制(功能单元级别)的子集的同时,维持对资源12(整个设备和全局资源)的特权控制。
图1B是根据更具体实施例的输入/输出虚拟化(IOV)系统的框图。IOV系统100包括多个IOV接口设备101-102。实施例的IOV接口设备包括与主计算机111相耦合或连接的主机接口设备101,其中至少一个主机接口设备101耦合或连接至至少一个主计算机111(例如,IndusH0、IndusH1…IndusHX分别耦合或连接至Host0、Host1…HostX(其中,X是任何编号))。实施例的IOV接口设备包括与IO设备112相耦合或连接的端点接口设备102,其中至少一个端点接口设备102耦合或连接至至少一个IO设备112(例如,IndusEP0、IndusEP1…IndusEPY分别耦合或连接至IO设备0、IO设备1…IO设备Y(其中,Y是任何编号))。
传输结构体120提供可升级、低等待时间、高带宽的互连结构体,其用于将主计算机111、IO设备112和IOV接口设备101-102耦合或连接至系统。各种传输结构体技术可以用于传输结构体120,仅举几个例子包括以太网、无穷长的带(InfiniBand)和/或其它专用设备结构体解决方案。基于方便使用、低成本和兼容的目的,实施例的IOV系统100使用基于低等待时间的以太网的设备来实现传输结构体120。实施例的管理CPU130利用本地结构体接口直接耦合或连接至传输结构体120,并且在软件和/或管理CPU130的其它部件中和/或传输结构体120中实现传输结构体120与管理CPU130之间的IOV接口功能。
实施例的主机接口设备101可以是适配器150的部件,但并非限于此。当存在适配器150时,适配器150可以采取架装安装服务器中的PCIe卡的物理形式,或者采取在刀片服务器(bladeserver)的夹层卡(mezzaninecard)的物理形式。还可以将适配器的功能集成到主机母板上。主机接口设备101向主计算机111提供标准PCIe接口,并且向传输结构体120提供多链接接口。
图2是根据备选实施例的输入/输出虚拟化(IOV)系统200的框图。IOV系统200包括多个IOV接口设备201-202。实施例的IOV接口设备包括与管理CPU230相耦合或连接的管理接口设备240。实施例的IOV接口设备还包括与主计算机211相耦合或连接的主机接口设备201,其中至少一个主机接口设备201与至少一个主计算机211相耦合或连接(例如,IndusH0、IndusH1…IndusHX分别耦合或连接至Host0、Host1…HostX(其中,X是任何编号))。此外,实施例的IOV接口设备包括与IO设备212相耦合或连接的端点接口设备202,其中至少一个端点接口设备202与至少一个IO设备212相耦合或连接(例如,IndusEP0、IndusEP1…IndusEPY分别耦合或连接至IO设备0、IO设备1…IO设备Y(其中,Y是任何编号))。
传输结构体220提供可升级、低等待时间、高带宽的互连结构体,其用于将管理CPU、主计算机211、IO设备212和IOV接口设备201-202耦合或连接至系统。各种传输结构体技术可以用于传输结构体220,仅举几个例子包括以太网、无穷长的带和/或其它专用设备结构体解决方案。为了方便使用、低成本和兼容的目的,实施例的IOV系统200使用基于低等待时间以太网的设备来实现传输结构体220。
实施例的主机接口设备201可以是适配器250的部件,但并非限于此。当存在适配器250时,可以采用架装安装服务器中的物理形式的PCIe,或者刀片服务器中的物理形式的夹层卡。还可以将适配器的功能集成到主机母板上。主机接口设备201向主计算机211提供标准PCIe接口,并且向传输结构体220提供多链接接口。
一般而言,主机接口设备向主计算机暴露多个独立PCI设备。将这些PCI设备暴露为主机接口设备内的功能上的代理设备或代理。PCI-Express代理设备是在主服务器的PCI-Express子系统和第二PCI-Express子系统(共享子系统)之间耦合的设备。由PCI-Express管理器管理共享子系统。共享子系统将包括提供诸如通信接口或存储能力之类的服务的一个或多个端点设备。代理设备可以实现多种功能,其中的每个功能可以是代表了共享子系统的端点设备中的不同端点功能单元(EPF)的代理。
PCI-Express代理设备向代理设备可访问的主机暴露端点功能单元的功能。代理设备将针对端点的所有访问适当地翻译成可以越过共享系统的交换结构体而传输的事务。按照这种方式,主机可通过使用标准的现有PCI-Express软件来访问端点的功能。
代理通过存储用于识别本地和远程资源的信息来提供对端点设备的访问。因为代理包括在本地主机总线上的PCI功能单元,所以其存储的本地信息包括本地主机的域中的PCI标识符。实施例的PCI标识符是总线/设备/功能单元(BDF)编号。BDF识别PCIe分享事务(split-transaction)中的请求者或完成者。BDF在单个域内是唯一的,但是如果从多个域访问资源,则修改BDF使得不允许重复标识符。
此外,代理存储用于识别远程端点功能单元的信息。这种信息包括EPF标识符,其中该EPF标识符可以是共享子系统的域中的PCI标识符(例如,BDF),或者不同格式的标识符。用于识别远程EPF的信息还包括与EPF相对应的设备接口的目的地地址以及管理器的目的地地址。此外,用于识别远程EPF的信息包括诸如存储器范围标识符(表示端点设备中的特定PCI基地址寄存器(BAR))之类的资源标识符以及用于确定每个事务的标识符的相关机制。
代理还处理主机、端点功能单元和MCPU之间的事务的路由。代理根据端点功能单元的类型和事务的类型确定来自主机的请求的目的地,其中请求的目的地是端点功能单元或MCPU,但是本实施例局限于此。
在实施例中,代理保留主机域中的本地资源(例如,BDF、存储器范围、I/O范围等)。在这样做时,代理设备将提供占位设备,以在PCI枚举和发现期间保留主机域中的资源。这些资源包括PCI标识符,以及举几个例子,实施例的PCI标识符是以下项中的一个或多个:BDF、存储器空间保留、IO空间保留、中断请求标识符以及PCI能力。所保留的资源可以是在系统中使用的任何EPF所需的资源的超集,或者备选地,在系统中使用的任何EPF所需的资源的子集。在向代理设备分配EPF时,主机重复扫描PCI-Express子系统,并且发现EPF资源请求。EPF请求的资源在代理保留的空间内,这阻止了主机大范围地再次分配资源。当没有从主机分配EPF时,可以将代理重新编程到原始状态,使得在后来的总线扫描期间保留资源。
当向特定主计算机分配功能单元时,可以从实际功能单元复制配置信息到针对该功能单元的代理。在代理复制时,IOV系统向主计算机指示热插拔事件。在识别出热插拔事件并发现了功能单元代理时,主计算机加载针对该功能单元的合适的驱动器。对代理的配置访问可以由MCPU负责,其中该MCPU控制功能单元的配置,并且利用当前配置状态更新代理。根据端点设备的类型、端点设备的操作模式以及事务的类型,对代理的配置访问可以由EPF自身负责。可以经由传输结构体向IO设备直接发送对代理的IO访问,以维持低等待时间、高吞吐量的接口。
IOV主机接口设备也可以包括实际PCIe设备,以提供主机-至-主机的通信功能单元。该功能单元允许主机通过多种方法与其它主机直接通信。方法可以包括面向存储器的方案和/或面向标准插件(standardsockets-oriented)的方案。例如,实施例的机制将一个主机中的IO存储器的区域映射到另一主机中的物理存储器上。基于这种机制,可以实现面向连接或无连接的通信信道。功能单元包括直接存储访问(DMA)引擎,以卸载来自主机CPU的通信负载。
IO设备或其它端点设备经由标准PCIe接口与IOV系统接口相连。PCIe接口耦合或连接至IOV端点接口设备(例如,IndusEPx)。端点接口设备提供对PCIe流量的封装和/或解封装,使得其可以越过IO设备、管理CPU和主计算机之间的传输结构体。传输结构体的耦合或连接一般包括多条链路,以提供高带宽。
IO设备可以包括具有任意数目的不同能力的设备、单一功能单元设备、多功能单元设备和/或具备SR-IOV能力的设备。SR-IOV表示由PCI-SIG开发的标准,以允许在虚拟机器监视器(VMM或管理程序)环境中,在单个主机上的多客户操作系统之间共享多功能单元设备。在实施例的IOV系统中,可以利用主机允许的特权控制只向单个主机分配单功能单元设备。可以具有由在主机上运行的驱动器控制的分离物理功能的多个主机之间共享多功能单元设备,同时管理CPU可以在用于配置所述功能单元的特权驱动器上运行。可以在具有由在管理CPU上运行的特权驱动器控制的物理功能的多个主机之间共享SR-IOV设备,并且将所述虚拟功能分配给各个主机并由那些主机上运行的非特权驱动器进行控制。
传输结构体和IOV接口设备逻辑提供了鲁棒的互连,其保证了标准PCIe设备所期望的服务的可靠性和质量。这些保证包括无错误的、顺序的、在相对高系统负载下的相对低损耗的严格一次(exactlyonce)的分组传输。为了实现这种情况,传输结构体接口逻辑紧密地仿真了PCIe链路层的功能。这种仿真包括错误检查、ACK/NAK协议、分组重传、服务质量(优先级),并向链路层扩展了拥塞管理能力。
在实施例中,对以太网传输结构体的使用允许附加多个主机和IO设备。以太网交换是比PCIe交换更密集(更多端口)且更高的带宽。因此,IOV系统可以按照24-64端口的顺序来支持更多的端口。如以下所描述的,即使对于极高带宽的端口,也可以维持该端口数。
实施例的传输结构体向主机和设备端口提供高带宽接口。PCIe接口具有大范围的可用带宽,其中链路包括以不同速度工作的一条或多条线路(lane)。在去除了编码开销之后,对于总链路带宽2.5Gb/s以及数据吞吐量2.0Gb/s(250MB/s)而言,可能的最慢PCIe链路是以2.5Gb/s工作的单条线路(PCIe1.0x1)。当前可用的最快链路具有以5Gb/s工作的16条线路(PCIe2.0x16),提供80Gb/s的链路带宽以及64Gb/s(8GB/s)的数据吞吐量。因为单个结构体端口可能提供比支持快速PCIe链路所需带宽要少的带宽,所以IOV接口设备提供在多个传输结构体链路上分布负载的能力。为了在传输结构体中维持最大可用端口数(由单个传输结构体开关上的端口数目指定),平行地使用多个结构体开关,以支持这些多链路接口。例如,尽管具有10Gb/s端口的单个24端口的结构体开关可以支持24个10Gb/s接口,但是两个24端口开关的组合可以支持24个20Gb/s接口。类似地,四个64端口开关的组合可以支持64个40Gb/s接口。这种概念被称作“条化(striping)”,以及对于IOV系统的PCIe结构体,这种概念被应用到了以太网结构体上。接口可以分布在主机、IO设备和MCPU之间。
为了支持跨越了多个域的外围设备或资源设备的共享,IOV系统管理或控制与资源设备、结构体和接口通信的若干方面。对IOV系统通信的控制包括管理结构体地址,以使能主机与所分配资源之间的数据传输,以及提供系统中的分离PCIe域之间的域(地址和发送者ID)翻译,以下将详细描述这其中的每一部分。
为了使能资源功能单元与主机之间的数据传输,每个资源功能单元以及主机接口中的每个功能单元的代表在实施例的传输结构体上是可唯一寻址的。因此,每个接口设备(主机和资源)具有MAC地址,以及每个功能单元代表(代理)也具有MAC地址。在传输分组报头字段中消除资源中的独立功能单元的歧义。那么一般而言,通过相关联代理设备向控制服务器展现目标端点设备的功能。服务器、代理设备和端点设备使用PCIExpress事务协议来通信。代理配置管理器将目标端点设备的配置空间复制到与控制服务器相关联的代理设备上。本发明还提供代理中断通报机制,其向适当的控制服务器转发来自共享子系统中的端点设备的挂起中断。
例如,在实施例中,通过引入代理设备和代理配置管理器部件来完成对端点设备的共享,其中代理配置管理器部件将目标端点设备的配置空间复制到相关联的代理设备。控制服务器可以耦合至代理设备。在一个实施例中,代理设备具有至少两个端口:与控制服务器耦合的第一端口以及与PCIe结构体耦合的第二端口。主机端口包括PCIe链路,其中根据PCI-Express物理规范,所述PCIe链路可以是可升级的,并且包括一个或多个高速线路。在一个实施例中,代理设备包括目标端点设备的配置空间的副本。控制服务器通过相关联代理设备访问目标端点设备的功能单元,所述控制服务器通过代理来实例化目标功能单元。代理设备的配置空间可以包括PCI配置寄存器、电源管理能力、消息信号中断(MSI)和/或MSI-eXtended(MSI-X)能力及PCIe扩展能力。代理设备可能能够从代理中断通报机制接收中断事务,并经由PCIe链路向控制服务器传送中断事务。代理设备可以向IOV系统的服务器侧暴露在端点设备内嵌入的多个功能单元,并且通过代理对其实例化。这些功能单元中的每个功能单元可以代表共享子系统中的不同端点功能单元。
MCPU处理资源分配,因而对结构体接口中的地址的编程进行处理。在实施例的IOV系统中,传输结构体是基于以太网技术的,以及所使用的地址是MAC地址。图3是根据实施例的用于结构体寻址的流程图300。当用于资源功能单元的PCIe数据分组进入主机链路上的主机接口时,定位并且识别存储器范围标识符、目标功能单元标识符及主机接口代理的源地址302。还定位或识别分配的功能单元的资源接口的目的地地址304。识别的源地址、存储器范围标识符、目标功能单元标识符和目的地地址被用于封装数据306。经由传输结构体向资源接口和目标功能单元传送封装数据308。
图4是根据备选实施例的用于结构体寻址的流程图400。当用于主机的PCIe数据分组从外围设备进入设备接口时,定位或识别外围设备的源地址402。还定位或识别主机接口代理的目的地地址404。识别的源地址和目的地地址用于封装数据406,以及经由传输结构体向主计算机传输封装数据408。
尽管已经提供了两个特定数据流的示例,但是通过系统接口和结构体对包括存储器事务、设备事务、消息和配置流的其它流进行处理。
此外,MCPU接口可从结构体寻址。为了进入系统,主机和设备接口向MCPU发送消息。类似地,对于错误的情况,例如对于目的地查找失败的分组,这些分组被转发至MCPU。
在提供域翻译中,翻译两种类型的参数,以使得能够从多个域访问PCIe设备。这些参数包括但不限于:PCIe发送者ID(SID)以及存储器地址,以下将详细描述这其中的每一个参数。
当在计算机的PCIe域内以每种PCI-SIG定义的标准方法发现并枚举了设备时,为该设备分配发送者ID(SID),其包括总线、设备和功能单元编号(BDF)。BDF识别了PCIe分事务协议中的请求者或完成者。BDF在单个域内是唯一的,但是如果从多个域访问资源,则修改BDF以便不允许重复标识符。
图5是根据实施例的用于发送者标识符翻译的流程图500。发现并枚举在MCPU域中的IOV系统中的外围资源,并且在该域中对IOV系统中的所述外围资源分配BDF值,502。主机发现并枚举其域中具有唯一BDF值的代理设备504。去往/来自外围设备功能单元的访问将经受主机与MCPU域506之间的BDF翻译,以及保存用于完成的未完成事务的BDF508。可以在主机接口或设备接口逻辑中执行事务。
实施例的IOV系统中的域翻译的其它方面是存储器地址翻译。与BDF枚举类似,通过用于MCPU域中的系统软件来为每个资源功能单元分配存储器范围。为每个功能单元代理分配其主机域中的存储器范围,该范围可以与MCPU域中的范围不相同。对于经由存储器地址路由的PCIe分组,在域之间翻译地址。
图6是根据实施例的用于存储器地址翻译的流程图600。通过使用PCIe,存储器范围由称作基地址寄存器(BAR)的一组寄存器确定。当地址路由的分组进入IOV系统的主机接口时,对包括地址的存储器范围(BAR)和目标功能单元进行识别602。识别的BAR和目标功能单元随着分组一起被传送到了资源接口处的目的地604。在资源接口处,存储器范围标识符用于识别在MCPU域中编程的相应范围(BAR)和功能单元606。然后,接口设备可以通过利用来自功能单元的存储器范围的相应比特替代原始地址中的高位比特,来翻译地址608。
图7是根据实施例的用于控制主计算机与I/O设备之间的通信的流程图300。在系统启动时,管理CPU从管理接口设备引导和加载虚拟PCIe层级302,然后初始化传输结构体和与系统耦合或相连的IOV系统接口设备304。如上所述,IOV接口设备提供用于使PCIe流量越过传输结构体的封装和/或解封装协议。
使用传输结构体来访问IO设备,管理CPU然后使用标准PCIe发现过程,来发现和枚举与系统耦合和/或相连的所有PCIe资源。一般而言,所有资源发现可以被当作是热插拔(例如,在启动时,已经连接的设备将发送热插拔事件)。当将资源热插拔到系统中时,将其插入虚拟层级中,并进行初始化。管理CPU初始化PCIe设备,并且运行针对每个PCIe设备的特权驱动器,以控制PCIe设备。特权驱动器具有对物理PCIe设备完全的控制,包括电源管理和重置能力。类似地,管理CPU在实际操作期间发现并控制热插拔到系统中的PCIe设备。初始化后的IOV系统将多个主计算机和多个IO设备耦合或连接至受管理的传输结构体,以向主计算机提供IO虚拟化和主机-至-主机的通信服务,并进行控制306。
更具体地,实施例的通信控制操作继续如下过程,即IOV系统通过使用资源分配命令和资源热插拔事件,来向主计算机提供IO虚拟化和主机-至-主机的通信服务,并进行控制306。在实施例中,接收资源分配命令310,以及确定是分配了相应的功能单元312还是没有分配相应的功能单元312。当分配了功能单元时,对相关联接口设备和代理进行编程,并向主机发送虚拟热插拔事件314。当没有分配功能单元时,则向主机发送虚拟热插拔事件316。
在实施例中,当接收到资源热插拔事件时,操作继续320。作为响应,确定是添加还是去除设备322。当添加设备时,初始化该设备,并且将其插入虚拟层级中324。当去除设备时,通知主机,并且从虚拟层级中去除该设备326。
实施例的IOV系统允许在使用本地化设备驱动器时跨越了多个主机的多功能单元(意识到非MR的)PCIe设备的虚拟化。IOV系统还允许本地化主机主控(host)互连结构体上的通信以及IOV流量。此外,系统以可升级的方式(多个高带宽端口)向主机和IO设备提供本地化PCIe接口。
IOV系统实现了用于数据中心计算机互连的灵活而有效的体系结构。例如,IOV系统体系结构提供了经由单个主机连接对多个IO资源的访问,其中所述单个主机连接替代了多个独立专用的网络连接。经由单条“线”汇聚这些连接,降低了成本和数据中心中的电缆复杂度。
使用IOV系统来提供精细粒度的IO资源的能力为用户提供了有效的方式来分配对于给定计算工作而言是必要的资源。可以根据服务级别协议分配资源,或者可以在使用时分配资源。这阻止了对以下动作的需求,即安装给定主机可能未充分使用的IO资源。
集中IO资源的能力允许有效高可用性的配置。例如,如果主机控制给定资源失败了,则可以为工作主机重新分配资源,并且对资源的使用可以重新开始。
IOV系统提供的IO地址虚拟化允许在不影响网路配置设置的情况下添加或改变服务器硬件,所述配置设置用于访问其它主机、访问存储设备和安全设施。当添加、去除或更新服务器时,这简化了网络维护。
基于常规PCIe的系统在可升级性方面受到限制,并且通过标准PCIe开关硅相连的系统在端口数方面受到严重限制,从而限制了可以与该系统相连的主机和IO设备的数目。IOV系统提供标准的、可升级的传输结构体,以及因此提供针对多个主机和IO设备的可升级的且灵活的互连拓扑。这还允许实施例的IOV系统通过杠杆作用影响基于现有标准的设备和由设备卖主提供的原始驱动器。
IOV系统提供集中的实体,以管理向主机和主机-至-主机通信信道分配IO功能单元。这种能力允许数据中心管理器控制向单独的主机分配的IO数量,以保证数据中心资源在期望时可用,并被有效地使用。IOV系统也提供高带宽、低等待时间的主机-至-主机通信能力。在互连的第一层(最接近主机)处提供这种能力对于实现低等待时间和高吞吐量是关键的,而在该级别集成则降低了实现的成本。
IOV系统允许在没有专用IO资源的情况下获取并安装主机(服务器)计算机,并且IOV系统可以从IOV网络访问必要的IO资源。类似地,如果必要可以获取IO资源,并且可以在系统中独立于计算机资源(CPU和存储器)来安装IO资源。因此,可以分离用于计算和IO资源的更新周期,以降低获取成本和复杂性。
本文所描述的实施例包括一种系统,所述系统包括与传输结构体相耦合的管理中央处理器单元(MCPU)。实施例的系统包括与传输结构体和多个独立输入/输出(IO)设备相耦合的多个设备接口。在MCPU域中初始化多个独立IO设备。实施例的系统包括与传输结构体相耦合的多个主机接口。每个主机接口耦合至多个独立主计算机中的主计算机,并且向主计算机暴露多个独立IO设备的功能单元。多个独立主计算机中的每个主计算机从主机域访问功能单元,其中所述主机域是专用于执行访问的主计算机的独立域。MCPU域不同于主机域。
本文描述的实施例包括一种系统,所述系统包括:与传输结构体相耦合的管理中央处理器单元(MCPU);与传输结构体和多个独立输入/输出(IO)设备相耦合的多个设备接口;在MCPU域中初始化的多个独立IO设备;以及与传输结构体相耦合的多个主机接口,其中每个主机接口耦合至多个独立主计算机中的主计算机,并且向主计算机暴露多个独立IO设备的功能单元,多个独立主计算机中的每个主计算机从主机域访问功能单元,其中所述主机域是专用于执行访问的主计算机的独立域,其中MCPU域不同于主机域。
实施例的多个独立IO设备包括在多个独立主计算机之间共享的多个端点功能单元(EPF)。
实施例的MCPU通过管理每个主机接口的主机接口代理的源地址和每个IO设备的每个EPF的目的地地址,来控制多个独立主计算机与多个独立IO设备之间的数据传输。
实施例的系统包括在主机接口处接收数据分组,所述数据分组包括数据有效载荷。
实施例的系统包括识别主机接口的主机接口代理的源地址。
实施例的系统包括识别与数据分组将要路由到的EPF相对应的设备接口的目的地地址。
实施例的设备接口的目的地地址是以太网目的地地址。
实施例的系统包括识别与EPF相对应的EPF标识符。
实施例的系统包括通过将报头添加到数据分组的数据有效载荷中来产生数据容器(datacapsule),其中所述报头包括EPF标识符。
实施例的系统包括使用目的地地址和报头的结合,来向EPF传送数据容器。
实施例的系统包括使用目的地地址,来经由传输结构体向设备接口传送数据容器。
实施例的系统包括使用所述报头来向EPF传送数据容器。
实施例的MCPU通过管理每个IO设备的EPF的源地址以及每个主机接口的主机接口代理的目的地地址,来控制多个独立主计算机和多个独立IO设备之间的数据传输。
实施例的系统包括,在包括EPF在内的IO设备的设备接口处接收包括数据分组,所述数据分布包括数据有效载荷,其中将所述数据寻址(addressed)至主计算机。
实施例的系统包括识别与EPF相对应的设备接口的源地址。
实施例的系统包括对与数据分组要路由到的主计算机的主机接口代理相对应的主机接口的目的地地址进行识别。
实施例的主机接口的目的地地址是以太网目的地地址。
实施例的系统包括识别与主机接口代理相对应的代理标识符。
实施例的系统包括通过将报头添加到数据分组的数据有效载荷中来产生数据容器,所述报头包括代理标识符。
实施例的系统包括使用目的地地址和报头的结合,来向主计算机传送数据容器。
实施例的系统包括使用目的地地址,来经由传输结构体向主机接口传送数据容器。
实施例的系统包括使用报头来向主机接口代理传送数据容器。
实施例的每个主机接口包括与每个EPF相对应的代理,其中所述每个EPF保留用于由与主机接口相对应的相应主计算机使用。
实施例的系统包括在MCPU域和主机域之间翻译参数。
实施例的参数是发送者标识。
实施例的MCPU发现并枚举MCPU域中的多个独立IO设备。
实施例的系统包括为多个EPF中的每个EPF分配MCPU域中的第一总线-设备-功能单元(BDF)编号,其中所述第一BDF编号对于MCPU域而言是唯一的。
实施例的相应主计算机使用第二BDF编号来发现并枚举主机域中的代理,其中所述第二BDF编号对于主机域而言是唯一的,并且不同于第一BDF编号。
实施例的系统包括在访问EPF及从EPF访问期间,在MCPU域和主机域之间翻译BDF编号。
实施例的系统包括在主机接口中翻译BDF编号。
实施例的系统包括翻译在设备接口中翻译BDF编号。
实施例的系统包括在访问EPF期间,将MCPU域的BDF编号翻译成主机域的BDF编号。
实施例的系统包括在从EPF访问期间,将主机域的BDF编号翻译成MCPU域的BDF编号。
实施例的参数是存储器地址。
实施例的系统包括为多个EPF的每个EPF分配MCPU域中的第一存储器范围,其中第一存储器范围对于MCPU域而言是唯一的。
实施例的系统包括为每个代理分配主机域中的第二存储器范围,其中第二存储器范围对于主机域而言是唯一的。
实施例的系统包括确定存储器范围标识符,所述存储器范围标识符对与接收主机接口的代理处接收的分组相对应的第二存储器范围进行识别,其中所述分组是地址路由的分组。
实施例的系统包括与所述分组一起向目的地EPF传送存储器范围标识符。
实施例的系统包括使用存储器范围标识符,对MCPU域中与第二存储器范围相对应的第一存储器范围进行识别。
实施例的系统包括将第二存储器范围翻译成第一存储器范围。
实施例的翻译包括使用来自第一存储器范围的相应比特替代第二存储器范围中的多个高位比特。
实施例的第一存储器范围和第二存储器范围由基地址寄存器确定。
实施例的MCPU域是MCPU的外围部件互连表达(PCIe)域。
实施例的主机域是多个独立主计算机中的至少一个主计算机的外围部件互连表达(PCIe)域。
实施例的设备接口和主机接口包括用于使外围部件互连表达(PCIe)流量越过传输结构体的封装协议和解封装协议的至少一种。
实施例的MCPU发现并初始化多个独立IO设备。
实施例的MCPU运行针对多个独立IO设备中的每个IO设备的特权驱动器,其中所述特权驱动器控制IO设备。
实施例的多个独立IO设备包括具有一个端点功能单元(EPF)的IO设备,其中MCPU向单个主计算机分配具有一个EPF的IO设备,其中所述单个主计算机具有对EPF的特权控制。
实施例的多个独立IO设备包括具有多个端点功能单元(EPF)的IO设备,其中在多个独立主计算机中的一组主计算机之间共享具有多个EPF的IO设备。
实施例的每个主机接口包括代理,所述代理包括配置数据。
实施例的配置数据包括主机域中的总线-设备-功能单元(BDF)编号
实施例的配置数据包括存储器范围标识符。
实施例的配置数据包括保留用于由相应主计算机使用的至少一个IO设备的端点功能单元EPF的EPF标识符。
实施例的配置数据包括与保留用于由相应主计算机使用的至少一个IO设备的端点功能单元(EPF)相对应的设备接口的目的地地址。
实施例的对代理的配置访问由MCPU负责,其中MCPU控制EPF的配置,并且利用当前配置状态更新主计算机。
使用外围部件互连表达(PCIe)接口将实施例的多个独立IO设备耦合至传输结构体。
本文描述的实施例包括一种系统,所述系统包括与传输结构体以及在第一域中初始化的多个独立输入/输出(IO)设备相耦合的多个设备接口。实施例的系统包括与传输结构体相耦合的多个主机接口。每个主机接口耦合至多个独立主计算机中的主计算机,并且向主计算机暴露多个独立IO设备的功能单元。多个独立主计算机中的每个主计算机从主机域访问功能单元,其中所述主机域是专用于执行所述访问的主计算机的独立域。第一域不同于主机域。
本文描述的实施例包括一种系统,所述系统包括与传输结构体以及在第一域中初始化的多个独立输入/输出(IO)设备相耦合的多个设备接口;以及与传输结构体相耦合的多个主机接口,其中每个主机接口耦合至多个独立主计算机中的主计算机,并且向主计算机暴露多个独立IO设备的功能单元,多个独立主计算机中的每个主计算机从主机域访问功能单元,其中所述主机域是专用于执行所述访问的主计算机的独立域,其中第一域不同于主机域。
本文描述的实施例包括一种方法,所述方法包括将多个设备接口耦合至传输结构体以及在第一域中初始化的多个独立输入/输出(IO)设备。实施例的方法包括通过将每个主机接口与多个独立主计算机中的主计算机相耦合,来将多个主机接口与传输结构体相耦合。实施例的方法包括向主计算机暴露多个独立IO设备的功能单元。所述暴露包括多个独立主计算机中的每个主计算机从主机域访问功能单元,所述主机域是专用于执行所述访问的主计算机的独立域。第一域不同于主机域。
本文描述的实施例包括一种方法,所述方法包括:将多个设备接口耦合至传输结构体以及在第一域中初始化的多个独立输入/输出(IO)设备;通过将每个主机接口与多个独立主计算机中的主计算机相耦合,来将多个主机接口与传输结构体相耦合;向主计算机暴露多个独立IO设备的功能单元,其中所述暴露包括多个独立主计算机中的每个主计算机从主机域访问功能单元,其中所述主机域是专用于执行所述访问的主计算机的独立域,其中第一域不同于主机域。
实施例的方法包括在多个独立主计算机之间共享多个独立IO设备的多个端点功能单元(EPF)。
实施例的方法包括通过管理每个主机接口的主机接口代理的源地址和每个IO设备的每个EPF的目的地地址,来控制多个独立主计算机和多个独立IO设备之间的数据传输。
实施例的方法包括在主机接口处接收数据分组,所述数据分组包括数据有效载荷。
实施例的方法包括识别主机接口的主机接口代理的源地址。
实施例的方法包括识别与数据分组将要路由到的EPF相对应的设备接口的目的地地址。
实施例的设备接口的目的地地址是以太网目的地地址。
实施例的方法包括识别与EPF相对应的EPF标识符。
实施例的方法包括通过将报头添加到数据分组的数据有效载荷中来产生数据容器,所述报头包括EPF标识符。
实施例的方法包括使用目的地地址和报头的结合,来向EPF传送数据容器。
实施例的方法包括使用目的地地址来经由传输结构体向设备接口传送数据容器。
实施例的方法包括使用所述报头来向EPF传送数据容器。
实施例的方法包括通过管理每个IO设备的EPF的源地址以及每个主机接口的主机接口代理的目的地地址,来控制多个独立主计算机和多个独立IO设备之间的数据传输。
实施例的方法包括:在包括EPF在内的IO设备的设备接口处接收数据分组,所述数据分布包括数据有效载荷,其中将所述数据寻址(address)至主计算机。
实施例的方法包括识别与EPF相对应的设备接口的源地址。
实施例的方法包括对与数据分组要路由到的主计算机的主机接口代理相对应的主机接口的目的地地址进行识别。
实施例的主机接口的目的地地址是以太网目的地地址。
实施例的方法包括识别与主机接口代理相对应的代理标识符。
实施例的方法包括通过将报头添加到数据分组的数据有效载荷中来产生数据容器,所述报头包括代理标识符。
实施例的方法包括使用目的地地址与报头的结合,来向主计算机传送数据容器。
实施例的方法包括使用目的地地址,来经由传输结构体向主机接口传送数据容器。
实施例的方法包括使用报头来向主机接口代理传送数据容器。
实施例的每个主机接口包括与每个EPF相对应的代理,其中所述每个EPF保留用于由与主机接口相对应的相应主计算机使用。
实施例的方法包括在第一域和主机域之间翻译参数。
实施例的参数是发送者标识。
实施例的方法包括发现并枚举第一域中的多个独立IO设备。
实施例的方法包括为多个EPF中的每个EPF分配第一域中的第一总线-设备-功能单元(BDF)编号,其中所述第一BDF编号对于第一域而言是唯一的。
实施例的相应主计算机使用第二BDF编号来发现并枚举主机域中的代理,其中所述第二BDF编号对于主机域而言是唯一的,并且不同于第一BDF编号。
实施例的方法包括在访问EPF及从EPF访问期间,在第一域与主机域之间翻译BDF编号。
实施例的方法包括在主机接口中翻译BDF编号。
实施例的方法包括在设备接口中翻译BDF编号。
实施例的方法包括在访问EPF期间,将第一域的BDF编号翻译成主机域的BDF编号。
实施例的方法包括在从EPF访问期间,将主机域的BDF编号翻译成第一域的BDF编号。
实施例的参数是存储器地址。
实施例的方法包括为多个EPF的每个EPF分配第一域中的第一存储器范围,其中第一存储器范围对于第一域而言是唯一的。
实施例的方法包括为每个代理分配主机域中的第二存储器范围,其中第二存储器范围对于主机域而言是唯一的。
实施例的方法包括确定存储器范围标识符,其中所述存储器范围标识符对与接收主机接口的代理处接收的分组相对应的第二存储器范围进行识别,其中所述分组是地址路由的分组。
实施例的方法包括与分组一起向目的地EPF传送存储器范围标识符。
实施例的方法包括使用存储器范围标识符,对第一域中与第二存储器范围相对应的第一存储器范围进行识别。
实施例的方法包括将第二存储器范围翻译成第一存储器范围。
实施例的翻译包括使用来自第一存储器范围的相应比特替代第二存储器范围中的多个高位比特。
实施例的第一存储器范围和第二存储器范围由基地址寄存器确定。
实施例的第一域是外围部件互连表达(PCIe)域。
实施例的主机域是多个独立主计算机中的至少一个主计算机的外围部件互连表达(PCIe)域。
实施例的设备接口和主机接口包括用于外围部件互连表达(PCIe)流量的封装协议和解封装协议的至少一种。
实施例的方法包括发现并初始化多个独立IO设备。
实施例的方法包括运行针对多个独立IO设备中的每个IO设备的特权驱动器,其中所述特权驱动器控制IO设备。
实施例的多个独立IO设备包括具有一个端点功能单元(EPF)的IO设备,其中所述方法包括为单个主计算机分配具有一个EPF的IO设备,其中所述单个主计算机具有对EPF的特权控制。
实施例的多个独立IO设备包括具有多个端点功能单元(EPF)的IO设备,其中在多个独立主计算机中的一组主计算机之间共享具有多个EPF的IO设备。
实施例的每个主机接口包括代理,所述代理包括配置数据。
实施例的配置数据包括主机域中的总线-设备-功能单元(BDF)编号。
实施例的配置数据包括存储器范围标识符。
实施例的配置数据包括保留用于由相应主计算机使用的至少一个IO设备的端点功能单元EPF的EPF标识符。
实施例的配置数据包括与保留用于由相应主计算机使用的至少一个IO设备的端点功能单元(EPF)相对应的设备接口的目的地地址。
实施例的方法包括控制EPF的配置,并利用当前配置状态更新主计算机。
适用于本文描述的实施例的网络包括局域网(LAN)、广域网(WAN)、因特网或其它连接服务和网络变型,例如万维网、公共因特网、私有因特网、私有计算机网络、公共网络、移动网络、峰窝网络、增值网络等。与网络耦合或相连的计算设备可以是允许访问网络的任何受微处理器控制的设备,包括终端设备,例如个人计算机、工作站、服务器、小型计算机、主框架计算机、膝上型计算机、移动计算机、掌上计算机、手持式计算机、移动电话、TV机顶盒或其组合。计算机网络可以包括以下网络中的一种或多种:LAN、WAN、因特网和计算机。计算机可以用作服务器、客户端或其组合。系统访问的存储资源包括存储网络(例如,SAN、NAS等)、直连式硬盘(例如,DAS),并且还可以包括可移动介质(例如,CD、DVD、带、闪存等)。
IOV系统可以是单个系统、多个系统和/或地理上分离的系统的部件。IOV系统还可以是单个系统、多个系统和/或地理上分离的系统的子部件或子系统。IOV系统可以与主机系统或者与主机系统相耦合的系统的一个或多个其它部件(未示出)相耦合。
IOV系统和/或IOV系统相耦合或相连的相应系统或应用中的一个或多个部件包括处理系统和/或在处理系统下运行和/或与处理系统相关联。处理系统包括本领域已知的一起工作的基于处理器的设备或者计算设备的任意集合,或者处理系统或设备的部件。例如,处理系统可以包括以下系统中的一个或多个:便携式计算机、在通信网络上工作的便携通信设备和/或网络服务器。便携式计算机可以是从以下设备中选择的多个设备和/或设备的组合中的任意项:个人计算机、个人数字助理、便携式计算设备以及便携式通信设备,但是不限于此。处理系统可以包括大型计算机系统内的部件。
实施例的处理系统包括至少一个处理器和至少一个存储设备或子系统。处理系统还可以包括至少一个数据库,或者与至少一个数据库相耦合。本文通常使用的术语“处理器”指的是任何逻辑处理单元,例如一个或多个中央处理单元(CPU)、数字信号处理器(DSP)、专用集成电路(ASIC)等。处理器和存储器可以单片集成到单个芯片上,分布在多个芯片或部件之间,和/或由一些算法的组合提供。可以在以下项中的一个或多个中实现本文描述的方法:软件算法、程序、固件、硬件、部件、电路、任意组合。
包括IOV系统的任何系统的部件可以在一起或者位于分离的位置。通信路径将部件相耦合,并且包括用于在部件之间传输或传送文件的任何介质。通信路径包括无线连接、有线连接和混合无线/有线连接。通信路径还包括与网络的耦合或连接,其中所述网络包括局域网(LAN)、城域网(MAN)、广域网(WAN)、私有网络、局间或后端网络和因特网。此外,通信路径包括可移动固定介质,例如软盘驱动器、硬盘驱动器以及CD-ROM盘以及快闪RAM、通用串行总线(USB)连接、RS-232连接、电话线、总线和电子邮件消息。
本文描述的IOV系统和相应系统及方法的方面可以被实现为编程到多种电路中的任意电路的功能,所述电路包括可编程逻辑器件(PLD),例如现场可编程门阵列(FPGA)、可编程阵列逻辑(PAL)器件、电可编程逻辑和存储器件、基于标准单元的设备以及专用集成电路(ASIC)。用于实现IOV系统和相应系统及方法的方面的一些其它可能性包括:具有存储器(例如电擦除可编程只读存储器(EEPROM))的微控制器、嵌入式微处理器、固件、软件等。此外,IOV系统和相应系统及方法的方面可以实现在如下器件中:具有基于软件的电路仿真的微处理器、离散逻辑(连续的和组合的)、定制器件、模糊(神经)逻辑、量子器件及任何以上器件类型的混合。当然,可以以各种部件类型提供基本器件技术,例如诸如互补金属氧化物半导体(CMOS)之类的金属氧化物半导体场效应晶体管(MOSFET)技术、诸如射极耦合逻辑(ECL)之类的双极型技术、聚合体技术(例如,硅共轭聚合物、金属共轭聚合物金属结构)、混合模拟和数字等。
应该注意,可以通过使用计算机辅助设计工具来描述本文公开的任何系统、方法和/或其它部件,并且可以将本文公开的任何系统、方法和/或其它部件的行为、寄存器传送、逻辑部件、晶体管、几何布局和/或其它特性表达(或者表示)为在各种计算机可读介质中实现的数据和/或指令。可以在其中实现这种格式的数据和/或指令的计算机可读介质包括但不限于各种形式的非易失性存储介质(例如,光、磁或半导体存储介质)及载波,其中所述载波可以用于通过无线、光或有线信号媒介或其任何组合来传送这种格式的数据和/或指令。这种格式的数据和/或指令通过载波传输的示例包括但不限于,通过一个或多个数据传输协议(例如,HTTP、FTP、SMTP等)在因特网和/或其它计算机网络上传输(上传、下载、e-mail等)。当经由一个或多个计算机可读介质在计算机系统内接收时,可以通过计算机系统内的处理实体(例如,一个或多个处理器)结合一个或多个其它计算机程序的执行来处理以上描述部件的基于这种数据和/或指令的表达。
除非上下文清楚地需要,否则贯穿说明书和权利要求书,词语“包括”、“包含”等应该按照与穷举或穷举形式相反的包含形式进行解释;也就是说,意为“包括但不限于”。使用单数或复数的词语也相应地包括复数或单数。此外,单词“本文”、”“下文”、“以上”、“以下”及类似意思的单词当在本申请中使用时,指的是整个本申请,而非本申请的任何特定部分。当对于两项或多项的列表使用单词“或”时,该词语覆盖了对词语的全部下述解释:列表中的任意项、列表中的所有项及列表中的项的任意组合。
IOV系统和相应系统及方法的实施例的以上描述并非旨在穷举或者将系统或方法限制在所公开的精确形式。尽管本文为了说明性目的而描述了IOV系统和相应系统及方法的具体实施例和示例,但是本领域技术人员将认识到,系统和方法范围内的各种等价修改是可能的。这里提供的IOV系统和相应系统及方法的教导可以应用于其它系统和方法,而并非只是针对以上描述的系统和方法。
可以结合以上描述各个实施例的元素和动作,以提供另外的实施例。可以按照以上详细描述对IOV系统和相应系统及方法的实施例进行这些和其它修改。
一般而言在以下权利要求中,所使用的术语不应该解释为将IOV系统和相应系统及方法限制到说明书和权利要求书中公开的具体实施例,而是应该解释为包括根据权利要求操作的所有系统。因此,IOV系统和相应系统及方法并非由公开限制,而是替换地完全由权利要求书来确定。
尽管下文以特定权利要求的形式呈现了IOV系统和相应系统及方法的某些方面,但是发明人期望任意数目的权利要求形式的IOV系统和相应系统及方法的各个方面。因此,发明人保留在提交了申请之后增加附加权利要求的权利,以继续针对IOV系统和相应系统及方法的其它方面的这种附加权利要求形式。

Claims (104)

1.一种用于将数据分组路由到特定IO设备的系统,包括:
与传输结构体耦合的管理中央处理器单元,即MCPU,其中所述MCPU初始化所述传输结构体;
与所述传输结构体及多个独立输入/输出设备耦合的多个设备接口,其中输入/输出设备即IO设备;以及
与所述传输结构体耦合的多个主机接口,其中每个主机接口耦合至多个独立主计算机中的相应主计算机,并且每个主机接口包括代理设备,所述代理设备向该相应主计算机暴露与所述多个独立IO设备中的特定IO设备相对应的所分配的端点功能单元,即EPF,所述暴露包括所述多个独立主计算机中的每个主计算机从主机域访问所述端点功能单元,其中所述主机域是专用于执行所述访问的主计算机的独立域,并且所述代理设备还接收并封装来自所述相应主计算机的用于EPF的数据分组,从而将该数据分组路由到所述特定IO设备。
2.如权利要求1所述的系统,其中所述多个独立IO设备包括在所述多个独立主计算机之间共享的多个EPF。
3.如权利要求2所述的系统,其中所述MCPU通过管理每个主机接口的主机接口代理的源地址和每个IO设备的每个EPF的目的地地址,来控制所述多个独立主计算机与所述多个独立IO设备之间的数据传输。
4.如权利要求3所述的系统,其中所述代理设备还接收主机数据分组,所述主机数据分组包括数据有效载荷。
5.如权利要求4所述的系统,其中所述代理设备还将所述代理设备的源地址用于封装所述主机数据分组。
6.如权利要求5所述的系统,其中所述代理设备还将针对所述特定IO设备的设备接口的目的地地址用于封装所述主机数据分组。
7.如权利要求6所述的系统,其中所述设备接口的目的地地址是以太网目的地地址。
8.如权利要求6所述的系统,其中所述代理设备还将与所分配的EPF相对应的EPF标识符用于封装所述主机数据分组。
9.如权利要求8所述的系统,其中所述代理设备还通过将报头添加到所述主机数据分组的所述数据有效载荷来产生数据封装体,所述报头包括EPF标识符。
10.如权利要求9所述的系统,其中所述代理设备还使用所述目的地地址和报头的结合来向所分配的EPF传送所述数据封装体。
11.如权利要求9所述的系统,其中所述代理设备还使用所述目的地地址来经由所述传输结构体向所述设备接口传送所述数据封装体。
12.如权利要求9所述的系统,其中所述传输结构体还使用所述报头来向所分配的EPF传送所述数据封装体。
13.如权利要求2所述的系统,其中所述MCPU还通过管理每个IO设备的EPF的源地址以及每个主机接口的主机接口代理的目的地地址,来控制所述多个独立主计算机与所述多个独立IO设备之间的数据传输。
14.如权利要求13所述的系统,其中所述设备接口还接收被寻址至主计算机的设备数据分组。
15.如权利要求14所述的系统,其中当所述设备数据分组进入所述设备接口时,所述设备接口的源地址被定位或识别。
16.如权利要求15所述的系统,其中当所述设备数据分组进入所述设备接口时,与所述设备数据分组要路由到的主计算机相对应的主机接口的目的地地址被定位或识别。
17.如权利要求16所述的系统,其中所述主机接口的目的地地址是以太网目的地地址。
18.如权利要求17所述的系统,其中所述设备接口通过将报头添加到所述设备数据分组的数据有效载荷来产生数据封装体,其中所述报头包括代理标识符。
19.如权利要求18所述的系统,其中所述传输结构体还使用所述目的地地址和所述报头的结合,来向所述主计算机传送数据封装体。
20.如权利要求18所述的系统,其中所述传输结构体还使用所述目的地地址,来经由所述传输结构体向所述主机接口传送所述数据封装体。
21.如权利要求18所述的系统,其中所述传输结构体还使用所述报头,来向所述主机接口代理传送所述数据封装体。
22.如权利要求1所述的系统,其中所述主机接口在MCPU域和主机域之间翻译参数。
23.如权利要求22所述的系统,其中所述参数包括发送者标识。
24.如权利要求23所述的系统,其中所述MCPU发现并枚举所述MCPU域中的所述多个独立IO设备。
25.如权利要求24所述的系统,其中所述MCPU还为多个EPF中的每个EPF分配所述MCPU域中的第一总线-设备-功能单元编号,即第一BDF编号,其中所述第一BDF编号对于所述MCPU域而言是唯一的。
26.如权利要求25所述的系统,其中所述相应主计算机使用第二BDF编号来发现并枚举所述主机域中的代理设备,其中所述第二BDF编号对于所述主机域而言是唯一的,并且不同于所述第一BDF编号。
27.如权利要求26所述的系统,其中所述设备接口在访问所述EPF及从所述EPF进行访问期间,在所述MCPU域和所述主机域之间翻译BDF编号。
28.如权利要求22所述的系统,其中所述参数包括存储器地址。
29.如权利要求28所述的系统,其中所述MCPU还为多个EPF中的每个EPF分配所述MCPU域中的第一存储器范围,其中所述第一存储器范围对于所述MCPU域而言是唯一的。
30.如权利要求29所述的系统,其中所述MCPU还为所述代理设备分配所述主机域中的第二存储器范围,其中所述第二存储器范围对于所述主机域而言是唯一的。
31.如权利要求30所述的系统,其中所述代理设备存储存储器范围标识符,所述存储器范围标识符对与在所述代理设备处接收的设备分组相对应的所述第二存储器范围进行识别,其中所述设备分组是地址路由的分组。
32.如权利要求31所述的系统,包括将所述第二存储器范围翻译成所述第一存储器范围。
33.如权利要求32所述的系统,其中翻译所述第二存储器范围包括使用来自所述第一存储器范围的相应比特替代所述第二存储器范围中的多个高位比特。
34.如权利要求32所述的系统,其中所述第一存储器范围和所述第二存储器范围由基地址寄存器确定。
35.如权利要求1所述的系统,其中MCPU域是外围部件互连表达域,即PCIe域。
36.如权利要求1所述的系统,其中主机域是所述多个独立主计算机中的至少一个主计算机的外围部件互连表达域,即PCIe域。
37.如权利要求1所述的系统,其中所述设备接口和所述主机接口包括用于使外围部件互连表达流量,即PCIe流量越过传输结构体的封装协议和解封装协议的至少一种。
38.如权利要求1所述的系统,其中所述MCPU发现并初始化所述多个独立IO设备。
39.如权利要求38所述的系统,其中所述MCPU运行针对所述多个独立IO设备中的每个IO设备的特权驱动器,其中所述特权驱动器控制所述IO设备。
40.如权利要求1所述的系统,其中所述多个独立IO设备包括具有一个EPF的IO设备,其中所述MCPU为单个主计算机分配具有一个EPF的IO设备,其中所述单个主计算机具有对EPF的特权控制。
41.如权利要求1所述的系统,其中所述多个独立IO设备包括具有多个EPF的IO设备,其中在所述多个独立主计算机中的一组主计算机之间共享具有所述多个EPF的所述IO设备。
42.如权利要求1所述的系统,其中每个主机接口包括代理设备,该代理设备包括配置数据。
43.如权利要求42所述的系统,其中所述配置数据包括主机域中的总线-设备-功能单元编号,即BDF编号。
44.如权利要求42所述的系统,其中所述配置数据包括存储器范围标识符。
45.如权利要求42所述的系统,其中所述配置数据包括保留用于由所述相应主计算机使用的至少一个IO设备的EPF的EPF标识符。
46.如权利要求42所述的系统,其中所述配置数据包括设备接口的目的地地址,其中所述设备接口与保留用于由所述相应主计算机使用的至少一个IO设备的EPF相对应。
47.如权利要求42所述的系统,其中对所述代理设备的配置访问由所述MCPU负责,其中所述MCPU控制所述EPF的配置,并且利用当前配置状态更新所述主计算机。
48.如权利要求1所述的系统,其中使用外围部件互连表达接口,即PCIe接口,将所述多个独立IO设备耦合至所述传输结构体。
49.一种用于在主计算机中产生热插拔事件的系统,包括:
与传输结构体以及在第一域中初始化的多个独立输入/输出设备相耦合的多个设备接口,其中输入/输出设备即IO设备;
与所述传输结构体相耦合的多个主机接口,其中每个主机接口耦合至多个独立主计算机中的主计算机,并且向该主计算机暴露所述多个独立IO设备的功能单元,所述暴露包括所述多个独立主计算机中的每个主计算机从主机域访问所述功能单元,其中所述主机域是专用于执行所述访问的主计算机的独立域,其中所述第一域不同于所述主机域;以及
与所述传输结构体耦合的管理中央处理器单元,即MCPU,所述MCPU为每个主计算机分配所述功能单元,并且将所分配的每个功能单元的配置信息复制到每个主机接口的代理设备;以及
其中,每个主机接口响应于所述MCPU为所述主计算机分配或未分配功能单元、以及将所述功能单元的配置信息复制到所述代理设备,在所述主计算机中产生热插拔事件。
50.一种用于将数据分组路由到特定IO设备的方法,包括:
将多个设备接口耦合至传输结构体和在第一域中初始化的多个独立输入/输出设备,即IO设备;
通过将每个主机接口与多个独立主计算机中的相应主计算机相耦合,来将多个主机接口耦合至所述传输结构体;
使用所述多个主机接口,向所述相应主计算机暴露与所述多个独立IO设备中的特定IO设备相对应的所分配的端点功能单元,即EPF,所述暴露包括所述多个独立主计算机中的每个主计算机从主机域访问所述端点功能单元,其中所述主机域是专用于执行所述访问的主计算机的独立域,其中所述第一域不同于所述主机域;以及
在所述多个主机接口中,接收并封装来自所述相应主计算机的用于EPF的数据分组,从而将该数据分组路由到所述特定IO设备。
51.如权利要求50所述的方法,包括在所述多个独立主计算机之间共享所述多个独立IO设备的多个EPF。
52.如权利要求51所述的方法,包括通过管理每个主机接口的主机接口代理的源地址和每个IO设备的每个EPF的目的地地址,来控制所述多个独立主计算机和所述多个独立IO设备之间的数据传输。
53.如权利要求52所述的方法,包括在主机接口处接收数据分组,所述数据分组包括数据有效载荷。
54.如权利要求53所述的方法,包括识别所述主机接口的所述主机接口代理的源地址。
55.如权利要求54所述的方法,包括识别与所述数据分组要路由到的EPF相对应的设备接口的目的地地址。
56.如权利要求55所述的方法,其中所述设备接口的目的地地址是以太网目的地地址。
57.如权利要求55所述的方法,包括识别与所述EPF相对应的EPF标识符。
58.如权利要求57所述的方法,包括通过将报头添加到所述数据分组的所述数据有效载荷来产生数据封装体,所述报头包括EPF标识符。
59.如权利要求58所述的方法,包括使用所述目的地地址和所述报头的结合来向所述EPF传送所述数据封装体。
60.如权利要求58所述的方法,包括使用所述目的地地址,来经由所述传输结构体向所述设备接口传送所述数据封装体。
61.如权利要求58所述的方法,包括使用所述报头来向所述EPF传送所述数据封装体。
62.如权利要求51所述的方法,包括通过管理每个IO设备的EPF的源地址以及每个主机接口的主机接口代理的目的地地址,来控制所述多个独立主计算机与所述多个独立IO设备之间的数据传输。
63.如权利要求62所述的方法,包括在包括EPF在内的IO设备的设备接口处接收包括数据有效载荷的数据分组,其中将所述数据寻址至主计算机。
64.如权利要求63所述的方法,包括识别与所述EPF相对应的所述设备接口的源地址。
65.如权利要求64所述的方法,包括识别与所述数据分组要路由到的主计算机的主机接口代理相对应的主机接口的目的地地址。
66.如权利要求65所述的方法,其中所述主机接口的目的地地址是以太网目的地地址。
67.如权利要求65所述的方法,包括识别与所述主机接口代理相对应的代理标识符。
68.如权利要求67所述的方法,包括通过将报头添加到所述数据分组的所述数据有效载荷来产生数据封装体,所述报头包括所述代理标识符。
69.如权利要求68所述的方法,包括使用所述目的地地址和所述报头的结合,来向所述主计算机传送所述数据封装体。
70.如权利要求68所述的方法,包括使用所述目的地地址,来经由所述传输结构体向所述主机接口传送所述数据封装体。
71.如权利要求68所述的方法,包括使用所述报头,来向所述主机接口代理传送所述数据封装体。
72.如权利要求51所述的方法,每个主机接口包括与每个EPF相对应的代理,其中所述每个EPF保留用于由与主机接口相对应的相应主计算机使用。
73.如权利要求72所述的方法,包括在所述第一域和所述主机域之间翻译参数。
74.如权利要求73所述的方法,其中所述参数包括发送者标识。
75.如权利要求74所述的方法,包括发现并枚举所述第一域中的所述多个独立IO设备。
76.如权利要求75所述的方法,包括为所述多个EPF中的每个EPF分配所述第一域中的第一总线-设备-功能单元编号,即第一BDF编号,其中所述第一BDF编号对于所述第一域而言是唯一的。
77.如权利要求76所述的方法,其中所述相应主计算机使用第二BDF编号来发现并枚举所述主机域中的代理,其中所述第二BDF编号对于所述主机域而言是唯一的,并且不同于所述第一BDF编号。
78.如权利要求77所述的方法,包括在访问所述EPF及从所述EPF进行访问期间,在所述第一域和所述主机域之间翻译BDF编号。
79.如权利要求78所述的方法,包括在所述主机接口中翻译所述BDF编号。
80.如权利要求78所述的方法,包括在所述设备接口中翻译所述BDF编号。
81.如权利要求78所述的方法,包括在访问所述EPF期间,将所述第一域的BDF编号翻译成所述主机域的BDF编号。
82.如权利要求78所述的方法,包括在从所述EPF进行访问期间,将所述主机域的BDF编号翻译成所述第一域的BDF编号。
83.如权利要求73所述的方法,所述参数包括存储器地址。
84.如权利要求83所述的方法,包括为所述多个EPF的每个EPF分配所述第一域中的第一存储器范围,其中所述第一存储器范围对于所述第一域而言是唯一的。
85.如权利要求84所述的方法,包括为每个代理分配所述主机域中的第二存储器范围,其中所述第二存储器范围对于所述主机域而言是唯一的。
86.如权利要求85所述的方法,包括确定存储器范围标识符,所述存储器范围标识符对与接收主机接口的代理处接收的分组相对应的所述第二存储器范围进行识别,其中所述分组是地址路由的分组。
87.如权利要求86所述的方法,包括与所述分组一起向目的地EPF传送所述存储器范围标识符。
88.如权利要求87所述的方法,包括使用所述存储器范围标识符,对所述第一域中与所述第二存储器范围相对应的所述第一存储器范围进行识别。
89.如权利要求88所述的方法,包括将所述第二存储器范围翻译成所述第一存储器范围。
90.如权利要求89所述的方法,其中所述翻译包括使用来自所述第一存储器范围的相应比特替代所述第二存储器范围中的多个高位比特。
91.如权利要求90所述的方法,其中所述第一存储器范围和所述第二存储器范围由基地址寄存器确定。
92.如权利要求50所述的方法,其中所述第一域是外围部件互连表达域,即PCIe域。
93.如权利要求50所述的方法,其中所述主机域是所述多个独立主计算机中的至少一个主计算机的外围部件互连表达域,即PCIe域。
94.如权利要求50所述的方法,其中所述设备接口和所述主机接口包括用于外围部件互连表达流量,即PCIe流量的封装协议和解封装协议的至少一种。
95.如权利要求50所述的方法,包括发现并初始化所述多个独立IO设备。
96.如权利要求95所述的方法,包括运行针对所述多个独立IO设备中的每个IO设备的特权驱动器,其中所述特权驱动器控制所述IO设备。
97.如权利要求50所述的方法,其中所述多个独立IO设备包括具有一个EPF的IO设备,其中所述方法包括为单个主计算机分配具有一个EPF的IO设备,其中所述单个主计算机具有对EPF的特权控制。
98.如权利要求50所述的方法,其中所述多个独立IO设备包括具有多个EPF的IO设备,其中在所述多个独立主计算机中的一组主计算机之间共享具有多个EPF的IO设备。
99.如权利要求50所述的方法,其中每个主机接口包括代理,该代理包括配置数据。
100.如权利要求99所述的方法,其中所述配置数据包括所述主机域中的总线-设备-功能单元BDF编号。
101.如权利要求99所述的方法,其中所述配置数据包括存储器范围标识符。
102.如权利要求99所述的方法,其中所述配置数据包括保留用于由相应主计算机使用的至少一个IO设备的EPF的EPF标识符。
103.如权利要求99所述的方法,所述配置数据包括设备接口的目的地地址,其中所述设备接口与保留用于由相应主计算机使用的至少一个IO设备的EPF相对应。
104.如权利要求99所述的方法,包括控制所述EPF的配置,并且利用当前配置状态更新所述主计算机。
CN201080047014.9A 2009-08-18 2010-08-17 输入/输出(i/o)虚拟化系统中主计算机与外围资源之间的通信 Active CN102576349B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US23497209P 2009-08-18 2009-08-18
US61/234,972 2009-08-18
US12/751,543 2010-03-31
US12/751,543 US8412860B2 (en) 2009-04-01 2010-03-31 Input/output (I/O) virtualization system
US12/790,920 2010-05-31
US12/790,920 US8521915B2 (en) 2009-08-18 2010-05-31 Communicating between host computers and peripheral resources in an input/output (I/O) virtualization system
PCT/US2010/045730 WO2011022375A1 (en) 2009-08-18 2010-08-17 Communicating between host computers and peripheral resources in an input/output (i/o) virtualization system

Publications (2)

Publication Number Publication Date
CN102576349A CN102576349A (zh) 2012-07-11
CN102576349B true CN102576349B (zh) 2015-11-25

Family

ID=43607299

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080047014.9A Active CN102576349B (zh) 2009-08-18 2010-08-17 输入/输出(i/o)虚拟化系统中主计算机与外围资源之间的通信

Country Status (4)

Country Link
US (1) US8521915B2 (zh)
EP (1) EP2467785A4 (zh)
CN (1) CN102576349B (zh)
WO (1) WO2011022375A1 (zh)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8271707B2 (en) * 2010-02-17 2012-09-18 Broadcom Corporation Method and system for PCI hybrid function
US8594100B2 (en) 2010-03-31 2013-11-26 International Business Machines Corporation Data frame forwarding using a distributed virtual bridge
US8358661B2 (en) * 2010-04-20 2013-01-22 International Business Machines Corporation Remote adapter configuration
US8619796B2 (en) 2010-04-22 2013-12-31 International Business Machines Corporation Forwarding data frames with a distributed fiber channel forwarder
US8447909B2 (en) 2010-07-19 2013-05-21 International Business Machines Corporation Register access in distributed virtual bridge environment
WO2012143947A2 (en) * 2011-04-18 2012-10-26 Ineda Systems Pvt. Ltd Multi-host peripheral controller
US8990459B2 (en) 2011-04-30 2015-03-24 Ineda Systems Pvt. Ltd Peripheral device sharing in multi host computing systems
US20120324143A1 (en) 2011-06-15 2012-12-20 Data Design Corporation Methods and apparatus for data access by a reprogrammable circuit module
US9417894B1 (en) 2011-06-15 2016-08-16 Ryft Systems, Inc. Methods and apparatus for a tablet computer system incorporating a reprogrammable circuit module
US8645600B2 (en) * 2011-11-10 2014-02-04 International Business Machines Corporation Configuring expansion component interconnect (‘ECI’) physical functions on an ECI device in a computing system
US9565132B2 (en) 2011-12-27 2017-02-07 Intel Corporation Multi-protocol I/O interconnect including a switching fabric
US8891535B2 (en) 2012-01-18 2014-11-18 International Business Machines Corporation Managing a global forwarding table in a distributed switch
US8861400B2 (en) 2012-01-18 2014-10-14 International Business Machines Corporation Requesting multicast membership information in a distributed switch in response to a miss event
CN102821042B (zh) * 2012-07-27 2015-05-06 华为技术有限公司 数据处理方法、装置和系统
CN103049331B (zh) * 2012-12-06 2015-09-23 华中科技大学 一种虚拟功能的动态调度方法
US9170976B2 (en) 2013-01-03 2015-10-27 International Business Machines Corporation Network efficiency and power savings
EP2763037B1 (en) * 2013-02-01 2018-08-01 Amadeus S.A.S. Communications management
US9141325B2 (en) 2013-02-01 2015-09-22 Amadeus S.A.S. Communications management
AU2014211318B2 (en) * 2013-02-01 2016-08-04 Amadeus S.A.S. Communications management
CN103150279B (zh) * 2013-04-02 2015-05-06 无锡江南计算技术研究所 一种主机与基板管理控制器共享设备的方法
JP5953573B2 (ja) * 2013-05-02 2016-07-20 ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. ペリフェラル・コンポーネント・インターコネクト・エクスプレス・エンドポイントデバイスにアクセスするためのコンピュータシステム、方法、および装置
US9135200B2 (en) * 2013-06-28 2015-09-15 Futurewei Technologies, Inc. System and method for extended peripheral component interconnect express fabrics
US9672167B2 (en) 2013-07-22 2017-06-06 Futurewei Technologies, Inc. Resource management for peripheral component interconnect-express domains
KR102309907B1 (ko) * 2013-08-29 2021-10-06 단 오프레아 컴퓨터 네트워크에서 직접 상호 연결 스위치 배선과 증가를 관리하는 방법 및 장치
JP6203272B2 (ja) * 2013-09-03 2017-09-27 株式会社アキブシステムズ I/oデバイスの仮想化のためのコンピュータシステム及びその運用方法並びにhub装置
US9152592B2 (en) * 2013-09-06 2015-10-06 Cisco Technology, Inc. Universal PCI express port
EP3159802B1 (en) * 2014-07-15 2018-05-23 Huawei Technologies Co. Ltd. Sharing method and device for pcie i/o device and interconnection system
US9836423B2 (en) * 2014-07-25 2017-12-05 Netapp, Inc. Adaptive circuit board assembly and flexible PCI express bus
EP3204862B1 (en) * 2014-10-05 2019-09-18 Amazon Technologies Inc. Emulated endpoint configuration
US9747240B2 (en) 2014-10-24 2017-08-29 Cisco Technology, Inc. Dynamic connection of PCIe devices and functions to an array of hosts
CN105743808B (zh) 2014-12-08 2017-09-19 华为技术有限公司 一种适配QoS的方法和装置
US10140218B2 (en) 2015-01-15 2018-11-27 Red Hat Israel, Ltd. Non-uniform memory access support in a virtual environment
US9639492B2 (en) * 2015-01-15 2017-05-02 Red Hat Israel, Ltd. Virtual PCI expander device
CN104636186B (zh) * 2015-01-27 2018-02-13 华为技术有限公司 虚拟机内存管理方法、物理主机、pcie设备及其配置方法以及迁移管理设备
US9986040B2 (en) 2015-07-21 2018-05-29 Amadeus S.A.S. Communications management system with a separate peripherals server
ES2726302T3 (es) * 2015-09-21 2019-10-03 Huawei Tech Co Ltd Sistema informático y procedimiento para acceder a un dispositivo de punto extremo del mismo
CN106886429B (zh) 2015-12-16 2020-11-06 华为技术有限公司 一种加载驱动程序的方法和服务器
CN109657471B (zh) * 2017-10-11 2023-02-28 阿里巴巴集团控股有限公司 云设备管理系统和方法
US10817455B1 (en) * 2019-04-10 2020-10-27 Xilinx, Inc. Peripheral I/O device with assignable I/O and coherent domains
CN110362615B (zh) * 2019-05-09 2024-05-24 中国航空工业集团公司西安航空计算技术研究所 面向具有复杂接口的多对象智能数据表驱动方法及装置
CN110688237B (zh) * 2019-06-25 2024-02-09 华为技术有限公司 转发报文的方法、中间设备和计算机设备
CN110795374B (zh) * 2019-10-16 2021-06-11 苏州浪潮智能科技有限公司 一种设备访问的方法、装置及可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101206581A (zh) * 2006-12-20 2008-06-25 国际商业机器公司 用于使用外部存储设备引导的系统和方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030154271A1 (en) * 2001-10-05 2003-08-14 Baldwin Duane Mark Storage area network methods and apparatus with centralized management
US7327748B2 (en) * 2002-01-28 2008-02-05 Alcatel Lucent Enterprise switching device and method
US7171495B2 (en) * 2002-05-06 2007-01-30 Silverstorm Technologies, Inc. System and method for implementing virtual adapters and virtual interfaces in a network system
US7188209B2 (en) * 2003-04-18 2007-03-06 Nextio, Inc. Apparatus and method for sharing I/O endpoints within a load store fabric by encapsulation of domain information in transaction layer packets
US7917658B2 (en) * 2003-01-21 2011-03-29 Emulex Design And Manufacturing Corporation Switching apparatus and method for link initialization in a shared I/O environment
US7633955B1 (en) * 2004-02-13 2009-12-15 Habanero Holdings, Inc. SCSI transport for fabric-backplane enterprise servers
US7398328B2 (en) * 2005-02-25 2008-07-08 International Business Machines Corporation Native virtualization on a partially trusted adapter using PCI host bus, device, and function number for identification
US7546386B2 (en) * 2005-02-25 2009-06-09 International Business Machines Corporation Method for virtual resource initialization on a physical adapter that supports virtual resources
US8176204B2 (en) * 2005-03-11 2012-05-08 Hewlett-Packard Development Company, L.P. System and method for multi-host sharing of a single-host device
US7620741B2 (en) * 2005-04-22 2009-11-17 Sun Microsystems, Inc. Proxy-based device sharing
US7613864B2 (en) * 2005-04-22 2009-11-03 Sun Microsystems, Inc. Device sharing
US7492723B2 (en) * 2005-07-07 2009-02-17 International Business Machines Corporation Mechanism to virtualize all address spaces in shared I/O fabrics
US7395367B2 (en) * 2005-10-27 2008-07-01 International Business Machines Corporation Method using a master node to control I/O fabric configuration in a multi-host environment
US7752376B1 (en) * 2006-08-11 2010-07-06 Oracle America, Inc. Flexible configuration space
US8725914B2 (en) * 2006-08-28 2014-05-13 International Business Machines Corporation Message signaled interrupt management for a computer input/output fabric incorporating platform independent interrupt manager
US7529860B2 (en) * 2006-12-19 2009-05-05 International Business Machines Corporation System and method for configuring an endpoint based on specified valid combinations of functions
US20080195756A1 (en) * 2007-02-08 2008-08-14 Michael Galles Method and system to access a service utilizing a virtual communications device
US7689755B2 (en) * 2007-03-07 2010-03-30 Intel Corporation Apparatus and method for sharing devices between multiple execution domains of a hardware platform
US7925795B2 (en) * 2007-04-30 2011-04-12 Broadcom Corporation Method and system for configuring a plurality of network interfaces that share a physical interface
US7752360B2 (en) * 2007-05-16 2010-07-06 Nuova Systems, Inc. Method and system to map virtual PCIe I/O devices and resources to a standard I/O bus
US7958314B2 (en) * 2007-12-18 2011-06-07 International Business Machines Corporation Target computer processor unit (CPU) determination during cache injection using input/output I/O) hub/chipset resources
US7934033B2 (en) * 2008-03-25 2011-04-26 Aprius, Inc. PCI-express function proxy
US8503468B2 (en) * 2008-11-05 2013-08-06 Fusion-Io, Inc. PCI express load sharing network interface controller cluster
WO2010114910A1 (en) * 2009-04-01 2010-10-07 Aprius, Inc. Input/output (i/o) virtualization system
US8117350B2 (en) * 2009-11-03 2012-02-14 Oracle America, Inc. Configuration space compaction

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101206581A (zh) * 2006-12-20 2008-06-25 国际商业机器公司 用于使用外部存储设备引导的系统和方法

Also Published As

Publication number Publication date
WO2011022375A1 (en) 2011-02-24
CN102576349A (zh) 2012-07-11
US20110055433A1 (en) 2011-03-03
US8521915B2 (en) 2013-08-27
EP2467785A1 (en) 2012-06-27
EP2467785A4 (en) 2013-01-30

Similar Documents

Publication Publication Date Title
CN102576349B (zh) 输入/输出(i/o)虚拟化系统中主计算机与外围资源之间的通信
US8732349B2 (en) Assignment of resources in an input/output (I/O) virtualization system
US8412860B2 (en) Input/output (I/O) virtualization system
US8176204B2 (en) System and method for multi-host sharing of a single-host device
US8374175B2 (en) System and method for remote direct memory access over a network switch fabric
JP4931787B2 (ja) データ処理システム内で第1のホスト・システムと第2のホスト・システムとの間で通信するための方法、プログラム、およびシステム(トランザクション・プロトコルおよび共用メモリを使用するホスト・システム間の通信のためのシステムおよび方法)
JP5763873B2 (ja) データ処理システムの複数のルート複合体間の通信のために共用メモリを初期設定するための方法、コンピュータ・プログラム、およびデータ処理システム
US20070050520A1 (en) Systems and methods for multi-host extension of a hierarchical interconnect network
JP5362980B2 (ja) データ処理システム内で第1のホスト・システムと第2のホスト・システムとの間で通信するための方法、プログラム、およびシステム(ソケット接続および共用メモリを使用するホスト・システム間の通信のためのシステムおよび方法)
CN101849230B (zh) 在多主机环境中共享遗留设备
CN100580648C (zh) 对包含在通信信息包中的标识符进行转换的方法和装置
KR102144330B1 (ko) 캡슐화 가능한 pcie 가상화
CN103353861B (zh) 实现分布式i/o资源池化的方法及装置
JP2008152786A (ja) データ処理システム内で1つまたは複数のエンドポイントの第1の物理機能から第2の物理機能に仮想機能を移行するための方法、プログラム、およびシステム(単一ルート・ステートレス仮想機能の移行のためのシステムおよび方法)
CN104426814A (zh) Numa节点外围交换机
CN105359124A (zh) 用于扩展外围组件互连高速结构的系统和方法
JP2008152787A (ja) データ処理システム内で実行中の通信ファブリックにコンポーネントをホット・プラグするための方法、プログラム、およびシステム(実行中のPCIeファブリックにおける新しいコンポーネントのホット・プラグ/除去のためのシステムおよび方法)
CN110809760A (zh) 资源池的管理方法、装置、资源池控制单元和通信设备
US9021125B2 (en) Control path I/O virtualisation
US11714776B2 (en) Enabling a multi-chip daisy chain topology using peripheral component interconnect express (PCIe)
US9753883B2 (en) Network interface device that maps host bus writes of configuration information for virtual NIDs into a small transactional memory
US11138146B2 (en) Hyperscale architecture
CN109002414A (zh) 一种跨节点虚拟机通信方法及相关装置
JP2011014023A (ja) 中継手段、中継システム、中継方法およびプログラム
KR20190108001A (ko) 네트워크온칩 및 이를 포함하는 컴퓨팅 장치

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: CAIZHI INTELLECTUAL PROPERTY RIGHTS HOLDING COMPAN

Free format text: FORMER OWNER: FUSION MULTISYSTEMS INC

Effective date: 20140804

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

Effective date of registration: 20140804

Address after: Delaware

Applicant after: Intellectual property holding company (2)

Address before: Utah, USA

Applicant before: Fusion-io, Inc.

C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160621

Address after: Luxemburg, Grand Duchy of Luxemburg

Patentee after: Longitude Business Flash Memory Co.

Address before: Luxemburg, Grand Duchy of Luxemburg

Patentee before: PS12 Lukesike Co.

Effective date of registration: 20160621

Address after: Luxemburg, Grand Duchy of Luxemburg

Patentee after: PS12 Lukesike Co.

Address before: Delaware

Patentee before: Intellectual property holding company (2)

C41 Transfer of patent application or patent right or utility model
C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: Texas, USA

Patentee after: SANDISK TECHNOLOGIES LLC

Address before: Texas, USA

Patentee before: SANDISK TECHNOLOGIES Inc.

TR01 Transfer of patent right

Effective date of registration: 20160721

Address after: Texas, USA

Patentee after: SANDISK TECHNOLOGIES Inc.

Address before: Luxemburg, Grand Duchy of Luxemburg

Patentee before: Longitude Business Flash Memory Co.