CN102129384A - 虚拟化主机usb适配器的方法和装置 - Google Patents

虚拟化主机usb适配器的方法和装置 Download PDF

Info

Publication number
CN102129384A
CN102129384A CN2011100045653A CN201110004565A CN102129384A CN 102129384 A CN102129384 A CN 102129384A CN 2011100045653 A CN2011100045653 A CN 2011100045653A CN 201110004565 A CN201110004565 A CN 201110004565A CN 102129384 A CN102129384 A CN 102129384A
Authority
CN
China
Prior art keywords
usb
usb device
adapter
system supervisor
logical
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.)
Pending
Application number
CN2011100045653A
Other languages
English (en)
Inventor
E·M·鲍曼
H·G·基尔
T·J·席姆克
L·A·森德尔巴克
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN102129384A publication Critical patent/CN102129384A/zh
Pending legal-status Critical Current

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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • 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/0042Universal serial bus [USB]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

本发明涉及一种虚拟化主机USB适配器的方法和装置。在由***管理程序维护的虚拟化环境中虚拟化主机USB适配器,***管理程序管理一个或多个逻辑分区,其中虚拟化包括:所述***管理程序经由逻辑USB适配器从逻辑分区接收USB I/O请求,所述逻辑USB适配器与耦合到所述主机USB适配器的USB设备关联;所述***管理程序将工作队列单元WQE放入与所述逻辑USB适配器关联的队列对内的一个队列中;以及接口设备根据所述WQE管理所述逻辑分区与所述USB设备之间的USB数据通信,所述通信包括使用直接存储器存取DMA将源自所述USB设备的USB数据从所述主机USB适配器取回到所述逻辑USB适配器的专用存储区域中。

Description

