CN1902585A - 用于与支持多个设备的网络适配器接口的方法、系统和程序 - Google Patents

用于与支持多个设备的网络适配器接口的方法、系统和程序 Download PDF

Info

Publication number
CN1902585A
CN1902585A CNA2004800403115A CN200480040311A CN1902585A CN 1902585 A CN1902585 A CN 1902585A CN A2004800403115 A CNA2004800403115 A CN A2004800403115A CN 200480040311 A CN200480040311 A CN 200480040311A CN 1902585 A CN1902585 A CN 1902585A
Authority
CN
China
Prior art keywords
equipment
operating system
driver
supported
network adapter
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.)
Granted
Application number
CNA2004800403115A
Other languages
English (en)
Other versions
CN1902585B (zh
Inventor
拉杰什·萨赫
阿尼尔·凯沙瓦默西
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN1902585A publication Critical patent/CN1902585A/zh
Application granted granted Critical
Publication of CN1902585B publication Critical patent/CN1902585B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Small-Scale Networks (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)
  • Multi Processors (AREA)

Abstract

所提供的为用于与支持多个设备的设备硬件进行接口的方法、系统和程序。设备接口驱动器被初始化,以针对操作系统将设备硬件表示为虚拟总线,并且针对操作系统将在设备硬件中被支持的每个设备表示为附接到虚拟总线的设备。初始化设备硬件,并且访问设备硬件,以确定被设备硬件支持的设备。针对被设备硬件支持的每个确定的设备生成一个设备对象,其中每个生成的设备对象针对操作系统表示确定的设备。向操作系统报告确定的设备,其中操作系统针对被设备硬件支持的被报告的设备中的每一个加载设备驱动器。

Description

用于与支持多个设备的网络适配器接口的方法、系统和程序
发明背景
1.发明领域
本发明涉及用于与支持多个设备的网络适配器接口的方法、系统和程序。
2.相关领域描述
在网络环境中,主计算机上的网络适配器(诸如以太网卡、光纤信道卡等)接收输入/输出(I/O)请求或对由主机发起的I/O请求的响应。通常,主计算机操作系统包括与网络适配器硬件通信的设备驱动器(device driver),以管理在网络上进行传输的I/O请求。设备驱动器要求大量的主处理器资源来处理对网络适配器的网络传输请求。一种降低主处理器的负荷的技术是使用传输控制协议(TCP)/因特网协议(IP)卸载引擎(TOE),其中TCP/IP协议相关的操作由与设备驱动器形成对比的网络适配器硬件来支持,由此使得主处理器不必执行TCP/IP协议相关的操作。传送协议操作包括用校验和以及其他信息将数据封装为TCP/IP分组(packet),并且解封装从网络上接收的TCP/IP分组,以访问有效载荷(payload)或数据。
网络适配器可以具有针对不同转移协议来处理流量的能力。对于网络适配器所支持的每个协议,主操作系统可以加载不同的软件设备驱动器来使操作系统能够相对于该协议来与网络适配器接口。然后每个设备驱动器会将分组转移到网络适配器,以进行进一步的处理和传输。
附图简要说明
现在参考附图,在所有附图中类似的参考数字代表对应的部分:
图1示出在其中实现本发明的方面的计算环境;
图2根据本发明的实施方案示出由操作系统执行以与网络适配器通信的操作;
图3、4、5和6根据本发明的实施方案示出被执行以在操作系统和网络适配器之间进行接口的操作;
图7示出可以与所描述的实施方案一起使用的体系结构。
详细描述
在以下描述中将参考附图,这些附图构成了描述的一部分,并且图示了本发明的几种实施方案。可以理解,也可以使用其他实施方案并且可以作出结构和操作上的改变,而不偏离本发明的范围。
图1示出在其中可以实现本发明的方面的计算环境。计算机2包括一个或更多个中央处理单元(CPU)4(仅示出一个)、易失性存储器6、非易失性储存设备8、操作系统10,以及与网络上的远程节点通信并从所述远程节点接收数据的网络适配器12。再有,应用程序14在存储器6中执行,并且能够从远程计算机传输和接收分组。计算机2可以包括任何领域内已知的计算设备,例如大型机、服务器、个人计算机、工作站、膝上型计算机、手持式计算机、电话设备、网络装置、虚拟化设备、储存控制器等。可以使用各种领域内已知的CPU 4和操作系统10。存储器6中的程序和数据可以被交换到储存设备8中,作为存储器管理操作的一部分。适配器12所连接到的网络可以包括领域内已知的网络,例如局域网(LAN)、广域网(WAN)、储存区域网(SAN)、因特网和内部网等等。此外,适配器12可以提供网络连接或点对点连接。
一旦检测到网络适配器12的存在,操作系统10可以加载适配器虚拟总线驱动器20,这可以在初始化期间发生,或者在例如即插即用(plug-and-play)设备初始化的情况下动态地发生。虚拟总线驱动器20包括针对操作系统表示网络适配器12的设备接口驱动器。在某些实施方案中,适配器虚拟总线驱动器20将网络适配器12表示为针对操作系统的虚拟总线,例如PCI总线,并且报告在所述虚拟总线上存在着多个虚拟适配器,所有这些适配器都被所述网络适配器支持。虚拟总线上被报告的虚拟设备中的每一个与网络适配器12所支持的不同设备协议相对应,所述设备协议例如iSCSI、卸载的LAN(offloaded LAN)驱动器、非卸载的LAN(non-offloaded LAN)驱动器、光纤信道等等。针对被报告为附接到由适配器虚拟总线驱动器20所表示的虚拟总线的每个设备,操作系统10会加载协议设备驱动器22a、22b、22c。此外,适配器虚拟总线驱动器20会加载设备对象(device object)24a、24b、24c来表示网络适配器12所支持的每个设备。在图1的实施方案中,操作系统10加载三个协议设备驱动器22a、22b、22c。然而,针对网络适配器12所支持的不同转移协议,适配器虚拟总线驱动器20可以进行报告,并且操作系统10响应于此,可以加载任意数量的设备驱动器。
在某些实施方案中,适配器虚拟总线驱动器20会将网络适配器12作为单个总线函数(例如PCI函数)报告给操作系统10,所述网络适配器支持多个协议设备,并且向操作系统12呈现为具有多个附接的协议设备的虚拟总线。设备驱动器22a、22b、22c使用该总线函数(即适配器虚拟总线驱动器20)来访问例如寄存器的网络适配器12硬件的资源,从而控制用于设备的总线函数的设备驱动器承担对全部设备硬件的控制。针对整个网络适配器12提供单个总线函数的实施方案会防止多个设备驱动器执行关于网络适配器12硬件的冲突操作,例如对相同寄存器的写操作等。以这种方式,适配器虚拟总线驱动器协调设备驱动器22a、22b、22c对网络适配器12所支持的所有设备30a、30b、30c的访问。
适配器虚拟总线驱动器20还会实现中断服务例程(routine),当工作完成或失败时,例如当分组被成功地接收或传输时,所述中断服务例程由网络适配器12来通知。适配器虚拟总线驱动器20在总线接口26上与网络适配器12通信,所述总线接口26可以实现领域内已知的总线协议,例如外设部件互连(PCI)总线技术或它的变体,例如PCI Express、PCI-x等等。以这种方式,适配器虚拟总线驱动器20通过生成设备对象24a、24b、24c来仿真针对设备驱动器22a、22b、22c的总线,其中所述设备对象24a、24b、24c仿真附接到由适配器总线驱动器20所仿真的总线的设备。以这种方式,对于操作系统来说,设备驱动器22a、22b、22c与适配器虚拟总线驱动器20进行交互,如同所述适配器虚拟总线驱动器20是总线接口驱动器,所述总线接口驱动器表示具有针对设备对象24a、24b、24c的支持不同通信协议的附接设备的总线,所述设备对象24a、24b、24c表示设备30a、30b、30c。
图1示出支持多个设备30a、30b、30c的网络适配器12,其中每个设备支持一种通信协议,例如因特网小型计算机系统接口(“iSCSI”)、非卸载的LAN驱动器、卸载的LAN驱动器等等。iSCSI协议包括在TCP/IP栈(stack)之上用于在TCP/IP上运载SCSI命令的应用层,并且典型地用于储存网络。使用在这里,术语“iSCSI”是指由IETF(因特网工程任务组)标准主体所定义的iSCSI协议以及该协议的任何变体的句法(syntax)和语义(semantic)。在当前的其中使用iSCSI的储存网络中,分组配置包括以太网封装,所述以太网封装囊括(encapsulate)因特网协议(IP)和传输控制协议(TCP)封装层,并且还囊括包括一条或更多条SCSI命令的iSCSI封装。当分组在任何网络段(链路)上从点流到点时,以太网协议提供链路层的错误校验,以确定数据在链路上传递时是否已经被破坏。iSCSI引擎34a支持iSISC相关处理,例如解封装iSCSI头部以访问其中诸如SCSI数据的数据,并且TCP引擎35a支持被卸载到适配器12上的TCP/IP协议处理。
例如在设备30b中实现的非卸载的LAN,是指其中TCP协议层处理主要在主存储器6中的设备驱动器22b中被支持的实施方案,在提供适配器12上的TCP支持的非卸载的LAN引擎34b中具有较少的TCP/IP支持。例如实现在设备30c中的卸载的LAN,是指其中TCP层处理主要在网络适配器12上的卸载的LAN引擎34c中被支持的实施方案。可以包括提供用于支持不同通信协议处理的引擎的额外的或不同的设备,所述不同通信协议例如基于IP的光纤信道、远程直接存储器访问(RDMA)、光纤信道等等,其中这些额外的协议可以位于TCP之上,或者可以替代TCP使用。此外,对于每一个被支持的通信协议,网络适配器中的一个设备可以支持所述通信协议的卸载的版本,即其中所述协议主要在网络适配器中被支持,并且网络适配器中的另一个设备可以支持所述通信协议的非卸载的版本,即其中所述协议主要在主设备驱动器中被支持。
对于每一个被支持的设备30a、30b、30c,网络适配器12可以具有用于排队从适配器虚拟总线驱动器20接收的分组的协议队列32a、32b、32c,协议传送卸载引擎34a、34b、34c,以及网络协议层36a、36b、36c。网络协议层36a、36b、36c支持通信协议的网络层,例如IP。网络层36a、36b、36c处理网络通信,并且将接收的分组提供给传送协议引擎32a、32b、32c。网络协议层36a、36b、36c可以执行诸如交换和路由、创建用于将数据从节点传输到节点的被称为虚拟电路(virtual circuit)的逻辑路径、路由和转发、寻址、互相连网、错误处理、拥塞控制和分组排序的操作,以及其他领域内已知的网络层操作。物理接口38a、38b提供数据转移通过的电气硬件和组件(component),包括电气组件、线缆等。物理接口可以在铜线、电缆(例如5类电缆)、无线发射机和接收机等上传送数据。设备30a、30b、30c可以共享物理接口38a、38b,或者可替换地,某些设备30a、30b、30c可以被指派为使用具体的物理接口38a、38b。还可以支持额外的通信层,例如处理到分组的目的地的物理和逻辑连接(例如以太网协议处理)的定义网络上数据格式的数据链路层、会话层、表示层和应用层。
此外,图1针对每个设备协议示出一个协议队列30a、30b、30c,用于缓冲针对该设备接收的分组。然而,在替换的实施方案中,可以使用一个队列来缓冲针对不同设备和传送卸载引擎32a、32b、32c的分组。此外,网络协议层36a、36b、36c可以包括用于所有不同设备30a、30b、30c的单个网络协议层组件,而不是如图1中所示的分开的多个网络协议层。
图2示出一旦检测到(在框100)网络适配器12在总线26上的存在,操作系统12执行的操作。操作系统12可以在初始化期间巡查(walk)总线26以检测所有设备时检测网络适配器12,或者可以在初始化之后动态地检测网络适配器12。一旦检测到网络适配器12,操作系统12加载(在框102)并调用适配器虚拟总线驱动器20。
然后,控制前进到图3,图3表示当适配器虚拟总线驱动器20被操作系统10调用(框150)时所述适配器虚拟总线驱动器20执行的操作。一旦被初始调用(在框150),适配器虚拟总线驱动器20通过设置寄存器等操作初始化(在框152)网络适配器12硬件。如果(在框154)初始化未成功,则向操作系统10报告(在框156)初始化失败。否则,如果初始化成功,则适配器虚拟总线驱动器20读取(在框158)网络适配器12硬件配置设置,以确定网络适配器12所支持的设备30a、30b、30c。协议可以被对应驱动器22a、22b、22c以及硬件30a、30b、30c支持。一旦确定被支持的设备,虚拟总线驱动器20针对在网络适配器12中被支持的每个确定的设备30a、30b、30c创建(在框160)设备对象24a、24b、24c。设备对象24a、24b、24c会针对操作系统12将确定的设备30a、30b、30c表示为附接到由适配器虚拟总线驱动器20表示的虚拟总线上的虚拟设备。虚拟总线驱动器20还会将由设备对象24a、24b、24c表示的子虚拟设备(child virtual device)(包括它们的即插即用和功率管理相关性(dependency))向操作系统10报告(在框162)为附接到所述虚拟总线。
在某些即插即用实施方案中,适配器虚拟总线驱动器20可以将被支持的设备报告为依赖于虚拟总线,即该设备由所述虚拟总线驱动器支持。这种被报告的相关性会防止操作系统10在移除针对网络适配器12所支持的所有虚拟设备而被加载的所有相关子设备驱动器22a、22b、22c之前动态地移除适配器虚拟总线驱动器20,所述所有虚拟设备被报告为依赖于虚拟总线驱动器22。此外,虚拟总线驱动器20可以向操作系统10功率管理装置报告,只要相关的设备驱动器22a、22b、22c栈中的任何设备处于完全功率状态下,操作系统12功率管理器就不能将由适配器虚拟总线驱动器20表示的虚拟总线(即网络适配器10)置为较低功率状态。这会要求操作系统12功率管理器在试图将由适配器虚拟总线驱动器20表示的设备(即虚拟总线)置为较低功率状态之前,将所有相关的设备驱动器22a、22b、22c栈置为较低功率状态。因此,操作系统10必须对所有被网络适配器12支持的设备30a、30b、30c执行可以影响整个适配器12的状态改变操作,例如动态地移除设备驱动器或功率改变,其中所述设备30a、30b、30c对于操作系统来说呈现为在虚拟总线之后的单独的虚拟设备。此外,一旦设备可获得,虚拟适配器总线驱动器12可以针对该新检测到的设备动态地加载设备驱动器和设备对象。
关于图2,在调用适配器虚拟总线驱动器20进行初始化后,一旦操作系统12从驱动器20接收到(在框104)响应,如果(在框106)虚拟总线驱动器20的加载和初始化未成功,则适配器虚拟总线驱动器20被解加载(unload)(在框108);否则,操作系统10针对每个被报告的在网络适配器12中被支持的设备加载(在框110)设备驱动器22a、22b、22c,操作系统12将所述设备驱动器22a、22b、22c视为由虚拟总线上的设备对象24a、24b...24cn所表示的虚拟设备,所述虚拟总线由适配器虚拟总线驱动器20表示。
图4示出一旦从设备驱动器22a、22b、22c中的一个接收到(在框200)要发送给网络适配器12所支持的一个设备30a、30b、30c的分组,适配器虚拟总线驱动器20执行的操作。该分组可以寻址到表示该分组被引导到的虚拟设备的设备对象24a、24b、24c。适配器虚拟总线驱动器20会确定(在框202)网络适配器12中的设备队列32a、32b、32c,所述设备队列32a、32b、32c针对由设备对象24a、24b、24c表示的设备排队分组。然后适配器虚拟总线驱动器20将接收的分组写(在框204)到确定的队列32a、32b、32c,并且向网络适配器12发信号通知(在框206)要处理的分组。这会导致所述分组被引导到的设备30a、30b、30c中的传送卸载引擎34a、34b、34c来处理队列32a、32b、32c中的分组,并且将所述分组转发到对应的网络协议层36a、36b、36c,以在网络18上传输。
图5示出一旦从网络适配器12接收到(在框250)关于分组传输(例如成功、失败等)的通知,适配器虚拟总线驱动器20执行的操作。适配器虚拟总线驱动器20会确定(在框252)网络适配器12中生成所述分组的设备30a、30b、30c,并且确定(在框254)针对该所确定的传输所述分组的设备的设备驱动器22a、22b、22c。然后调用(在框256)所确定的设备驱动器22a、22b、22c的完成回叫处理程序(completion callback handler),以向所确定的设备驱动器通知该分组传输的状态。
图6示出一旦从网络适配器12接收到(在框280)要传输到操作系统12的分组,适配器虚拟总线驱动器20执行的操作。响应于此,适配器虚拟总线驱动器20确定(在框282)网络适配器中作为接收的分组的目标的设备30a、30b、30c,在计算机2中所述设备30a、30b、30c由设备对象24a、24b、24c表示,并且确定(在框284)针对发送所述分组的设备的设备驱动器22a、22b、22c。然后,适配器虚拟总线驱动器20调用(在框286)所确定的设备驱动器22a、22b、22c来处理所述分组。例如,实现在适配器虚拟总线驱动器20代码中的中断服务例程可以直接地或者通过操作系统12(例如通过终端服务例程处理程序)发信号通知所确定的设备驱动器22a、22b、22c在存储器中有可供处理的分组,其中网络适配器12可以直接将分组写到存储器6中指定的缓冲区。
在额外的实施方案中,网络适配器12可以被配置,从而使每个物理接口专用于不同的设备,例如一个iSCSI端口、一个LAN端口等。在这样的情况下,适配器虚拟总线驱动器20会向操作系统报告,表示网络适配器12的虚拟总线包括该网络适配器被配置所针对的每个设备,即两个iSCSI适配器,或一个iSCSI适配器一个LAN适配器等等。终端用户可以编程网络适配器,以将不同的设备(即协议)与不同的端口相关联。在这样的配置之后,适配器虚拟总线驱动器20会向操作系统12报告虚拟总线之后的新设备配置,以导致操作系统12随后移除或加载额外的设备驱动器来支持虚拟总线之后的所述虚拟设备。此外,在某些实施方案中,该重新配置可以动态地执行而无需系统重引导。
额外的实施方案细节
通过使用标准的编程和/或工程技术来产生软件、固件、硬件或它们的组合,可以将这里所描述的用来接口操作系统和设备的实施方案实现为一种方法、装置或制品。使用在这里,术语“制品”是指在硬件逻辑(例如,集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC)等)或者计算机可读介质(例如磁存储介质(例如硬盘、软盘、磁带等)、光存储设备(CD-ROM、光盘等)、易失性和非易失性存储器件(例如EEPROM、ROM、PROM、RAM、DRAM、SDRAM、固件、可编程逻辑等)上实现的代码或逻辑。在计算机可读介质中的代码可由处理器来访问并执行。还可以通过传输介质,或者通过网络从文件服务器访问其中实现了优选实施方案的代码。在这些情形中,其中实现了代码的制品可以包括传输介质,例如网络传输线,无线传输介质,通过空间、无线电波、红外信号等传播的信号等。因此,“制品”可以包括代码在其中实施的介质。此外,“制品”可以包括代码在其中实施、处理和执行的硬件和软件组件的组合。当然,本领域的技术人员将会认识到,可以对这种配置做出很多修改而不偏离本发明的范围,并且所述制品可以包括在本领域中公知的任何承载信息的介质。
在所描述的实施方案中,某些操作被描述为由设备驱动器22a、22b、22c和协议引擎34a、35a、35b、35c执行。在替换的实施方案中,被描述为由设备驱动器执行的操作可以由设备传送卸载引擎执行,反之亦然。
在所描述的实施方案中,在网络适配器卡处通过网络从远程计算机接收分组。在替换的实施方案中,由传送协议层或设备驱动器处理的所述接收和传输的分组可以从在设备驱动器和传送协议驱动器的执行所在的相同计算机中执行的单独过程来接收。
在某些实现中,设备驱动器和网络适配器实施方案可以被包括在包括例如SCSI、集成驱动电子设备(IDE)、冗余独立磁盘阵列(RAID)等控制器的储存控制器的计算机系统中,所述储存控制器管理对诸如磁盘驱动器、磁带介质、光盘等非易失性储存设备的访问。在替换的实现中,网络适配器实施方案可以被包括在不包括储存控制器的系统中,例如在某些网络中心(hub)或交换机中。
在某些实现中,网络适配器可以被配置为通过连接到网络适配器上的端口的线缆传输数据。可替换地,网络适配器实施方案可以被配置为通过诸如无线LAN、蓝牙等的无线网络或连接传输数据。
所描述的虚拟总线驱动器用于使操作系统与支持多个设备或协议的网络适配器接口。在替换的实施方案中,虚拟总线驱动器可以用于与设备而非本身支持不同设备的网络适配器接口。例如,所描述的虚拟总线驱动器可以用于与支持单独的储存设备协议的储存控制器接口。
在所描述的实施方案中,每个协议引擎,例如34a、35a、34b、34c,能够使用通信协议和分组传输协议来处理分组,所述通信协议诸如iSCSI、卸载的LAN、非卸载的LAN,所述分组传输协议例如TCP/IP。在替换的实施方案中,可以使用不同于TCP/IP的分组传输协议来传输实现其他协议的分组。
在所描述的实施方案中,在TCP/IP分组传输协议上运行的通信协议包括iSCSI、卸载的LAN、非卸载的LAN。在替换的实施方案中,可以包括其他通信协议,例如光纤信道、SCSI等。
所示出的图2、3、4、5和6的逻辑示出以某顺序发生的某些事件。在替换的实施方案中,可以以不同的顺序执行某些操作,可以修改或移除某些操作。此外,可以向上述逻辑增加步骤,并且仍然符合所描述的实施方案。此外,这里描述的操作可以顺序地发生,或者某些操作可以并行地处理。此外,操作可以由单个处理单元或分布式处理单元执行。
图7示出图1中的计算机的计算机体系结构300的一种实现。体系结构300可以包括处理器302(例如微处理器)、存储器304(例如易失性存储器设备)和储存设备306(例如非易失性储存设备,例如磁盘驱动器、光盘驱动器、磁带驱动器等)。储存设备306可以包括内部储存设备,或附接的或网络可访问的储存设备。储存设备306中的程序以本领域内已知的方式被加载到存储器304中并被处理器302执行。体系结构还包括网络卡308,以使能(enable)与诸如以太网、光纤信道仲裁环路(Fibre Channel Arbitrate Loop)等的网络进行通信。此外,在某些实施方案中,体系结构可以包括视频控制器309,以在显示监视器上呈递信息,其中视频控制器309可以被实现在视频卡上,或者集成到安装在主板上的集成电路组件上。如所讨论的,网络设备中的一些可以具有多个网络卡。输入设备310用于向处理器302提供用户输入,并且可以包括键盘、鼠标、手写笔(pen-stylus)、麦克风、触敏显示屏或任何其他本领域内已知的激活或输入机制。输出设备312能够呈递传输自处理器302或诸如显示监视器、打印机、储存设备等的其他组件的信息。
网络适配器12可以被实现在诸如外设部件互连(PCI)卡或一些其他I/O卡的网络卡上,或者可以被实现到安装在主板上的集成电路组件上。
出于图示和描述的目的已给出了对本发明各种实施方案的以上描述。这些描述不是要成为穷尽性的,或者将本发明限制为所公开的精确形式。按照以上教导,很多修改和变化都是可能的。本发明的范围是要由这一详细描述来限定,而是想用所附的权利要求书来限定。以上说明书、实施例和数据提供了生产和使用本发明的构成的完整描述。由于在不偏离本发明的精神和范围的情况下可以实现本发明的很多实施方案,所以本发明由所附的权利要求书来限制。

Claims (40)

1.一种用于与支持多个设备的设备硬件接口的方法,所述方法包括:
初始化设备接口驱动器,以针对操作系统将所述设备硬件表示为虚拟总线,并且针对所述操作系统将在所述设备硬件中被支持的每个设备表示为附接到所述虚拟总线的设备;
初始化所述设备硬件;
访问所述设备硬件,以确定被所述设备硬件支持的设备;
针对被所述设备硬件支持的每个确定的设备生成一个设备对象,其中每个生成的设备对象针对所述操作系统表示所述确定的设备;以及
向所述操作系统报告所述确定的设备,其中所述操作系统针对被所述设备硬件支持的所述被报告的设备中的每一个加载设备驱动器。
2.如权利要求1所述的方法,还包括:
向所述操作系统报告所述确定的设备依赖于所述虚拟总线,其中响应于被通知所述确定的设备和虚拟总线相关,所述操作系统将不移除表示所述虚拟总线的所述设备接口驱动器,直到与所述确定的设备相关联的所述设备驱动器被移除。
3.如权利要求1所述的方法,还包括:
向所述操作系统报告由所述设备接口驱动器表示的所述虚拟总线的功率状态不可以被更改,直到表示附接到所述虚拟总线的设备的所有所述设备驱动器使它们的功率状态被类似地更改。
4.如权利要求1所述的方法,其中所述硬件设备包括网络适配器,并且其中在所述网络适配器中可获得的每个设备支持针对不同通信协议的协议引擎。
5.如权利要求4所述的方法,其中每个协议引擎根据通信协议和网络协议处理分组,其中每个传送引擎支持不同的通信协议,但使用相同的网络协议。
6.如权利要求1所述的方法,还包括:
从一个设备驱动器接收分组;
在所述设备硬件中确定设备队列,所述设备队列针对被与所述设备驱动器对应的所述设备硬件支持的所述设备来排队分组;以及
将所述接收的分组写到所述确定的队列。
7.如权利要求1所述的方法,还包括:
从所述设备硬件接收关于一个分组的传输的通知;
针对所述网络适配器中处理过所述分组的所述设备,确定所述设备驱动器;以及
将指示从所述设备硬件接收到所述通知的通知传输到所述确定的设备驱动器。
8.如权利要求1所述的方法,还包括:
接收由所述设备硬件提供的分组的指示;
针对被所述网络适配器支持的处理过所述提供的分组的所述设备,确定所述设备驱动器;
调用呼叫程序,以使所述确定的设备驱动器处理所述提供的分组。
9.如权利要求1所述的方法,其中所有所述设备驱动器通过所述设备接口驱动器访问被所述设备硬件支持的设备。
10.如权利要求1所述的方法,其中被确定为在所述设备硬件中可获得的所述设备包括比被所述设备硬件支持的所有所述设备少的设备。
11.如权利要求1所述的方法,还包括:
响应于检测到被所述设备硬件支持的设备的配置中的变化,向所述操作系统发信号通知在所述设备硬件中可获得的设备的所述变化的配置,其中所述操作系统能够加载或解加载设备驱动器,以支持在所述设备硬件中可获得的设备的所述变化的配置。
12.如权利要求1所述的方法,其中初始化所述设备硬件、访问所述设备硬件以确定被所述设备硬件支持的设备、生成所述设备对象以及向所述操作系统报告所述确定的设备的所述操作由所述设备接口驱动器执行。
13.如权利要求1所述的方法,其中一个设备包括支持iSCSI协议和TCP协议的协议引擎,其中一个设备包括支持卸载的LAN协议的协议引擎,并且其中一个设备包括支持非卸载的LAN协议的协议引擎。
14.一种系统,包括:
处理器;
由所述处理器执行的操作系统;
支持多个设备的网络适配器;
设备接口驱动器,所述设备接口驱动器针对所述操作系统将所述网络适配器表示为虚拟总线,并且针对所述操作系统将在所述设备硬件中被支持的每个设备表示为附接到所述虚拟总线的设备,其中,当所述处理器执行所述设备接口驱动器时,被使能为:
(i)访问所述网络适配器,以确定被所述网络适配器支持的设备;
(ii)针对每个确定的被所述网络适配器支持的设备生成一个设备对象,其中每个生成的设备对象针对所述操作系统表示所述确定的设备;以及
(iii)向所述操作系统报告所述确定的设备,其中所述操作系统针对被所述网络适配器支持的所述被报告的设备中的每一个加载设备驱动器,并且其中对所述操作系统来说每个确定的设备被视为附接到所述虚拟总线。
15.如权利要求14所述的系统,其中,当所述处理器执行所述设备接口驱动器时,还被使能为:
向所述操作系统报告所述确定的设备依赖于所述虚拟总线,其中响应于被通知所述确定的设备和虚拟总线相关,所述操作系统将不移除表示所述虚拟总线的所述设备接口驱动器,直到与所述确定的设备相关联的所述设备驱动器被移除。
16.如权利要求14所述的系统,其中,当所述处理器执行所述设备接口驱动器时,还被使能为:
向所述操作系统报告由所述设备接口驱动器表示的所述虚拟总线的功率状态不可以被更改,直到表示附接到所述虚拟总线的设备的所有所述设备驱动器使它们的功率状态被类似地更改。
17.如权利要求14所述的系统,其中在所述网络适配器中可获得的每个设备支持针对不同通信协议的协议引擎。
18.如权利要求17所述的系统,其中每个协议引擎根据通信协议处理分组,其中每个协议引擎支持不同的通信协议,但使用相同的网络协议。
19.如权利要求14所述的系统,其中,当所述处理器执行所述设备接口驱动器时,还被使能为:
从一个设备驱动器接收分组;
在所述网络适配器中确定设备队列,所述设备队列针对被与所述设备驱动器对应的所述设备硬件支持的所述设备来排队分组;以及
将所述接收的分组写到所述确定的队列。
20.如权利要求14所述的系统,其中,当所述处理器执行所述设备接口驱动器时,还被使能为:
从所述网络适配器接收关于一个分组的传输的通知;
针对所述网络适配器中处理过所述分组的所述设备,确定所述设备驱动器;以及
将指示从所述设备硬件接收到所述通知的通知传输到所述确定的设备驱动器。
21.如权利要求14所述的系统,其中,当所述处理器执行所述设备接口驱动器时,还被使能为:
接收由所述网络适配器提供的分组的指示;
针对被所述网络适配器支持的处理过所述提供的分组的所述设备,确定所述设备驱动器;
调用呼叫程序,以使所述确定的设备驱动器处理所述提供的分组。
22.如权利要求14所述的系统,其中所有所述设备驱动器通过所述设备接口驱动器访问被所述网络适配器支持的设备。
23.如权利要求14所述的系统,其中被确定为在所述网络适配器中可获得的所述设备包括比被所述网络适配器支持的所有所述设备少的设备。
24.如权利要求14所述的系统,其中,当所述处理器执行所述设备接口驱动器时,还被使能为:
响应于检测到被所述设备硬件支持的设备的配置中的变化,向所述操作系统发信号通知在所述设备硬件中可获得的设备的所述变化的配置,其中所述操作系统能够加载或解加载设备驱动器,以支持在所述设备硬件中可获得的设备的所述变化的配置。
25.如权利要求14所述的系统,其中一个设备包括支持iSCSI协议和TCP协议的协议引擎,其中一个设备包括支持卸载的LAN协议的协议引擎,并且其中一个设备包括支持非卸载的LAN协议的协议引擎。
26.一种与网络通信的系统,包括:
处理器;
由所述处理器执行的操作系统;
支持多个设备的网络适配器;
被包括在所述网络适配器中的至少一个物理接口,所述至少一个物理接口使能所述设备和所述网络之间的分组通信,其中所述至少一个物理接口能够与铜线接口;
设备接口驱动器,所述设备接口驱动器针对所述操作系统将所述网络适配器表示为虚拟总线,并且针对所述操作系统将在所述设备硬件中被支持的每个设备表示为附接到所述虚拟总线的设备,其中,当所述处理器执行所述设备接口驱动器时,被使能为:
(i)访问所述网络适配器,以确定被所述网络适配器支持的设备;
(ii)针对每个确定的被所述网络适配器支持的设备生成一个设备对象,其中每个生成的设备对象针对所述操作系统表示所述确定的设备;以及
(iii)向所述操作系统报告所述确定的设备,其中所述操作系统针对被所述网络适配器支持的所述被报告的设备中的每一个加载设备驱动器,并且其中对所述操作系统来说每个确定的设备被视为附接到所述虚拟总线。
27.如权利要求26所述的系统,其中,当所述处理器执行所述设备接口驱动器时,还被使能为:
向所述操作系统报告所述确定的设备依赖于所述虚拟总线,其中响应于被通知所述确定的设备和虚拟总线相关,所述操作系统将不移除表示所述虚拟总线的所述设备接口驱动器,直到与所述确定的设备相关联的所述设备驱动器被移除。
28.一种用于与支持多个设备的设备硬件接口的制品,其中所述制品导致操作被执行,所述操作包括:
初始化设备接口驱动器,以针对操作系统将所述设备硬件表示为虚拟总线,并且针对所述操作系统将在所述设备硬件中被支持的每个设备表示为附接到所述虚拟总线的设备;
初始化所述设备硬件;
访问所述设备硬件,以确定被所述设备硬件支持的设备;
针对被所述设备硬件支持的每个确定的设备生成一个设备对象,其中每个生成的设备对象针对所述操作系统表示所述确定的设备;以及
向所述操作系统报告所述确定的设备,其中所述操作系统针对被所述设备硬件支持的所述被报告的设备中的每一个加载设备驱动器。
29.如权利要求28所述的制品,其中所述操作还包括:
向所述操作系统报告所述确定的设备依赖于所述虚拟总线,其中响应于被通知所述确定的设备和虚拟总线相关,所述操作系统将不移除表示所述虚拟总线的所述设备接口驱动器,直到与所述确定的设备相关联的所述设备驱动器被移除。
30.如权利要求28所述的制品,其中所述操作还包括:
向所述操作系统报告由所述设备接口驱动器表示的所述虚拟总线的功率状态不可以被更改,直到表示附接到所述虚拟总线的设备的所有所述设备驱动器使它们的功率状态被类似地更改。
31.如权利要求28所述的制品,其中所述硬件设备包括网络适配器,并且其中在所述网络适配器中可获得的每个设备支持针对不同通信协议的协议引擎。
32.如权利要求31所述的制品,其中每个协议引擎根据通信协议和网络协议处理分组,其中每个传送引擎支持不同的通信协议,但使用相同的网络协议。
33.如权利要求28所述的制品,其中所述操作还包括:
从一个设备驱动器接收分组;
在所述设备硬件中确定设备队列,所述设备队列针对被与所述设备驱动器对应的所述设备硬件支持的所述设备来排队分组;以及
将所述接收的分组写到所述确定的队列。
34.如权利要求28所述的制品,其中所述操作还包括:
从所述设备硬件接收关于一个分组的传输的通知;
针对所述网络适配器中处理过所述分组的所述设备,确定所述设备驱动器;以及
将指示从所述设备硬件接收到所述通知的通知传输到所述确定的设备驱动器。
35.如权利要求28所述的制品,其中所述操作还包括:
接收由所述设备硬件提供的分组的指示;
针对被所述网络适配器支持的处理过所述提供的分组的所述设备,确定所述设备驱动器;
调用呼叫程序,以使所述确定的设备驱动器处理所述提供的分组。
36.如权利要求28所述的制品,其中所有所述设备驱动器通过所述设备接口驱动器访问被所述设备硬件支持的设备。
37.如权利要求28所述的制品,其中被确定为在所述设备硬件中可获得的所述设备包括比被所述设备硬件支持的所有所述设备少的设备。
38.如权利要求28所述的制品,其中所述操作还包括:
响应于检测到被所述设备硬件支持的设备的配置中的变化,向所述操作系统发信号通知在所述设备硬件中可获得的设备的所述变化的配置,其中所述操作系统能够加载或解加载设备驱动器,以支持在所述设备硬件中可获得的设备的所述变化的配置。
39.如权利要求28所述的制品,其中初始化所述设备硬件、访问所述设备硬件以确定被所述设备硬件支持的设备、生成所述设备对象以及向所述操作系统报告所述确定的设备的所述操作由所述设备接口驱动器执行。
40.如权利要求281所述的方法,其中一个设备包括支持iSCSI协议和TCP协议的协议引擎,其中一个设备包括支持卸载的LAN协议的协议引擎,并且其中一个设备包括支持非卸载的LAN协议的协议引擎。
CN2004800403115A 2003-11-12 2004-11-03 用于与支持多个设备的网络适配器接口的方法、系统和程序 Expired - Fee Related CN1902585B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/712,207 2003-11-12
US10/712,207 US7437738B2 (en) 2003-11-12 2003-11-12 Method, system, and program for interfacing with a network adaptor supporting a plurality of devices
PCT/US2004/036757 WO2005050443A2 (en) 2003-11-12 2004-11-03 Method, system, and program for interfacing with a network adaptor supporting a plurality of devices

Publications (2)

Publication Number Publication Date
CN1902585A true CN1902585A (zh) 2007-01-24
CN1902585B CN1902585B (zh) 2011-03-09

Family

ID=34552655

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004800403115A Expired - Fee Related CN1902585B (zh) 2003-11-12 2004-11-03 用于与支持多个设备的网络适配器接口的方法、系统和程序

Country Status (5)

Country Link
US (1) US7437738B2 (zh)
EP (1) EP1687716B1 (zh)
CN (1) CN1902585B (zh)
TW (1) TWI280006B (zh)
WO (1) WO2005050443A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101849230B (zh) * 2007-09-06 2013-01-16 惠普开发有限公司 在多主机环境中共享遗留设备
CN105721216A (zh) * 2016-02-29 2016-06-29 浪潮通信信息系统有限公司 一种网管设备管理的方法和装置
CN105763336A (zh) * 2016-02-04 2016-07-13 天津市英贝特航天科技有限公司 单一网卡的多种网络协议切换方法及切换装置

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8645862B2 (en) * 2002-06-28 2014-02-04 International Business Machines Corporation Displaying and executing web services in multiple content domains
GB0408868D0 (en) * 2004-04-21 2004-05-26 Level 5 Networks Ltd Checking data integrity
US8966506B2 (en) * 2004-04-23 2015-02-24 Hewlett-Packard Development Company, L.P. Method and apparatus for managing related drivers associated with a virtual bus driver
US8374175B2 (en) * 2004-04-27 2013-02-12 Hewlett-Packard Development Company, L.P. System and method for remote direct memory access over a network switch fabric
US7761529B2 (en) * 2004-06-30 2010-07-20 Intel Corporation Method, system, and program for managing memory requests by devices
US7493425B2 (en) * 2005-02-25 2009-02-17 International Business Machines Corporation Method, system and program product for differentiating between virtual hosts on bus transactions and associating allowable memory access for an input/output adapter that supports virtualization
US20060195618A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation Data processing system, method, and computer program product for creation and initialization of a virtual adapter on a physical adapter that supports virtual adapter level virtualization
US7870301B2 (en) * 2005-02-25 2011-01-11 International Business Machines Corporation System and method for modification of virtual adapter resources in a logically partitioned data processing system
US20060195848A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation System and method of virtual resource modification on a physical adapter that supports virtual resources
US7496790B2 (en) * 2005-02-25 2009-02-24 International Business Machines Corporation Method, apparatus, and computer program product for coordinating error reporting and reset utilizing an I/O adapter that supports virtualization
US20060195617A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation Method and system for native virtualization on a partially trusted adapter using adapter bus, device and function number for identification
US7308551B2 (en) * 2005-02-25 2007-12-11 International Business Machines Corporation System and method for managing metrics table per virtual port in a logically partitioned data processing system
US7260664B2 (en) * 2005-02-25 2007-08-21 International Business Machines Corporation Interrupt mechanism on an IO adapter that supports virtualization
US20060193327A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation System and method for providing quality of service in a virtual adapter
US7386637B2 (en) * 2005-02-25 2008-06-10 International Business Machines Corporation System, method, and computer program product for a fully trusted adapter validation of incoming memory mapped I/O operations on a physical adapter that supports virtual adapters or virtual resources
US20060212870A1 (en) * 2005-02-25 2006-09-21 International Business Machines Corporation Association of memory access through protection attributes that are associated to an access control level on a PCI adapter that supports virtualization
US7376770B2 (en) * 2005-02-25 2008-05-20 International Business Machines Corporation System and method for virtual adapter resource allocation matrix that defines the amount of resources of a physical I/O adapter
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
US20060195663A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation Virtualized I/O adapter for a multi-processor data processing system
US7464191B2 (en) * 2005-02-25 2008-12-09 International Business Machines Corporation System and method for host initialization for an adapter that supports virtualization
US20060195623A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation Native virtualization on a partially trusted adapter using PCI host memory mapped input/output memory address for identification
US7480742B2 (en) * 2005-02-25 2009-01-20 International Business Machines Corporation Method for virtual adapter destruction on a physical adapter that supports virtual adapters
US7398337B2 (en) * 2005-02-25 2008-07-08 International Business Machines Corporation Association of host translations that are associated to an access control level on a PCI bridge that supports virtualization
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
US7685335B2 (en) * 2005-02-25 2010-03-23 International Business Machines Corporation Virtualized fibre channel adapter for a multi-processor data processing system
US7543084B2 (en) * 2005-02-25 2009-06-02 International Business Machines Corporation Method for destroying virtual resources in a logically partitioned data processing system
US7475166B2 (en) * 2005-02-28 2009-01-06 International Business Machines Corporation Method and system for fully trusted adapter validation of addresses referenced in a virtual host transfer request
GB0506403D0 (en) 2005-03-30 2005-05-04 Level 5 Networks Ltd Routing tables
EP1861778B1 (en) 2005-03-10 2017-06-21 Solarflare Communications Inc Data processing system
US8458280B2 (en) * 2005-04-08 2013-06-04 Intel-Ne, Inc. Apparatus and method for packet transmission over a high speed network supporting remote direct memory access operations
US7492723B2 (en) * 2005-07-07 2009-02-17 International Business Machines Corporation Mechanism to virtualize all address spaces in shared I/O fabrics
US7496045B2 (en) * 2005-07-28 2009-02-24 International Business Machines Corporation Broadcast of shared I/O fabric error messages in a multi-host environment to all affected root nodes
CN1913377A (zh) * 2005-08-09 2007-02-14 乐金电子(昆山)电脑有限公司 还原网络设备连接状态的方法及其设备
US7724658B1 (en) 2005-08-31 2010-05-25 Chelsio Communications, Inc. Protocol offload transmit traffic management
US7660306B1 (en) 2006-01-12 2010-02-09 Chelsio Communications, Inc. Virtualizing the operation of intelligent network interface circuitry
US7616563B1 (en) 2005-08-31 2009-11-10 Chelsio Communications, Inc. Method to implement an L4-L7 switch using split connections and an offloading NIC
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
US7430630B2 (en) * 2005-10-27 2008-09-30 International Business Machines Corporation Routing mechanism in PCI multi-host topologies using destination ID field
US7474623B2 (en) 2005-10-27 2009-01-06 International Business Machines Corporation Method of routing I/O adapter error messages in a multi-host environment
US7631050B2 (en) * 2005-10-27 2009-12-08 International Business Machines Corporation Method for confirming identity of a master node selected to control I/O fabric configuration in a multi-host environment
US7363404B2 (en) * 2005-10-27 2008-04-22 International Business Machines Corporation Creation and management of destination ID routing structures in multi-host PCI topologies
US20070136458A1 (en) * 2005-12-12 2007-06-14 Boyd William T Creation and management of ATPT in switches of multi-host PCI topologies
US20070136554A1 (en) * 2005-12-12 2007-06-14 Giora Biran Memory operations in a virtualized system
GB0600417D0 (en) 2006-01-10 2006-02-15 Level 5 Networks Inc Virtualisation support
US20070165596A1 (en) * 2006-01-18 2007-07-19 Boyd William T Creation and management of routing table for PCI bus address based routing with integrated DID
US7889762B2 (en) 2006-01-19 2011-02-15 Intel-Ne, Inc. Apparatus and method for in-line insertion and removal of markers
US7782905B2 (en) * 2006-01-19 2010-08-24 Intel-Ne, Inc. Apparatus and method for stateless CRC calculation
US7707465B2 (en) * 2006-01-26 2010-04-27 International Business Machines Corporation Routing of shared I/O fabric error messages in a multi-host environment to a master control root node
US20070198244A1 (en) * 2006-01-31 2007-08-23 King James M Emulation of a device protocol
US7380046B2 (en) * 2006-02-07 2008-05-27 International Business Machines Corporation Method, apparatus, and computer program product for routing packets utilizing a unique identifier, included within a standard address, that identifies the destination host computer system
US7484029B2 (en) * 2006-02-09 2009-01-27 International Business Machines Corporation Method, apparatus, and computer usable program code for migrating virtual adapters from source physical adapters to destination physical adapters
US8316156B2 (en) 2006-02-17 2012-11-20 Intel-Ne, Inc. Method and apparatus for interfacing device drivers to single multi-function adapter
US7849232B2 (en) 2006-02-17 2010-12-07 Intel-Ne, Inc. Method and apparatus for using a single multi-function adapter with different operating systems
US8078743B2 (en) 2006-02-17 2011-12-13 Intel-Ne, Inc. Pipelined processing of RDMA-type network transactions
US20070208820A1 (en) * 2006-02-17 2007-09-06 Neteffect, Inc. Apparatus and method for out-of-order placement and in-order completion reporting of remote direct memory access operations
WO2007139426A1 (en) * 2006-05-31 2007-12-06 Intel Corporation Multiple phase buffer enlargement for rdma data transfer
US20080137676A1 (en) * 2006-12-06 2008-06-12 William T Boyd Bus/device/function translation within and routing of communications packets in a pci switched-fabric in a multi-host environment environment utilizing a root switch
US7571273B2 (en) * 2006-12-06 2009-08-04 International Business Machines Corporation Bus/device/function translation within and routing of communications packets in a PCI switched-fabric in a multi-host environment utilizing multiple root switches
US8935406B1 (en) 2007-04-16 2015-01-13 Chelsio Communications, Inc. Network adaptor configured for connection establishment offload
US8112769B2 (en) * 2007-05-04 2012-02-07 Rockwell Automation Technologies, Inc. System and method for implementing and/or operating network interface devices to achieve network-based communications
US8060644B1 (en) 2007-05-11 2011-11-15 Chelsio Communications, Inc. Intelligent network adaptor with end-to-end flow control
US8589587B1 (en) * 2007-05-11 2013-11-19 Chelsio Communications, Inc. Protocol offload in intelligent network adaptor, including application level signalling
US7917682B2 (en) * 2007-06-27 2011-03-29 Emulex Design & Manufacturing Corporation Multi-protocol controller that supports PCIe, SAS and enhanced Ethernet
US8346974B2 (en) 2007-07-27 2013-01-01 Microsoft Corporation Hardware control interface for IEEE standard 802.11
US8407367B2 (en) * 2007-12-26 2013-03-26 Intel Corporation Unified connector architecture
US8700821B2 (en) 2008-08-22 2014-04-15 Intel Corporation Unified multi-transport medium connector architecture
US8065454B1 (en) * 2009-08-20 2011-11-22 Qlogic, Corporation System and method for mapping functions to and from network devices using configuration compatible with an adapter by remapping plurality of logical ports of adapter
US8527664B2 (en) * 2009-12-17 2013-09-03 International Business Machines Corporation Direct memory access with minimal host interruption
US8775713B2 (en) 2011-12-27 2014-07-08 Intel Corporation Multi-protocol tunneling over an I/O interconnect
US8856420B2 (en) 2011-12-27 2014-10-07 Intel Corporation Multi-protocol I/O interconnect flow control
US9252970B2 (en) 2011-12-27 2016-02-02 Intel Corporation Multi-protocol I/O interconnect architecture
US9565132B2 (en) 2011-12-27 2017-02-07 Intel Corporation Multi-protocol I/O interconnect including a switching fabric
US8953644B2 (en) 2011-12-27 2015-02-10 Intel Corporation Multi-protocol I/O interconnect time synchronization
US9697159B2 (en) 2011-12-27 2017-07-04 Intel Corporation Multi-protocol I/O interconnect time synchronization
US8782321B2 (en) 2012-02-08 2014-07-15 Intel Corporation PCI express tunneling over a multi-protocol I/O interconnect
US8880923B2 (en) 2012-03-29 2014-11-04 Intel Corporation Link power management in an I/O interconnect
US10466918B1 (en) * 2014-03-28 2019-11-05 EMC IP Holding Company LLC Large size fixed block architecture device support over FICON channel connections
US9824059B2 (en) 2014-08-30 2017-11-21 Microsoft Technology Licensing, Llc Child serial device discovery protocol
US9703742B2 (en) * 2014-09-26 2017-07-11 Intel Corporation Unified device interface for a multi-bus system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5265252A (en) 1991-03-26 1993-11-23 International Business Machines Corporation Device driver system having generic operating system interface
US5655148A (en) * 1994-05-27 1997-08-05 Microsoft Corporation Method for automatically configuring devices including a network adapter without manual intervention and without prior configuration information
US5987554A (en) * 1997-05-13 1999-11-16 Micron Electronics, Inc. Method of controlling the transfer of information across an interface between two buses
US6009480A (en) * 1997-09-12 1999-12-28 Telxon Corporation Integrated device driver wherein the peripheral downloads the device driver via an I/O device after it is determined that the I/O device has the resources to support the peripheral device
US7792923B2 (en) * 2000-10-13 2010-09-07 Zhe Khi Pak Disk system adapted to be directly attached to network
US7231430B2 (en) * 2001-04-20 2007-06-12 Egenera, Inc. Reconfigurable, virtual processing system, cluster, network and method
US6823418B2 (en) * 2001-06-29 2004-11-23 Intel Corporation Virtual PCI device apparatus and method
US7065659B2 (en) * 2002-06-28 2006-06-20 Microsoft Corporation Power management architecture for defining component power states under a global power state and maintaining a power state floor for a specified component if a power state for the specified component under a new global power state is below the power state floor
US20040148376A1 (en) * 2002-06-28 2004-07-29 Brocade Communications Systems, Inc. Storage area network processing device
US6816917B2 (en) * 2003-01-15 2004-11-09 Hewlett-Packard Development Company, L.P. Storage system with LUN virtualization

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101849230B (zh) * 2007-09-06 2013-01-16 惠普开发有限公司 在多主机环境中共享遗留设备
CN105763336A (zh) * 2016-02-04 2016-07-13 天津市英贝特航天科技有限公司 单一网卡的多种网络协议切换方法及切换装置
CN105763336B (zh) * 2016-02-04 2019-04-09 天津市英贝特航天科技有限公司 单一网卡的多种网络协议切换方法及切换装置
CN105721216A (zh) * 2016-02-29 2016-06-29 浪潮通信信息系统有限公司 一种网管设备管理的方法和装置

Also Published As

Publication number Publication date
TW200525953A (en) 2005-08-01
EP1687716A2 (en) 2006-08-09
TWI280006B (en) 2007-04-21
US20050102682A1 (en) 2005-05-12
EP1687716B1 (en) 2012-08-15
US7437738B2 (en) 2008-10-14
CN1902585B (zh) 2011-03-09
WO2005050443A3 (en) 2005-09-22
WO2005050443A2 (en) 2005-06-02

Similar Documents

Publication Publication Date Title
CN1902585B (zh) 用于与支持多个设备的网络适配器接口的方法、系统和程序
CN100501684C (zh) 故障转移和负载平衡
US9088451B2 (en) System and method for network interfacing in a multiple network environment
US20180375782A1 (en) Data buffering
JP3783017B2 (ja) ローカル識別子を使ったエンド・ノード区分
CN101902395B (zh) 管理主机上的资源的系统和方法
US20020071386A1 (en) Technique to provide automatic failover for channel-based communications
US20080240140A1 (en) Network interface with receive classification
CN1581853B (zh) 用于处理要在网络上发送的分组的方法、系统和程序
JP5669851B2 (ja) 論理的にパーティション化されたシステムにおいてパーティション間の効率的なコミュニケーションを行うための装置、方法、及びコンピュータ・プログラム
US20230421451A1 (en) Method and system for facilitating high availability in a multi-fabric system
KR20200080458A (ko) 클라우드 멀티-클러스터 장치
US7159010B2 (en) Network abstraction of input/output devices
CN109257955B (zh) 操作硬盘的方法和硬盘管理器
CN117041147B (zh) 智能网卡设备、主机设备和方法及系统
EP1460806A2 (en) System and method for network interfacing in a multiple network environment
EP1540473B1 (en) System and method for network interfacing in a multiple network environment
US8041902B2 (en) Direct memory move of multiple buffers between logical partitions
CN1578267B (zh) 处理分组以在主机系统的网络上传送的方法、系统及装置
US20060253861A1 (en) API interface to make dispatch tables to match API routines
US20030027465A1 (en) Connection device
US6829652B1 (en) I2O ISM implementation for a san based storage subsystem
US11690108B2 (en) High speed wireless data communication to solid state drive
CN116974757A (zh) 负载均衡方法、装置、存储介质及处理器
EP1282287A2 (en) A connection device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110309

Termination date: 20131103