双模网络设备驱动设备、系统和方法技术方案

技术编号:2861225 阅读:171 留言:0更新日期:2012-04-11 18:40
本发明专利技术提出一种网络设备驱动体系结构,具有的功能分布于内核空间和用户空间之间。整个网络设备驱动包括内核空间设备驱动(10)和用户空间设备驱动功能(20)。内核空间设备驱动(10)适用于通过内核空间-用户空间接口(15)对用户空间设备驱动功能(20)进行访问。用户空间设备驱动功能(20)适用于通过用户空间-NIC接口(25)在用户空间和NIC(30)之间进行直接访问,并且还适用于互连内核空间-用户空间接口(15)和用户空间-NIC接口(25)以提供对NIC(30)进行组合的内核空间访问和用户空间访问。用户空间设备驱动功能(20)提供对NIC进行直接,零拷贝的用户空间访问,而将要在内核空间和NIC之间传送的信息将通过组合使用内核空间设备驱动(10),用户空间设备驱动功能(20)以及两个相应的接口(15,25)而“通过”用户空间。(*该技术在2022年保护过期,可自由使用*)

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种用于高效灵活地访问网络接口控制器(NIC)的网络设备驱动体系结构。
技术介绍
计算机软件通常能够分为操作系统软件和应用软件两种类型。操作系统(OS)能够被视为一种资源管理器,使诸如处理器,存储器,输入/输出(I/O)设备和通信设备之类的计算机资源对用户是可用的。同时也提供基本的功能,基于所述功能应用软件能够被写入并执行。操作系统的重要功能包括用户之间共享硬件,防止用户之间相互干扰,资源调度,组织数据以安全迅速地访问,以及支持I/O功能和网络通信。OS的中心部分通常指的是内核。内核通常只是被认为只是代码的一部分,这些代码共同的组成整个OS,但它是其中最集中使用的一部分代码。内核定义所谓的用户空间是指,在其中应用软件运行,并向用户设备提供服务,包括存储器管理,分配处理资源,并响应来自用户设备或处理的系统调用。内核的其它重要功能包括中断处理,进程管理和同步,以及包括网络通信的I/O管理。由于许多不同的硬件设备都能够连接于计算机系统,因此一些I/O功能通常实现为与设备无关的普通功能。接着在所谓的设备驱动之内分配与设备相关的功能。这意味着需要访问诸如网络通信设备的特定硬件设备的用户设备向OS提出系统调用,OS依次调用与硬件设备相关的设备驱动。网络接口控制器(NIC)是一种通常连接于计算机系统以提供诸如以太网或ATM通信的网络通信能力的硬件设备。NIC控制器通常执行较低级别的协议,例如层1(PHY)和层2(MAC,LLC)协议,而较高级别的协议(例如TCP/IP协议组)传统上分配于OS中,以内核模式运行。而且,例如,群集器通常具有运行于以太网之上的所有权协议,因为在系统区域网络(SANs)中,TCP/IP(传输通信协议/网间协议)不是很适合群集器处理。这些所有权协议通常也以内核模式运行。然而,集中式内核模式(in-kemel)协议处理使用户设备不能实现由下层高速网络所提供的潜在的原始性能。该性能问题主要是由于用户空间和内核空间,被污染的高速缓存(polluted cache),中断和非优化代码之间的信息拷贝所导致的。集中的信息拷贝产生了巨大的开销,尤其是对缺乏的(short)信息,并且是具有标准操作系统的网络子系统的高处理器负载和低吞吐量的主要原因。随着诸如吉比特以太网,ATM和Infiniband之类的高性能网络通信技术的出现,这个问题已经变得更为显著。将这种高性能通信技术投入使用的主要挑战主要在于建立系统,该系统能够高效地连接这些网络媒介并在两个网络通信设备之间从始至终维持高带宽。这一点已导致计算机工业开发了支持从用户空间直接访问NIC,并避免在用户空间和内核空间之间的存在信息拷贝的网络设备驱动。用户空间网络访问体系结构类型的最公知的范例是由因特尔公司,微软公司和康柏计算机公司开发的虚拟接口体系结构(VIA)。虚拟接口体系结构(VIA)是用于系统区域网络(SystemArea Networks)的工业标准,支持对NIC进行直接,零拷贝的用户空间访问。VIA体系结构设计用于消除在过去已使传统网络设备成为性能瓶颈的信息拷贝,每个信息的中断和其他内核开销。正如所述,例如在1998年9月9日的因特尔虚拟接口(VI)体系结构开发者指南(Intel Virtual Interface(VI)Architecture Developer’sGuide)和在国际专利申请WO00/41358的说明中,VIA体系结构避免了中间数据拷贝并旁路操作系统内核以获取低等待时间,高带宽的通信。VIA模式包括VI用户和VI提供者。VI用户通常包括用户设备和操作系统通信设备以及VI用户代理。VI提供者通常包括VINIC和VI内核代理的组合。虚拟接口(VI)是VINIC和用户设备或处理之间的直接接口。VI允许NIC直接访问用户设备的存储器以在设备和网络之间进行数据传送操作。VI通常包括发送队列和接收队列,其中每一个都能够直接映射到用户地址空间,从而向网络级别提供直接的用户空间访问并旁路操作系统内核。技术报告DART-A Low Overhead ATM Network Interface Chip,TR-96-18,1996年8月公开了一种为了通过提供向/从网络进行直接、受保护的设备访问从而得到高带宽、低开销通信而设计的ATM NIC。VIA体系结构(以及类似体系结构)的主要缺点在于其需要特定的VIA启动的NIC控制器,而且不能在诸如普通以太网NIC控制器之类的现有(off-the-shelf)NIC控制器上运行。由于网络通信的许多功能都依赖于诸如TCP/IP之类的内核级别协议,所以VIA体系结构同时需要VIA启动的NIC和普通以太网(TCP/IP)NIC。因此,VIA体系结构并不优选实施到现有系统中,但通常需要现有系统硬件的重新设计,将另外的NIC和/或NIC端口加入到系统中。重新设计电路板,包括设计,测试,产品加工(handling),保存,备件等。会很容易导致大约(in theorder of)数百万美元的额外花销。
技术实现思路
本专利技术克服了现有技术设备的这些和其他缺点。本专利技术的一般目的在于对网络接口控制器(NIC)提供高效灵活的访问,消除CPU在通信链路中的瓶颈。本专利技术还有一个目的在于提供一个改良的、花销最优化的网络设备驱动体系结构。特别地,如果网络设备驱动体系结构适合实施并集成到现有系统中则是有益的。本专利技术的另一个目的在于提供一个稳固灵活的网络设备驱动,该设备驱动不是NIC相关的,并且与任何的现有NIC硬件一起运行。由所附的权利要求定义的本专利技术达到了这些以及其他目的。本专利技术的总体思想是通过对NIC,优选地对相同NIC端口进行组合的内核空间访问和用户空间访问来提供一种高效灵活并且效能成本合算的网络设备驱动体系结构。与用户空间网络访问体系结构类似,通过对NIC进行直接的用户空间访问,并且最重要的是在内核空间和NIC之间进行用户空间隧道访问(tunneledaccess)才能实现这一点。从体系结构的角度来说,新颖的网络设备驱动体系结构通常包括内核空间设备驱动以及用户空间设备驱动功能。内核空间设备驱动适用于通过内核空间—用户空间接口在内核空间和用户空间之间进行访问。用户空间设备驱动功能适用于通过用户空间—NIC接口在用户空间和所述NIC之间进行直接访问。该用户空间设备驱动功能也适用于互连内核空间—用户空间接口和用户空间—NIC接口以对NIC进行组合的内核空间访问和用户空间访问。这样就获得了对NIC的高效用户空间访问,而与此同时也使内核级别的协议可以在相同的NIC上运行。优选地,内核空间设备驱动具有两个不同的操作模式。在第一模式中,运行内核空间设备驱动以通过内核空间—NIC接口直接访问NIC。在第二模式中,也指的是用户空间隧道访问模式,运行内核空间设备驱动以通过用户空间设备驱动功能访问NIC。有利地是,用户空间设备驱动功能配置为在用户设备的情况下执行,例如实施为用户库功能。为了稳固和安全,当激活用户空间隧道访问模式时,如果用户设备系统崩溃,则操作系统命令内核空间设备驱动转换回第一操作模式。作为第二防御线或作为可选项,内核空间设备驱动可以任选地装备一个定时监视器,如果在预定的时间段没有来自用户空间设备驱动功能的调用,本文档来自技高网
...

