用于服务器环境中的联网卸载的主机以及网适配器的制作方法

文档序号:7636707阅读:188来源:国知局
专利名称:用于服务器环境中的联网卸载的主机以及网适配器的制作方法
技术领域
本发明一般地涉及服务器环境,具体地说,涉及在此类环境中使用的 适配器。相关申请的交叉引用本申请涉及以下未决的美国专利申请美国专利申请,序号—(代理人案号RPS920050060US1/3486P),标 题为"Method and System for Accommodating Several Ethernet Ports and a Wrap Transmitted Flow Handled by a Simplified Frame-By-Frame Upper Structure",与本申请同日提出并受让给本发明的受让人。美国专利申请,序号—(代理人案号RPS920050061US1/3487P),标 题为"Method and Apparatus for Providing a Network Connection Table", 与本申请同日提出并受让给本发明的受让人。美国专利申请,序号—(代理人案号RPS920050062US1/3488P),标 题为"Network Communications for Operating System Partitions", 与本申请同日提出并受让给本发明的受让人。美国专利申请,序号—(代理人案号RPS920050073US1/3502P),标 题为"Configurable Ports for a Host Ethernet Adapter",与本申请 同日提出并受让给本发明的受让人。美国专利申请,序号—(代理人案号RPS920050074US1/3503P),标 题为"System and Method for Parsing, Filtering, and Computing the Checksum in a Host Ethernet Adapter (HEA)",与本申请同曰提出并受 让给本发明的受让人。
美国专利申请,序号(代理人案号RPS920050075US1/3504P),标 题为"System and Method for a Method for Reducing Latency in a Host Ethernet Adapter (HEA)",与本申请同日提出并受让给本发明的受让人。美国专利申请,序号—(代理人案号RPS920050076US1/3505P),标 题为 "Method and Apparatus for Blind Checksum and Correction for Network Transmissions",与本申请同日提出并受让给本发明的受让人。美国专利申请,序号—(代理人案号RPS920050082US1/3512P),标 题为"Method and System for Performing a Packet Header Lookup", 与本申请同日提出并受让给本发明的受让人。美国专利申请,序号_ (代理人案号RPS920050089US1/3516P),标 题为"System and Method for Computing a Blind Checksum in a Host Ethernet Adapter (HEA)",与本申请同日提出并受让给本发明的受让人。
背景技术
图1示出了常规服务器系统10。服务器系统10包括连接到主存储器 14的处理器12。处理器12通过其专用总线(GX) 16连接到包括网洛接口 系统18的系统。网洛接口系统18又通过PCI总线22等连接到适配器20。 如公知的,PCI总线22具有有限的带宽,它会影响可以从其通过的业务量。互联网及其应用极大地增加了服务器必须满足的客户端请求的数量。 每个客户端的请求同时生成网络和存储1/0。此外,IO千兆位以太网和IP 存储的到来使在单个主干基础设施(以太网、TCP/IP)上合并数据中心通 信成为可能。但是,10千兆位速度的TCP/IP协议消耗了主流服务器中的极大的处 理和存储器带宽,因此严重地限制了服务器运行应用的能力。在今天的服务器网络接口控制器(NIC)中,支持有限卸载诸如TCP 和IP校验和、大量发送(或TCP分段卸载)之类的功能。但是,这些功能 在1G时尚可胜任,但是不能解决诸如10G和更高速度的问题。使用TCP卸载引擎将全部TCP/IP协议堆栈完全从服务器卸载是公知
的。但是,TCP卸载引擎实施方式通常以相对复杂的硬件或微处理器体系 结构中的微:码来实现。还存在调试、问题确定和堆栈可维护性问题。此夕卜, 当使用微码时还存在伸缩性问题,因为微引擎并不遵循主处理器路线图。 最后,卸载引擎通常引入新的协议和API,因此要求应用和互操作问题方 面的更改。因此,需要一种允许克服上文确定的问题的以太网环境中的高带宽数 据的系统和方法。本发明解决了此类需要。发明内容本发明公开了一种以太网适配器。所述以太网适配器包括多个层,用 于允许所述适配器从处理器接收分组并将分组发送到处理器。所述多个层 包括多路分用机制,以便允许对所述处理器进行分区。主机以太网适配器(HEA)是提供了以太网和TCP加速的新方法的集成 以太网适配器。将一组TCP/IP加速特性引入工具箱方法服务器TCP/IP 堆栈在需要时使用这些加速器。通过旁路PCI总线来使服务器与网洛接口 控制器之间的接口成流。所述HEA支持网络虛拟化。所述HEA可以由多个操作系统共享,这提 供了基本的隔离和保护而不影响其性能。