虚拟化主机USB适配器的方法和装置
技术领域
本发明的领域涉及数据处理,更具体地说,涉及用于虚拟化主机通用串行总线(USB)适配器的方法、装置和产品。
背景技术
1948年EDVAC计算机***的开发通常被认为是计算机时代的开始。从此之后,计算机***逐渐演变为非常复杂的设备。今天的计算机比诸如EDVAC之类的早期***要复杂的多。计算机***一般由硬件组件及软件组件、应用程序、操作***、处理器、总线、存储器、输入/输出设备等组合而成。由于半导体工艺和计算机体系结构的发展促使计算机的性能不断提高,因此开发了更复杂的计算机软件以充分利用更高的硬件***性能,从而使得今天的计算机***比仅仅几年前的***功能强大得多。
如今,为了实现数据通信,许多***计算机组件根据通用串行总线规范耦合到适配器。USB适配器固有地是点到点通信并且不容易在虚拟化环境的分区之间共享。今天的用户针对每个分区需要至少一个物理USB适配器以连接到USB设备。对于包括许多分区的大型***或者在数据中心内,这种需求会导致需要大量物理适配器,从而需要更多的额外成本、处理能力、计算机存储器使用以及功耗。这些由增加的物理适配器数量导致的负面因素部分是由适配器本身造成的,但是也是由提供关联的PCI或PCIe适配器槽的机壳造成的。
对USB适配器进行虚拟化可减少USB设备、集线器、适配器以及机壳的功耗。存在对USB设备进行虚拟化的软件解决方案。这些解决方案使用单个共享队列,其中必须对USB帧进行排序以便从单个共享队列发送给许多分区。这是一种非常占用CPU和存储器的实施方式。单队列解决方案的性能也非常差。
今天的USB设备通常包括键盘、鼠标、扬声器和闪存驱动设备。随着USB不断成熟以及速度不断加快,USB越来越多地被用于磁带驱动器、可移动硬盘驱动器以及光盘驱动器。分区的计算机***上缺乏高效、低成本、低功耗的USB虚拟化成为了重要的问题。范围更广的设备将使用速度比USB 2.0快十倍的USB 3.0。额外的带宽允许同一时间在同一链路上具有更多设备。业界正在使磁带驱动器和可移动硬盘驱动器转向使用USB作为优选连接方式。目前,对改进的USB虚拟化的需求在不断增长。
发明内容
披露了用于虚拟化由***管理程序维护的虚拟化环境中的主机通用串行总线(USB)适配器的方法、装置和产品。在本发明的各实施例中,所述***管理程序管理一个或多个逻辑分区,并且虚拟化主机USB适配器包括:由所述***管理程序经由逻辑USB适配器从逻辑分区接收USB输入/输出(I/O)请求,所述逻辑USB适配器与耦合到所述主机USB适配器的USB设备关联;由所述***管理程序将工作队列单元(WQE)放入与所述逻辑USB适配器关联的队列对内的一个队列中;以及由接口设备根据所述WQE管理所述逻辑分区与所述USB设备之间的USB数据通信,所述通信包括使用直接存储器存取(DMA)将源自所述USB设备的USB数据从所述主机USB适配器取回到所述逻辑USB适配器的专用存储区域中。
如附图所示,从下面对本发明示例性实施例的详细说明,本发明的上述和其他目标、特征和优点将变得显而易见,在所述附图中,相同的标号一般表示本发明的示例性实施例的相同部分。
附图说明
图1示出了根据本发明的实施例的虚拟化主机USB适配器的示例性***的网络图;
图2示出了根据本发明的实施例的虚拟化主机USB适配器的示例性方法的流程图;
图3示出了根据本发明的实施例的虚拟化主机USB适配器的进一步示例性方法的流程图;
图4示出了根据本发明的实施例的虚拟化主机USB适配器的进一步示例性方法的流程图;
图5示出了根据本发明的实施例的虚拟化主机USB适配器的进一步示例性方法的流程图。
具体实施方式
参考以图1开始的附图描述了根据本发明的虚拟化主机USB适配器的示例性方法、装置和产品。图1示出了根据本发明的实施例的虚拟化主机USB适配器的示例性***的网络图。图1中的***包括自动化的计算机器,其中包括根据本发明的实施例的可在虚拟化主机USB适配器中使用的示例性计算机(152)。图1的计算机(152)包括至少一个计算机处理器(156)或“CPU”以及通过高速存储器总线(166)和总线适配器(158)与处理器(158)以及计算机(152)的其他组件相连的随机存取存储器(168)(RAM)。
RAM(168)中存储有***管理程序(130),它是可以包括计算机程序指令、计算机硬件等的任意组合的自动化计算机器的模块。图1的实例中的***管理程序(130)维护虚拟化环境。***管理程序(也称为虚拟机监视器(VMM))执行软件和硬件平台虚拟化以使能多个操作***同时在一个主计算机上运行。***管理程序直接在主机的硬件上运行以控制硬件访问和监视客户操作***。客户操作***在***管理程序的上层运行。***管理程序提供的平台虚拟化在本说明书中称为虚拟化环境。虚拟化环境是这样的环境:其中从操作***和其他软件应用的角度,计算平台的物理特性(计算机处理器、计算机存储器、I/O适配器等)是抽象的。
在图1的实例中,***管理程序(130)维护包括两个逻辑分区(106、118)的虚拟化环境。本文中使用的术语“逻辑分区”是由***管理程序提供的其中可以执行操作***和其他应用的唯一虚拟机。每个逻辑分区(106、118)包括一个应用(108、120)和一个操作***(110、122)。应用(108、120)是能够执行用户级数据处理任务的计算机程序指令的模块。此类应用的实例包括本领域的技术人员将想到的字处理应用、电子表格应用、Web服务器应用、数据库管理应用、媒体库应用、媒体播放应用、媒体转码应用等。可在根据本发明的实施例的虚拟化主机USB适配器的***中使用的操作***包括UNIXTM、LinuxTM、Microsoft XPTM、AIXTM、IBM的i5/OSTM和本领域的技术人员将想到的其他操作***。
图1的实例中的***管理程序(130)通常用于根据本发明的实施例虚拟化主机USB适配器(202)。USB是用于建立设备与主机控制器之间的通信的规范。USB可以连接诸如鼠标、键盘、数码相机、打印机、个人媒体播放器、闪盘和外接硬盘之类的计算机***设备。对于这些设备中的许多设备,USB已成为标准的连接方式。USB针对个人计算机而设计,但也成为诸如智能手机、个人数字助理(PDA)和视频游戏控制台之类的其他设备上的常用接口,并且作为设备与***墙壁插座的AC适配器之间的电源线以进行充电。USB设计论坛(USB-IF)规定了USB设计的标准,该论坛是一个由计算机和电子行业中的领先公司组成的工业标准机构。
USB设备通过主机USB适配器耦合到主计算机***。在图1的实例中,主机USB适配器(202)通过USB集线器(204)与两个USB设备(206、208)相连。USB集线器是可使多个USB设备连接到主计算机上的单个USB端口或连接到另一集线器的设备。
***管理程序(130)可以通过启动与主机USB适配器(202)耦合的USB设备(206、208)的USB设备发现来虚拟化主机USB适配器(202)。启动USB设备(206、208)的USB设备发现可以包括为每个发现的USB设备分配物理设备地址(105)并且从每个发现的USB设备取回包括描述USB设备的信息的设备描述符(117)。设备描述符(117)可以例如包括USB设备的设备分类、USB设备的供应商标识符、USB设备的产品标识符以及USB设备的序列号。
分配物理设备地址(105)可以通过USB规范定义的典型方式执行,包括使用默认的目标地址探测USB结构,使用控制传输编程在探测期间识别的每个设备以便为USB设备分配物理设备地址。***管理程序(130)可以在探测设备期间生成诸如表、列表或逻辑树之类的数据结构以指示当前发现的USB设备。***管理程序(130)可以例如生成包括物理设备地址(105)和设备描述符(117)之间的关联的表(未示出)。
***管理程序(130)还可以从配置管理器(200)接收每个发现的USB设备到一个或多个逻辑分区的分配(119)。配置管理器是向用户提供图1的计算机(152)的配置机制的自动化计算机器的模块。配置管理器(200)可以例如呈现可从中捕获用户输入的图形用户接口(GUI)。此GUI允许用户配置图1中的计算机(152)的各种组件,包括例如将USB设备(206、208)分配给逻辑分区(106、118)。图1的实例中的配置管理器(200)可以响应于GUI接收的用户收入而指定每个发现的USB设备到一个或多个逻辑分区的分配(119)。***管理程序(130),响应于接收到此类分配(119),可以生成表示所述分配的数据结构,例如图1的实例设备地址表(150),所述表(150)包括物理设备地址(105)与逻辑设备地址(103)、分区标识符(107)和设备描述符(117)的关联。配置管理器(200)还可以向***管理程序通知先前在USB设备发现期间未发现的USB设备。此类设备目前可能被断开电源以节约电力、进行修复等。
***管理程序(130)可以为分配给逻辑区域(106、118)的每个USB设备(206、208)建立队列对(134和136、146和148)。另外,***管理程序为分配给分区的每个USB设备提供单独的逻辑USB适配器(116、128)。例如,对于分配有三个设备的逻辑分区,***管理程序可以建立三个队列对并且可以向逻辑分区提供三个单独的逻辑USB适配器。逻辑USB适配器是提供给逻辑分区(106)的用于执行USB数据通信的自动化计算机器的模块,其中所述逻辑USB适配器与耦合到主机USB适配器(202)的特定USB设备关联。从分区的角度,逻辑USB适配器是主机USB适配器(202)的抽象。在图1的***中,从逻辑分区中的操作***的角度,分配给逻辑分区的每个USB设备都直接与不同的主机USB适配器(逻辑USB适配器)耦合,此时实际上只存在一个硬件USB适配器(202)。可以将一个USB设备分配给多个逻辑分区。对于每个向其分配了USB设备的逻辑分区,***管理程序建立单独的队列对并为分区提供逻辑USB适配器。
此外,在为每个分配给逻辑分区的USB设备建立队列对之后,***管理程序可以为每个分配给逻辑分区的USB设备提供USB设备存在的指示。接收到此类指示时,分区(106、118)的操作***(110、122)可立即加载每个USB设备的设备驱动器(112、124)。
***管理程序还可通过经由逻辑USB适配器(116、128)从逻辑分区(106、118)接收USB输入/输出(I/O)请求(114、126)来虚拟化图1中的主机USB适配器(202)。每个逻辑USB适配器(116、128)与耦合到主机USB适配器(204)的USB设备(206、208)关联。***管理程序(130)可以通过接收对***管理程序为每个分区提供的函数进行的库函数调用来接收USB I/O请求(114、126),具体地说,设备驱动器(112、124)可以执行一个或多个***管理程序函数调用,将USB I/O请求的有效负载数据作为参数传送到函数调用,所述参数例如定义用于存储从USB设备接收的USB数据的存储区域的虚拟地址范围、标识USB设备的逻辑设备地址以及要执行的I/O的类型。
***管理程序可以根据USB I/O请求(114、126)中指定的虚拟地址范围注册专用存储区域(190、192)。***管理程序可以通过钉扎(pinning)物理存储器段而不使其进行存储器分页并将虚拟地址范围映射到物理存储器段来注册专用存储区域(190、192)。此类虚拟地址范围(109、113)到物理地址范围(111、115)的映射可以存储在用于每个分区(106、118)的单独数据结构中,例如,存储在地址表(194、196)中。
***管理程序(130)还可以将工作队列单元(WQE)放入与逻辑USB适配器(116、128)关联的队列对内的一个队列(134、136、146、148)中。队列对是为虚拟化的主机USB适配器提供发射/接收或发送/接收工具的具有两个队列的队列组。队列对可以按照与使用主机以太网适配器实现或在InfinibandTM技术中实现的队列对类似的方式实现。在将WQE放入队列对内的队列中时,***管理程序可以将USB I/O请求(114、126)中包括的USB设备(206、208)的逻辑设备地址(103)转换为USB设备(206、208)的物理设备地址(105)。WQE是定义诸如要经由USB数据通信执行的发送或接收命令之类的特定操作的单元。发送WQE可以被放入队列对内的发送队列,而接收WQE可以被放入队列对内的接收队列。WQE可以指定传输类型、USB设备的物理设备地址、端点标识符以及包括专用存储区域的虚拟地址范围指定的描述符列表。传输类型描述了要执行的数据通信传输的类型,例如大批传输、中断类型传输、同步传输或控制传输。端点标识符是通信方USB设备暴露的接口的标识符。
除了每个队列对内的发送队列和接收队列之外,每个逻辑USB适配器(116、128)还与完成队列(132、144)关联。完成队列(132、144)被配置为存储单元,例如指示WQE完成的完成队列单元。完成队列(132、144)中存储有完成队列单元(CQE)(138、184)。
图1的计算机还包括接口设备(102)。图1的接口设备(102)包括被配置为根据WQE管理逻辑分区与USB设备之间的USB数据通信的自动化计算机器。图1的实例中的接口设备(102)还包括直接存储器存取(DMA)引擎(104)。在管理USB数据通信时,接口设备(102)可以通过DMA将源自USB设备(206、208)的USB数据从主机USB适配器(202)取回到逻辑USB适配器(116、128)的专用存储区域(190、192)中。DMA是现代计算机和微处理器中的一项特性,其允许计算机内的硬件子***不经过中央处理单元而直接存取***存储器以便执行读取和写入。许多硬件***使用DMA,其中包括盘驱动控制器、图形卡、网卡以及声卡。DMA还用于多核处理器中的芯片内部数据传输,尤其是在多处理器片上***中,其中处理元件具备本地存储器(通常称为便笺式存储器)并且使用DMA在本地存储器与主存储器之间传输数据。与没有DMA通道的计算机相比,具有DMA通道的计算机在设备之间传输数据时所用的CPU开销低得多。类似地,多核处理器内部的处理元件可以在不占用处理器时间的情况下将数据传输到其本地存储器和或从本地存储器接收数据并允许同时进行计算和数据传输。
接口设备根据物理设备地址和分组标识符(PID)执行对主机USB适配器接收的入站数据的USB帧路由。USB帧中的PID识别USB帧的类型。实例PID包括SPLIT、PING、PRE、ERR、ACK、NACK NYET、STALL、OUT、IN、SOF、SETUP、DATA0、DATA1、DATA2、MDATA等。PID和设备地址可被接口设备用于识别关联的WQE以及WQE中的专用存储器的虚拟地址范围。接口设备可以使用WQE中包括的虚拟地址范围以及地址表(194、196)将虚拟地址转换为物理地址并且对该物理地址范围直接进行DMA操作。
图1的实例中的逻辑分区(106、118)、应用(108、120)、操作***(110、122)、设备驱动器(112、124)、USB I/O请求(114、126)、逻辑USB适配器(116、128)、***管理程序(130)、队列对(134和136、146和148)以及其他数据、数据结构和计算机程序指令模块示为在RAM(168)中,但是此类软件的许多组件通常还存储在非易失性存储器中,例如,存储在盘驱动器(170)上。
图1中的计算机(152)包括通过扩展总线(160)和总线适配器(158)与处理器(156)及计算机(152)的其他组件耦合的盘驱动器适配器(172)。盘驱动器适配器(172)以盘驱动器(170)的形式将非易失性数据存储装置连接到计算机(152)。可在计算机中用于根据本发明的实施例虚拟化主机USB适配器的盘驱动器适配器包括集成驱动电子设备(IDE)适配器、小型计算机***接口(SCSI)适配器以及本领域的技术人员将想到的其他适配器。非易失性计算机存储器还可以实现为本领域的技术人员将想到的光盘驱动器、电可擦写可编程只读存储器(称为EEPROM或闪存)、RAM驱动器等。
图1中的实例计算机(152)包括一个或多个输入/输出(I/O)适配器(178)。I/O适配器通过例如用于控制到诸如计算机显示屏之类的显示设备的输出以及来自诸如键盘和鼠标之类的用户输入设备(181)的用户输入的软件驱动器和计算机硬件来实现面向用户的输入/输出。图1的实例计算机(152)包括视频适配器(209),视频适配器(209)是专门针对到诸如显示屏或计算机显示器之类的显示设备(180)的图形输出设计的I/O适配器的实例。视频适配器(209)通过高速视频总线(164)、总线适配器(158)以及同样为高速总线的前端总线(162)与处理器(156)相连。
图1的示意性计算机(152)包括用于与其他计算机(182)进行数据通信以及用于与数据通信网络(100)进行数据通信的通信适配器(167)。可以串行地通过RS-232连接,通过诸如通用串行总线(USB)之类的外部总线,通过诸如IP数据通信网络之类的数据通信网络以及通过本领域的技术人员将想到的其他方式进行此类数据通信。通信适配器实现硬件级数据通信,借此一台计算机将数据通信直接地或通过数据通信网络发送到另一台计算机。可用于根据本发明的实施例虚拟化主机USB适配器的通信适配器实例包括用于有线拨号通信的调制解调器、用于有线数据通信网络通信的以太网(IEEE 802.3)适配器以及用于无线数据通信网络通信的802.11适配器。
构成图1中所示的示意性***的服务器及其他设备的安排是为了说明而非限制。根据本发明的各种实施例的可用数据处理***可以包括本领域的技术人员将想到的未在图1中示出的其他服务器、路由器、其他设备以及点对点架构。此类数据处理***中的网络可以支持许多数据通信协议,包括例如TCP(传输控制协议)、IP(网际协议)、HTTP(超文本传输协议)、WAP(无线访问协议)、HDTP(手持式设备传输协议)以及本领域的技术人员将想到的其他协议。本发明的各种实施例可以在图1中示出的平台以外的各种硬件平台上实现。
为了进一步说明,图2是示出根据本发明的实施例的用于虚拟化主机USB适配器的示例性方法的流程图。图2中的方法在管理一个或多个逻辑分区(图1的106、118)的***管理程序(130)所维护的虚拟化环境中执行。
图2中的方法包括由***管理程序(130)经由逻辑USB适配器从逻辑分区接收USB I/O请求(212)。在图2的方法中,所述逻辑USB适配器与耦合到主机USB适配器的USB设备关联。同样在图2的方法中,USBI/O请求(212)包括指定要注册的存储区域的虚拟地址范围(214)和识别USB设备的逻辑设备地址。
图2的方法还包括根据USB I/O请求(212)中指定的虚拟地址范围(214)注册(218)专用存储区域(190)。如上所述,***管理程序可以通过钉扎存储区域而不使其进行分页并存储虚拟地址到物理地址映射以供接口设备以后在执行DMA传输时使用来注册(218)专用存储区域(190)。
图2的方法还包括由***管理程序(130)将WQE(140)放入(220)与逻辑USB适配器关联的队列对(134、136)内的一个队列(136)中。在图2的方法中,将WQE(140)放入(220)队列(136)中包括将USBI/O请求(212)中包括的USB设备的逻辑设备地址(216)转换(212)为USB设备的物理设备地址(232)。在图2的方法中,WQE(140)包括传输类型(230)、USB设备的物理设备地址(232)、端点标识符(234)和包括专用存储区域(190)的虚拟地址范围(214)的指定的描述符列表(236)。
图2的方法还包括由接口设备(102)根据WQE(140)管理(226)逻辑分区与USB设备之间的USB数据通信。在图2的方法中,通过使用DMA将源自USB设备的USB数据(224)从主机USB适配器取回(228)到逻辑USB适配器的专用存储区域(190)中来执行管理(226)USB数据通信。
为了进一步说明,图3是示出根据本发明的实施例的用于虚拟化主机USB适配器的进一步示例性方法的流程图。图3的方法与图2的方法的类似之处在于,图3的方法在管理一个或多个逻辑分区(图1上的106、118)的***管理程序(130)所维护的虚拟化环境中执行。图3的方法与图2的方法的类似之处还在于,图3的方法包括接收(210)USB I/O请求(212),将WQE(140)放入(220)与逻辑USB适配器关联的队列对(134、136)内的一个队列(136)中,以及通过使用DMA将USB数据(224)从主机USB适配器取回(228)到逻辑USB适配器的专用存储区域(190)中来管理(226)逻辑分区与USB设备之间的USB数据通信。
但是图3的方法与图2的方法的不同之处在于,图3的方法还包括由***管理程序(130)启动(302)与主机USB适配器耦合的USB设备的USB设备发现。在图2的方法中,启动(302)与主机USB适配器耦合的USB设备的USB设备发现通过以下操作实现:为每个发现的USB设备分配(304)物理设备地址(310)并且从每个发现的USB设备取回(306)包括描述所述USB设备的信息的设备描述符(312)。所述***管理程序可以生成包括每个发现的设备的物理设备地址(310)和设备描述符(312)的目前发现的USB设备的表(308)。
图3的方法还包括由***管理程序(130)从配置管理器接收(314)每个发现的USB设备到一个或多个逻辑分区(318)的分配(316)。图3的方法还包括由***管理程序(130)为分配给逻辑分区的每个USB设备建立(320)队列对(134、136)。
为了进一步说明,图4是示出根据本发明的实施例的用于虚拟化主机USB适配器的进一步示例性方法的流程图。图4的方法与图2的方法的类似之处在于,图4的方法在管理一个或多个逻辑分区(图1上的106、118)的***管理程序(130)所维护的虚拟化环境中执行。图4的方法与图2的方法的类似之处还在于,图4的方法包括接收(210)USB I/O请求(212),将WQE(140)放入(220)与逻辑USB适配器关联的队列对(134、136)内的一个队列(136)中,以及通过使用DMA将USB数据(224)从主机USB适配器取回(228)到逻辑USB适配器的专用存储区域(190)来管理(226)逻辑分区与USB设备之间的USB数据通信。
但是图4的方法与图2的方法不同之处在于,图4的方法还包括由***管理程序接收(402)附加USB设备已被耦合到主机USB适配器的指示。所述***管理程序接收(402)附加USB设备已被耦合到主机USB适配器的指示可以通过各种方式实现,包括例如接收在将附加USB设备连接到下游USB集线器或主机USB适配器时出现的硬件中断。
图4的方法还包括由***管理程序(130)为所述附加USB设备分配(404)物理设备地址;由***管理程序(130)从所述附加USB设备取回(406)包括描述所述附加USB设备的信息的设备描述符;以及由***管理程序(130)通过配置管理器提供的信息判定(408)所述附加USB设备目前是否被分配给逻辑分区。判定(408)所述附加USB设备目前是否被分配给逻辑分区可以通过检查设备分配表(316)中是否存在所述附加USB设备的诸如序列号之类的设备描述符或部分设备描述符(312)以及任何关联的分区标识符(318)来实现。
如果所述附加USB设备目前未被分配给一个或多个逻辑分区,图4的方法继续执行且***管理程序(130)不为USB设备建立(414)队列对。如果所述附加USB设备目前被分配给一个或多个逻辑分区,图4的方法继续执行且***管理程序(130)将为分配了所述附加USB设备的每个逻辑分区建立(410)队列对(134、136)。
图4的方法还包括由***管理程序(130)向分配了所述附加USB设备的每个逻辑分区提供(412)所述附加USB设备的指示。所述***管理程序可以通过触发为此目的设计的分区操作***中的软件中断或以本领域的技术人员将想到的其他方式向分配了所述附加USB设备的每个逻辑分区提供(412)所述附加USB设备的指示。
为了进一步说明,图5是示出根据本发明的实施例的用于虚拟化主机USB适配器的进一步示例性方法的流程图。图5的方法与图2的方法的类似之处在于,图5的方法在管理一个或多个逻辑分区(图1上的106、118)的***管理程序(130)所维护的虚拟化环境中执行。图5的方法与图2的方法的类似之处还在于,图5的方法包括接收(210)USB I/O请求(212),将WQE(140)放入(220)与逻辑USB适配器关联的队列对(134、136)内的一个队列(136)中,以及通过使用DMA将USB数据(224)从主机USB适配器取回(228)到逻辑USB适配器的专用存储区域(190)来管理(226)逻辑分区与USB设备之间的USB数据通信。
但是图5的方法与图2的方法的不同之处在于,图5的方法还包括由***管理程序(130)接收(502)特定USB设备已被从主机USB适配器去耦的指示;由***管理程序(130)禁用(504)与所述特定USB设备关联的所有队列对;以及由***管理程序(130)向分配了所述特定USB设备的每个逻辑分区提供(506)移除了所述特定USB设备的指示。
鉴于上述说明,读者将认识到根据本发明的实施例的虚拟化主机USB适配器的益处包括:
●一个物理硬件由许多分区共享。客户不必针对每个逻辑分区购买单独的适配器来实现USB连通性。这同时节省了适配器和机壳、线路连接以及适配器的其他物理属性的成本。
●不需要设备驱动器或分区之间进行协作。
●提供了完全的硬件隔离和保护。即使分区的操作错误,也没有任何一个分区能够通过虚拟化USB硬件破坏另一分区。
●不需要对现有USB基础结构进行任何更改便可根据本发明的实施例执行虚拟化。各实施例可与标准的现成组件和管理软件具有完全的互操作性。
●USB适配器对于网络而言似乎是正常的主机USB适配器。
●逻辑USB适配器就像正常工作的USB适配器那样提供零拷贝写/读功能,因此使用逻辑USB适配器时不会付出任何性能代价。
●通过减少适配器、用于适配器的机壳以及USB设备的数目,显著节约了电力。
●通过虚拟化USB适配器显著节省了CPU处理功率和存储器。
●可以在不更改当前操作***的USB设备驱动器的情况下与根据本发明的实施例虚拟化的USB主机适配器一起工作。
如本领域的技术人员将理解的,本发明的各个方面可以体现为***、方法或计算机程序产品。因此,本发明的各个方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或组合了在此通常被称为“电路”、“模块”或“***”的软件和硬件方面的实施例的形式。此外,本发明的各方面可以采取体现在一个或多个计算机可读介质(其上包含计算机可读程序代码)中的计算机程序产品的形式。
可以使用一个或多个计算机可读介质的任意组合。所述计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质例如可以是(但不限于)电、磁、光、电磁、红外线或半导体***、装置或设备,或上述介质的任意适当的组合。计算机可读存储介质的更具体的实例(非穷举列表)将包括以下项:具有一条或多条线的电连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦写可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光存储设备、磁存储设备或上述任意介质的适当组合。在本文档的上下文中,计算机可读介质可以是任何能够包含或存储由指令执行***、装置或设备使用或与指令执行***、装置或设备结合的程序的有形介质。
计算机可读信号介质可以包括其中包含计算机可读程序代码(在基带中或作为载波的一部分)的传播数据信号。此类传播信号可以采取多种形式中的任意一种形式,其中包括但不限于电磁、光或它们的任意适当组合。计算机可读信号介质可以是计算机可读存储介质以外的任何能够传送、传播或传输由指令执行***、装置或设备使用或与指令执行***、装置或设备结合的程序的计算机可读介质。
计算机可读介质上包含的程序代码可使用任何适当的介质来传送,所述介质包括但不限于无线、线缆、光缆、RF等或上述介质的任意适当组合。
用于执行本发明的各方面的操作的计算机程序代码可以使用一种或多种编程语言的任意组合来编写,所述编程语言包括诸如Java、Smalltalk、C++之类的面向对象的编程语言或者诸如“C”编程语言或类似的编程语言之类的常规过程编程语言。所述程序代码可以完全地在用户的计算上执行、部分地在用户的计算机上执行、作为一个独立的软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何种类的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者,可以(例如利用因特网服务提供商来通过因特网)连接到外部计算机。
上面参考根据本发明的实施例的方法、装置(***)和计算机程序产品的流程图和/或方块图对本发明的各个方面进行了描述。将理解,所述流程图和/或方块图的每个方块以及所述流程图和/或方块图中的方块的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,以便通过所述计算机或其他可编程数据处理装置的处理器执行的所述指令产生用于实现一个或多个流程图和/或方块图方块中指定的功能/操作的装置。
这些计算机程序指令也可以被存储在可引导计算机、其他可编程数据处理装置或其他设备以特定方式执行功能的计算机可读介质中,以便存储在所述计算机可读介质中的所述指令产生一件包括实现在所述一个或多个流程图和/或方块图方块中指定的功能/操作的指令的制品。
所述计算机程序指令还可被加载到计算机、其他可编程数据处理装置或其他设备,以导致在所述计算机或其他可编程装置或其他设备上执行一系列操作步骤以产生计算机实现的过程,从而在所述计算机或其他可编程装置上执行的指令提供用于实现在一个或多个流程图和/或方块图方块中指定的功能/操作的过程。
附图中的流程图和方块图示出了根据本发明的各种实施例的***、方法和计算机程序产品的可能实施方式的架构、功能和操作。在此方面,所述流程图或方块图中的每个方块都可以表示代码的模块、段或部分,所述代码包括用于实现指定的逻辑功能(多个)的一个或多个可执行指令。还应指出,在某些备选实施方式中,在方块中说明的功能可以不按图中说明的顺序发生。例如,示为连续的两个方块可以实际上被基本同时地执行,或者某些时候,取决于所涉及的功能,可以以相反的顺序执行所述方块。还将指出,所述方块图和/或流程图的每个方块以及所述方块图和/或流程图中的方块的组合可以由执行指定功能或操作的基于专用硬件的***或专用硬件和计算机指令的组合来实现。
通过上述说明将理解,可以在不偏离本发明的实际精神的情况下对本发明的各种实施例做出修改和更改。本说明书中的描述仅为了进行说明,并非旨在做出任何限制。本发明的范围仅由以下权利要求的语言限定。

