用于在单个局域网适配器中启用卸载功能的方法和系统的利记博彩app

文档序号:7959388阅读:312来源:国知局
专利名称:用于在单个局域网适配器中启用卸载功能的方法和系统的利记博彩app
技术领域
本发明一般地涉及卸载功能以提高处理器性能。更具体地说,本发明卸载单个局域网适配器中的功能以便提高处理器性能。
背景技术
在自从计算机被首次连接在一起后的相对较短的时间内,局域网(LAN)技术和性能已显著地提高。最早的以太网网络从对每个网络设备都分接一次的单一长度的同轴电缆构造而来。这种形式的互连出现在八十年代早期,那时的计算机联网使用粗电缆网(称为10BASE-5)并且稍后使用IEEE 802.3标准来实现。随着无需分接电缆的细电缆网(称为10BASE-2)的采用,互连计算机的机械过程稍有改进。虽然使用细电缆网的同轴连接器互连设备要简单得多,但是该技术仍然将多个网络设备一起串在单一长度的同轴电缆上。利用任一这些标准在设备之间传输的层2分组会被电缆上的所有其他设备接收到。可以从所有其他连接的设备接收传输的设备组(也称为段)被称为冲突域。分组传输协议(对于这些标准,CSMA/CD)是在单个冲突域上控制信息的有序传输所必需的。在本概述中,可以接收层2广播的设备组(段)被称为广播域。此外,可以接收未直接定址到所述设备的单播层2分组的设备组(段)被称为重复段。
随着时间的推移,单个线实现被以太网重复段集线器和RJ-45型电缆(10BASE-T)所取代。对模块化的10BASE-T组件的更改对用于互连局域网设备的方法提供了巨大的改进,但是单个广播域和CSMA/CD的性能限制依然存在。局域网增长为其中数以百计的计算机将共享同一10MB广播域的端口密度。局域网管理员很快发现大型广播域与网络性能和数据隐私是不一致的。
层2以太网网桥和以太网交换机不会将单播分组转发出端口,除非目的地设备位于所述端口之后。由于此功能,桥接和交换是用于限制冲突域和重复的局域网段的大小的两种首要方法。交互机和网桥的部署带来了局域网性能和数据隐私的增加。随着层2交换技术价格的下降和这些交换机上的端口密度的增加,局域网管理员开始将交换机部署到网络的边缘。虽然重复集线器仍可以在小型网络和SOHO应用中找到,但是在现代局域网中,以太网交换机几乎已完全取代了重复集线器设备。
在过去10年中,局域网技术(尤其是以太网)每隔3到4年便会将介质速度提高十倍。相比之下,中央处理单元(CPU)的速度每两年才翻倍。因此,CPU正快速成为高I/O性能系统中的瓶颈。为了减缓此处理器性能滞后,可以将越来越多的本地主机功能卸载到I/O适配器。卸载功能减少了主机CPU工作负荷并具有提高I/O适配器吞吐量的额外益处。但是,必须小心地选择要卸载的功能,因为取决于应用,客户需要不同的卸载功能集合。目前,I/O适配器供应商通过使用他们认为客户会需要的特定卸载功能定制其I/O解决方案来尝试解决这些客户需求。由于测试和维护若干版本的适配器的成本,这种“碰运气式的”方法是一种昂贵的建议。即使为相同类型的适配器使用多级卸载功能(多于一个),该解决方案仍远非完美。
使用当前方法的另一个问题是当所有应用都使用相同的适配器时,将出现相同的卸载功能。由于某些应用可能不需要所述卸载功能或不能很好地与所述卸载功能一起执行,这将产生问题。例如,在TCP/IP环境中,只发送和接收很小的分组大小的应用可能不能很好地与卸载的校验功能一起执行,因为准备卸载的过程可能比只是计算校验和要更加CPU密集。
因此,具有一种提供将功能卸载到其他连接的设备的单个局域网适配器将是有利的。

发明内容
本发明提供了一种用于卸载功能以提高处理器性能的方法、装置和计算机程序产品。本发明的示例性方面提供了一种允许将预定义的功能卸载到其他设备的单个局域网适配器。提供了三种卸载功能的方式。第一是用户和应用根据需要只挑选和选择要被卸载的功能。第二是通过预定的调度器来调度要卸载的功能。第三是通过知识库启发或学习那些可以被卸载的功能。


