CN1801775B - 流分配 - Google Patents
流分配 Download PDFInfo
- Publication number
- CN1801775B CN1801775B CN200510107387.1A CN200510107387A CN1801775B CN 1801775 B CN1801775 B CN 1801775B CN 200510107387 A CN200510107387 A CN 200510107387A CN 1801775 B CN1801775 B CN 1801775B
- Authority
- CN
- China
- Prior art keywords
- thread
- information
- packets
- stream
- core
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/12—Protocol engines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一般来说,在一方面,本公开描述了将网络信息包流分配到集成在单独芯片上的一组多个多线程处理器核心中的多线程处理器核心的线程。基于该分配,流中的信息包由分配的处理器核心线程处理。
Description
技术领域
本发明涉及流分配。
背景技术
网络使得计算机和其他设备进行通信变得可能。例如,网络能传送代表视频、音频、电子邮件等等的数据。典型地,通过网络传输的数据通过较小的消息即信息包进行传送。通过类推,一个信息包很象是投入邮箱的一个信封。信息包通常包括有效荷载和标题。信息包的有效荷载好比是在信封内的信件。信息包的标题很象是写在信封本身上面的信息。标题能包括帮助网络装置适当处理信息包的信息。
一些网络协议(例如“协议栈”)合作来处理网络通讯的复杂性。例如,传输协议如传输控制协议(TCP)向应用提供简单机制用于建立连接并通过网络传输数据。对于应用透明的是,TCP处理多种通讯问题例如数据重发、适应网络通信量拥挤等等。
为了提供这些服务,TCP对称为段的信息包进行操作。一般地,TCP段(通过“封装”)在较大的信息包例如网际协议(IP)数据报内通过网络传输。经常地,IP数据报进一步被甚至更大的信息包例如以太网帧进行封装。TCP段的有效荷载携带由应用通过网络传输的数据流的一部分。接收器能通过重新装配接收到的段来恢复原始的数据流。为了允许重新装配以及将接收数据的肯定应答(ACK)返回给发送者,TCP将每一个有效荷载字节和一个序列号相关联。
每一个TCP连接的当前状态被存储在称为传输控制块(TCB)的数据块中。TCB包括例如下一个期望的序列号、上一次传输的序列号等等的数据。通常,连接的TCB被读取并可能被接收和传送的每一个TCP段更新。
发明内容
一种方法,包括:将网络信息包流分配到集成在单独芯片上的一组多个多线程处理器核心中的多线程处理器核心的线程;基于该分配,由分配的处理器核心线程来处理流中的信息包。
一种制造产品,包括指令,使得多核心处理器进行:将网络信息包流分配到集成在单独芯片上的一组多个多线程处理器核心中的多线程处理器核心的线程;基于该分配,由分配的处理器核心线程来处理流中的信息包。
一种装置,包括:集成在单独芯片上的多个多线程处理器核心;以及指令,指令使得多个多线程处理器核心中的至少一些来:将传输控制协议/网际协议(TCP/IP)流分配到处理器核心的线程中的一个,以及基于该分配,由分配的处理器核心线程来处理流中的TCP段。
附图说明
图1是表示流分配的图。
图2A-2D是表示分配流的示例方案的操作的图。
图3-4是基于流分配的传递信息包的示例步骤的流程图。
图5是多核心处理器例子的图。
图6是网络设备的图。
具体实施方式
如上所述,TCP(传输控制协议)实现通常为每一个正在进行的连接(“流”)保持状态数据。这个状态数据通常是由每一个处理的TCP段进行访问。访问该数据所使用的存储操作能降低***性能,因为它从存储器读写状态数据要花费时间。此外,在使用多处理核心来处理TCP段的***中,当不同元件为访问而竞争的时候,状态数据能导致性能瓶颈。例如,属于相同流的信息包可能被不同的核心处理,留下一个核心等待访问流的状态数据直到其他核心完成其处理。
图1描述了一个方案的操作,它将信息包流分配给在核心102a-102n上执行的不同线程。例如,如所示的,流“a”被分配给核心102a的线程“1”,而流“b”被分配给核心102n的线程“2”。属于这些流的信息包由分配的核心102a-102n的线程处理。例如,属于流“a”的信息包104a和104c被核心102a的线程“1”处理,而信息包104b被分配的核心102n的线程“2”处理。通过在相同的核心/线程上处理属于相同的流的信息包,能够避免各种争用和访问延迟。例如,给定流的TCB可以存储在本地核心存储器中而不是被重复地从核心外部的存储器中读出或写入核心外部的存储器。此外,因为消除了对于给定流的TCB跨核心的争用,所以能避免与锁定相关联的等待时间。
为了便于说明,图1任意地标示了流“a”和“b”。实际上,能通过包括在IP标题和IP数据报的封装的TCP标题中的元组数据来识别给定信息包的流。例如,能通过IP源和目的地址及源和目的端口的组合来识别流。元组可以被散列(例如通过CRC(循环冗余校验)算法),以产生识别流的位序列(“流签名”)。
图2A-2D描述了进行流分配的多核心***的实施例。在这个实施例中,核心102b-102n提供TCP线程池来处理TCP段。每一个TCP线程能独立地处理TCP段。该处理能包括段重新装配、流的TCP状态机导航、生成ACK消息、管理传输窗口等等。
在这个实施例里,实现流分配的逻辑包括分配流给核心102b-102n的全局分类110指令,以及此后,将属于这些流的信息包分发给分配的核心102b-102n。为了执行这些操作,全局分类110指令访问将流与给定的核心102b-102n相关联的数据114。例如,在图2A里,流“a”被分配给核心102b。除这个分配以外,数据114将给定的流与指示在该流中已经调度了多少信息包用于由分配的核心处理的参考计数(“ref.count”)相关联。数据114也将流与指示有多少这些调度的信息包已经被处理完的“完成的”计数相关联。如果处理完所有调度的信息包,则可以牺牲流的条目。例如,线程可能周期性地从流的“参考计数”中减去流的“完成的”计数。如果结果为0,则表示所有调度的信息包都被处理,可以从数据114中清除流数据。否则,“完成的”计数被清零并且存在的流的分配保持完整。
除了全局分类110逻辑以外,实施例的特征还在于具有在提供TCP线程的每个核心102b-102n上执行的本地分类112b-112n指令。需要注意的是,112b-112n是每个核心102b-102n的相同本地分类逻辑的实例化。一旦全局分类110逻辑调度信息包用于由分配的核心102b处理,在那个核心102b上运行的本地分类112b-112n逻辑确定分配给流的特定线程。为了执行这个任务,本地分类器112b能访问将流与给定的线程相关联的本地数据116b。因此,全局110和本地分类112b逻辑路由数据报用于以增加的粒度来处理。也就是说,全局分类110逻辑能将数据报排队送往分配的核心102b,而本地分类器112b将数据报排队送往核心102b内的特定的线程。
为了说明这些元件的示例操作,图2B-2C描述了封装TCP段的IP数据报104e的处理。如图2B所示,在接收到数据报104e以后,全局分类110逻辑尝试查找数据报的104d流签名(“a”)。在这个例子里,查找流“a”成功,检索分配的核心(“102b”),全局分类110逻辑将数据报104e排队用于由分配的核心102b进行处理,并且增加流的参考计数以反映由核心102b处理的信息包104e的调度。虽然图2B描述了排队送往核心的实际信息包,但是全局分类110和本地分类112b逻辑可以对信息包参考/句柄进行操作以避免复制信息包数据。
如图2C所示,在分配的核心102b上的本地分类器112b最后将数据报104e出队并确定分配用来处理流的数据报的线程。该分配的线程接着对段执行TCP处理。在它的操作中,线程可以使用本地核心存储器来高速缓存来自于存储器(未示出)的流的TCB副本。这个副本可以被TCP线程和用于当前信息包以及随后接收到的流中的信息包的核心的其他线程来修改。如所示的,在完成对给定数据报的处理后,线程递增流的“完成的”计数。
线程继续将流的排队数据报出队并对其进行处理。最后,流的TCB被写回到存储器,例如,在线程的队列已经为空之后。因此,该实现确保流状态数据保持在本地核心存储器中用于“紧接着的”信息包(即,在线程结束流中先前的信息包的处理之前,调度信息包用于由线程处理),避免了对外部存储器读写流的状态数据的高代价。
在图2B-2C中说明的方案假定了前面对于流“a”的分配。然而,经常地,流可能没有当前的分配。在这种情况下,全局分类110逻辑流查找信息包将失败。在这一点上,全局分类110逻辑可能通过写将流与分配的核心相关联的数据114做出初始的流分配。可采用各种方法实现流的分配,以便跨核心使负载流平衡(例如,通过在核心中使用循环复用)或提供不同的服务质量。在将流分配到给定的核心之后,选定的核心能够分配可用的线程来处理流。
可能的话,如图2D所示,执行全局分类110逻辑的核心102a也可以提供TCP线程并执行本地分类器112a。在这样一个实现中,接收到的信息包可以被核心100a的本地分类器112a初步处理。如果本地分类器112a成功地识别向接收的信息包分配的线程n,则它将信息包排队送往那个线程n。在本地分类器112a没有成功地识别出分配的线程的情况下,全局分类器114接着执行。例如,如所示的,假定流“a”仍然分配给核心102b的线程“n”,信息包104f将被核心102a的本地分类器112a初步处理。由于本地分类器102a不会存储对于信息包104f的流的本地线程分配,本地分类器102a将传送信息包给全局分类器110。这里,处理顺序与图2C所示的保持相同。也就是说,全局分类器110将信息包104f排队用于由核心102b的本地分类器112b处理,本地分类器112b又排队信息包104f用于由线程“n”处理。
在这样的实现中,全局分类器110可以将线程分配给执行全局分类器110的核心102a。在这种情况下,全局分类器110能够通过更新由核心的102a本地分类器112a访问的流/线程分配数据来将流分配到核心102a上的线程。然后全局分类器110能够将信息包排队用于由本地分类器112a重新处理。
图3说明一个全局分类处理的例子。如所示的,全局分类器执行数据报的流签名的查找152以确定154流先前是否已经被分配给给定的核心和/或线程。如果没有,则全局分类器将流分配158给核心和/或线程。然后将数据报排队160用于由分配的核心和/或线程进行处理。
图4说明一个本地分类过程的例子。如所示的,本地分类器尝试确定166排队的数据报流是否已经被分配给执行本地分类器的核心上的线程。如果已经分配,则将数据报排队170用于由那个线程进行处理。否则,流被分配168给核心上的可用的线程(例如,当前正执行的线程)。
在图2-4说明的方案中,处理给定的流中的段的TCP线程能够在分配的核心的本地存储器中保留流的TCB。而且,这能减少核心与访问外部存储器之间的访问连接有关的等待时间。
在图2-4中所示的实施例仅是举例,其他的实施例可以在设计或操作上变化。例如,尽管在实施例中使用的数据114如所示是单片表,该数据可以存储在单独的表中以加快操作。例如,流签名可以被单独存储以加快确定给定的流是否有当前分配。例如,至少一部分签名能被存储在内容可寻址存储器中(CAM),其中CAM“命中”快速识别有当前分配的流。同样地,可单独存储由TCP线程递增的“完成的”计数,以减少在TCP线程和全局分类逻辑110之间的访问连接。当单独存储时,不同的流数据可以通过表索引相关联(例如,与流相关联的数据被存储在不同表中的相同的相对位置)。
以上说明的技术的实施例可以在他们的粒度上变化。也就是说,***可以仅将流分配到给定的核心并让线程基于可用性对段进行操作,而不是将给定的流分配到特定的线程。进一步地,在其他的实施例里,线程特征在于可以具有全局线程ID,该ID能由全局分类逻辑用来直接将信息包出队送往正确的线程而不是上述的两部分方案。
上述技术可以在各种多核心设备上实施,例如在多核心中央处理器单元(CPU)或网络处理器上。例如,图5描述了网络处理器200的一个例子。所示的网络处理器200是网际交换网络处理器(IXP)。其他的网络处理器特征在于具有不同的设计。
所示的网络处理器200特征在于具有在单独集成半导体芯片上的一组处理核心202。每个核心202可以是适合用于信息包处理的精简指令集计算(RISC)处理器。例如,核心202可以不提供通常由通用处理器的指令集提供的浮点或整数除法指令。单独核心202可以提供多线程执行。例如,核心202可以存储多程序计数器和不同线程的其他上下文数据。单独核心202特征在于可以具有核心内部的本地存储器。单独核心202特征还在于具有CAM。CAM也可以是由不同核心202共享的资源。
如所示地,网络处理器200特征在于具有至少一个接口202,该接口能在处理器200和其他网络组件之间传递信息包。例如,处理器200特征在于具有交换结构接口202(例如,通用交换接口(CSIX)),该接口使得处理器200能够将信息包传送到连接到结构的电路或其他的一个或多个处理器。处理器200特征还在于具有接口202(例如,***封包接口(SPI)接口),该接口使得处理器200能与物理层(PHY)和/或链路层设备(例如,MAC或者成帧器设备)通讯。处理器200也包括接口208(例如,***部件互连(PCI)总线接口),用于例如与主机或其他网络处理器通讯,。
如所示地,处理器200也包括由核心202共享的其他组件,例如散列核心、由核心共享的内部高速暂时存储器以及提供对核心共享的外部存储器访问的存储控制器206、212。网络处理器200还包括附加处理器210(例如,或者 Architecture(IA)core),该处理器经常被编程来执行包括在网络操作中的“控制平面”任务。然而核心处理器210也可以处理“数据平面”任务。
核心202可以与其他核心202通过核心210或其他共享的资源(例如,外部存储器或者高速暂时存储器)进行通讯。核心202也可以通过直接连线到相邻一个或多个核心204的临近寄存器进行通讯。
网络处理器200的特征可用于以各种方式实现流分配。例如,与每一个核心202相关联的CAM可用来存储由本地分类器使用的分配数据。例如,CAM的第一N-条目可以存储分配给不同核心线程的N-流的签名。在这样一个实施例里,CAM条目的序号识别分配的线程(例如,存储在第二CAM条目中的流签名识别分配给流的第二核心线程)。
CAM也可以被全局分类器使用。例如,执行全局分类器的核心的CAM的最后M-条目可用来存储当前分配的流的流签名的子集(例如,在图2A-2C中的数据114的签名列),以加快初始的签名查找。因为一个或多个CAM可能没有足够的空间用于分配的流的所有签名,所以剩下的流签名和相应的分配数据可以存储在芯片外(比如,在SRAM中)。因此,CAM未找到签名会导致全局分类器为了匹配而对剩下签名的存储器执行随后的检索。
所示的网络处理器200特征在于具有各种机制,各种机制能用于在不同的核心202之间路由信息包。例如,经由连接临近核心的下一个临近寄存器或者经由在存储器(例如,在高速暂时存储器或在SRAM)中实现的队列可将信息包排队用于由分配的核心处理。类似地,特定线程的队列也能在本地核心存储器、高速暂时存储器、SRAM等中实现。
可能地,可以对核心202编程以实现信息包处理管道,其中对一个或多个核心线程起作用的线程执行以太网操作(例如,以太网接收、以太网去封装)、IPv4和/或IPv6操作(例如验证),并且在一个或多个核心上的线程处理这种TCP操作。其他线程也可以实现对结果数据流的应用操作。
图6描述使用上述技术可以处理信息包的网络设备。如所示的,设备特征在于具有通过交换结构310(例如,纵横或者共享的存储器交换结构)互连的线路卡300(“刀片”)的集合。例如,交换结构可以遵照CSIX或者其他的交换技术例如HyperTransport、Infiniband、PCI、Packet-Over-SONET、RapidIO和/或UTOPIA(ATM的通用测试和操作物理层接口)。
单独的线路卡(例如,300a)可以包括处理网络连接上的通讯的一个或多个物理层(PHY)设备302(例如,光纤、导线和无线物理层)。PHY在不同的网络媒体传送的物理信号和数字***使用的比特(例如,“0”和“1”)之间进行转换。线路卡300也可以包括成帧器设备(例如,以太网、同步光纤网(SONET)、高级数据链路(HDLC)成帧器或者其他的“第2层”设备)304,该设备可以对帧执行例如错误检测和/或校正操作。所示的线路卡300也可以包括一个或多个网络处理器306,其为经由一个或多个PHY 302接收的信息包执行信息包处理操作,并经由交换结构310直接投送信息包到提供出口接口以转发信息包的线路卡。可能地,网络处理器306也能代替成帧器设备304执行“第2层”职责。
虽然图5和图6描述了网络处理器和结合网络处理器的设备的特定例子,但是可以用多种结构实现技术,该结构包括与那些所示的具有不同设计的处理器和设备。例如,该技术可以使用在多核心TCP卸载引擎(TOE)上。这样的TOE可以集成在IP存储节点上,应用(“第7层”)负载平衡器或其他的设备中。
此外,该技术可以用来处理其他的传输层协议、在网络协议栈内的其他层的协议、除了TCP和IP的协议,并用来处理其他的协议数据单元。例如,该技术可以用来处理其他的面向连接的协议例如异步传输模式(ATM)信息包(“单元”)或者用户数据报协议(UDP)信息包。此外,术语IP包括IPv4和IPv6的IP实现。
这里所用的术语电路包括硬连线电路、数字电路、模拟电路、可编程电路等等。可编程电路可对设置在制造产品(例如,一个非易失性存储器例如只读存储器)上的可执行指令操作。
其他的具体实施例都在下面的权利要求的范围内。
Claims (9)
1. 一种用于流分配的方法,包括:
将网络信息包流分配到集成在单独芯片上的一组多个多线程处理器核心中的多线程处理器核心的线程;
基于该分配,由分配的处理器核心线程来处理所述流中的信息包,
其中,相同流的信息包由同一个线程进行处理。
2. 如权利要求1所述的方法,其中所述信息包包括网际协议信息包,所述网际协议信息包包含传输控制协议段。
3. 如权利要求2所述的方法,其中所述流包括至少要由信息包的网际协议源地址、网际协议目的地址、传输控制协议段源端口以及传输控制协议段目的端口来识别的流。
4. 如权利要求1所述的方法,进一步包括确定已经被调度要由核心线程处理的所述流中的每一个信息包是否已经被处理。
5. 如权利要求1所述的方法,进一步包括将与所述流相关联的数据读到与处理器核心相关联的本地存储器中。
6. 如权利要求5所述的方法,其中所述数据包括传输控制协议(TCP)连接的传输控制块(TCB)。
7. 如权利要求1所述的方法,进一步包括:
在第一处理器核心确定分配给所述流的处理器核心;
在所分配的处理器核心确定分配给所述流的一组线程中的一个。
8. 一种用于流分配的装置,包括:
用于将网络信息包流分配到集成在单独芯片上的一组多个多线程处理器核心中的多线程处理器核心的线程的部件;
用于基于该分配由分配的处理器核心线程来处理所述流中的信息包的部件,
其中,相同流的信息包由同一个线程进行处理。
9. 如权利要求8所述的装置,
其中所述处理器包括至少一个内容可寻址存储器;以及
其中所述用于将网络信息包流分配的部件包括用于将流标识符写入至少一个内容可寻址存储器的部件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210293264.1A CN102904871B (zh) | 2004-12-13 | 2005-12-12 | 流分配 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/011,800 US7564847B2 (en) | 2004-12-13 | 2004-12-13 | Flow assignment |
US11/011,800 | 2004-12-13 | ||
US11/011800 | 2004-12-13 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210293264.1A Division CN102904871B (zh) | 2004-12-13 | 2005-12-12 | 流分配 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1801775A CN1801775A (zh) | 2006-07-12 |
CN1801775B true CN1801775B (zh) | 2014-03-26 |
Family
ID=36147088
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200510107387.1A Expired - Fee Related CN1801775B (zh) | 2004-12-13 | 2005-12-12 | 流分配 |
CN201210293264.1A Active CN102904871B (zh) | 2004-12-13 | 2005-12-12 | 流分配 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210293264.1A Active CN102904871B (zh) | 2004-12-13 | 2005-12-12 | 流分配 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7564847B2 (zh) |
EP (1) | EP1832085B1 (zh) |
JP (1) | JP2008523729A (zh) |
CN (2) | CN1801775B (zh) |
AT (1) | ATE524000T1 (zh) |
WO (1) | WO2006065691A1 (zh) |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7564847B2 (en) | 2004-12-13 | 2009-07-21 | Intel Corporation | Flow assignment |
US20070014240A1 (en) * | 2005-07-12 | 2007-01-18 | Alok Kumar | Using locks to coordinate processing of packets in a flow |
US20070124728A1 (en) * | 2005-11-28 | 2007-05-31 | Mark Rosenbluth | Passing work between threads |
US7496038B2 (en) * | 2005-12-12 | 2009-02-24 | International Business Machines Corporation | Method for faster detection and retransmission of lost TCP segments |
US7555593B1 (en) * | 2006-01-31 | 2009-06-30 | Netlogic Microsystems, Inc. | Simultaneous multi-threading in a content addressable memory |
US8332925B2 (en) | 2006-08-08 | 2012-12-11 | A10 Networks, Inc. | System and method for distributed multi-processing security gateway |
US8079077B2 (en) * | 2006-08-08 | 2011-12-13 | A10 Networks, Inc. | System and method for distributed multi-processing security gateway |
US20080086575A1 (en) | 2006-10-06 | 2008-04-10 | Annie Foong | Network interface techniques |
US8094560B2 (en) * | 2008-05-19 | 2012-01-10 | Cisco Technology, Inc. | Multi-stage multi-core processing of network packets |
US20100208729A1 (en) * | 2008-10-17 | 2010-08-19 | John Oddie | Method and System for Receiving Market Data Across Multiple Markets and Accelerating the Execution of Orders |
JP5081847B2 (ja) * | 2009-02-20 | 2012-11-28 | 株式会社日立製作所 | マルチプロセッサによるパケット処理装置およびパケット処理方法 |
US9461930B2 (en) | 2009-04-27 | 2016-10-04 | Intel Corporation | Modifying data streams without reordering in a multi-thread, multi-flow network processor |
US8874878B2 (en) * | 2010-05-18 | 2014-10-28 | Lsi Corporation | Thread synchronization in a multi-thread, multi-flow network communications processor architecture |
US8289975B2 (en) * | 2009-06-22 | 2012-10-16 | Citrix Systems, Inc. | Systems and methods for handling a multi-connection protocol between a client and server traversing a multi-core system |
JP5526748B2 (ja) * | 2009-12-09 | 2014-06-18 | 日本電気株式会社 | パケット処理装置、パケット振り分け装置、制御プログラム及びパケット分散方法 |
JPWO2011114477A1 (ja) * | 2010-03-17 | 2013-06-27 | 富士通株式会社 | 階層型マルチコアプロセッサ、マルチコアプロセッサシステム、および制御プログラム |
JP5573440B2 (ja) * | 2010-07-12 | 2014-08-20 | 日本電気株式会社 | データ転送装置、データ転送方法、及び、プログラム |
US8634302B2 (en) * | 2010-07-30 | 2014-01-21 | Alcatel Lucent | Apparatus for multi-cell support in a network |
JP5630310B2 (ja) * | 2011-02-16 | 2014-11-26 | ソニー株式会社 | 送信端末および送信方法 |
CN102420771B (zh) * | 2011-12-28 | 2014-05-21 | 中国科学技术大学苏州研究院 | 高速网络环境中提高tcp并发连接速度的方法 |
US9118618B2 (en) | 2012-03-29 | 2015-08-25 | A10 Networks, Inc. | Hardware-based packet editor |
CN102664815A (zh) * | 2012-05-21 | 2012-09-12 | 华为技术有限公司 | 报文流量的负荷分担方法、装置和*** |
US9596286B2 (en) | 2012-05-25 | 2017-03-14 | A10 Networks, Inc. | Method to process HTTP header with hardware assistance |
US8929379B2 (en) | 2012-06-21 | 2015-01-06 | Breakingpoint Systems, Inc. | High-speed CLD-based internal packet routing |
US8811401B2 (en) * | 2012-06-21 | 2014-08-19 | Breakingpoint Systems, Inc. | Binding of network flows to process threads |
CN102779075B (zh) * | 2012-06-28 | 2014-12-24 | 华为技术有限公司 | 一种在多处理器核***中进行调度的方法、装置及*** |
WO2014038582A1 (ja) * | 2012-09-04 | 2014-03-13 | 日本電気株式会社 | パケット振分装置、パケット振分方法、およびパケット振分プログラム |
JP5792138B2 (ja) * | 2012-09-21 | 2015-10-07 | 日本電信電話株式会社 | メディアサーバ、処理割当・割込振分方法、処理割当方法及び割込振分方法 |
JP2015534769A (ja) | 2012-09-25 | 2015-12-03 | エイ10 ネットワークス インコーポレイテッドA10 Networks, Inc. | データネットワークにおける負荷分散 |
US10021174B2 (en) | 2012-09-25 | 2018-07-10 | A10 Networks, Inc. | Distributing service sessions |
KR101926464B1 (ko) * | 2012-10-11 | 2018-12-07 | 삼성전자 주식회사 | 멀티코어 프로세서에서 수행되는 프로그램의 컴파일 방법, 멀티코어 프로세서의 태스크 매핑 방법 및 태스크 스케줄링 방법 |
US9330054B2 (en) | 2012-10-31 | 2016-05-03 | Freescale Semiconductor, Inc. | System and method for assigning a message |
US8997223B2 (en) | 2013-01-30 | 2015-03-31 | Palo Alto Networks, Inc. | Event aggregation in a distributed processor system |
US9240975B2 (en) | 2013-01-30 | 2016-01-19 | Palo Alto Networks, Inc. | Security device implementing network flow prediction |
WO2014120838A2 (en) * | 2013-01-30 | 2014-08-07 | Palo Alto Networks, Inc. | Security device implementing network flow prediction, and flow ownership assignment and event aggregation in a distributed processor system |
US9077702B2 (en) | 2013-01-30 | 2015-07-07 | Palo Alto Networks, Inc. | Flow ownership assignment in a distributed processor system |
US20140258680A1 (en) * | 2013-03-05 | 2014-09-11 | Qualcomm Incorporated | Parallel dispatch of coprocessor instructions in a multi-thread processor |
US9325758B2 (en) | 2013-04-22 | 2016-04-26 | International Business Machines Corporation | Runtime tuple attribute compression |
US9426197B2 (en) * | 2013-04-22 | 2016-08-23 | International Business Machines Corporation | Compile-time tuple attribute compression |
US10027761B2 (en) | 2013-05-03 | 2018-07-17 | A10 Networks, Inc. | Facilitating a secure 3 party network session by a network device |
US20150019702A1 (en) * | 2013-07-10 | 2015-01-15 | Brocade Communications Systems, Inc. | Flexible flow offload |
US20150074353A1 (en) * | 2013-09-06 | 2015-03-12 | Futurewei Technologies, Inc. | System and Method for an Asynchronous Processor with Multiple Threading |
CN104618304B (zh) * | 2013-11-01 | 2017-12-15 | 新华三技术有限公司 | 数据处理方法及数据处理*** |
US10020979B1 (en) | 2014-03-25 | 2018-07-10 | A10 Networks, Inc. | Allocating resources in multi-core computing environments |
US9806943B2 (en) | 2014-04-24 | 2017-10-31 | A10 Networks, Inc. | Enabling planned upgrade/downgrade of network devices without impacting network sessions |
JP2016162266A (ja) * | 2015-03-03 | 2016-09-05 | 富士通株式会社 | 通信装置及びそのプロセッサ割当方法 |
US9971724B1 (en) * | 2015-06-18 | 2018-05-15 | Rockwell Collins, Inc. | Optimal multi-core network architecture |
CN107666474B (zh) * | 2016-07-30 | 2021-04-20 | 华为技术有限公司 | 一种网络报文处理方法、装置及网络服务器 |
US10476945B2 (en) * | 2017-02-01 | 2019-11-12 | Juniper Networks, Inc. | Consistent flow assignment in load balancing |
CN107294855B (zh) * | 2017-05-31 | 2019-08-16 | 国家电网公司 | 一种高性能计算网络下的tcp查找优化方法 |
WO2024119325A1 (en) * | 2022-12-05 | 2024-06-13 | Intel Corporation | Method and apparatus to batch packet fragments prior to entrance into a processing core queue |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1387641A (zh) * | 1999-08-31 | 2002-12-25 | 英特尔公司 | 并行处理器中的多线程执行 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11161505A (ja) * | 1997-12-01 | 1999-06-18 | Matsushita Electric Ind Co Ltd | メディア送出装置 |
US6195351B1 (en) * | 1998-01-28 | 2001-02-27 | 3Com Corporation | Logical switch set |
US6661794B1 (en) * | 1999-12-29 | 2003-12-09 | Intel Corporation | Method and apparatus for gigabit packet assignment for multithreaded packet processing |
US6952824B1 (en) | 1999-12-30 | 2005-10-04 | Intel Corporation | Multi-threaded sequenced receive for fast network port stream of packets |
US6629195B2 (en) * | 2001-06-26 | 2003-09-30 | Intel Corporation | Implementing semaphores in a content addressable memory |
US6901491B2 (en) * | 2001-10-22 | 2005-05-31 | Sun Microsystems, Inc. | Method and apparatus for integration of communication links with a remote direct memory access protocol |
US7248586B1 (en) * | 2001-12-27 | 2007-07-24 | Cisco Technology, Inc. | Packet forwarding throughput with partial packet ordering |
US7292589B2 (en) * | 2002-08-13 | 2007-11-06 | Narendra Kumar Dhara | Flow based dynamic load balancing for cost effective switching systems |
US7299266B2 (en) * | 2002-09-05 | 2007-11-20 | International Business Machines Corporation | Memory management offload for RDMA enabled network adapters |
US7039914B2 (en) * | 2003-03-07 | 2006-05-02 | Cisco Technology, Inc. | Message processing in network forwarding engine by tracking order of assigned thread in order group |
GB0311564D0 (en) * | 2003-05-20 | 2003-06-25 | Ibm | Monitoring operational data in data processing systems |
US20050111355A1 (en) | 2003-11-20 | 2005-05-26 | Eric Plaks | Managing timers |
US7564847B2 (en) | 2004-12-13 | 2009-07-21 | Intel Corporation | Flow assignment |
-
2004
- 2004-12-13 US US11/011,800 patent/US7564847B2/en active Active
-
2005
- 2005-12-09 WO PCT/US2005/044774 patent/WO2006065691A1/en active Application Filing
- 2005-12-09 EP EP05853642A patent/EP1832085B1/en active Active
- 2005-12-09 AT AT05853642T patent/ATE524000T1/de not_active IP Right Cessation
- 2005-12-09 JP JP2007545691A patent/JP2008523729A/ja active Pending
- 2005-12-12 CN CN200510107387.1A patent/CN1801775B/zh not_active Expired - Fee Related
- 2005-12-12 CN CN201210293264.1A patent/CN102904871B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1387641A (zh) * | 1999-08-31 | 2002-12-25 | 英特尔公司 | 并行处理器中的多线程执行 |
Also Published As
Publication number | Publication date |
---|---|
CN102904871A (zh) | 2013-01-30 |
JP2008523729A (ja) | 2008-07-03 |
WO2006065691A1 (en) | 2006-06-22 |
US7564847B2 (en) | 2009-07-21 |
US20060126628A1 (en) | 2006-06-15 |
EP1832085B1 (en) | 2011-09-07 |
CN1801775A (zh) | 2006-07-12 |
ATE524000T1 (de) | 2011-09-15 |
EP1832085A1 (en) | 2007-09-12 |
CN102904871B (zh) | 2015-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1801775B (zh) | 流分配 | |
US7349399B1 (en) | Method and apparatus for out-of-order processing of packets using linked lists | |
US8099521B2 (en) | Network interface card for use in parallel computing systems | |
US8015392B2 (en) | Updating instructions to free core in multi-core processor with core sequence table indicating linking of thread sequences for processing queued packets | |
US7310348B2 (en) | Network processor architecture | |
US8514874B2 (en) | Thread synchronization in a multi-thread network communications processor architecture | |
US7529224B2 (en) | Scheduler, network processor, and methods for weighted best effort scheduling | |
US8949582B2 (en) | Changing a flow identifier of a packet in a multi-thread, multi-flow network processor | |
US20060136681A1 (en) | Method and apparatus to support multiple memory banks with a memory block | |
US8910171B2 (en) | Thread synchronization in a multi-thread network communications processor architecture | |
CN1643499A (zh) | 在多线程网络处理器中的线程信令 | |
US20120155495A1 (en) | Packet assembly module for multi-core, multi-thread network processors | |
JPH09505713A (ja) | 広帯域ネットワークにおけるデータ伝送の並列アセンブリのためのシステム | |
US7483377B2 (en) | Method and apparatus to prioritize network traffic | |
US8874878B2 (en) | Thread synchronization in a multi-thread, multi-flow network communications processor architecture | |
US7646779B2 (en) | Hierarchical packet scheduler using hole-filling and multiple packet buffering | |
US7536692B2 (en) | Thread-based engine cache partitioning | |
CN1997973B (zh) | 用于动态缓存引擎指令的处理器、方法、装置和设备 | |
US9244798B1 (en) | Programmable micro-core processors for packet parsing with packet ordering | |
US20060161647A1 (en) | Method and apparatus providing measurement of packet latency in a processor | |
US20060140203A1 (en) | System and method for packet queuing | |
WO2003090018A2 (en) | Network processor architecture | |
US9455598B1 (en) | Programmable micro-core processors for packet parsing | |
US20070104187A1 (en) | Cache-based free address pool | |
US20040233934A1 (en) | Controlling access to sections of instructions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20060712 |
|
CI01 | Publication of corrected invention patent application |
Correction item: Rejection of patent application Correct: Dismiss False: Reject Number: 32 Volume: 26 |
|
ERR | Gazette correction |
Free format text: CORRECT: PATENT APPLICATION REJECTION OF AFTER PUBLICATION; FROM: REJECTION TO: REVOCATION REJECTED |
|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140326 Termination date: 20191212 |
|
CF01 | Termination of patent right due to non-payment of annual fee |