Claims (12)

1.一种虚拟化由***管理程序维护的虚拟化环境中的主机通用串行总线USB适配器的方法,所述***管理程序管理一个或多个逻辑分区,所述方法包括:
由所述***管理程序经由逻辑USB适配器从逻辑分区接收USB输入/输出I/O请求,所述逻辑USB适配器与耦合到所述主机USB适配器的USB设备关联;
由所述***管理程序将工作队列单元WQE放入与所述逻辑USB适配器关联的队列对内的一个队列中;以及
由接口设备根据所述WQE管理所述逻辑分区与所述USB设备之间的USB数据通信,所述通信包括使用直接存储器存取DMA将源自所述USB设备的USB数据从所述主机USB适配器取回到所述逻辑USB适配器的专用存储区域中。
2.如权利要求1中所述的方法,还包括:
根据所述USB I/O请求中指定的虚拟地址范围注册所述专用存储区域,其中:
将WQE放入与所述逻辑USB适配器关联的队列对内的一个队列中进一步包括:将所述USB I/O请求中包括的所述USB设备的逻辑设备地址转换为所述USB设备的物理设备地址;
所述WQE进一步包括传输类型、所述USB设备的物理设备地址、端点标识符以及包括所述专用存储区域的所述虚拟地址范围的指定的描述符列表。
3.如权利要求1中所述的方法,还包括由所述***管理程序启动与所述主机USB适配器耦合的USB设备的USB设备发现,其中包括:为每个发现的USB设备分配物理设备地址,以及从每个发现的USB设备取回包括描述所述USB设备的信息的设备描述符。
4.如权利要求2中所述的方法,还包括:
由所述***管理程序从配置管理器接收每个发现的USB设备到一个或多个逻辑分区的分配;以及
由所述***管理程序为分配给逻辑分区的每个USB设备建立队列对。
5.如权利要求1中所述的方法,还包括:
由所述***管理程序接收附加USB设备已被耦合到所述主机USB适配器的指示;
由所述***管理程序为所述附加USB设备分配物理设备地址;
由所述***管理程序从所述附加USB设备取回包括描述所述附加USB设备的信息的设备描述符;
由所述***管理程序根据配置管理器提供的信息判定所述附加USB设备当前是否被分配给逻辑分区;
如果所述附加USB设备当前被分配给一个或多个逻辑分区,则由所述***管理程序为分配了所述附加USB设备的每个所述逻辑分区建立一个队列对;以及
由所述***管理程序向分配了所述附加USB设备的每个逻辑分区提供所述附加USB设备的指示。
6.如权利要求1中所述的方法,还包括:
由所述***管理程序接收特定USB设备已被从所述主机USB适配器去耦的指示;
由所述***管理程序禁用与所述特定USB设备关联的所有队列对;以及
由所述***管理程序向分配了所述特定USB设备的每个逻辑分区提供移除了所述特定USB设备的指示。
7.一种虚拟化由***管理程序维护的虚拟化环境中的主机通用串行总线USB适配器的装置,所述***管理程序管理一个或多个逻辑分区,所述装置包括计算机处理器、在操作上耦合到所述计算机处理器的计算机存储器,所述计算机存储器中包含能够执行以下操作的计算机程序指令:
由所述***管理程序经由逻辑USB适配器从逻辑分区接收USB输入/输出I/O请求,所述逻辑USB适配器与耦合到所述主机USB适配器的USB设备关联;
由所述***管理程序将工作队列单元WQE放入与所述逻辑USB适配器关联的队列对内的一个队列中;以及
由接口设备根据所述WQE管理所述逻辑分区与所述USB设备之间的USB数据通信,所述通信包括使用直接存储器存取DMA将源自所述USB设备的USB数据从所述主机USB适配器取回到所述逻辑USB适配器的专用存储区域中。
8.如权利要求7中所述的装置,还包括能够执行以下操作的计算机程序指令:
根据所述USB I/O请求中指定的虚拟地址范围注册所述专用存储区域,其中:
将WQE放入与所述逻辑USB适配器关联的队列对内的一个队列中进一步包括:将所述USB I/O请求中包括的所述USB设备的逻辑设备地址转换为所述USB设备的物理设备地址;
所述WQE进一步包括传输类型、所述USB设备的物理设备地址、端点标识符以及包括所述专用存储区域的所述虚拟地址范围的指定的描述符列表。
9.如权利要求7中所述的装置,还包括由所述***管理程序启动与所述主机USB适配器耦合的USB设备的USB设备发现,其中包括:为每个发现的USB设备分配物理设备地址,以及从每个发现的USB设备取回包括描述所述USB设备的信息的设备描述符。
10.如权利要求8中所述的装置,还包括能够执行以下操作的计算机程序指令:
由所述***管理程序从配置管理器接收每个发现的USB设备到一个或多个逻辑分区的分配;以及
由所述***管理程序为分配给逻辑分区的每个USB设备建立队列对。
11.如权利要求7中所述的装置,还包括能够执行以下操作的计算机程序指令:
由所述***管理程序接收附加USB设备已被耦合到所述主机USB适配器的指示;
由所述***管理程序为所述附加USB设备分配物理设备地址;
由所述***管理程序从所述附加USB设备取回包括描述所述附加USB设备的信息的设备描述符;
由所述***管理程序根据配置管理器提供的信息判定所述附加USB设备当前是否被分配给逻辑分区;
如果所述附加USB设备当前被分配给一个或多个逻辑分区,则由所述***管理程序为分配了所述附加USB设备的每个所述逻辑分区建立一个队列对;以及
由所述***管理程序向分配了所述附加USB设备的每个逻辑分区提供所述附加USB设备的指示。
12.如权利要求7中所述的装置,还包括能够执行以下操作的计算机程序指令:
由所述***管理程序接收特定USB设备已被从所述主机USB适配器去耦的指示;
由所述***管理程序禁用与所述特定USB设备关联的所有队列对;以及
由所述***管理程序向分配了所述特定USB设备的每个逻辑分区提供移除了所述特定USB设备的指示。
CN2011100045653A 2010-01-12 2011-01-11 虚拟化主机usb适配器的方法和装置 Pending CN102129384A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/685,842 US9507619B2 (en) 2010-01-12 2010-01-12 Virtualizing a host USB adapter
US12/685,842 2010-01-12

