CN1574785A - 使用缓存来维护分组顺序的方法和系统 - Google Patents
使用缓存来维护分组顺序的方法和系统 Download PDFInfo
- Publication number
- CN1574785A CN1574785A CN200410038102.9A CN200410038102A CN1574785A CN 1574785 A CN1574785 A CN 1574785A CN 200410038102 A CN200410038102 A CN 200410038102A CN 1574785 A CN1574785 A CN 1574785A
- Authority
- CN
- China
- Prior art keywords
- grouping
- storage device
- local cache
- cache storage
- packet
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5638—Services, e.g. multimedia, GOS, QOS
- H04L2012/5646—Cell characteristics, e.g. loss, delay, jitter, sequence integrity
- H04L2012/565—Sequence integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/252—Store and forward routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/55—Prevention, detection or correction of errors
- H04L49/552—Prevention, detection or correction of errors by ensuring the integrity of packets received through redundant connections
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Communication Control (AREA)
Abstract
本发明描述了一种使用缓存来维护分组顺序的方法和系统。在接收元件处接收作为序列一部分的多个分组。由一个或多个处理模块对这些分组进行处理。然后,重排序元件将所述序列的多个分组排序,以确保将这些分组以与其被接收到时相同的顺序发送。当在重排序元件处接收到序列的分组时,重排序元件判断所接收的分组是不是序列中要被发送的下一分组。如果是,则发送该分组。如果不是,则当所述分组能装入本地存储器时,重排序元件将所述分组存储在所述本地存储器中。否则,将所述分组存储在非本地存储器中。当所存储的分组是序列中要被发送的下一分组时,将所存储的分组取回并发送。
Description
技术领域
本发明的实施例涉及分组排序领域,更具体地涉及使用缓存来维护分组顺序。
背景技术
在某些系统中,分组排序标准要求一个流的多个分组以与其到达系统相同的顺序离开该系统。一种可能的解决方案是使用异步插入,同步去除(Asynchronous Insert,Synchronous Remove,AISR)数组。当接收到每个分组时,都给其分配一个序号。该序号可以是对到达系统的所有分组全局地维护的,或者可以是对每个端口或每个流而分开地维护的。
所维护的AISR数组是共享存储器(例如SRAM),并由分组序号进行索引。对于每个流,都有一个单独的AISR数组。当分组处理流水线完成了对特定分组的处理时,该流水线将该分组传递到下一阶段,或重排序模块。重排序模块用AISR数组来存储乱序分组,并按所分配的序号的顺序来挑选分组。
这种设置的一个问题在于,当流中的下一分组还未准备好被处理时,系统必须继续轮询(poll)AISR列表。还存在存储器访问所带来的延迟,所述存储器访问是按所需顺序在流中对准备好并等候处理的分组进行取回所需的访问。
发明内容
综上,本发明的目的在于提供使用缓存来维护分组顺序的方法、装置和系统。
本发明所提供的方法包括在重排序元件处接收分组,该分组是要被按顺序发送至下一网络目的地的分组序列的一部分,所述方法还包括判断所接收的分组是不是所述序列中要被发送的下一分组,而如果不是,则:判断所接收的分组是否能装入本地缓存存储器中;如果所接收的分组能装入所述本地缓存存储器中,则将所接收的分组存储在所述本地缓存存储器中;如果所接收的分组不能装入所述本地缓存存储器中,则将所接收的分组存储在非本地存储器中。
本发明所提供的装置包括:处理模块,对从网络接收到的一个序列的多个分组进行处理;重排序元件,其耦合到所述处理模块,在向下一网络目的地发送之前对所述序列的多个分组进行重排列;本地缓存存储器,其耦合到所述重排序元件,存储一个或多个用于将分组重排序的数组;以及非本地存储器,其耦合到所述重排序元件,存储一个或多个用于在所述本地缓存存储器装满时将分组重排序的数组。
本发明所提供的制品包括机器可访问介质,其包括当被机器访问时导致该机器执行以下操作的内容:在重排序元件处接收分组,该分组是要被发送至下一网络目的地的分组序列的一部分;判断所述分组是否能装入本地缓存存储器中;如果所述分组能装入所述本地缓存存储器中,则将所述分组存储在所述本地缓存存储器中;如果所述分组不能装入所述本地缓存存储器中,则将所述分组存储在非本地存储器中。
本发明所提供的系统包括:交换结构和网络处理器,所述网络处理器经由交换结构接口而耦合到所述交换结构,所述网络处理器包括:处理模块,对从网络接收到的一个序列的多个分组进行处理;重排序元件,其耦合到所述处理模块,在向下一网络目的地发送之前对所述序列的多个分组进行重排列;本地缓存存储器,其耦合到所述重排序元件,存储一个或多个用于将分组重排序的数组;以及静态随机访问存储器,其耦合到所述重排序元件,存储一个或多个用于在所述本地缓存存储器装满时将分组重排序的数组。
综上,本发明实现了使用缓存来有效地维护分组顺序的方法、装置和系统。
附图说明
参照以下用来说明本发明实施例的说明书和附图,可以最好地理解本发明。在附图中:
图1是一个框图,示出了包含本发明的系统的一般实施例。
图2是一个流程图,示出了本发明实施例的方法。
图3是一个框图,示出了一个合适的计算环境,在该环境中可以实施本发明的某些方面。
具体实施方式
以下描述了使用缓存来维护分组顺序的系统和方法的实施例。在以下描述中,阐述了许多具体细节。然而应该理解到,没有这些具体细节也可以实施本发明。在其它情况下,没有详细示出公知的电路、结构和技术,以免妨碍对此描述的理解。
在整个本说明书中所提到的“一个实施例”或“实施例”的意思是,所描述的与本发明有关的特定特征、结构或特性包括在本发明的至少一个实施例中。从而,在整个本说明书中多处出现的说法“在一个实施例中”或“在实施例中”不一定都指同一实施例。此外,所述的特定特征、结构或特性可以用任何合适的方式结合在一个或多个实施例中。
参照图1,该框图示出了本发明一个实施例的网络处理器100。本领域普通技术人员将会意识到,网络处理器100可以包括比图1中所示的更多的组件。然而,不需要为了将实施本发明的说明性实施例公开而示出所有这些一般的传统组件。在一个实施例中,将网络处理器经由交换接口耦合到交换结构(switch fabric)。
网络处理器100包括从网络接收分组的接收元件102。所接收的分组可以是分组序列的一部分。网络处理器100包括一个或多个处理模块104。这些处理模块对接收到的分组进行处理。某些处理模块可能按适当的顺序来处理一个序列的多个分组,而其它处理模块可能乱序地处理这些分组。
处理分组之后,重排序元件106将属于一个序列的多个分组按适当的顺序排序。当重排序元件106从处理模块接收到分组时,其判断接收到的分组是不是序列中要被发送的下一分组。如果是,则发送元件108将所述分组发送或排队准备发送。如果不是,则重排序元件106判断所述分组是否能装入本地缓存存储器110中。如果是,则将所述分组存储在本地缓存存储器110中。否则,将所述分组存储在非本地存储器112中。在一个实施例中,非本地存储器112是静态随机访问存储器(SRAM)。在一个实施例中,网络处理器包括耦合到处理模块以存储数据的动态随机访问存储器(DRAM)。
当所存储的分组是序列中要被发送的下一分组时,该分组由重排序元件106从存储器中取回,并由发送元件108发送。当重排序元件106从本地缓存存储器110中取回要被发送的分组时,重排序元件106将存储在非本地存储器112中的分组拷贝到本地缓存存储器110中。
在一个实施例中,当属于一个序列的每个分组进入接收元件102时,都给了该分组一个序号,以便标记该分组,用于重排序。在处理模块104处理分组之后,重排序元件106将这些分组插入数组中。在一个实施例中,所述数组是异步插入,同步去除(AISR)数组。分组插入数组中的位置是基于分组序号的。例如,将序列中的第一个分组插入数组中的第一个位置,将序列中的第二个分组插入数组中的第二个位置,等等。重排序元件106按顺序从数组中取回分组,而发送元件108将分组发送给下一个网络目的地。
在一个实施例中,分组排序的实现假定存储器中的AISR数组足够大,使得序号通常不应循环,并且新的分组不应因此而覆写旧的但仍有效的分组。然而,如果发生了这样的情况,则重排序元件不应进行无限长的等待。因此,在一个实施例中,分组所携带的序号所具有的位(bit)数比存储器中用来表示最大序号的位数(max_seq_num)更多。这将会允许识别AISR数组中的任何循环。如果一个分组到达,使得其序号大于或等于(expected_seq_num+max_seq_num)(expected_seq_num是所预期的序号),则重排序元件停止接受任何新分组。同时,如果存在具有expected_seq_num的分组,则其将被处理或被假定为丢弃,然后将会增加expected_seq_num。继续此过程,直到已到达的分组能装入AISR数组中。此后,重排序元件将会开始接受新的分组。应该注意的是,实践中不应出现此状态,存储器中的最大序号应该足够大以使得这种情况不会出现。
在一个实施例中,如果在分组处理期间丢弃了一个分组,则将通知发送给重排序元件。此通知可以是所述分组的一个桩(stub)。在一个实施例中,如果在分组处理期间生成了新的分组,则可以对该新分组进行标记,以向重排序元件表明不需要对该新分组进行排序。在一个实施例中,如果在分组处理期间生成了新的分组,则该新分组与生成该新分组时所依据的那个分组共享同一序号。所述分组将会具有共享的数据结构,以表明该序号的拷贝数。重排序元件将会进行如下假定,即,仅当序号具有多个拷贝的分组的所有拷贝都到达时,所述分组才到达。
为了说明的目的,以下是用于重排序元件的示例性伪代码:
Function:receive_packet() seq_num=Extract sequence number from the packet; if(seq_num==expected_seq_num) { process packet; expected_seq_num++; clear entry corresponding to seq_num from local memory and SRAM AISR Array; read_from_SRAM(); } else { if(seq_num<(expected_seq_num+N)) { store seq_num in corresponding local memory AISR Array; look_for_head(); } <!-- SIPO <DP n="5"> --> <dp n="d5"/> else { store seq_num in corresponding SRAM AISR Array; if(seq_num>max_seq_num_in_SRAM) max_seq_num_in_SRAM=seq_num; look_for_head(); } } Function:look_for_head() if(entry at expected_seq_num is not NULL) { process expected_seq_num; expected_seq_num++; clear entry corresponding to seq_num from 1ocal memory and SRAM AISR Array; read_from_SRAM(); } Function:read_from_SRAM() { if(expected_seq_num%B==0) { //perform block_read_if necessary if((max_seq_num_in_SRAM!=-1)& (max_seq_num_in_SRAM>(expected_seq_num+N)))_ block read from SRAM AISR Array from (expected_seq_num+N)to(expected_seq_num+N +B); <!-- SIPO <DP n="6"> --> <dp n="d6"/> else max_seq_num_in_SRAM=-1; } }
函数“receive packet”从分组处理模块接收分组,并且如果该分组是序列中要被发送的下一分组,则处理该分组。否则,如果所述分组能装入本地存储器中的AISR数组中,则将所述分组插入本地存储器中AISR数组中的适当位置。如果所述分组不能装入本地存储器中的AISR数组中,则将所述分组存储在SRAM中的AISR数组中。
函数“look for head”查找本地存储器中AISR数组的顶部(head)处的分组。如果所述分组在那里,则将该分组处理并发送。
函数“read from SRAM”从SRAM中的AISR数组中读取分组。然后,当对来自本地存储器中AISR数组的分组进行处理时,可将所读取的分组拷贝到本地存储器中。
图2示出了本发明一个实施例的方法。在200,在重排序元件处接收分组,该分组是要被发送的分组序列的一部分。在202,对接收到的分组是不是序列中要被发送的下一分组进行判断。如果是,则在204,发送所述分组。如果否,则在206,对所述分组是否能装入本地缓存存储器中进行判断。在一个实施例中,对所述分组是否能装入本地缓存存储器中的AISR数组中进行判断。如果所述分组能装入本地缓存存储器中,则在208,将所述分组存储在本地缓存存储器中。如果所述分组不能装入本地缓存存储器中,则在210,将所述分组存储在非本地存储器中。在一个实施例中,如果接收到的分组不能装入本地缓存存储器中,则将该接收到的分组存储在SRAM中。在一个实施例中,当所存储的分组被判断出是序列中要被发送的下一分组时,将该所存储的分组取回并发送。
在一个实施例中,将分组存储在本地缓存存储器中的AISR数组中。当该分组到达AISR数组顶部时,将该分组取回并发送。然后,可将非本地存储器中AISR数组顶部的分组拷贝到本地缓存存储器中的AISR数组。
图3是一个框图,示出了一个合适的计算环境,在该环境中可以实施本发明的某些方面。在一个实施例中,上述方法可以在计算机系统300上实现,计算机系统300包括组件302-312,其中包括经由总线308彼此耦合的处理器302、存储器(memory)304、输入/输出设备306、数据存储设备(data storage)312和网络接口310。这些组件执行其本领域内公知的传统功能,并设有用于实现本发明的装置。总体上,这些组件表示更广的硬件系统范畴,其包括但不限于通用计算机系统和专用分组转发设备。应该意识到,可以对计算机系统300的各种组件进行重新设置,本发明的某些实现可能既不需要也不包括以上所有组件。此外,在系统300中可以包括另外的组件,例如另外的处理器(例如数字信号处理器)、存储设备、存储器,以及网络或通信接口。
本领域技术人员将会意识到,用于实现本发明方法实施例的内容,例如计算机程序指令,可以由任何机器可读介质来提供,所述机器可读介质可以存储包含本发明的系统所可以访问的数据,作为存储器的一部分或存储器的补充,所述介质包括但不限于卡式磁带(cartridge)、磁带、闪存卡、DVD、随机访问存储器(RAM)、只读存储器(ROM)等。在这点上,所述系统被配备为用本领域内公知的方式与这种机器可读介质通信。
本领域技术人员还将会意识到,可以从任何能够存储用于实现本发明方法实施例的内容、并能够将所述内容传送给网络处理器100的外部设备,将所述内容提供给网络处理器100。例如,在本发明一个实施例中,网络处理器100可以连接到一个网络,而所述内容可以存储在该网络中的任何设备上。
虽然根据若干实施例对本发明进行了描述,但本领域普通技术人员将会认识到,本发明并不限于所描述的实施例,而是可以用所附权利要求的精神和范围之内的修改和变更来实施。从而,应将本说明书看作是说明性的,而非限制性的。
Claims (23)
1.一种方法,包括:
在重排序元件处接收分组,该分组是要被按顺序发送至下一网络目的地的分组序列的一部分;
判断所接收的分组是不是所述序列中要被发送的下一分组,而如果不是,则:
判断所接收的分组是否能装入本地缓存存储器中;
如果所接收的分组能装入所述本地缓存存储器中,则将所接收的分组存储在所述本地缓存存储器中;
如果所接收的分组不能装入所述本地缓存存储器中,则将所接收的分组存储在非本地存储器中。
2.如权利要求1所述的方法,还包括:当所存储的分组是所述序列中要被发送的下一分组时,将所述所存储的分组取回并发送。
3.如权利要求1所述的方法,其中,“如果分组能装入本地缓存存储器中则将该分组存储在所述本地缓存存储器中”包括:如果所述分组能装入所述本地缓存存储器中的异步插入同步去除数组中,则将所述分组存储在所述本地缓存存储器中的异步插入同步去除数组中。
4.如权利要求3所述的方法,其中,“如果分组不能装入本地缓存存储器中则将该分组存储在非本地存储器中”包括:如果所述分组不能装入所述本地缓存存储器中的异步插入同步去除数组中,则将所述分组存储在非本地存储器中的异步插入同步去除数组中。
5.如权利要求4所述的方法,其中,“将分组存储在非本地存储器中的异步插入同步去除数组中”包括:如果所述分组不能装入所述本地缓存存储器中的异步插入同步去除数组中,则将所述分组存储在静态随机访问存储器中的异步插入同步去除数组中。
6.如权利要求4所述的方法,还包括:将位于所述本地缓存存储器中的异步插入同步去除数组项部的分组取回并发送。
7.如权利要求6所述的方法,还包括:在发送了位于所述本地缓存存储器中的异步插入同步去除数组顶部的分组之后,将位于所述非本地存储器中的异步插入同步去除数组顶部的分组拷贝到所述本地缓存存储器中的异步插入同步去除数组当中。
8.如权利要求1所述的方法,其中,判断所接收的分组是不是序列中要被发送的下一分组包括:判断所述所接收的分组是不是所述序列中要被发送的下一分组,如果是,则发送所述所接收的分组。
9.一种装置,包括:
处理模块,对从网络接收到的一个序列的多个分组进行处理;
重排序元件,其耦合到所述处理模块,在向下一网络目的地发送之前对所述序列的多个分组进行重排列;
本地缓存存储器,其耦合到所述重排序元件,存储一个或多个用于将分组重排序的数组;以及
非本地存储器,其耦合到所述重排序元件,存储一个或多个用于在所述本地缓存存储器装满时将分组重排序的数组。
10.如权利要求9所述的装置,其中,所述非本地存储器是静态随机访问存储器。
11.如权利要求9所述的装置,其中,所述本地存储器和所述非本地存储器存储一个或多个用于将分组重排序的数组包括:所述本地存储器和所述非本地存储器存储一个或多个用于将分组重排序的异步插入同步去除数组。
12.如权利要求9所述的装置,还包括耦合到所述处理模块的接收元件,该接收元件从所述网络接收分组。
13.如权利要求9所述的装置,还包括耦合到所述重排序元件的发送元件,该发送元件将重排序后的分组发送至下一网络目的地。
14.一种制品,包括:
机器可访问介质,其包括当被机器访问时导致该机器执行以下操作的内容:
在重排序元件处接收分组,该分组是要被发送至下一网络目的地的分组序列的一部分;
判断所述分组是否能装入本地缓存存储器中;
如果所述分组能装入所述本地缓存存储器中,则将所述分组存储在所述本地缓存存储器中;
如果所述分组不能装入所述本地缓存存储器中,则将所述分组存储在非本地存储器中。
15.如权利要求14所述的制品,其中,所述机器可访问介质还包括导致所述机器执行以下操作的内容:当所存储的分组是所述序列中要被发送的下一分组时,将所述所存储的分组取回并发送。
16.如权利要求14所述的制品,其中,所述机器可访问介质包括当被机器访问时导致该机器执行以下操作的内容,即如果分组能装入本地缓存存储器中,则将所述分组存储在所述本地缓存存储器中,所述机器可访问介质还包括下述机器可访问介质,该介质包括当被机器访问时导致该机器执行以下操作的内容,即如果所述分组能装入所述本地缓存存储器中的异步插入同步去除数组中,则将所述分组存储在所述本地缓存存储器中的异步插入同步去除数组中。
17.如权利要求16所述的制品,其中,所述机器可访问介质包括当被机器访问时导致该机器执行以下操作的内容,即如果分组不能装入本地缓存存储器中,则将所述分组存储在非本地存储器中,所述机器可访问介质包括下述机器可访问介质,该介质包括当被机器访问时导致该机器执行以下操作的内容,即如果所述分组不能装入所述本地缓存存储器中的异步插入同步去除数组中,则将所述分组存储在非本地存储器中的异步插入同步去除数组中。
18.如权利要求17所述的制品,其中,所述机器可访问介质还包括导致所述机器执行以下操作的内容:将位于所述本地缓存存储器中的异步插入同步去除数组顶部的分组取回并发送。
19.如权利要求18所述的制品,其中,所述机器可访问介质还包括导致所述机器执行以下操作的内容:在发送了位于所述本地缓存存储器中的异步插入同步去除数组顶部的分组之后,将位于所述非本地存储器中的异步插入同步去除数组顶部的分组拷贝到所述本地缓存存储器中的异步插入同步去除数组当中。
20.一种系统,包括:
交换结构;
网络处理器,其经由交换结构接口而耦合到所述交换结构,所述网络处理器包括:
处理模块,对从网络接收到的一个序列的多个分组进行处理;
重排序元件,其耦合到所述处理模块,在向下一网络目的地发送之前对所述序列的多个分组进行重排列;
本地缓存存储器,其耦合到所述重排序元件,存储一个或多个用于将分组重排序的数组;以及
静态随机访问存储器,其耦合到所述重排序元件,存储一个或多个用于在所述本地缓存存储器装满时将分组重排序的数组。
21.如权利要求20所述的系统,其中,所述网络处理器还包括耦合到所述处理模块并用于存储数据的动态随机访问存储器。
22.如权利要求20所述的系统,其中,所述网络处理器还包括耦合到所述处理模块的接收元件,该接收元件从所述网络接收分组。
23.如权利要求20所述的系统,其中,所述网络处理器耦合到所述重排序元件的发送元件,该发送元件将重排序后的分组发送至下一网络目的地。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/447,492 US20040240472A1 (en) | 2003-05-28 | 2003-05-28 | Method and system for maintenance of packet order using caching |
US10/447,492 | 2003-05-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1574785A true CN1574785A (zh) | 2005-02-02 |
CN1306773C CN1306773C (zh) | 2007-03-21 |
Family
ID=33451244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100381029A Expired - Fee Related CN1306773C (zh) | 2003-05-28 | 2004-04-28 | 使用缓存来维护分组顺序的方法和系统 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20040240472A1 (zh) |
EP (1) | EP1629644B1 (zh) |
CN (1) | CN1306773C (zh) |
AT (1) | ATE373369T1 (zh) |
DE (1) | DE602004008911T2 (zh) |
TW (1) | TWI269163B (zh) |
WO (1) | WO2004107684A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104821887A (zh) * | 2014-01-30 | 2015-08-05 | 马维尔以色列(M.I.S.L.)有限公司 | 通过使用具有不同延迟的存储器来进行分组处理的设备和方法 |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7627721B2 (en) | 2002-10-08 | 2009-12-01 | Rmi Corporation | Advanced processor with cache coherency |
US8037224B2 (en) | 2002-10-08 | 2011-10-11 | Netlogic Microsystems, Inc. | Delegating network processor operations to star topology serial bus interfaces |
US9088474B2 (en) | 2002-10-08 | 2015-07-21 | Broadcom Corporation | Advanced processor with interfacing messaging network to a CPU |
US8176298B2 (en) | 2002-10-08 | 2012-05-08 | Netlogic Microsystems, Inc. | Multi-core multi-threaded processing systems with instruction reordering in an in-order pipeline |
US7984268B2 (en) | 2002-10-08 | 2011-07-19 | Netlogic Microsystems, Inc. | Advanced processor scheduling in a multithreaded system |
US7924828B2 (en) * | 2002-10-08 | 2011-04-12 | Netlogic Microsystems, Inc. | Advanced processor with mechanism for fast packet queuing operations |
US7334086B2 (en) | 2002-10-08 | 2008-02-19 | Rmi Corporation | Advanced processor with system on a chip interconnect technology |
US7346757B2 (en) * | 2002-10-08 | 2008-03-18 | Rmi Corporation | Advanced processor translation lookaside buffer management in a multithreaded system |
US8478811B2 (en) | 2002-10-08 | 2013-07-02 | Netlogic Microsystems, Inc. | Advanced processor with credit based scheme for optimal packet flow in a multi-processor system on a chip |
US7961723B2 (en) | 2002-10-08 | 2011-06-14 | Netlogic Microsystems, Inc. | Advanced processor with mechanism for enforcing ordering between information sent on two independent networks |
US8015567B2 (en) | 2002-10-08 | 2011-09-06 | Netlogic Microsystems, Inc. | Advanced processor with mechanism for packet distribution at high line rate |
US7246205B2 (en) | 2004-12-22 | 2007-07-17 | Intel Corporation | Software controlled dynamic push cache |
GB2427048A (en) | 2005-06-09 | 2006-12-13 | Avecho Group Ltd | Detection of unwanted code or data in electronic mail |
US20070014240A1 (en) * | 2005-07-12 | 2007-01-18 | Alok Kumar | Using locks to coordinate processing of packets in a flow |
CN100459575C (zh) * | 2005-11-10 | 2009-02-04 | 中国科学院计算技术研究所 | 一种网络处理器中维护ip分组出入顺序的方法 |
US9729513B2 (en) | 2007-11-08 | 2017-08-08 | Glasswall (Ip) Limited | Using multiple layers of policy management to manage risk |
GB2444514A (en) | 2006-12-04 | 2008-06-11 | Glasswall | Electronic file re-generation |
US9596324B2 (en) | 2008-02-08 | 2017-03-14 | Broadcom Corporation | System and method for parsing and allocating a plurality of packets to processor core threads |
GB2518880A (en) | 2013-10-04 | 2015-04-08 | Glasswall Ip Ltd | Anti-Malware mobile content data management apparatus and method |
CN105227451B (zh) * | 2014-06-25 | 2019-06-21 | 华为技术有限公司 | 一种报文处理方法及装置 |
US9330264B1 (en) | 2014-11-26 | 2016-05-03 | Glasswall (Ip) Limited | Statistical analytic method for the determination of the risk posed by file based content |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05130141A (ja) * | 1991-11-05 | 1993-05-25 | Nec Corp | パケツト伝送装置 |
US5619497A (en) * | 1994-12-22 | 1997-04-08 | Emc Corporation | Method and apparatus for reordering frames |
US5887134A (en) * | 1997-06-30 | 1999-03-23 | Sun Microsystems | System and method for preserving message order while employing both programmed I/O and DMA operations |
CN1125548C (zh) * | 2000-01-07 | 2003-10-22 | 威盛电子股份有限公司 | 依序转发包的输出排队方法 |
US6934280B1 (en) * | 2000-05-04 | 2005-08-23 | Nokia, Inc. | Multiple services emulation over a single network service |
US6862282B1 (en) * | 2000-08-29 | 2005-03-01 | Nortel Networks Limited | Method and apparatus for packet ordering in a data processing system |
US6781992B1 (en) * | 2000-11-30 | 2004-08-24 | Netrake Corporation | Queue engine for reassembling and reordering data packets in a network |
US6751704B2 (en) * | 2000-12-07 | 2004-06-15 | International Business Machines Corporation | Dual-L2 processor subsystem architecture for networking system |
US7327759B2 (en) * | 2001-07-25 | 2008-02-05 | International Business Machines Corporation | Sequence-preserving deep-packet processing in a multiprocessor system |
WO2003021443A1 (en) * | 2001-08-31 | 2003-03-13 | Adaptec, Inc. | Systems and methods for implementing host-based security in a computer network |
US6779050B2 (en) * | 2001-09-24 | 2004-08-17 | Broadcom Corporation | System and method for hardware based reassembly of a fragmented packet |
US7248593B2 (en) * | 2001-09-25 | 2007-07-24 | Intel Corporation | Method and apparatus for minimizing spinlocks and retaining packet order in systems utilizing multiple transmit queues |
WO2003043272A1 (en) * | 2001-11-13 | 2003-05-22 | Transwitch Corporation | Overcoming access latency inefficiency in memories for packet switched networks |
US7248586B1 (en) * | 2001-12-27 | 2007-07-24 | Cisco Technology, Inc. | Packet forwarding throughput with partial packet ordering |
US20030214949A1 (en) * | 2002-05-16 | 2003-11-20 | Nadim Shaikli | System for reordering sequenced based packets in a switching network |
US6735647B2 (en) * | 2002-09-05 | 2004-05-11 | International Business Machines Corporation | Data reordering mechanism for high performance networks |
US7796602B2 (en) * | 2002-11-25 | 2010-09-14 | Intel Corporation | In sequence packet delivery without retransmission |
US7289508B1 (en) * | 2003-03-12 | 2007-10-30 | Juniper Networks, Inc. | Systems and methods for processing any-to-any transmissions |
-
2003
- 2003-05-28 US US10/447,492 patent/US20040240472A1/en not_active Abandoned
-
2004
- 2004-04-28 CN CNB2004100381029A patent/CN1306773C/zh not_active Expired - Fee Related
- 2004-05-12 AT AT04751905T patent/ATE373369T1/de not_active IP Right Cessation
- 2004-05-12 DE DE602004008911T patent/DE602004008911T2/de not_active Expired - Lifetime
- 2004-05-12 EP EP04751905A patent/EP1629644B1/en not_active Expired - Lifetime
- 2004-05-12 WO PCT/US2004/014739 patent/WO2004107684A1/en active IP Right Grant
- 2004-05-17 TW TW093113835A patent/TWI269163B/zh not_active IP Right Cessation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104821887A (zh) * | 2014-01-30 | 2015-08-05 | 马维尔以色列(M.I.S.L.)有限公司 | 通过使用具有不同延迟的存储器来进行分组处理的设备和方法 |
CN104821887B (zh) * | 2014-01-30 | 2019-08-09 | 马维尔以色列(M.I.S.L.)有限公司 | 通过具有不同延迟的存储器进行分组处理的设备和方法 |
Also Published As
Publication number | Publication date |
---|---|
DE602004008911T2 (de) | 2008-06-19 |
DE602004008911D1 (de) | 2007-10-25 |
EP1629644A1 (en) | 2006-03-01 |
US20040240472A1 (en) | 2004-12-02 |
ATE373369T1 (de) | 2007-09-15 |
TW200500858A (en) | 2005-01-01 |
CN1306773C (zh) | 2007-03-21 |
EP1629644B1 (en) | 2007-09-12 |
WO2004107684A1 (en) | 2004-12-09 |
TWI269163B (en) | 2006-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1574785A (zh) | 使用缓存来维护分组顺序的方法和系统 | |
CN1064500C (zh) | 临时存储数据包的方法和设备 | |
US6738831B2 (en) | Command ordering | |
CN104471555B (zh) | 多级互联系统及多级互联方法 | |
CN1423818A (zh) | 使用单一端口随机存取存储器的同时寻址 | |
JPH07202946A (ja) | 通信バッファを管理するためのシステム及び方法 | |
CN1016835B (zh) | 用于检索的方法和装置 | |
US7126959B2 (en) | High-speed packet memory | |
CN1184777C (zh) | 以太网交换芯片传输数据过程中缓存的管理和分配方法 | |
US6973550B2 (en) | Memory access control | |
US6483841B1 (en) | System and method for reducing capacity demand of ethernet switch controller | |
US7466716B2 (en) | Reducing latency in a channel adapter by accelerated I/O control block processing | |
CN1305277C (zh) | 用于维持分组部分有序的方法和系统 | |
US5940404A (en) | Method and apparatus for enhanced scatter mode allowing user data to be page aligned | |
CN1502198A (zh) | 通过将限定符插入控制块中链接帧数据 | |
US5721833A (en) | Push-out of low priority signals from switch buffers | |
CN1166134C (zh) | 用于atm交换结构中的流水线式共享存储器读写方法 | |
CN1929471A (zh) | 一种调度和仲裁的装置 | |
CN100469056C (zh) | 网络交换器的分组队列的运作方法 | |
CN1186391A (zh) | 在atm交换系统中处理atm信元的装置和方法 | |
US5440736A (en) | Sorter for records having different amounts of data | |
CN1147676A (zh) | 先进先出存储器 | |
CN1400785A (zh) | 异步传输模式交换系统中子端口多点传送的方法 | |
US20090083499A1 (en) | Ordered Storage Structure Providing Enhanced Access to Stored Items | |
CN1578138A (zh) | 降低复杂度的自适应滤波器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070321 Termination date: 20180428 |