在所附权利要求中说明了被认为是本发明特性的新颖特征。但是,当结合附图阅读时,通过参考以下对示例性实施例的详细说明,可以最佳地理解发明本身及其优选使用方式、进一步的目的和优点,这些附图是图1是其中可以实现本发明的数据处理系统的图示;图2是根据本发明的优选实施例的可以被实现为服务器的数据处理系统的方块图;图3是根据本发明的优选实施例的位于同一系统中的两个适配器的图示;图4是根据本发明的优选实施例描述的操作系统的功能性方块图;图5示出了根据本发明的优选实施例的示例性按需接口;图6示出了根据本发明的优选实施例的示例性调度驱动的接口;图7示出了根据本发明的优选实施例的示例性启发或学习接口;图8示出了根据本发明的优选实施例的示例性事件表;以及图9示出了根据本发明的优选实施例的卸载功能的示例性操作的流程图。
具体实施例方式
现在参考附图,具体地说,参考图1,其中示出了根据本发明的一个优选实施例的其中可以实现本发明的数据处理系统的图形表示。图1示出了计算机100,其包括系统单元102、视频显示终端104、键盘106、存储设备108(其可以包括软盘驱动器以及其他类型的永久性和可移除存储介质)以及鼠标110。个人计算机100可以包括有其他输入设备,例如游戏杆、触控板、触摸屏、轨迹球、麦克风等。可以使用任何适合的计算机(例如IBM eServerTM计算机或IntelliStation计算机,它们是位于纽约阿蒙克的国际商业机器公司的产品)来实现计算机100。虽然所示表示显示了计算机,但是可以以其他类型的数据处理系统(如网络计算机)来实现本发明的其他实施例。计算机100还优选地包括可以借助系统软件来实现的图形用户界面(GUI),所述系统软件驻留在计算机可读介质内并在计算机100中运行。
现在参考图2,图2示出了其中可以实现本发明的数据处理系统的方框图。数据处理系统200是诸如图1中的计算机100之类的计算机的一个实例,实现本发明的诸过程的代码或指令可以位于其中。数据处理系统200采用外围组件互连(PCI)局部总线体系结构。尽管所示实例采用了PCI总线,但是可以使用诸如加速图形端口(AGP)和工业标准体系结构(ISA)之类的其他总线体系结构。处理器202和主存储器204通过PCI桥208连接到PCI局部总线206。PCI桥208还可以包括用于处理器202的集成存储器控制器和高速缓冲存储器。可以通过直接组件互连或通过扩充连接器建立到PCI局部总线206的其他连接。
在所示实例中,局域网(LAN)适配器210、小型计算机系统接口SCSI主机总线适配器212以及扩展总线接口214通过直接组件连接被连接到PCI局部总线206。相反,音频适配器216、图形适配器218和音频/视频适配器219通过插入扩展槽的扩充板被连接到PCI局部总线206。扩展总线接口214为键盘和鼠标适配器220、调制解调器222以及附加的存储器224提供连接。SCSI主机总线适配器212为硬盘驱动器226、磁带驱动器228以及CD-ROM驱动器230提供连接。典型的PCI局部总线实现将支持三个或四个PCI扩展槽或扩充连接器。
操作系统在处理器202上运行并用于协调和提供对图2中的数据处理系统200内的各个组件的控制。所述操作系统可以是诸如Windows XPTM(其可从微软公司获得)之类的可以从市面上购买的操作系统。诸如JavaTM编程系统之类的面向对象的编程系统可以与操作系统一起运行并从在数据处理系统200上执行的JavaTM程序或应用来提供对操作系统的调用。“JAVA”是Sun Microsystems,Inc.的商标。用于所述操作系统、面向对象的编程系统以及应用或程序的指令位于诸如硬盘驱动器226之类的存储设备上,并可以被加载到主存储器204中以便由处理器202执行。
本领域的技术人员将理解,图2中的硬件可以根据实现方式而变化。除了图2中所示的硬件以外,或替代图2中所示的硬件,还可以使用诸如闪速只读存储器(ROM)、等同的非易失性存储器或光盘驱动器等其他内部硬件或外围设备。此外,本发明的诸过程可以应用于多处理器数据处理系统。
例如,数据处理系统200,如果可选地配置为网络计算机,则可以不包括SCSI主机总线适配器212、硬盘驱动器226、磁带驱动器228以及CD-ROM 230。在这种情况下,所述计算机(正确的称谓是客户端计算机)包括某种类型的网络通信接口,例如局域网适配器210、调制解调器222等。作为另一个实例,数据处理系统200可以是独立的系统,该系统配置为可以不依赖于某种类型的网络通信接口来进行引导,而无论数据处理系统200是否包括某种类型的网络通信接口。作为进一步的实例,数据处理系统200可以是个人数字助理(PDA),其配备有ROM和/或闪速ROM以提供非易失性存储器,以便存储操作系统文件和/或用户生成的数据。
图2中所示的实例和上述实例并非旨在暗示体系结构限制。例如,除了采取PDA的形式以外,数据处理系统200也可以是笔记本计算机或手持式计算机。数据处理系统200还可以是信息终端(kiosk)或Web家电。
本发明的诸过程由处理器202使用计算机实现的指令来执行,所述指令可以位于诸如例如主存储器204、存储器224之类的存储器中或位于一个或多个外围设备226-230中。
本发明提供了卸载功能以提高处理器性能。描述了一种允许将预定义的功能卸载到其他设备的单个局域网适配器。描述了三种可以通过其定义卸载功能的不同方法。第一是用户或应用可以根据需要只挑选和选择要被卸载的功能。第二是调度那些要卸载的功能可以在调度器中被定义。第三是提供了启发或学习能力,其中卸载功能可以被存储在知识库中。
使用实例最佳地描述了本发明的示例性方面。本发明仅出于示例目的使用了TCP/IP协议功能。此示例性说明并未限制本发明的范围,因为任何功能都可以使用以上描述的功能来卸载。
在此实例中,所有I/O适配器都默认启用了卸载功能。IP地址、TCP套接字端口号以及访问控制密钥的组合被用来控制对用户和/或应用可用的卸载功能的类型。因此,两个不同的用户和/或应用可以共享同一IP地址来与网络通信,但是可能没有使相同的卸载功能可用。可以通过发布给用户和/或应用的特殊密钥来控制对用于特定套接字端口号的卸载功能的访问。此密钥然后被TCP/IP堆栈用来标识对于每个套接字端口,哪些卸载功能被允许。某些公知的应用(例如“FTP”)可以被预先启用成特定的默认卸载功能。
这种类型的卸载将提高处理器性能并提高I/O适配器性能。使用此方法通过简化I/O适配器供应商的供应链节省了他们的时间和花费,因为他们只需与卸载功能的超集一起发布单个部件号。最终用户也节省了花费,因为他们只需激活他们所需的一个或多个功能并为其付费。通过将按需卸载功能所提供的灵活性提供给他们,这种解决方案节省了供应商的花费并满足了客户的需要。
现在转到图3,图3在表中示出了根据本发明的优选实施例的位于同一系统中的两个适配器的另一个示例。在图3的示例性表300中,为每个IP地址提供了IP地址302、端口号304、密钥306、Ipsec 308、TCP/IP校验和310、TCP/IP卸载312以及应用314;但是,其他项也可以被包括在该表中。在此表中,两个IP地址(或适配器316和318)位于同一系统中。IP地址316定义了IPsec、TCP/IP校验和以及TCP/IP卸载功能。但是,与启用了不同卸载默认功能的IP地址316关联的Telnet、FTP和NFS应用都通过其各自的端口号来控制。对于IP地址318,所述系统可以默认使所有用于Telnet和备份应用的卸载功能都启用。图3中概括了IP地址316和318的当前设置。尽管图3描述了表,但是可以使用任何其他类型的数据结构,例如数组、散列、标量等。
现在转到图4,其中示出了根据本发明的优选实施例的图3中示出的操作系统维护表300的功能性方块图。示例性操作系统400具有维护与图3中的表300类似的卸载功能启用表402的任务。在此实例中,用户或应用404启动从用户空间408到内核空间410的套接字系统调用406。在内核空间410中,套接字系统调用实现412接收套接字系统调用406,分析该调用并启动任何嵌入的套接字层功能414。
套接字层功能414确定所请求的功能的类型并以适当的协议发送所述功能。卸载功能启用表402在初始程序加载(IPL)期间由操作系统初始化。通过在运行期间在系统上添加或删除卸载功能,可以经由接口434来手动或自动地更新卸载功能启用表402。将根据以下的图5、6和7在稍后描述接口434的实例。操作系统中存在的任何协议都可以查询卸载功能启用表402。
操作系统通过在每个TCP连接的基础上启用卸载属性来实施对卸载硬件的访问控制。当在卸载功能启用表402中设置了卸载功能时,连接被卸载到I/O适配器430,否则将使用标准以太网NIC接口。此方法允许在与特定系统用户和/或应用关联的每个TCP连接的基础上使用卸载。此外,其使得卸载使用依赖于系统用户和/或应用。
另外,套接字层功能414将用户数据报协议(UDP)分组发送到udp_usrreq 416,所述分组被转换并被发送出udp_output 418。但是,由于UDP功能没有在卸载功能启用表402中列出,所以UDP功能调用将通过标准以太网NIC接口被发送。套接字层功能414还将传输控制协议(TCP)分组发送到tcp_usrreq 420,所述分组被转换并被发送出tcp_output 422。然后,是TCP/IP堆栈436的一部分的tcp_output 422查询卸载功能启用表402中的数据并将所述调用连接到用于选定卸载功能的设备驱动器426。
套接字层功能414还将传输控制协议(TCP)分组发送到udp_usrreq416,所述分组被转换并被发送出udp_output 418。然后,是UDP/IP堆栈438的一部分的udp_output 418查询卸载功能启用表402中的数据并将调用连接到用于选定卸载功能的设备驱动器426。
套接字层功能414还将因特网协议(IP)和因特网控制消息协议(ICMP)分组直接发送到因特网协议(IP)和因特网控制消息协议(ICMP)队列424。但是,IP/ICMP功能调用将通过标准以太网NIC接口被发送。
转到图5,其中示出了根据本发明的优选实施例的示例性按需接口。按需接口500是图4中的接口434的实例并且包括管理或根接口504,接口504允许用户508和应用506根据需要只挑选和选择所希望的功能。这些功能被添加到与图4中的卸载功能启用表402类似的卸载功能启用表502或被从其删除。
图6示出了根据本发明的优选实施例的示例性调度驱动接口。调度驱动接口600是图4中的接口434的实例并包括管理或CRON接口604,接口604允许根据调度事件表606中列出的事件由预定的调度器选择性地为给定工作负荷环境启用和禁用唯一的卸载功能。诸如事务处理之类的工作负荷可能需要IPsec、SSL等的特定卸载功能。但是,相同的工作负荷可能因较小的分组而不会从TCP/IP校验和卸载中受益很多。对于涉及较大分组传输(例如备份和FTP)的应用,诸如TCP/IP校验和、TCP/IP卸载之类的卸载功能将是有益的。这些工作负荷在一天中可能会发生变化。例如,面向事务的网络业务可能在白天达到其峰值,而备份业务在夜间达到其峰值。
可以根据调度事件表606中列出的事件通过预定的调度器来启用或禁用这些卸载功能。管理或CRON接口604可以是诸如批、CRON或脚本之类的任何类型的调度器。这些功能被添加到与图4中的卸载功能启用表402类似的卸载功能启用表602或被从其删除。
图7示出了根据本发明的优选实施例的示例性启发或学习接口。启发接口700是图4中的接口434的实例并包括管理或CRON接口704,接口704允许通过存储在知识库706中的已知事件为给定工作负荷环境选择性地启用或禁用唯一的卸载功能。
在多数网络安装中,尽管预先确定了工作负荷,但是它们可能因需求更改或季节性变化而有所改变。可以在知识库706中监视、分析和发布这些更改。存在若干工具来分析来自所述库的数据并根据一天中的时间来描述应用工作负荷的特征。诸如事务处理之类的工作负荷可能需要诸如IPsec、SSL之类的特定卸载功能。但是,相同的工作负荷可能因较小的分组而不会从TCP/IP校验和卸载中受益很多。对于涉及较大分组传输(例如备份和FTP)的应用,诸如TCP/IP校验和、TCP/IP卸载之类的卸载功能将是有益的。
可以根据知识库706中列出的事件通过启发式调度器来启用或禁用这些卸载功能。管理或CRON接口704可以是诸如批、CRON或脚本之类的任何类型的调度器。这些功能被添加到与图4中的卸载功能启用表402类似的卸载功能启用表702或被从其删除。
图8示出了根据本发明的优选实施例的事件的示例性表。表800是图6中的调度事件表606或图7中的知识库706的实例。在表800中,提供了用于两个连续星期一的CRON事件表项;但是,其他项也可以被包括在此表中。如图所示,用于两个星期一的这些表项不是完全相同的。原因可能在于其中的一天是节假日(9月6日,劳动节)或季节变更。所以对于第二个星期一的备份作业,卸载参数被最优化。尽管图8描述了表,但是可以使用任何其他类型的数据结构,例如数组、散列、标量等。
在图9中,流程图900示出了根据本发明的优选实施例的卸载功能的示例性操作。随着此示例性操作开始,操作系统初始化卸载功能表(步骤902)。然后,所述系统判定是否已请求了功能(步骤904)。如果没有请求功能,则所述系统返回步骤904,直到功能被请求为止。如果已请求了功能,则执行对卸载功能表的查询以判定是否应卸载所述功能(步骤906)。如果所述功能没有在卸载功能表中列出(步骤908),则通过标准以太网NIC接口发送所述请求以便其被处理(步骤910)。如果所述卸载功能表中列出了所述功能(步骤908),则建立到设备的接口,在此将卸载所述功能(步骤912)并将所述功能卸载到指定设备(步骤914)。
因此,本发明提供了一种用于卸载功能以提高处理器性能的方法、装置和计算机指令。提供了允许将预定义的功能卸载到其他设备的单个局域网适配器。所描述的方法允许以三种不同的方式卸载功能。第一种,用户或应用可以根据需要只挑选和选择要被卸载的功能。第二种,那些要卸载的功能的调度可以在调度器中定义。第三种,提供了启发或学习能力,其中卸载功能可以被存储在知识库中。
这种类型的卸载将提高处理器性能并提高I/O适配器性能。使用此方法通过简化I/O适配器供应商的供应链节省了他们的时间和花费,因为他们只需与卸载功能的超集一起发布单个部件号。最终用户也节省了花费,因为他们只需激活他们所需的一个或多个功能并为其付费。通过将按需卸载功能所提供的灵活性提供给他们,这种解决方案节省了供应商的花费并满足了客户的需要。
重要的是注意到,虽然在完整功能的数据处理系统的上下文中说明了本发明,本领域的技术人员将理解,可以以指令的计算机可读介质的形式和各种形式来发布本发明的诸过程,并且本发明均可等同地适用而与实际用于执行发布的信号承载介质的特定类型无关。计算机可读介质的实例包括可记录型介质,诸如软盘、硬盘驱动器、RAM、CD-ROM、DVD-ROM以及传输型介质,诸如数字和模拟通信链路、使用诸如例如射频和光波传输之类的传输形式的有线或无线通信链路。所述计算机可读介质可以采取编码格式的形式,可以对其解码以便在特定的数据处理系统中实际使用。
出于示例和说明目的给出了对本发明的描述,并且所述描述并非旨在是穷举的或是将本发明限于所公开的形式。对于本领域的技术人员来说,许多修改和变化都将是显而易见的。实施例的选择和描述是为了最佳地解释本发明的原理、实际应用,并且当适合于所构想的特定使用时,使得本领域的其他技术人员能够理解本发明的具有各种修改的各种实施例。
权利要求
1.一种用于在数据处理系统中卸载功能的方法,所述方法包括在处理器处接收对将在所述数据处理系统中实现的功能的请求;根据数据结构判定是否将所述功能卸载到网络适配器;响应于判定所述功能将被卸载到所述网络适配器,建立到所述网络适配器的接口并将所述功能卸载到所述网络适配器;以及响应于判定不将所述功能卸载到所述网络适配器,使用所述处理器来处理所述功能。
2.根据权利要求1的方法,其中将所述功能卸载到所述网络适配器包括对所述网络适配器实施访问控制;以及在每个连接的基础上启用卸载属性。
3.根据权利要求1的方法,其中所述数据结构是卸载功能数据结构。
4.根据权利要求1的方法,其中所述数据结构由定义将被卸载的所述功能的用户来更新。
5.根据权利要求1的方法,其中所述数据结构由定义将被卸载的所述功能的应用来更新。
6.根据权利要求1的方法,其中所述数据结构由定义其中功能将被卸载的时间的调度器来更新。
7.根据权利要求6的方法,其中所述调度器根据预安排事件数据结构来确定所述时间。
8.根据权利要求1的方法,其中所述数据结构通过定义其中功能将被卸载的事件的启发式接口来更新。
9.根据权利要求8的方法,其中所述启发式接口根据知识库中的已存储事件来确定所述时间。
10.一种数据处理系统,所述数据处理系统包括总线系统;连接到所述总线系统的通信单元;连接到所述总线系统的存储器,其中所述存储器包括一组指令;网络适配器;以及连接到所述总线系统的处理单元,其中所述处理单元执行所述指令组以便在处理器处接收对将在所述数据处理系统中实现的功能的请求;根据数据结构判定是否将所述功能卸载到所述网络适配器;建立到所述网络适配器的接口并将所述功能卸载到所述网络适配器以响应判定所述功能将被卸载到所述网络适配器;以及使用所述处理单元来处理所述功能以响应判定不将所述功能卸载到所述网络适配器。
11.根据权利要求10的数据处理系统,其中在执行所述指令组以便将所述功能卸载到所述网络适配器中,所述处理单元执行一组指令以便对所述网络适配器实施访问控制并且在每个连接的基础上启用卸载属性。
12.根据权利要求10的数据处理系统,其中所述数据结构是卸载功能数据结构。
13.根据权利要求10的数据处理系统,其中所述数据结构由定义将被卸载的所述功能的用户来更新。
14.根据权利要求10的数据处理系统,其中所述数据结构由定义将被卸载的所述功能的应用来更新。
15.根据权利要求10的数据处理系统,其中所述数据结构由定义其中功能将被卸载的时间的调度器来更新。
16.根据权利要求15的数据处理系统,其中所述调度器根据预安排事件数据结构来确定所述时间。
17.根据权利要求10的数据处理系统,其中所述数据结构通过定义其中功能将被卸载的事件的启发式接口来更新。
18.根据权利要求17的数据处理系统,其中所述启发式接口根据知识库中的已存储事件来确定所述时间。
19.一种用于卸载功能的计算机程序产品,所述计算机程序产品包括用于在处理器处接收对将在数据处理系统中实现的功能的请求的第一指令;用于根据数据结构判定是否将所述功能卸载到网络适配器的第二指令;用于响应于判定所述功能将被卸载到所述网络适配器,建立到所述网络适配器的接口并将所述功能卸载到所述网络适配器的第三指令;以及用于响应于判定不将所述功能卸载到所述网络适配器,使用所述处理器来处理所述功能的第四指令。
20.根据权利要求19的计算机程序产品,其中将所述功能卸载到所述网络适配器的所述第三指令包括用于对所述网络适配器实施访问控制的第一子指令;以及用于在每个连接的基础上启用卸载属性的第二子指令。
全文摘要
本发明提供了一种用于卸载功能以提高处理器性能的方法、装置和计算机程序产品。提供了一种允许将预定义的功能卸载到其他设备的单个局域网适配器。描述了用于卸载功能的不同方法。第一种,用户和应用可以根据需要只挑选和选择要卸载的功能。第二种,调度器通过预定的调度器来调度那些将被卸载的功能。第三种,可以根据存储在知识库中的启发或学习方法来卸载功能。
文档编号H04L12/28GK1845510SQ20061007204
公开日2006年10月11日 申请日期2006年4月4日 优先权日2005年4月7日
发明者R·E·冈萨雷斯, B·K·华, S·K·科杜库拉, R·夏尔马 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1