【技术保护点】
一种用于在操作系统内核空间和网络接口控制器(NIC)之间以及用户空间和所述NIC之间的进行访问的网络设备驱动体系结构,包括:-内核空间设备驱动器,适于通过内核空间-用户空间接口,在内核空间和用户空间之间进行访问,以及-用户空间设备驱动器功能,适于通过用户空间-NIC接口在用户空间和所述NIC之间进行直接访问,并适于互连所述内核空间-用户空间接口和所述用户空间-NIC接口,以对所述NIC进行组合的内核空间访问和用户空间访问。

【技术特征摘要】
【国外来华专利技术】1.一种用于在操作系统内核空间和网络接口控制器(NIC)之间以及用户空间和所述NIC之间的进行访问的网络设备驱动体系结构,包括-内核空间设备驱动器,适于通过内核空间-用户空间接口,在内核空间和用户空间之间进行访问,以及-用户空间设备驱动器功能,适于通过用户空间-NIC接口在用户空间和所述NIC之间进行直接访问,并适于互连所述内核空间-用户空间接口和所述用户空间-NIC接口,以对所述NIC进行组合的内核空间访问和用户空间访问。2.根据权利要求1的网络设备驱动体系结构,其中所述内核空间设备驱动器适于建立与所述用户空间设备驱动功能相关的所述内核空间-用户空间接口。3.根据权利要求1的网络设备驱动体系结构,其中所述用户空间设备驱动功能适于从与所述内核空间-用户空间接口和所述用户空间-NIC接口其中之一相关的存储缓冲器获取指针信息,该指针信息指向公共存储器中的数据,并将所述指针信息插入与另一个所述接口相关的存储缓冲器中,从而互连所述内核空间-用户空间接口和所述用户空间-NIC接口。4.根据权利要求1的网络设备驱动体系结构,其中每个所述内核空间-用户空间接口和所述用户空间-NIC接口与发送缓冲器和接收缓冲器两个存储缓冲器相关。5.根据权利要求4的网络设备驱动体系结构,其中对于输出内核级别协议通信,所述内核空间设备驱动器适于将指向公共存储器中的数据的指针信息插入到与所述内核空间-用户空间接口相关的发送缓冲器中,而所述用户空间设备驱动功能适于从那获取所述指针信息并将其插入到与所述用户空间-NIC接口相关的发送缓冲器中,而所述NIC适于从与所述用户空间-NIC接口相关的发送缓冲器中获取所述指针信息,并基于所获得的指针信息从所述公共存储器读取相应数据。6.根据权利要求4的网络设备驱动体系结构,其中对于输入内核级别协议通信,所述NIC适于将指向公共存储器中的数据的指针信息插入到与所述用户空间-NIC接口相关的接收缓冲器内,而所述用户空间设备驱动功能适于从与所述用户空间-NIC接口相关的接收缓冲器获取所述的指针信息,并将其插入到与所述内核空间-用户空间接口相关的接收缓冲器中,而所述内核空间设备驱动适于获取所述指针信息以传送到内核级别协议,内核级别协议基于指针信息从所述公共存储器读取相应数据。7.根据权利要求1的网络设备驱动体系结构,其中所述用户空间设备驱动功能配置为在用户应用程序青况下执行。8.根据权利要求7的网络设备驱动体系结构,其中所述用户空间设备驱动功能实施为用户空间库功能。9.根据权利要求1的网络设备驱动体系结构,其中在第一操作模式中,运行所述内核空间设备驱动器,以通过内核空间-NIC接口直接访问所述NIC,在第二操作模式,运行所述内核空间设备驱动,以通过所述内核空间-用户空间接口,所述用户空间设备驱动功能和所述用户空间NIC接口访问所述NIC。10.根据权利要求9的网络设备驱动体系结构,其中所述用户空间设备驱动功能配置为在用户应用程序情况下执行,而所述内核空间设备驱动器适于响应用户驱动程序失败而转换到所述第一操作模式。11.根据权利要求9或10的网络设备驱动体系结构,其中所述内核空间设备驱动包括定时监视器功能,如果在一段预定时间没有来自所述用户空间设备驱动功能的调用,则转换到所述第一操作模式。12.根据权利要求9的网络设备驱动体系结构,其中所述内核空间设备驱动包括-内核空间代理,用于管理所述内核空间用户空间接口;-网络设备驱动核心,运行以在所述第一操作模式直接访问所述NIC,并运行以在所述第二操作模式,将要输出的数据发送到所述内核空间代理,并从所述内核空间代理接收输入数据。13.根据权利要求12的网络设备驱动体系结构,其中所述用户空间设备驱动功能配置为在用户驱动程序情况下执行,而所述内核空间代理适于通过命令所述网络设备驱动核心转换到所述第一操作模式来响应用户设备失败。14.根据权利要求12或13的网络设备驱动体系结构,其中所述内核空间代理包括定时监视器功能,如果在一段预定时间没有来自所述用户...

【专利技术属性】
技术研发人员:M安德耶利克
申请(专利权)人:艾利森电话股份有限公司
类型:发明
国别省市:SE[瑞典]

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

1