Publications (1)

Publication Number Publication Date
CN102129384A true CN102129384A (zh) 2011-07-20

Family

ID=44259385

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011100045653A Pending CN102129384A (zh) 2010-01-12 2011-01-11 虚拟化主机usb适配器的方法和装置

Country Status (5)

Country Link
US (1) US9507619B2 (zh)
JP (1) JP6004608B2 (zh)
KR (1) KR101807310B1 (zh)
CN (1) CN102129384A (zh)
TW (1) TWI596485B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108140000A (zh) * 2015-10-29 2018-06-08 英特尔公司 具有usb c型适配器的电池充电器
CN108366129A (zh) * 2018-03-08 2018-08-03 北京淳中科技股份有限公司 Usb数据传输方法、装置及usb适配器
CN109587076A (zh) * 2017-09-28 2019-04-05 英特尔公司 对数据重新排序以用于并行处理
CN112130755A (zh) * 2019-06-25 2020-12-25 美光科技公司 具有多个主机接口的聚合和虚拟化固态驱动器
CN114265806A (zh) * 2021-12-17 2022-04-01 威创集团股份有限公司 一种实现usb数据信号共享的方法、装置、设备和存储介质

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8572362B2 (en) * 2010-03-16 2013-10-29 International Business Machines Corporation Preinstalled operating system instances stored on removable storage devices
US8856407B2 (en) * 2011-11-23 2014-10-07 Red Hat, Inc. USB redirection for write streams
US9311122B2 (en) * 2012-03-26 2016-04-12 Oracle International Corporation System and method for providing a scalable signaling mechanism for virtual machine migration in a middleware machine environment
US9397954B2 (en) 2012-03-26 2016-07-19 Oracle International Corporation System and method for supporting live migration of virtual machines in an infiniband network
US8973019B1 (en) * 2012-11-09 2015-03-03 Parallels IP Holdings GmbH Method and system for emulation of super speed devices in virtual machines
US20140160954A1 (en) 2012-12-12 2014-06-12 International Business Machines Corporation Host ethernet adapter frame forwarding
US10097534B2 (en) * 2015-08-28 2018-10-09 Dell Products L.P. System and method to redirect hardware secure USB storage devices in high latency VDI environments
US9760730B2 (en) 2015-08-28 2017-09-12 Dell Products L.P. System and method to redirect and unlock software secure disk devices in a high latency environment
CN106959927B (zh) * 2016-01-08 2020-08-25 阿里巴巴集团控股有限公司 获取虚拟机中的逻辑分区的位置信息的方法及装置
US10795608B2 (en) * 2016-02-19 2020-10-06 Hitachi, Ltd. Computer, communication driver, and communication control method
US9990222B2 (en) 2016-03-18 2018-06-05 Airwatch Llc Enforcing compliance rules against hypervisor and virtual machine using host management component
US20180088978A1 (en) * 2016-09-29 2018-03-29 Intel Corporation Techniques for Input/Output Access to Memory or Storage by a Virtual Machine or Container
US11586458B2 (en) * 2020-02-26 2023-02-21 Red Hat, Inc. Fast device discovery for virtual machines

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030035433A1 (en) * 2001-08-16 2003-02-20 International Business Machines Corporation Apparatus and method for virtualizing a queue pair space to minimize time-wait impacts
US6636929B1 (en) * 2000-04-06 2003-10-21 Hewlett-Packard Development Company, L.P. USB virtual devices
US20040205253A1 (en) * 2003-04-10 2004-10-14 International Business Machines Corporation Apparatus, system and method for controlling access to facilities based on usage classes
US20090006702A1 (en) * 2007-06-26 2009-01-01 Nitin Sarangdhar Sharing universal serial bus isochronous bandwidth between multiple virtual machines

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI311325B (en) * 2006-11-16 2009-06-21 Elite Semiconductor Esmt Transmission method for serial periphery interface serial flash
US20090006690A1 (en) * 2007-06-27 2009-01-01 Balaji Vembu Providing universal serial bus device virtualization with a schedule merge from multiple virtual machines
JP2009187368A (ja) 2008-02-07 2009-08-20 Hitachi Ltd Usbポートの共有制御方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6636929B1 (en) * 2000-04-06 2003-10-21 Hewlett-Packard Development Company, L.P. USB virtual devices
US20030035433A1 (en) * 2001-08-16 2003-02-20 International Business Machines Corporation Apparatus and method for virtualizing a queue pair space to minimize time-wait impacts
US20040205253A1 (en) * 2003-04-10 2004-10-14 International Business Machines Corporation Apparatus, system and method for controlling access to facilities based on usage classes
US20090006702A1 (en) * 2007-06-26 2009-01-01 Nitin Sarangdhar Sharing universal serial bus isochronous bandwidth between multiple virtual machines

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108140000A (zh) * 2015-10-29 2018-06-08 英特尔公司 具有usb c型适配器的电池充电器
CN109587076A (zh) * 2017-09-28 2019-04-05 英特尔公司 对数据重新排序以用于并行处理
CN108366129A (zh) * 2018-03-08 2018-08-03 北京淳中科技股份有限公司 Usb数据传输方法、装置及usb适配器
CN108366129B (zh) * 2018-03-08 2019-05-07 北京淳中科技股份有限公司 Usb数据传输方法、装置及usb从设备适配器
CN112130755A (zh) * 2019-06-25 2020-12-25 美光科技公司 具有多个主机接口的聚合和虚拟化固态驱动器
CN114265806A (zh) * 2021-12-17 2022-04-01 威创集团股份有限公司 一种实现usb数据信号共享的方法、装置、设备和存储介质
CN114265806B (zh) * 2021-12-17 2024-04-02 威创集团股份有限公司 一种实现usb数据信号共享的方法、装置、设备和存储介质

