CN1801775B - 流分配 - Google Patents

流分配 Download PDF

Info

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
Application number
CN200510107387.1A
Other languages
English (en)
Other versions
CN1801775A (zh
Inventor
A·霍巴尔
Y·李
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Priority to CN201210293264.1A priority Critical patent/CN102904871B/zh
Publication of CN1801775A publication Critical patent/CN1801775A/zh
Application granted granted Critical
Publication of CN1801775B publication Critical patent/CN1801775B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture 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是
Figure GC20016104200510107387101D00061
网际交换网络处理器(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(例如,
Figure GC20016104200510107387101D00062
或者 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所述的装置,
其中所述处理器包括至少一个内容可寻址存储器;以及
其中所述用于将网络信息包流分配的部件包括用于将流标识符写入至少一个内容可寻址存储器的部件。
CN200510107387.1A 2004-12-13 2005-12-12 流分配 Expired - Fee Related CN1801775B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1387641A (zh) * 1999-08-31 2002-12-25 英特尔公司 并行处理器中的多线程执行

Family Cites Families (13)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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