当前位置: 首页 > 专利查询>英特尔公司专利>正文

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

技术编号:2845956 阅读:188 留言:0更新日期:2012-04-11 18:40
所提供的为用于与支持多个设备的设备硬件进行接口的方法、系统和程序。设备接口驱动器被初始化,以针对操作系统将设备硬件表示为虚拟总线,并且针对操作系统将在设备硬件中被支持的每个设备表示为附接到虚拟总线的设备。初始化设备硬件,并且访问设备硬件,以确定被设备硬件支持的设备。针对被设备硬件支持的每个确定的设备生成一个设备对象,其中每个生成的设备对象针对操作系统表示确定的设备。向操作系统报告确定的设备,其中操作系统针对被设备硬件支持的被报告的设备中的每一个加载设备驱动器。

【技术实现步骤摘要】
【国外来华专利技术】
技术介绍
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,本文档来自技高网...

【技术保护点】
一种用于与支持多个设备的设备硬件接口的方法,所述方法包括:初始化设备接口驱动器,以针对操作系统将所述设备硬件表示为虚拟总线,并且针对所述操作系统将在所述设备硬件中被支持的每个设备表示为附接到所述虚拟总线的设备;初始化所述设备硬件;访问所述设备硬件,以确定被所述设备硬件支持的设备;针对被所述设备硬件支持的每个确定的设备生成一个设备对象,其中每个生成的设备对象针对所述操作系统表示所述确定的设备;以及向所述操作系统报告所述确定的设备,其中所述操作系统针对被所述设备硬件支持的所述被报告的设备中的每一个加载设备驱动器。

【技术特征摘要】
【国外来华专利技术】US 2003-11-12 10/712,2071.一种用于与支持多个设备的设备硬件接口的方法,所述方法包括初始化设备接口驱动器,以针对操作系统将所述设备硬件表示为虚拟总线,并且针对所述操作系统将在所述设备硬件中被支持的每个设备表示为附接到所述虚拟总线的设备;初始化所述设备硬件;访问所述设备硬件,以确定被所述设备硬件支持的设备;针对被所述设备硬件支持的每个确定的设备生成一个设备对象,其中每个生成的设备对象针对所述操作系统表示所述确定的设备;以及向所述操作系统报告所述确定的设备,其中所述操作系统针对被所述设备硬件支持的所述被报告的设备中的每一个加载设备驱动器。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所述的系统,其中,当所述处理器执行所述设备接口驱动器时,还被使能为接收由...

【专利技术属性】
技术研发人员:拉杰什萨赫阿尼尔凯沙瓦默西
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1