Also Published As

Publication number Publication date
TW201202942A (en) 2012-01-16
TWI596485B (zh) 2017-08-21
US9507619B2 (en) 2016-11-29
KR101807310B1 (ko) 2018-01-10
JP6004608B2 (ja) 2016-10-12
US20110173353A1 (en) 2011-07-14
KR20110083518A (ko) 2011-07-20
JP2011146044A (ja) 2011-07-28

Similar Documents

Publication Publication Date Title
CN102129384A (zh) 虚拟化主机usb适配器的方法和装置
JP6871957B2 (ja) エミュレートされたエンドポイントコンフィグレーション
CN107278299B (zh) 经由可重配置的虚拟交换机实现次级总线功能性的方法、装置和***
CN108021518B (zh) 一种数据交互方法和计算设备
US9311110B2 (en) Techniques to initialize from a remotely accessible storage device
US9467511B2 (en) Techniques for use of vendor defined messages to execute a command to access a storage device
CN104636076B (zh) 一种用于云存储的分布式块设备驱动方法和***
CN102567074B (zh) 一种面向虚拟机的usb设备重定向方法
CN106030548B (zh) 用于可信计算的多节点中枢
US7617400B2 (en) Storage partitioning
US20210311629A1 (en) Trusted memory sharing mechanism
US8990451B2 (en) Controller for direct access to a memory for the direct transfer of data between memories of several peripheral devices, method and computer program enabling the implementation of such a controller
US20120210000A1 (en) Registering Devices For Network Access
CN107516199A (zh) 云平台的容器计费方法、装置及***、设备、存储介质
US20160224479A1 (en) Computer system, and computer system control method
US20190121765A1 (en) System, Apparatus And Method For Hardware-Based Bi-Directional Communication Via Reliable High Performance Half-Duplex Link
CN113010470A (zh) 边缘节点远程控制***、方法、设备及存储介质
US7263568B2 (en) Interrupt system using event data structures
JP5904948B2 (ja) システムのいくつかの構成要素のメモリ間の直接データ転送を許可するそのシステム
CN109683917A (zh) 用于将应用部署于应用服务器的方法、设备以及介质
CN105279110B (zh) 一种usb设备识别主机***的方法及usb设备
US20070300051A1 (en) Out of band asset management
CN113138946B (zh) 一种基于嵌入式Linux的USB数据映射过滤方法及装置
US20220004635A1 (en) Computing peripheral interface management mechanism
Yang et al. uNVMe-TCP: a user space approach to optimizing NVMe over fabrics TCP transport

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20110720