图l示出了常规服务器系统;图2是根据本发明的服务器系统的方块图;图3是根据本发明的主机以太网适配器的简单方块图;图4是具有介质访问控制器和串行化/解串层的更详细视图的主机以太网适配器的方块图;图5示出了一个RxNet的组件和数据流; 图6示出了一个TxEnet的组件和数据流;图7是具有分组加速和虚拟化层的更详细视图的主机以太网适配器的方块图;图8是RxAccel单元的更详细的视图;图9示出了 RxAccel单元包括两个发送主干(XBB)、两个发送校验和 单元、两个发送MIB、 一个环绕单元和一个暂停单元;图10是具有主机接口层的更详细视图的主机以太网适配器110的方块图;图11示出了提供每物理端口的逻辑层2交换机的主机以太网适配器; 图12示出了与遗留操作系统TCP/IP堆栈一起使用的主机以太网适配器;图13示出了在一些分区支持用户空间TCP堆栈的系统中使用的主机以 太网适配器;图14示出了所有支持包括每连接排队的加速特性的主机以太网适配器;图15示出了入站多寺番发送; 图16示出了出站多^番发送。
具体实施方式
本发明一般地涉及服务器环境,具体地说,涉及在此类环境中使用的 适配器。提出了以下说明以使本领域的技术人员能够实施和使用本发明, 并且在专利申请及其要求的上下文中提供以下说明。对本领域的技术人员 来说,对本文所述的优选实施例和一般原理及特性的各种修改将是显而易 见的。因此,本发明并非旨在,皮限于示出的实施例,而是将祐赋予与本文 说明的原理及特性一致的最广泛的范围。图2是根据本发明的服务器系统100的方块图。月良务器系统100包括 连接在存储器104与接口适配器芯片106之间的处理器102。接口适配器 芯片106包括到处理器102的专用(Gx)总线的接口以及主机以太网适配 器(HEA) 110。 HEA 110接收来自处理器102的信号并将信号发送到处理 器102。HEA 110是集成以太网适配器。在服务器内的TCP/IP堆栈中提供了一 组加速器特性。通过旁路PCI总线并提供允许多路分用和多重排P人及分组 标头分离的接口技术来使处理器102与接口适配器芯片106之间的接口 100成流。HE A 110通过直接连接到GX +总线并由此分享巨大的带宽(在8 6 6 Mhz 为55.42 Gbps)以真正支持两个IO Gbps端口的完全40 Gbps带宽来实现 无与伦比的性能水平。注意,64位PCI-X133MHz总线被限制在8. 51Mbps 并至少要求PCI Express x8总线来匹配两个10 Gbps端口的吞吐量。在 GX总线上还移除了中间逻辑并由此改进了发送等待时间。通过此类操作,提供了 一种允许高速系统的改进功能同时允许与遗留 服务器环境的兼容性的以太网适配器。下文说明了此改进功能的一些关键 特性。加速功能HEA 110支持高级加速特性。 一个关键的观察结果是当前的加速功能 在发送侧(即,从处理器发送分组)充分地执行,但在接收侧(即,通过 适配器接收分组)并不充分。HEA 110通过引入诸如分组多路分用和多重 排队以及标头分离之类的新特性来解决此差距。所有这些HEA 110新特性都是可选的;它取决于TCP/IP堆栈在需要时 利用它们。例如,TCP/IP堆栈可以使用HEA 110并利用HEA的其他特性(例 如,吞吐量、低等待时间和虛拟化支持)。分组多路分用和多重排队多重排队和多路分用是支持诸如虛拟化、每连接排队和操作系统旁路 之类的功能的关键特性。HEA多路分用使用队列对、完成队列和事件队列 的概念。添加了增强功能来更好地解决操作系统协议堆栈要求和短的分组 等待时间降低。根据系统要求和配置,HEA可以根据以下项来多路分用入站分组
目的地MAC地址(通常每分区一个MAC地址和一个默认队列); 已建立连接的连接标识符(协议、源IP地址、目的地IP地址、源端 口、目的地端口 );TCP连接设置分组的目的地端口以及可选的目的地IP地址(SYN)。分组标头分离HEA 110能够将TCP/IP标头从数据有效负载中分离。该特性使标头能 够被引导到协议堆栈以便处理,而不污染由应用发布的接收緩沖区。增强特性HEA 110在服务器环境下提供了很多增强特性。下文列出了这些特性 中的一些特性。1. 多接收队列将队列对概念扩展为支持每对多于一个接收队列。 这使堆栈能更好地管理其緩冲池存储器。例如,可以将一个队列分配到小 型分组, 一个分配到中型分组, 一个分配到大型分組。HEA 110将4艮据接 收的分组大小来选择专用队列。2. 低等待时间队列在发送侧,描述符(WQE)可以包含直接数据, 在此情况下,不需要间接(即,不需要来自系统存储器的额外DMA)发送 数据。在接收侧,低等待时间队列不提供緩冲,而是接收直接分组数据。 HEA 110直接写入接收队列。较短分组利用此特性,导致大幅减少DMA操 作与每分组一个DMA读取及一个DMA写入相反的每分组单个DMA写入。3. 接收低等待时间队列还用于支持分组标头分离将标头写入低等 待时间队列,而将有效负载以DMA方式发送到专用接收队列中指示的緩沖 区。总之,多路分用和多重排队以及分组标头分离M拟化和提供低等待 时间操作的基本构建块。此外,应指出的是,这些特性还可用于提高传统 操作系统协议堆栈性能,例如,每连接排队允许删除代码且更重要地减少 了定位存储器中适当信息所消耗的存储器存取-以及关联的停止/高速緩
存污染。为了更详细地说明HEA 110的特性,现在结合附图参考以下说明。图3是才艮据^^发明的HEA 110的简单方块图。如图所示,HEA 110具 有三层体系结构。第一层包括介质访问控制器(MAC)和串行化/解串 (Serdes)层202,其提供了去往和来自以太网上的其他设备的多个接口 。 在层202中,使用同一芯片1/0来提供多个接口。例如,在优选实施例中, 使用同一芯片1/O来提供10千兆位接口或l千兆位接口。第二层包括分组加速和虚拟化层204。层204用来接收分组并对分组 流进行多路分用来允许虚拟化。层204根据分组来允许服务器操作系统的 虚拟化或分区。层204还提供分组标头分离来允许零复制操做并由此提供 改进的等待时间。还由于层204通过主机接口层206与专用总线(Gx)直 接交互,所以提供了低等待时间、高带宽连接。第三层包括主机接口层206。主机接口层206提供到处理器的Gx或专 用总线的接口并与层204通信。层206提供了每队列对(QP)的多个接收 子队列来允许针对TCP堆栈的有效緩冲区管理。主机层206为给定的数据 分组流提供上下文管理。为了更详细地说明HEA 110的层202、 204和206中的每个层的特性, 现在结合附图参考以下讨论。MAC和串行化/解串层202图4是具有MAC和串行化/解串层202的更详细视图的HEA 110的方块 图。如图所示,在此实施例中,存在一个10千兆位MAC 302和四个1千兆 位MAC 304a和304b。 MAC 302、 304a和304b包括用于对齐和编码接收的 分组的模拟编码单元308a、 308b和308c。 MAC 302、 304a和304b连接到 高速串行器/解串器(HSS) 306。高速串行器/解串器306能够从一个10 千兆位源或四个1千兆位源接收数据。接收以太网功能UxNet)概述
本节示出了层202中的高级结构和通过接收以太网功能的流。将在下 文更详细说明的Rx加速器单元400是分组加速和虚拟化层204的一部分。图5示出了一个RxNet的组件和数据流。数据到达接口 302并由高速 串行器/解串器304、模拟编码单元308a和308b以及MAC处理,在此实施 例中,所述MAC在64位(10G )或32位(1G )并行数据总线中装配和对齐 分组数据。还生成指示帧起始和结束以及其他分组信息的控制信号。数据 和控制通过RxAccel单元400,其执行分析、过滤、校验和及查找功能以 准备由层206 (图2)的接收分组处理器(RPP)来处理。在此实施例中, 当数据ii^ RxAccel单元400时,将时钟转换为4. 6ns时钟,并且将数据 宽度转换为128b。随着数据通过RxAccel单元400流到主机层206中的数据緩冲区, RxAccel单元400窥探控制和数据并启动其处理。延迟了 RxAccel单元400 中的数据流,以便将RxAccel单元400的结果与分组的尾部同步。这时, 将RxAccel单元400的结果连同一些来自MAC 302的原始控制信息一起传 递到命令队列。将该控制信息和数据一起存储在緩冲区中。如果RxAccel单元400没有緩存查找表项,则它可能需要通过GX总线 接口转到主存储器。GX总线在4. 6ns下工作。主机层206可以异步地读取 来自RxAccel单元400的队列对求解信息。发送以太网功能(TxEnet)概述本节提供了发送结构和通过以太网的流及加速特性的概述。将在下文 更详细说明的Tx加速器单元500是分组加速和虚拟化层204的一部分。图6示出了一个TxEnet的组件和数据流。分组数据和控制从HEA 110 的TxAccel 500组件到达。Tx加速器(TxAccel)单元500解译控制信息 并^"改流过单元500的分组标头中的字段。它才艮据控制信息或在分组标头 中发现的信息来^L出环绕或端口决定。它还生成用于TxMAC 302和304的 适当控制。延迟了 TxAccel单元500中的数据流,以使TxAccel单元500 能够在流向MAC 302和304之前更新分组标头。在退出时,将数据宽度从128为转换为64位(10G)或32位(1G)。数据和控制通过TxAccel单元 500中的时钟转换功能,以便i^VMAC 302和304的不同时钟域。MAC 302 和304、模拟转换器508a和508b以及高速串行器/解串器306对以太网接 口的分组进行格式化。分组加速和虛拟化层204图7是具有分组加速和虚拟化层204的更详细视图的HEA 110的方块 图。HEA层204包括上述接收(RxAccel )加速单元400和发送加速(TxAccel) 单元500。 RxAccel单元400包括接收主干(RBB) 402、分析器、过滤器及 校验和单元(PFC) 404、查找引擎(LUE) 406和MIB数据库408。 TxAccel 单元500包括发送主干502、查找校验504和MIB引擎516。将在下文更详 细地说明Rx加速单元400和Tx加速单元500的操作。接收加速(RxAccel)单元400本节说明了通过RxAccel单元400的高级结构。图8是RxAccel单元 400的更详细的视图。RxAccel单元400包括接收主干(RBB) 402、分析器、 过滤器及校验和单元(PFC) 404、本地查找单元(LLU) 406、远程查找单 元(RLU) 408和MIB数据库410。数据从接收MAC流过RxAccel单元400而未改变。RBB 402管理数据 流并负责时钟和数据总线宽度转换功能。从接收MAC接收的控制和数据由 PFC 404用于执行加速功能并做出丟弃决定。PFC 404将从帧提取的控制和 数据(包括五元组密钥)传送到LLU 406,以便求解RBB 402的队列对编 号(QPN) 。 LLU 406立即寻找QPN或分配高速緩存表项以保留空位(slot)。 如果当前密钥不在高速緩存中,则LLU 406在主存储器中搜索密钥。PFC 404 连接到MIB数据库410以存储分组统计信息。Tx力口速500本节说明了通过发送加速单元500 (TxAccel)的高级结构和流。
图9示出了 TxAccel单元500包括两个发送主干(XBB) 502a和502b、 两个发送校验和单元(XCS) 504a和504b、两个发送MIB 506a和506b、 一个环绕单元(WRP) 508和一个暂停单元(PAU)逻辑510。数据从ENop 流过TxAccel并械:修改以调整IP和TCP校验和字段。XBB 502a和502b管 理数据流并负责时钟和数据总线宽度转换功能。从ENop接收的控制和数据 由XCS 504a和504b用于执行校验和功能。在MAC层202发送(或丢弃) 分组之后,发送状态返回TxAccel以便核算。XBB 502将信息转换到TxAccel 单元500的时钟域。将状态信息与XCS 504从分组获得的原始信息结合并 传送到MIB计数器逻辑506a和506b。 MIB逻辑506a和506b更新MIB阵列 中的适当计数器。环绕单元(WRP ) 508负责向接收侧传送XCS 504a和504b 决定环绕的分组。暂停单元(PAU) 510命令MAC根据接收緩冲区的占用率 来发送暂停帧。主才几接口层206图10是具有主机接口层206的更详细视图的HEA110的方块图。主机 接口层206包括用于从层204接收分組并将分组提供给层204的输入和输 出緩冲区602和604。层206包括用于适当地处理输入緩沖区中的分组的 接收分组处理器(RPP) 606。上下文管理机制908在允许TCP堆栈的有效 緩冲区管理之前提^^队列的多个子队列。多路分用功能层204的Rx单元400结合主机接口层206的组件对分組进行多路分用 以确保将它们提供给处理器的适当部分。因此,必须对接收的分组进行多 路分用以确保它们流向服务器的适当部分。为了说明此多路分用功能的细节,现在结合图8和图9参考以下内容。HEA适配器上的多路分用实施方式在接收分组处理器UPP) 606可以处理已接收的分组之前,必须检索
队列对上下文。QP连接管理器使用QP号来完成该操作。因为未在TCP/IP 分组中传送QP号,所以必须通过其他方法来确定此编号。存在两大类QP, 每连接QP和默认QP。每连接队列对(QP)每连接QP旨在用于持久连接,其中不希望IP分组的碎片而希望低等 待时间。它要求应用支持由HEA 110提供的用户空间排队机制。在此实施 例中,必须首先j吏用目的地MAC地址找到逻辑端口 。对于每连接QP,存在 三种类型的查找1. 特定目的地IP地址和目的地TCP端口的新TCP连接。如果分组 为TCP SYN分組,则根据TCP/IP (DA、 DP、逻辑端口 )来执行查找。2. 仅用于特定目的地TCP端口 (不考虑DA)的新TCP连接。如果分 组为TCP SYN分组,则根据TCP/IP (DP、逻辑端口 )来执行查找。3. 现有的TCP/UDP连接。如果分组为无碎片单播TCP或UDP分组, 则根据TCP/IP五元组加上逻辑端口来执行查找。默i人队列对如果不能找到分组的每连接QP,或如果未启用MAC地址的每连接查找, 或如果分组为再循环的多播/广播分组,则使用默认QP。通常,默认QP由 内核联网堆栈处理。在HEA 110中存在三种类型的默认QP:1. 每逻辑端口的默认0S队列。逻辑端口对应于具有其自己的默认队 列的逻辑以太网接口 。每个逻辑端口在逻辑交换机上具有单独的端口 。根据MAC地址执行查找。到默认OS队列的直接索引(逻辑端口号)具备再循环的(环绕的)多播/广播分组。2. 多播(MC)或广播(BC)队列。在分组是不匹配MAC查找表中的MAC地址之一的多播或广播分组时, 为已配置的值。
3.超默认单播(UC)队列。如果UC分组不匹配配置的MAC地址之一,则可以使用默认UC QPN。 此机制允许每连接排队和每逻辑端口排队(0S队列)的两个极端之间的灵活性。两个才莫型都可以与具有其自己排队的一些连接和使用默认逻辑 端口队列排队的一些连接一起工作。由RxAccel单元400执行连接查找。每个端口组都存在一个此类单元。 在RxAccel单元400中,每个组件执行该过程的一部分。PFC 404从分组 标头提取所需字段并根据目的地MAC地址来确定逻辑端口号。然后,本地 查找单元(LLU) 406和远程查找单元(RLU) 408负责求解QP号。LLU406 尝试仅使用本地资源(高速緩存和寄存器)来寻找QPN。LLU 406的用途是尝试确定与接收的分组关联的QP号。VLIM和RPP 606 需要QP号。它在可能的情况下本地执行此任务(即,不转到系统存储器)。可以通过以下几种方式之一本地寻找QP号在TS高速緩存中查找默认分区QP默认UC QP如果没有在本地找到任何匹配,则进行初步检查以查看表项是否可能 存在于系统存储器中。如果是,则调用RLU 408来执行搜索。如果RLU408 忙,则形成在RLU 408空闲时提供给它的请求队列。LLU 406与RBB 402通信,后者提供QP号和/或队列索引以用于临时 排队。如果在高速緩存中没有适合的表项可用,则LLU 406指示RBB 402 搜索正忙。在此情况下,必须丟弃分组。当请求队列索引解并得到解时,LLU 406将QPN提供给主机层406。 RLU 408尝试使用系统存储器表来寻找QPN。LLU 406使用本地64表项高速緩存以便寻找TCP/UDP分组的QPN。如 果在高速緩存中找到该表项,则无需调用RLU 408。如果没有在高速緩存 中找到该表项,则在高速緩存中进行初步检查以查看该表项是否可能在连 接表中。当存在数个配置的队列时,对于消除对主存储器的不必要访问来
说,高速緩存是有用的。如果调用了 RLU 408,则它^f吏用六元组的散列(包括逻辑端口号)来 从存储器取回128字节直接表(DT)表项。该DT表项包含最多八个六元组 模式和关联的QPN。如果找到匹配,则无需进一步的操作。当必须调用RLU 408时,不能在运行中确定QPN,因为正在将分組放 入输入緩冲区。实际上,可以在数个分组之后确定QPN。出于此原因, RxAccel单元400可以向主机层206提供QPN或队列索引以便分组排队。 如果提供了 QPN,则主机层206 (卸载机)可以直接将分组排队以由RPP 处理。如果提供了队列索引,则主机层206必须保留此分组以等待QPN的 解。始终在分派RPP时才确定QPN。虚拟化因为高速数据路径很可能由多个分区共享并且因为高速以太网性能对 服务器来说至关重要,所以HEA执行下列操作非常关键 提供在多个分区之间共享的适配器; 允许本^M生能,即,"与专用适配器一样,,;允许本才几增值特性,即,"与专用适配器一样"(大量发送、每连接队列.......);允许分区之间的隔离; 提供分区连接性。分区必须能够透明地通信,即,以相同的方式,无论它们是共同位于 同 一物理服务器上还是位于由真实以太网连接的不同物理服务器上。今天,通过在拥有适配器的服务器分区中进行切换或路由来支持以太网虛拟化,此额外跳跃带来了性能瓶颈(数据复制、三个驱动器.......)。HEA 110旨在提供正在使用的分区与适配器之间的直接数据和控制路径(没 有额外跳跃)。也就是说,HEA向每个分区提供其自己的"虛拟"适配器 和"逻辑"端口。与HCA—样,可以每分区地分配/启用所有HEA资源和功 能,使用完全相同的机制来提供分区间保护和隔离。
数据路径关于数据路径,如图11所示,HEA 110提供每物理端口 902和904的 逻辑层2交换机906和908,以便提供多播处理和分区到分区910a-910c 通信。在HEA中实现此支持使整体系统解决方案简单(具体地说,对软件 透明)并提供了高性能。所有HEA硬件加速和保护都对分区到分区通信可 用。为了支持以上流程,可以考虑的便捷方法是向给定物理端口以及该物 理端口自身连接的端口显示所有逻辑端口与其关联的逻辑层2交换机902 和904。问题是如何及在何处实现此逻辑交换机,选择的范围从固件/软件 中的完全仿真到HEA硬件中的完全实现。每物理端口都有一个逻辑层2交 换机;这些逻辑交换机没有连接在一起。系统配置具有遗留OS TCP/IP堆栈的虚拟化HEA图12示出了与遗留OS TCP/IP堆栈1102、 1104和1106 —起使用的HEA。-未更改应用1108a-1108c;-未更改TCP/IP堆栈1102、 1104和1106;-要求支持HEA 110的i殳备驱动器1107a、 1107b和1107c。可以可选地增强TCP/IP堆栈(OS)以利用诸如用于短分组或每TCP 连接的多路分用分组的低等待时间队列之类的特性。如图所示,根据MAC 地址和每分区的QPN来执行分组的多路分用。具有遗留OS堆栈和用户空间TCP/IP的虚拟化HEA图13示出了在一些分区支持用户空间TCP堆栈1220以及遗留OS堆栈 1208a和1208b的系统中使用的HEA 110。-可能需要支持用户空间TCP的应用来使用套接字扩展API;-其他分区可以使用常规OS TCP/IP堆栈;-支持用户空间TCP的分区中的一些应用也可以使用常规TCP/IP堆栈 (默认路径)。由HEA根据客户标识(Cid)信息和客户QPN来对用户空间 TCP 1220进行多路分用。在适配器中完全支持逻辑交换机。为了使HEA硬件复杂性最小化,HEA 依赖软件实体(多播管理器)来进行多播/广播分组复制。HEA协助多播管 理器将分组副本传送到目的地分区。外部单播业务通过分配给分区的QP来处理发送单播业务。它可以是每连接的专用队 列对或每逻辑端口的单个队列对或两者。HEA提供了 "发送"队列间的/> 平调度。根据系统配置,可以许可QP访问应用(用户空间)或仅访问OS 堆栈(特权)。按照以下步骤对接收的单播业务进行多路分用 -对目的地MAC地址执行查找以找到目的地逻辑端口 ; -如果为目的地逻辑端口启用了每连接排队,则对连接ID执行第二查 找以找到与连接关联的QP;-如果未启用每连接排队或尚未设置特定连接的连接QP,则将入站消 息排队到与目的地逻辑端口关联的"默认"QP。分区到分区单播业务图14是示出了包括支持每连接排队的所有HEA加速特性的方块图。将 完全透明性提供给分区的设备驱动器。分区堆栈使用每连接QP或默认QP来发送分组。由于分组由HEA发送 侧处理,所以HEA检测到目的地MAC地址是与同一物理端口上定义的逻辑 端口关联的MAC地址(也就是说,目的地MAC地址标识属于同 一层2逻辑 交换机的接收逻辑链路而非发送逻辑链路)。因此,HEA使分组环绕。HEA 接收侧然后处理分组,似乎分组是从物理链路接收的,并因此使用完全相 同的加速特性。在IP情况下,IP堆栈可以使用常规机制来找到位于同一 IP子网的目的地分区的目的地MAC地址。该分区可以共同位于同一服务器或位于不同 服务器,这对堆栈和设备驱动器两者都是透明的。外部和分区到分区多播/广播业务HEA未规定将多播和广播分组复制到所需分区。相反,它将所有接收 的MC/BC分组转发到由多播管理器功能拥有的QP。该功能按需要复制分组 并使用HEA传输功能来将副本分发到所需分区。接收图15示出了入站多播传输。接收的多播和广播分组首先通过HEA过滤 功能。如果未被丟弃,则将分组引导到多播管理器1500拥有的QP。将分 组传送到系统存储器并激活多播管理器1500。多播管理器1500确定哪个 逻辑端口应接收分组的副本(多播过滤)并处理分组复制。多播管理器可 以使用HEA IIO来协助将分组重新分发到接收分区1502a-1502c。为执行此操作,多播管理器使n个(接收方的数量)引用所接收分组 的描述符(WQE)入队到其发送队列。注意,必须将分组完好地发送到其接 收方,具体地说,用其各个接收方的单播地址来替换多播目的地MAC地址 是不可接受的。因此,分组描述符必须包含信息,以便HEA可以将分组引 导到其适合的目的地。此信息可以是接收方的默认QP或其逻辑端口 ID或 其MAC地址。 一旦选择了要发送的分组,HEA发送侧根据包含在QP和WQE 两者中的信息确定需要通过环绕发送分组。将确定接收方QP的信息连同数 据一起传送到HEA接收侧。HEA接收侧使用该信息来将分组入队到接收方QP。发送图16示出了出站多播传输。通it^分区使用普通过程来发送广播/
多播分组。由于分组由HEA发送侧处理,所以HEA检测目的地MAC地址是 广播还是多播以及未在WQE中设置"驱逐"选项。因此,HEA使分组环绕。 HEA接收侧然后如上所述的处理分组。多播管理器如上所述的处理分组, 同时具有以下附加要求-它必须确保将发送方从接收方列表中删除,它将分组的源MAC地址 用作过滤器来执行此操作;-可以在分组复制过程期间执行VLAN过滤。仅将分组发送到VLAN的 成员;——旦发生内部复制,则必须将分组发送到物理端口外。它通过启用 其QP的驱逐功能及在WQE中设置"驱逐"位来执行此操作。当设置了该位 时,HEA直接将分组发送到物理链路外。多分区环境中的多播过滤在接收侧,HEA提供多播过滤。与其他"现用"适配器一样,HEA提供 基于目的地MAC地址的散列值的最佳过滤和对每物理端口的一个过滤表的 查找。此功能意在限制多播业务,但是将"最终"过滤留给堆栈。在多分 区的情况下,来自所有涉及的分区的过滤要求应由多播管理器合并,然后 在HEA中配置。然后,多播管理器可以在处理将分组分发到所需分区时执行每分区的 多播过滤。分组标头分离HEA 110能够将TCP/IP标头从数据有效负载中分离。此特性允许零复 制操作并由此改善了等待时间。当在QP上下文中配置时,由HEA110执行分组标头分离。当配置之后, 将以太网/IP/TCP或以太网/IP/UDP标头从分组本体分离并置于不同的存 储器中。通常,TCP/IP堆栈处理标头,而应用处理本体。在石更件中分离允 许将用户数据对齐到用户緩冲区中并由此避免复制。
层204 (图8)中的PFC 404将总标头长度(8位)传递到主机接口 206 (图10)的RPP 606,所述长度指示以太网、IP和TCP/UDP标头的字节数。 当未执行标头分离时将标头长度设置为0。必须为两个或更多接收队列(RQ)配置QP。如果分组是TCP或UDP (标头长度不为零),则RPP 606将标头置于 RQ1 WQE中。然后,RPP 606为分组的数据部分选择适当的RQ (RQ2或RQ3 )。 RQ2或RQ3 WQE中的描述符用于方文置其余数据。RPP 606指示应生成具有完 整信息的CQE。 i殳置了分组分离标志。从使用的RQ2或RQ3 WQE复制CQE 的相关器字段中的相关器。还将置于第一WQE中的标头字节的计数i文置在 CQE中。如果标头大于RQ1 WQE中的可用空间,则使用尽可能多的数据填充WQE 并在CQE中设置"标头过长"标志。标头的其余部分和数据一起置于RQ2/RQ3 WQE中。当将标头分离模式设置为"全部"且正在执行标头分离时(标头长度 不为零),不会将分组的任何本体放置在RQ1 WQE中。可以可选地将QP 配置为将短分组完全置于RQ1 WQE中(标头分离模式-ML)。在如此配置 时,如果分组长度小于RQ2阈值,则仅使用RQ1 WQE而不执行标头分离。 注意,从不在RQ1和RQ2/RQ3之间分离本体。而不能放置在RQ1 WQE中,则使用RQ2或RQ3 WQE来放置整个分组。将标 头计数设置为零。关闭标头分离标志。不使用RQ1 WQE(除非要将竟争信 息置于RQ1 WQE中)。因此,HEA 110能够将TCP/IP标头从数据有效负载中分离。此特性允 许将标头引导到协议堆栈以供处理而不污染由应用发布的接收緩冲区,并 因此降低特定事务的等待周期。综述因此,根据本发明的主机以太网适配器(HEA)通过直接连接到处理器
的专用总线并由此具有足够带宽(例如,866 MHz下为55. 42 Gbps)以支 持两个IO Gbps端口的完整40 Gbps带宽而达到了无与伦比的性能水平。 通过使适配器位于处理器的专用总线上,还去除了中间逻辑并由此改进了 传送等待时间。因此,可以提供一种使用HEA 110的网络接口控制器(NIC), 其比常规NIC允许更高的速度、更低的等待时间及更简单的逻辑。尽管根据示出的实施例描述了本发明,但是本领域的技术人员将容易 地认识到,可以存在实施例的变型并且这些变型将在本发明的精神和范围 之内。因此,本领域的技术人员可以做出许多修改而不偏离所附权利要求 的精神和范围。
权利要求
1.一种以太网适配器,包括多个层,用于允许所述适配器从至少一个处理器接收分组并将分组发送到至少一个处理器;其中所述多个层包括多路分用机制,以便允许对所述至少一个处理器的多个资源进行分区。
2. 如权利要求l中所述的以太网适配器,其中所述多路分用机制允许 在所述处理器中并行使用到多个操作系统的直接路径。
3. 如权利要求l中所述的以太网适配器,其中所述多路分用机制允许 在所述处理器中并行使用到多个应用的直接路径。
4. 如权利要求l中所述的以太网适配器,其中所述多路分用机制允许 在所述处理器中并行使用到多个操作系统的直接路径并且允许在所述处理 器中并行使用多个应用。
5. 如权利要求l中所述的以太网适配器,其中所述多个层包括 介质访问控制器和串行化/解串层;分组加速和虛拟化层,用于从所述介质访问控制器和串行化/解串层接 收分組并向所述介质访问控制器和串行化/解串层提供分组;以及主才几接口层,用于与所迷分组加速和虚拟化层通信以及用于与所迷处 理器的专用总线连接。
6. 如权利要求l中所述的以太网适配器,其中为所述适配器的每个物 理端口使用 一个逻辑交换机。
7. 如权利要求6中所述的以太网适配器,其中一个逻辑交换机提供了 多个逻辑端口 ,其中所述多个逻辑端口中的每个端口都支持所述处理器的 分区。
8. 如权利要求5中所述的以太网适配器,其中所述介质访问控制器和 串行化/解串层包括用于接收分組的接收以太网功能;以及用于发送分组的 发送以太网功能。
9. 如权利要求5中所述的以太网适配器,其中在适当时将分组标头从数据有效负载中分离以降低特定事务的等待周期。
10. —种网络接口控制器,包括接口,所述接口适于连接到处理器的专用总线;以及 以太网适配器,所述以太网适配器包括多个层,用于允许所述适配器 从至少一个处理器接收分组并将分组发送到至少一个处理器;其中所述多 个层包括多路分用机制,以便允许对所述至少一个处理器的多个资源进行 分区。
11. 如权利要求IO中所述的网,口控制器,其中所述多路分用机制 允许在所述处理器中并行使用到多个操作系统的直接路径。
12. 如权利要求IO中所述的网^^口控制器,其中所述多路分用机制 允许在所述处理器中并行使用到多个应用的直接路径。
13. 如权利要求IO中所述的网,口控制器,其中所述多路分用机制 允许在所述处理器中并行使用到多个操作系统的直接路径并且允许在所述 处理器中并刊4吏用多个应用。
14. 如权利要求IO中所述的网^^口控制器,其中所述多个层包括 介质访问控制器和串行化/解串层;分组加速和虚拟化层,用于从所述介质访问控制器和串行化/解串层接 收分组并向所述介质访问控制器和串行化/解串层提供分組;以及主机接口层,用于与所述分组加速和虚拟化层通信以及用于与所述处 理器的专用总线连接。
15. 如权利要求IO中所述的网,口控制器,其中为所述适配器的每 个物理端口 ^f吏用 一个逻辑交换机。
16. 如权利要求15中所述的网,口控制器,其中一个逻辑交换机提 供了多个逻辑端口 ,其中所述多个逻辑端口中的每个端口都支持所述处理 器的分区。
17. 如权利要求14中所述的网,口控制器,其中所述介质访问控制 器和串行化/解串层包括用于接收分组的接收以太网功能;以及用于发送分組的发送以太网功能。
18. 如权利要求14中所述的网,口控制器,其中在适当时将分组标 头从数据有效负栽中分离以降低特定事务的等待周期。
19. 一种服务器系统,包括服务器,所述服务器包括处理器和连接到所述处理器的存储器;以及 网络接口控制器,所述网络接口控制器通过所述处理器的专用总线连 接到所述处理器;所述网络接口控制器包括通过专用总线接口连接到所述 专用总线的以太网适配器,所述以太网适配器包括多个层,用于允许所述 适配器从处理器接收分组并将分组发送到处理器;其中所述多个层包括多 路分用机制,以^更允许对所述至少一个处理器的多个资源进行分区。
20. 如权利要求l9中所述的服务器系统,其中所述多路分用机制允许 在所述处理器中并行使用到多个操作系统的直接路径。
21. 如权利要求19中所述的服务器系统,其中所述多路分用机制允许 在所述处理器中并行4吏用到多个应用的直接路径。
22. 如权利要求19中所述的服务器系统,其中所述多路分用机制允许 在所述处理器中并行使用到多个操作系统的直接路径并且允许在所述处理 器中并行使用多个应用。
23. 如权利要求19中所述的服务器系统,其中所述多个层包括 介质访问控制器和串行化/解串层;分组加速和虚拟化层,用于从所述介质访问控制器和串行化/解串层接 收分組并向所述介质访问控制器和串行化/解串层提供分组;以及主机接口层,用于与所述分组加速和虚拟化层通信以及用于与所述处 理器的专用总线连接。
24. 如权利要求19中所述的服务器系统,其中为所述适配器的每个物 理端口使用 一个逻辑交换机。
25. 如权利要求24中所述的服务器系统,其中一个逻辑交换机提供了 多个逻辑端口 ,其中所迷多个逻辑端口中的每个端口都支持所述处理器的 分区。
26. 如权利要求23中所述的服务器系统,其中所述介质访问控制器和 串行化/解串层包括用于接收分組的接收以太网功能;以及用于发送分組的 发送以太网功能。
27.如权利要求23中所述的服务器系统,其中在适当时将分组标头从 数据有效负载中分离以降低特定事务的等待周期。
全文摘要
本发明公开了一种以太网适配器。所述以太网适配器包括多个层,用于允许所述适配器从处理器接收分组并将分组发送到处理器。所述多个层包括多路分用机制,以便允许对所述处理器进行分区。主机以太网适配器(HEA)是提供了以太网和TCP加速的新方法的集成以太网适配器。将一组TCP/IP加速特性引入工具箱方法服务器TCP/IP堆栈在需要时使用这些加速器。通过旁路PCI总线来使服务器与网络接口控制器之间的接口成流。所述HEA支持网络虚拟化。HEA可以由多个操作系统共享,这提供了基本的隔离和保护而不影响其性能。
文档编号H04L12/413GK101151851SQ200680010820
公开日2008年3月26日 申请日期2006年3月15日 优先权日2005年4月1日
发明者C·B·韦瑞利, C·巴索, C·常, F·韦普朗肯, J·卡尔维纳克, N·瓦伊达亚纳塔, P·达蒙, R·E·富斯, R·K·阿里米利, S·P·夏尔马 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1