CN1502198A - 通过将限定符插入控制块中链接帧数据 - Google Patents
通过将限定符插入控制块中链接帧数据 Download PDFInfo
- Publication number
- CN1502198A CN1502198A CNA028048490A CN02804849A CN1502198A CN 1502198 A CN1502198 A CN 1502198A CN A028048490 A CNA028048490 A CN A028048490A CN 02804849 A CN02804849 A CN 02804849A CN 1502198 A CN1502198 A CN 1502198A
- Authority
- CN
- China
- Prior art keywords
- controll block
- frame
- buffer
- relevant
- fcb
- 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
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9047—Buffering arrangements including multiple buffers, e.g. buffer pools
-
- 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
- H04L49/3081—ATM peripheral units, e.g. policing, insertion or extraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
- G06F13/4243—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- 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/5678—Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
- H04L2012/5681—Buffer or queue management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Image Generation (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
- Image Input (AREA)
Abstract
一种通过将限定符插入控制块内减少存储器访问的方法和系统。在一个实施例中,系统包括被配置用于除了数据帧的处理器。该处理器可以包括多个被配置用于存储数据帧的缓冲器,其中每个数据帧可以与帧控制块相关。与数据帧相关的每个帧控制块可以与一个或者多个缓冲器控制块相关。每个控制块,例如帧控制块、缓冲器控制块均可以包括一个或者多个限定符字段,该限定符字段包括与当前控制块无关的信息。此外,各限定符可以包括与另一个控制块有关的信息。队列内的最后帧控制块以及与帧控制块相关的最后缓冲器控制块可以包括没有信息的字段,从而减少了为了访问这些字段内的信息进行的存储器访问。
Description
技术领域
本发明涉及连网通信领域,更具体地说,本发明涉及减少存储器访问。
背景技术
分组交换网络具有用于在与网络相连的发送器和接收器之间传输数据的交换点或交换节点。这些交换点执行的交换事实上是把交换点或节点接收的数据的分组或“帧”传给网络中的另一节点的操作。这种交换操作是借助其通过分组交换网络转移通信数据的手段。
每个节点可以包括被配置用于处理数据分组或数据帧的分组处理器。分组处理器可以包括被配置了多个用于存储帧数据的缓冲器的数据存储单元,例如,双数据速率静态随机存取存储器(DDRSRAM)。每个数据帧可以与被配置用于描述相应数据帧的帧控制块(FCB)相关。每个FCB可以与一个或者多个缓冲器控制块(BCB)相关,其中与FCB相关的每个BCB可以与数据存储单元内的缓冲器相关。可以配置BCB以描述相关的缓冲器。通常,FCB和BCB包括各种信息字段,其中FCB和BCB的各信息字段分别由分组处理器内的独立存储器,例如,四数据速率静态随机存取存储器(QDR SRAM)提供。也就是说,通过访问分组处理器内的独立存储器,例如QDR SRAM,可以获得FCB和BCB的各信息字段。
因此,最好减少对将信息送到FCB或BCB的各字段的特定存储器,例如QDR SRAM,进行访问的次数,从而提高例如QDRSRAM的存储器的带宽利用率。
发明内容
本发明允许将限定符(qualifier)插入包括与当前控制块无关的信息的控制块(例如帧控制块、缓冲器控制块)中。此外,例如帧控制块、缓冲器控制块的控制块中的各限定符可以包括关于另一个控制块或者关于与下一个控制块相关的缓冲器的信息。分组处理器的队列内的最后帧控制块以及与帧控制块相关的最后缓冲器控制块可以包括没有信息的字段,从而减少了为了访问插入这些字段内的信息而对存储器,例如QDR SRAM,进行存储器访问。因此,提高了将信息送到这些字段的存储器,例如QDR SRAM,的带宽。
根据一个方面,本发明提供了一种系统,该系统包括:处理器,被配置用于处理数据帧,其中所述处理器包括:多个缓冲器,被配置用于存储所述数据帧,其中每个数据帧与帧控制块相关;以及多个队列,被配置用于临时存储一个或者多个帧控制块,其中所述一个或者多个帧控制块中的每个帧控制块包括一个或者多个限定符字段,其中所述一个或者多个帧控制块内的所述一个或者多个限定符字段包括与所述多个缓冲器中的一个或者多个缓冲器有关的信息。
所述一个或者多个帧控制块中的每个帧控制块优先与一个或者多个缓冲器控制块相关,其中所述一个或者多个缓冲器控制块中的每个缓冲器控制块与所述多个缓冲器中的特定缓冲器相关。在所述多个队列中的特定队列内除了最后帧控制块外的所有帧控制块中的所述一个或者多个限定符字段更优先包括关于与下一个帧控制块相关的所述一个或者多个缓冲器控制块的字节计数长度的信息。
在优选实施例中,所述一个或者多个帧控制块中的每个帧控制块中的所述一个或者多个限定符字段包括关于与所述当前帧控制块相关的缓冲器控制块的地址的信息。此外,所述一个或者多个帧控制块中的每个帧控制块内的一个或者多个限定符字段优先包括关于存储在与与所述当前帧控制块相关的所述缓冲器控制块相关的缓冲器内的帧数据的起始字节位置和结束字节位置的信息。
与特定帧控制块相关的所述一个或者多个缓冲器控制块中的每个缓冲器控制块适于包括一个或者多个限定符字段,其中在与所述特定帧控制块相关的所述一个或者多个缓冲器控制块中除了最后缓冲器控制块外的所有缓冲器控制块中的所述一个或者多个限定符字段包括关于存储在与下一个缓冲器控制块相关的缓冲器内的帧数据的起始字节位置和结束字节位置的信息。所述多个队列中的每个队列更适于包括控制块,其中所述多个队列中的每个队列内的所述控制块包括标题字段,其中所述标题字段包括所述多个队列中的某个队列内的第一帧控制块的地址。标题字段更适于进一步包括限定符,其中所述限定符包括关于与所述第一帧控制块相关的所述多个缓冲器控制块的字节计数长度的信息。而该控制块进一步包括尾标字段,其中所述尾标字段包括所述队列内的最后帧控制块的地址。控制块优先进一步包括计数字段,其中所述计数字段包括所述队列内的帧控制块的个数。
根据另一个方面,本发明提供了一种通过将限定符插入控制块内减少存储器访问的方法,该方法包括步骤:接收数据帧;租用一个或者多个缓冲器控制块;将所述数据帧存储到数据存储单元中、与所述一个或者多个缓冲器控制块相关的一个或者多个缓冲器内;以及租用与所述一个或者多个缓冲器控制块相关的帧控制块;其中所述帧控制块包括一个或者多个限定符字段,其中所述帧控制块内的所述一个或者多个限定符字段包括与所述数据存储单元内的一个或者多个缓冲器之一有关的信息。
该方法优先进一步包括步骤:将所述帧控制块排列到队列内。更具体地说,所述帧控制块内的一个或者多个限定符字段更优先包括关于与当前帧控制块相关的所述一个或者多个缓冲器控制块之一的地址的信息。所述帧控制块内的一个或者多个限定符字段更优先包括关于存储在用于存储所述数据帧的所述一个或者多个缓冲器中所述之一内的数据的起始字节位置和结束字节位置的信息。
所述一个或者多个缓冲器控制块中的每个缓冲器控制块适于包括一个或者多个限定符字段,其中在与所述帧控制块相关的所述一个或者多个缓冲器控制块中除了最后缓冲器控制块外的所有缓冲器控制块中的所述一个或者多个限定符字段包括关于存储在与下一个缓冲器控制块相关的所述一个或者多个缓冲器之一内的数据的起始字节位置和结束字节位置的信息。队列更适于包括控制块,其中所述队列内的所述控制块包括标题字段,其中所述队列内的所述标题字段包括所述队列中的第一帧控制块的地址。
所述队列中的标题字段适合进一步包括限定符,其中所述限定符包括关于与所述第一帧控制块相关的一个或者多个缓冲器控制块的字节计数长度的信息。所述队列的控制块更适合进一步包括尾标字段,其中所述尾标字段包括所述队列内的最后帧控制块的地址,而所述队列的所述控制块进一步包括计数字段,其中所述计数字段包括所述队列内的帧控制块的个数。
根据又一个方面,本发明提供了一种计算机程序产品,它存储在计算机可读存储介质上,在在计算机系统上运行时,指示计算机系统实现以上所述的系统。
附图说明
现在,将参考附图所示的、仅作为例子的本发明的优选实施例说明本发明,附图包括:
图1示出根据本发明配置的分组处理器;
图2示出根据本发明配置的数据流单元;
图3是示出通过利用控制块内的限定符链接帧数据,减少存储器访问的示意图;以及
图4是通过利用控制块内的限定符链接帧数据,减少存储器访问的方法的流程图。
具体实施方式
本发明提供了一种通过将限定符插入控制块内减少存储器访问的方法和系统。在一个实施例中,系统包括被配置用于处理数据分组即数据帧的分组处理器。该处理器可以包括多个被配置用于存储数据帧的缓冲器,其中每个数据帧可以与帧控制块相关。与数据帧相关的每个帧控制块可以与一个或者多个缓冲器控制块相关。与帧控制块相关的每个缓冲器控制块可以与多个缓冲器中的特定缓冲器相关。每个控制块,例如帧控制块、缓冲器控制块,均可以包括一个或者多个限定符字段。该一个或者多个限定符字段可以包括与当前控制块无关的信息。相反,控制块,例如帧控制块、缓冲器控制块,中的限定符可以包括与另一个控制块有关的信息。通过插入存储与另一个控制块有关的信息的限定符,分组处理器中的队列中的最后帧控制块以及与帧控制块相关的最后缓冲器控制块可以包括没有信息的字段,从而减少为了访问待插入这些字段的信息而对存储器(例如QDR SRAM)进行访问。因此,提高了将信息送到这些字段的存储器,例如QDRSRAM,的带宽。
图1图解说明了分组处理器100。分组处理器100可包括数据流单元110,数据流单元110被配置成从分组交换网络的特定交换机(未示出)或者端口(未示出)接收数据的数字分组,即数据帧,并把数据的数字分组,即数据帧传送给分组交换网络中的另一交换机或端口,例如交换机/端口120。每个数据帧可与一个帧控制块(FCB)相关,FCB描述数据的相关帧。与一个数据帧相关的每个FCB可和一个或多个缓冲器控制块(BCB)相关,与FCB相关的每个BCB可与数据存储单元140中的一个缓冲器相关。可以配置BCB以描述与下一个链接的BCB相关的缓冲器,如图3和图4所示。在一个实施例中,数据流单元10可驻留在集成电路,即集成芯片上。数据流单元110可与数据存储单元140耦接,数据存储单元140被配置成临时保存数据流单元110从分组交换网络中的一个交换机(未示出)或端口(未示出)接收的数据帧。数据流单元110还可与调度器130耦接,调度器130被配置成调度将从数据流单元110传送给交换机/端口120的数据帧。在一个实施例中,调度器130可驻留在集成电路,即集成芯片上。此外,数据流单元110还可与嵌入式处理器150耦接,嵌入式处理器150被配置成处理数据流单元110接收的数据帧。
图2更详细地说明了数据流单元110。数据流单元110可包括接收器控制器203,接收器控制器203被配置成接收和临时保存从分组交换网络中的交换机(未示出)或者端口(未示出)接收的数据分组,即数据帧。数据流单元110还可包括发射器控制器201,发射器控制器201被配置成修改帧数据,并把修改后的帧数据传送给分组交换网络中的交换机(未示出)或者端口(未示出)。数据流单元110还可包括嵌入式处理器接口控制器202,嵌入式处理器接口控制器202被配置成交换要被嵌入式处理器150处理的帧。
数据分组,即数据帧可由端口/交换机接口单元221接收。当数据流单元110按照输出(engress)模式工作时,端口/交换机接口单元221可从分组交换网络中的交换机(未示出)接收数据。否则,当数据流单元110按照输入(ingress)模式工作时,端口/交换机接口单元221可从用作到分组交换网络的接口的端口(未示出)接收数据。在被保存在数据存储单元140中之前,数据流单元110接收的数据可临时保存在接收预备区存储器220中,数据存储器单元140可由若干切片(slice)205AF表示。切片205AF可整体地或者单独地分别称为切片205。图2中的切片205的数目是例证性的,根据本发明的数据流单元110的实施例可具有其它预定数目的切片205。每个切片可包括若干缓冲器。每个切片可代表一片存储器,例如动态随机存取存储器(DRAM),从而帧数据可被写入不同切片中的不同缓冲器中,以使存储器带宽达到最大。存储器判优器204可被配置成收集来自于接收器控制器203、发射器控制器201和嵌入式处理器接口控制器202的请求,例如读取请求、写入请求,随后调度对特定数据存储存储器切片,即特定切片205中的特定缓冲器的访问。例如,接收器控制器203可被配置成向存储器判优器204发出写入请求,以便把接收的数据写入特定切片205中的各个缓冲器中。
如上所述,帧数据可保存在数据存储单元140,即若干切片205中。在一个实施例中,帧数据可以这样的方式保存在一个或多个切片205中的一个或多个缓冲器中,以致可通过使缓冲器链接在一起,重新组合每个特定帧中的数据。即,特定帧中的数据可保存在按照数据写入其中的顺序链接在一起的一个或多个缓冲器中。一个或多个缓冲器的链接可由与数据流单元110耦接的存储器229,例如四元数据速率静态随机存取存储器(QDR SRAM),中的缓冲器控制块单元(BCBU)208控制。BCBU 208可被配置成包括按照数据写入其中的顺序链接在一起的一个或多个缓冲器的地址。借助保存在BCBU208中的指针,可把包含相同帧的数据的不同缓冲器链接在一起。
如上所述,每个数据帧可与一个帧控制块(FCB)相关,FCB描述数据的相关帧。存储器210,例如QDR SRAM,中的帧控制块单元1(FCBU1)209可被配置成保存要填入FCB的字段中的信息,例如帧控制信息。即,可通过访问存储器210,即存储器210的FCBU1 209,获得FCB中的信息字段。在图3的说明中讨论了和保存信息字段的存储器210的FCBU1 209相关的其它细节。
通过把要处理的各帧的报头传送给嵌入式处理器150,保存在缓冲器中的帧数据可被嵌入式处理器150处理。如上所述,每帧数据可由一个FCB表示。这些FCB可临时保存在G队列(GQ)218中。分配器逻辑电路217可被配置成使下一FCB从GQ 218出列。一旦分配器逻辑电路217使下一FCB出列,那么分配器逻辑电路217向存储器判优器204发出读取请求,以便读取位于保存在与出列FCB相关的数据存储单元140中的帧的起点(即该帧报头)中的数据。嵌入式处理器150随后处理分配器逻辑电路217读取的数据。
一旦嵌入式处理器150处理了帧数据,那么向存储器判优器204发出把处理后的帧数据写入一个或多个切片205中的各个缓冲器中的写入请求的嵌入式处理器逻辑电路216,可把处理后的帧数据临时保存在数据存储单元140,即切片205中。
一旦嵌入式处理器150处理了帧数据,那么嵌入式处理器逻辑电路216还向调度器130发出与处理后的帧相关的FCB。调度器130可被配置成包括保存FCB的流队列223。调度器130还可包括位于存储器224,例如QDR SRAM内的帧控制块单元2(FCBU2)225,FCBU2 225被配置成类似于FCBU1 209工作。FCBU2 225可被配置成当FCB临时驻留于流队列223中时,保存要填入FCB的字段中的信息。关于用于存储信息字段的、调度器130的存储器224内的FCBU2 225的其他详情,请参考第09/792,494号美国专利申请(代理人文档号为RAL000091的共同待审PCT专利申请)。调度器130可被配置成把保存在流队列223中的FCB传送给目标刀形(blade)队列(TBQ)列队(enqueue)逻辑电路227,TBQ列队逻辑电路227被配置成把接收的FCB排列到TBQ 215中。
在TBQ 215中列队的FCB可由TBQ调度器228安排成从TBQ215出列,并被载入端口控制块(PCB)224中。TBQ调度器228可被配置成使下一FCB从TBQ 215出列,并把该FCB排列到PCB224中。一旦下一FCB被排列到PCB 224中,那么PCB 224可向存储器判优器204发出读取请求,以便读取位于保存在与出列FCB相关的数据存储单元140中的帧的起点(即帧报头)中的数据。在把处理后的帧数据传送给分组交换网络中的交换机(未示出)或者端口(未示出)之前,PCB 224读取的数据可临时保存在数据预备区存储器214中。为清楚起见,注意PCB 224可被配置成在每个特定读取请求中,读取保存在处理后的帧中的一部分数据。即,可在PCB 224提供的多个读取请求中读取保存在处理后的帧中的整个数据。一旦读取了保存在处理后的帧中的整个数据,那么数据存储单元140可保存另外的帧数据。
发射器控制器201还可包括帧改变预备区存储器213,帧改变预备区存储器213被配置成接收修改临时保存在数据预备区存储器214中的处理帧的命令。这些命令通常称为由嵌入式处理器150发出,并由嵌入式处理器逻辑216保存在特定缓冲器的特定存储区中的帧修改命令。关于将帧修改命令存储到特定缓冲器内的特定存储体内的其他细节请参考第09/792,557号美国专利申请。在一个实施例中,PCB224可被配置成取回保存在特定缓冲器的特定存储区中的帧修改命令,并把这些命令保存在帧改变预备区存储器213中。帧改变(FA)逻辑单元212可被配置成执行保存在帧改变预备区存储器213中的命令,以修改临时保存在数据预备区存储器214中的处理帧的内容。一旦FA逻辑单元212修改了处理帧的内容,那么可通过交换机/端口接口单元211传送修改后的处理帧。当数据流单元110按照输出模式工作时,交换机/端口接口单元211可把数据传送给用作到分组交换网络的接口的端口(未示出)。否则,当数据流单元110按照输入模式工作时,交换机/端口接口单元211可把数据传送给分组交换网络中的交换机(未示出)。
数据流单元110还可包括缓冲器控制块(BCB)判优器207,缓冲器控制块判优器207被配置成仲裁来自发射器控制器201、嵌入式处理器接口控制器202和接收器控制器203的不同BCB请求,以便相对于BCBU 208进行读取或写入操作。BCB判优器207可被配置成调度不同的访问,以便尽可能高效地利用存储器带宽。数据流单元110还可包括帧控制块(FCB)判优器206,FCB判优器206被配置成仲裁来自嵌入式处理器接口控制器202、接收器控制器203和发射器控制器201的不同FCB请求,以便相对于FCBU1 209进行读取或写入操作。
如上所述,每个数据帧可与一个FCB相关。由于处理帧从数据存储单元140(例如DDR DRAM)读取,并且处理帧被修改和被传送给分组交换网络中的交换机(未示出)或端口(未示出),因此与这种处理帧相关的FCB停止表示特定的数据帧。一旦FCB不再与帧数据相关,FCB可保存在FCB判优器206内的FCB自由队列222中。FCB自由队列222可被配置成包括不再与特定帧数据相关的若干FCB。注意,FCB自由队列222可包括任意数目的不再与特定帧数据相关的FCB。一旦数据流单元110接收一个数据分组,即一个数据帧,那么接收器控制器203的重装控制块(RCB)219可使来自FCB自由队列的特定FCB与接收的数据帧关联起来,随后,新关联的FCB可由RCB 219排列到GS 218中。
如上所述,每个数据帧可与一个FCB相关。与一个数据帧相关的每个FCB可与一个或多个BCB相关,与FCB相关的每个BCB可与数据存储单元140的特定缓冲器相关。可以配置BCB以描述与下一个链接的BCB有关的缓冲器,如在关于图3和4的讨论中所述。一旦保存在数据存储单元140的缓冲器中的处理帧数据被发射器控制器201取回,随后被修改并被传送给分组交换网络中的交换机(未示出)或者端口(未示出),那么与不再包括任意帧数据的特定缓冲器相关的BCB停止包含任意有效信息。即,与不再包括任意帧数据的特定缓冲器相关的BCB包括无用的数据,因为与BCB相关的特定缓冲器不再包括任意帧数据。一旦BCB停止包含任意有效信息,即,一旦特定缓冲器中的帧数据已被传送,那么BCB可保存在BCB判优器206内的BCB自由队列206中。BCB自由队列226可被配置成包括不包含任意有效信息的若干BCB。注意,BCB自由队列可包括任意数目的不包含任意有效信息的BCB。一旦接收机控制器203接收帧数据,接收机控制器203的RCB 219就可以检索BCB自由队列226内的BCB,因此RCB 219可以将接收的帧数据写入与从BCB自由队列226内检索的BCB相关的特定缓冲器内。
如上所述,FCB和BCB可以包括各种信息字段,其中各信息字段分别由独立存储器210(即存储器210的FCBU1 209)以及存储器229(即存储器229的BCBU 208)提供。也就是说,通过访问存储器210,即存储器210的FCBU1 209,可以获得FCB内的信息字段。通过访问存储器229,即存储器229的BCBU 208,可以获得BCB内的信息字段。因此,最好减少对分别将信息送到FCB和BCB的各字段的存储器210和229,例如QDR SRAM进行访问的次数,从而提高存储器210和229的带宽利用率。以下将说明示出通过将限定符插入控制块的各字段中减少对存储器210和229进行存储器访问的次数的示意图。
图3示出典型控制块集300的原理图,该控制块集300示出在例如FCB、BCB的控制块中包括限定符,以根据本发明原理减少访问存储器210和229。如上所述,FCB可以临时驻留在队列305内,队列305可以是下面的队列之一:FCB自由队列222、GQ 218、流队列223以及TBQ 215。在上述每个队列中,即,FCB自由队列222、GQ 218、流队列223、TBQ 215,该队列具有通常称为队列控制块(QCB)301的控制块,该控制块中包括关于当前驻留在特定队列内的FCB的数量的信息。请注意,BCB自由队列226还可以包括QCB 301。还请注意,QCB 301可以包括除当前驻留在该特定队列内的FCB的数量之外的信息。
参考图3,QCB 301可以包括标题字段302、尾标字段303以及计数字段304。标题字段302可以包括位于包括QCB 301的队列(例如FCB自由队列222、GQ 218、流队列223、TBQ 215)内的第一FCB(例如FCB 310A)的FCB地址(FCBA)。(在图3所示的典型集300中,连接到QCB 301、FCB 310A以及FCB 310B的特定字段的符号(X)用于表示特定字段指向FCBX,或者包括BCBsX的字节计数长度。)标题字段302可以进一步包括位于例如FCB自由队列222、GQ 218、流队列223、TBQ 215的队列内、与例如FCB310A的第一FCB相关的一个或者多个例如BCB 320AC的BCB的字节计数(BCNT)。可以将标题字段302内的BCNT称为限定符,因为它用于识别位于包括QCB 301的队列305内、与例如FCB 310A的第一FCB相关的一个或者多个例如BCB 320AC的BCB的字节计数长度。尾标字段303可以包括位于包括QCB 301的队列305(例如FCB自由队列222、GQ 218、流队列223、TBQ 215)内的例如FCB310B的最后FCB的FCB地址(FCBA)。计数字段304可以包括位于包括QCB 301的队列305内的FCB的数量。因为在附图所示的典型集300中,在包括QCB 301的队列305内存在两个例如FCB310AB的FCB,所以计数字段304包括数量2。普通技术人员明白,请注意,例如FCB自由队列222、GQ 218、流队列223、TBQ 215的队列可以包括任意数量的FCB,并且图3是示例。还请注意,可以集体性地或者单独地将FCB 310AB分别称为FCB 310。
每个FCB 310可以包括两个条目或字段行。在每个FCB 310中,第一个条目可以包括含有指向下一个FCB地址(NFA)的指针的字段。第一个条目可以进一步包括含有与下一个FCB 310相关的一个或者多个BCB的字节计数(BCNT)长度的字段。也就是说,代替FCB 310存储与当前FCB 310相关的一个或者多个BCB的字节计数长度(BCNT),BCNT字段存储与下一个FCB 310相关的一个或者多个BCB的字节计数长度。例如,FCB 310A在NFA字段内包括随后FCB 310(例如310B)的FCB地址,以及在BCNT字段内包括与随后FCB 310(例如310B)相关的一个或者多个BCB(例如BCB 320DF)的字节计数长度。可以将BSNT字段称为限定符,因为它识别与NFA字段标识的FCB 310B(即FCB 310链上的下一个FCB 310)相关的一个或者多个BCB(例如BCB 320DF)的字节计数长度。FCB 310B不包括NFA字段或BCNT字段内的信息,因为FCB 310B后面不再存在FCB 310。(在图3所示的典型集300内,这是利用“空”括号“()”表示的。)通过不在FCB 310B的NFA字段和BCNT字段内存储信息,所以减少了对存储器210的存储器访问,从而提高了存储器210的带宽利用率。
在每个FCB 310中,第二个条目可以包括与该特定FCB相关的第一BCB的第一BCB地址(FBA)的字段、存储在与第一BCB相关的缓冲器内的帧数据的起始字节位置(SBP)的字段以及存储在与第一BCB相关的缓冲器内的帧数据的结束字节位置(EBP)的字段。每个FCB可以与一个或多个BCB相关。参考图3,FCB 310A与BCB 320AC相关。FCB 310B与BCB 320DF相关。请注意,FCB可以与任意数量的BCB相关,并且图3是示例,普通技术人员明白。还请注意,可以将BCB 320AF整体性地或单独地分别称为BCB320。每个BCB 320可以与数据存储单元140内的特定缓冲器相关。例如,BCB 320A与缓冲器330A相关。BCB 320B与缓冲器330B相关。BCB 320C与缓冲器330C相关。BCB 320D与缓冲器330D相关。BCB 320E与缓冲器330E相关。BCB 320F与缓冲器330F相关。可以将缓冲器330A-F整体性地或者单独地分别称为缓冲器330。请注意,分组处理器100的数据存储单元140可以包括任意数量的含有任意数量缓冲器330的切片205。还请注意,由于可以存在任意数量的缓冲器330,所以可以存在与这些缓冲器330相关的任意数量的BCB 320。还请注意,在一个实施例中,每个BCB 320可以与数据存储单元140内的特定缓冲器330相关。
参见FCB 310A,第二个条目中的FBA字段可以包括与FCB310A相关的第一BCB 320,例如BCB 320A的地址。FCB 310A可以进一步包括用于存储存储在与第一BCB 320,例如BCB 320A相关的缓冲器330(例如缓冲器330A)内的帧数据的开始地址的SBP字段。FCB 310A可以进一步包括用于存储存储在与第一BCB 320,例如BCB 320A相关的缓冲器330(例如缓冲器330A)内的帧数据的结束地址的EBP字段。可以将SBP字段和EBP字段称为限定符,因为它们包括关于与第一BCB 320,例如BCB 320A相关的帧数据的起始字节位置和结束字节位置的信息,而不包括关于当前FCB 310,例如FCB 310A的信息。同样,FCB 310B可以在第二个条目中包括FBA字段,该字段含有与FCB 310B相关的第一BCB 320,例如BCB320D的地址。FCB 310B可以进一步包括用于存储存储在与第一BCB 320,例如BCB 320D相关的缓冲器330(例如缓冲器330D)内的帧数据的开始地址的SBP字段。FCB 310B可以进一步包括用于存储存储在与第一BCB 320,例如BCB 320D相关的缓冲器330(例如缓冲器330D)内的帧数据的结束地址的EBP字段。可以将SBP字段和EBP字段称为限定符,因为它们包括关于与第一BCB 320,例如BCB 320D相关的帧数据的起始字节位置和结束字节位置的信息,而不包括关于当前FCB 310,例如FCB 310B的信息。
如上所述,每个FCB 310可以与一个或者多个BCB 320相关。参考图3,FCB 310A与BCB 320AC相关,而FCB 310B与BCB320DF相关。每个BCB 320可以包括3个与FCB 310的第二个条目中的3个字段相类似的字段。每个BCB 320可以包括指向下一个BCB地址(NBA)的指针以及作为与下一个BCB相关的缓冲器330的起始字节位置和结束字节位置的SBP字段和EBP字段。可以将SBP字段和EBP字段称为限定符,因为它们存储与下一个BCB320,例如BCB 320C相关的缓冲器330,例如缓冲器330B的起始字节位置和结束字节位置。也就是说,不是存储与当前BCB 320,例如BCB 320B相关的缓冲器330,例如缓冲器330B的起始字节位置和结束字节位置,从而导致对存储器229进行额外写访问,而是将与下一个BCB 320,例如BCB 320B相关的缓冲器330,例如缓冲器330B的起始字节位置和结束字节位置分别存储到先前BCB 320,例如BCB 320A内的SBP字段和EBP字段。
例如,BCB 320A在NBA字段内包括下一个BCB 320,例如BCB 320B的BCB地址,以及在SBP字段内包括存储在与下一个BCB 320,例如BCB 320B相关的缓冲器330,例如缓冲器330B内的帧数据的起始字节位置和在EBP字段内包括存储在与下一个BCB320,例如BCB 320B相关的缓冲器330,例如缓冲器330B内的帧数据的结束字节位置。BCB 320B在NBA字段内包括下一个BCB320,例如BCB 320C的BCB地址,以及在SBP字段内包括存储在与下一个BCB 320,例如BCB 320C相关的缓冲器330,例如缓冲器330C内的帧数据的起始字节位置和在EBP字段内包括存储在与下一个BCB 320,例如BCB 320C相关的缓冲器330,例如缓冲器330C内的帧数据的结束字节位置。在与FCB 310,例如FCB 310A相关的最后BCB 320,例如BCB 320C内,在NBA字段、SBP字段以及EBP字段内不存在信息,因为在最后BCB 320,例如BCB 320C后面不再存在BCB 320。通过不在最后BCB 320,例如BCB 320C内的NBA字段、SBP字段以及EBP字段内存储信息,所以不存在要写入与FCB 310,例如FCB 310A相关的最后BCB 320,例如BCB 320C的各字段内的信息,因此,可以减少对存储器229进行存储器访问,并且可以提高存储器229的带宽利用率。
图4示出通过利用控制块,例如FCB 310、BCB 320内的限定符链接帧数据,减少对存储器210和229进行存储器访问的方法400的流程图。
在步骤401,可以从分组交换网络内的交换机(未示出)或端口(未示出)接收帧数据,并由接收机控制器203将它临时存储到接收准备区存储器220。
在步骤402,然后,可以配置接收机控制器203的RCB 219以从BCB自由队列226租用一个或者多个BCB 320(如图2所示)。可以认为BCB是从BCB自由队列226“租用”的,因为在FCB的“生命周期”内可以从BCB自由队列226中临时删除该BCB。关于FCB的“生命周期”的其他细节请参考第09/792,494号美国专利申请。然后,RCB 219可以将接收的数据写入与从BCB自由队列226租用的一个或者多个BCB 320相关的一个或者多个特定缓冲器330内。在一个实施例中,RCB 219可以将一个或者多个写请求发送到存储器判优器204,以将接收的帧数据写入与从BCB自由队列226租用的一个或者多个BCB 320相关的一个或者多个特定缓冲器330内。
如上所述,每个特定缓冲器330可以与特定BCB 320相关。可以将BCB 320配置为如图3所示的那样,其中BCB 320可以包括含有指向下一个BCB 320地址的指针的下一个BCB地址(NBA)的字段以及作为与下一个BCB 320相关的缓冲器330的起始字节位置和结束字节位置的SBP字段和EBP字段。可以将SBP字段和EBP字段称为限定符,因为它们存储与下一个BCB 320相关的缓冲器330的起始字节位置和结束字节位置。也就是说,不是存储与当前BCB320,例如BCB 320A(参考图3)相关的缓冲器330,例如缓冲器330A(参考图3)的起始字节位置和结束字节位置,从而导致对存储器229进行额外写访问,而是将与下一个BCB 320,例如BCB 320B(参考图3)相关的缓冲器330,例如缓冲器330B(参考图3)的起始字节位置和结束字节位置分别存储到先前BCB 320,例如BCB320A(参考图3)内的SBP字段和EBP字段。
在每次进行租用操作,即,RCB 219从BCB自由队列226租用每个BCB 320期间,RCB 219可以读BCB自由队列226的QCB 301(参考图3)中的标题字段302。然后,RCB 219可以读第一BCB320,例如BCB 320A的NBA字段,NBA字段内可以包括要检索的BCB自由队列226内的下一个BCB 320的地址。随后,RCB 219可以更新QCB 301的标题字段302,以使标题字段302内的地址为在下一个租用操作期间可以检索的下一个BCB 320的地址。然后,可以递减BCB自由队列226的QCB 301的计数字段304,以指出从BCB自由队列226内检索了BCB 320。QCB 301的标题字段302可以进一步包括与用于存储数据帧的一个或者多个例如缓冲器330AC的缓冲器330(参考图3)相关的一个或者多个例如BCB 320AC的BCB320(参考图3)的字节计数(BCNT)。可以将标题字段302内的BCNT称为限定符,因为它识别与用于存储数据帧而不存储关于包括QCB 301的BCB自由队列226的信息的一个或者多个例如缓冲器330AC的缓冲器330(参考图3)相关的一个或者多个例如BCB320AC的BCB 320(参考图3)的字节计数长度。QCB 301可以进一步包括尾标字段303,该字段含有位于队列,例如FCB自由队列222内的最后FCB,例如FCB 310B(参考图2)的地址。
在步骤403,接收机控制器203的RCB 219可以使一个或者多个例如BCB 320AC的BCB 320与FCB 310相关。RCB 219可以从FCB自由队列222(参考图2)租用FCB 310,从而使租用的FCB310与一个或者多个例如BCB 320AC的BCB 320相关,该一个或者多个例如BCB 320AC的BCB 320与用于存储数据帧的一个或者多个例如缓冲器205AC的缓冲器205(参考图3)相关。可以认为FCB是从FCB自由队列222“租用”的,因为在FCB的“生命周期”内可以从FCB自由队列222中临时删除该FCB。可以将FCB 310配置为如图3所示的那样具有两个条目或者字段行。第一个条目可以包括含有指向下一个FCB地址(NFA)的指针的字段。第一个条目可以进一步包括含有与下一个FCB 310相关的一个或者多个例如BCB320DF的BCB 320(参考图3)的字节计数(BCNT)长度的字段。也就是说,不是FCB 310存储与当前FCB 310相关的一个或者多个BCB 320的字节计数长度(BCNT),而是BCNT字段存储与下一个FCB 310相关的一个或者多个BCB 320的字节计数长度。请注意,例如FCB自由队列222(图2)的队列中的最后FCB 310,例如FCB 310B(参考图3)不包括NFA字段或BCNT字段内的信息,因为在例如FCB自由队列222的队列(参考图2)内的最后FCB310,例如FCB 310B(参考图3)的后面不再存在FCB 310。通过不在最后FCB 310,例如FCB 310B(参考图3)的NFA字段和BCNT字段内存储信息,所以减少了对存储器210进行存储器访问,从而提高了存储器210的带宽。还请注意,可以在FCB自由队列222的QCB 301(参考图3)的尾标字段303中识别位于例如FCB自由队列222的队列内的最后FCB 310,例如FCB 310B(参考图3)。如上所述,尾标字段303可以包括位于例如FCB自由队列222的队列内的最后FCB 310,例如FCB 310B(参考图2)的地址。
FCB 310的第二个条目可以包括与特定FCB 310相关的第一BCB 320,例如BCB 320A(参考图3)的第一BCB地址(FBA)的字段、存储在与第一BCB 320,例如BCB 320A(参考图3)相关的缓冲器330,例如缓冲器330A(参考图3)内的帧数据的起始字节位置(SBP)的字段以及存储在与第一BCB 320,例如BCB 320A(参考图3)相关的缓冲器330,例如缓冲器330A(参考图3)内的帧数据的结束字节位置(EBP)的字段。可以将SBP字段和EBP字段称为限定符,因为它们包括关于与第一BCB 320,例如BCB 320A(参考图3)相关的帧数据的起始字节位置和结束字节位置的信息,而不包括关于当前FCB 310,例如FCB 310A的信息(参考图3)。
在进行租用操作时,RCB 219可以读取FCB自由队列222的QCB 301内的标题字段302。标题字段302可以包括第一FCB 310,例如FCB 310A的地址(参考图3),以在FCB自由队列222内进行检索。然后,RCB 219可以读取可以包括FCB自由队列222内的下一个FCB 310的地址的、第一FCB 310,例如FCB 310A的NFA字段以进行检索。接着,可以更新QCB 301的标题字段302,以使标题字段302内的地址为在下一个租用期间可以检索的下一个FCB 310的地址。然后,可以递减无FCB队列222的QCB 301的计数字段304,以表示从FCB自由队列222内检索了FCB 310并将它排列到GQ 218内。
在步骤404,RCB 219可以将FCB 310排列到GQ 218内。如图3所示,FCB 310可以包括FBA字段以及第二个条目中的限定符SBP和EBP。一旦将FCB 310排列到GQ 218内,就从RCB 219拷贝这些字段内的信息。在RCB 219将接收的帧数据写入与与被RCB219排列到GQ 218内的FCB 310(例如FCB 310A)相关的第一BCB 320(例如BCB 320A)相关的第一缓冲器330(例如缓冲器330A)时,RCB 219可以存储帧数据的起始字节位置和结束字节位置,该帧数据存储在与与被RCB 219排列到GQ 218内的FCB 310(例如FCB 310A)相关的第一BCB 320(例如BCB 320A)相关的第一缓冲器330(例如缓冲器330A)内。此外,可以从RCB 219拷贝FCB 310的第一个条目的BCNT字段。
然后,在步骤405,可以将排列到GQ 218内的FCB 310与GQ218内的其他FCB 310链接到一起。RCB 219可以读取GQ 218的QCB 301内的尾标字段303以检索GQ 218内的当前最后FCB 310的地址。接着,RCB 219可以更新GQ 218的QCB 301的尾标字段303,以使尾标字段303内的指针指向刚排列到GQ 218内的FCB310。然后,RCB 219可以递增GQ 218的QCB 301的计数字段304,以表示从FCB自由队列222内检索了FCB 310并将它排列到GQ 218内。
在步骤406,FCB 310可以从GQ 218出列。为了出列,嵌入式处理器接口控制器202的分配器逻辑217可以读取GQ 218的QCB301的标题字段302,以检索FCB 310的地址。为了出列,分配器逻辑217可以进一步读取FCB 310内的NFA字段以确定GQ 218内的下一个FCB 310的地址。可以配置分配器逻辑217以更新GQ 218内的QCB 301的标题字段302,从而使标题字段302内的地址为在进行下一个出列操作时可以出列的下一个FCB 310的地址。可以递减GQ218内的QCB 301的计数字段304,以表示FCB 301已经从GQ 218内出列。然后,分配器逻辑217可以读取出列FCB 310的内容,并将它送到嵌入式处理器150。
在步骤407,可以将出列的FCB 310排列到TBQ 215内。在另一个实施例中,首先,可以将FCB 310排列到调度器130的流队列223内,然后,出列并排列到TBQ 215内。关于将FCB 310排列到调度器130的流队列223,然后出列的其他详情请参考第09/792,494号美国专利申请。
在步骤408,然后,TBQ调度器228可以使TBQ 215内的排列的FCB 310出列,以装载到PCB 224内,从而被PCB 224读取,正如对图2进行说明时所述的那样。具体地说,可以将FCB 310的FBA字段内的地址装载到PCB 224内。
在步骤409,PCB 224可以从与一个或者多个例如BCB 320AC的BCB 320(参考图3)相关的一个或者多个缓冲器330读取待通过交换机/端口接口单元211发送到分组交换网络内的交换机(未示出)或端口(未示出)的数据帧。PCB检索第一BCB 320的地址,即包括在在步骤408出列、被装载到PCB 224内的FCB 310的FBA字段内的地址。可以在第一BCB 320,例如BCB 320A(参考图3)的NBA字段内找到下一个BCB 320,例如BCB 320B(参考图3)的地址。
在步骤410,在PCB从用于存储数据帧的数据存储单元140的一个或者多个缓冲器330读取了所有帧数据时,将与一个或者多个例如缓冲器330AC的缓冲器330(参考图3)相关的一个或者多个例如BCB 320AC的BCB 320(参考图3)排列到BCB自由队列226内。在一个实施例中,在PCB 224读取每个相关缓冲器330内的帧数据时,可以一次一个地将每个BCB 320排列到BCB自由队列226内。
在步骤411,在与一个或者多个例如缓冲器330AC的缓冲器330(参考图3)相关的一个或者多个例如BCB 320AC的BCB 320(参考图3)已经被排列到BCB自由队列226内时,将与一个或者多个例如BCB 320AC的BCB 320(参考图3)相关的FCB 310排列到FCB自由队列222内。
Claims (12)
1、一种系统,该系统包括:
处理器,被配置用于处理数据帧,其中所述处理器包括:
多个缓冲器,被配置用于存储所述数据帧,其中每个数据帧与帧控制块相关;以及
多个队列,被配置用于临时存储一个或者多个帧控制块,其中所述一个或者多个帧控制块中的每个帧控制块包括一个或者多个限定符字段,其中所述一个或者多个帧控制块内的所述一个或者多个限定符字段包括与所述多个缓冲器中的一个或者多个缓冲器有关的信息。
2、根据权利要求1所述的系统,其中所述一个或者多个帧控制块中的每个帧控制块与一个或者多个缓冲器控制块相关,其中所述一个或者多个缓冲器控制块中的每个缓冲器控制块与所述多个缓冲器中的特定缓冲器相关。
3、根据权利要求2所述的系统,其中在所述多个队列中的特定队列内除了最后帧控制块外的所有帧控制块中的所述一个或者多个限定符字段包括关于与下一个帧控制块相关的所述一个或者多个缓冲器控制块的字节计数长度的信息。
4、根据权利要求1至3之任一所述的系统,其中所述一个或者多个帧控制块中的每个帧控制块内的所述一个或者多个限定符字段包括关于与所述当前帧控制块相关的缓冲器控制块的地址的信息。
5、根据权利要求4所述的系统,其中所述一个或者多个帧控制块中的每个帧控制块内的所述一个或者多个限定符字段包括关于存储在与与所述当前帧控制块相关的所述缓冲器控制块相关的缓冲器内的帧数据的起始字节位置和结束字节位置的信息。
6、根据权利要求2至5之任一所述的系统,其中与特定帧控制块相关的所述一个或者多个缓冲器控制块中的每个缓冲器控制块包括一个或者多个限定符字段,其中在与所述特定帧控制块相关的所述一个或者多个缓冲器控制块中除了最后缓冲器控制块外的所有缓冲器控制块中的所述一个或者多个限定符字段包括关于存储在与下一个缓冲器控制块相关的缓冲器内的帧数据的起始字节位置和结束字节位置的信息。
7、根据上述权利要求之任一所述的系统,其中所述多个队列中的每个队列包括控制块,其中所述多个队列中的每个队列内的所述控制块包括标题字段,其中所述标题字段包括所述多个队列中的某个队列内的第一帧控制块的地址。
8、根据权利要求7所述的系统,其中所述标题字段进一步包括限定符,其中所述限定符包括关于与所述第一帧控制块相关的所述多个缓冲器控制块的字节计数长度的信息。
9、根据权利要求7或8所述的系统,其中所述控制块进一步包括尾标字段,其中所述尾标字段包括所述队列内的最后帧控制块的地址。
10、根据权利要求7至9所述的系统,其中所述控制块进一步包括计数字段,其中所述计数字段包括所述队列内的帧控制块的个数。
11、一种通过将限定符插入控制块内减少存储器访问的方法,该方法包括步骤:
接收数据帧;
租用一个或者多个缓冲器控制块;
将所述数据帧存储到数据存储单元中与所述一个或者多个缓冲器控制块相关的一个或者多个缓冲器内;以及
租用与所述一个或者多个缓冲器控制块相关的帧控制块;
其中所述帧控制块包括一个或者多个限定符字段,其中所述帧控制块内的所述一个或者多个限定符字段包括与所述数据存储单元内的所述一个或者多个缓冲器之一有关的信息。
12、一种计算机程序产品,它存储在计算机可读存储介质上,在在计算机系统上运行时,指示计算机系统实现权利要求1至10之任一所述的系统。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/791,336 | 2001-02-23 | ||
US09/791,336 US7130916B2 (en) | 2001-02-23 | 2001-02-23 | Linking frame data by inserting qualifiers in control blocks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1502198A true CN1502198A (zh) | 2004-06-02 |
CN100429906C CN100429906C (zh) | 2008-10-29 |
Family
ID=25153396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB028048490A Expired - Fee Related CN100429906C (zh) | 2001-02-23 | 2002-02-20 | 通过将限定符插入控制块中链接帧数据 |
Country Status (7)
Country | Link |
---|---|
US (2) | US7130916B2 (zh) |
EP (1) | EP1362465B1 (zh) |
KR (1) | KR100554825B1 (zh) |
CN (1) | CN100429906C (zh) |
AT (1) | ATE323999T1 (zh) |
DE (1) | DE60210748T2 (zh) |
WO (1) | WO2002069601A2 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7130916B2 (en) * | 2001-02-23 | 2006-10-31 | International Business Machines Corporation | Linking frame data by inserting qualifiers in control blocks |
US7200696B2 (en) * | 2001-04-06 | 2007-04-03 | International Business Machines Corporation | System method structure in network processor that indicates last data buffer of frame packet by last flag bit that is either in first or second position |
US6937606B2 (en) * | 2001-04-20 | 2005-08-30 | International Business Machines Corporation | Data structures for efficient processing of IP fragmentation and reassembly |
US7895239B2 (en) * | 2002-01-04 | 2011-02-22 | Intel Corporation | Queue arrays in network devices |
US7522621B2 (en) * | 2005-01-06 | 2009-04-21 | International Business Machines Corporation | Apparatus and method for efficiently modifying network data frames |
US7466715B2 (en) * | 2005-03-28 | 2008-12-16 | International Business Machines Corporation | Flexible control block format for frame description and management |
US7980582B2 (en) * | 2006-08-09 | 2011-07-19 | Atc Leasing Company Llc | Front tow extended saddle |
US9034531B2 (en) * | 2008-01-29 | 2015-05-19 | Ardica Technologies, Inc. | Controller for fuel cell operation |
US8741004B2 (en) * | 2009-07-23 | 2014-06-03 | Intelligent Energy Limited | Cartridge for controlled production of hydrogen |
US8808410B2 (en) | 2009-07-23 | 2014-08-19 | Intelligent Energy Limited | Hydrogen generator and product conditioning method |
US8940458B2 (en) | 2010-10-20 | 2015-01-27 | Intelligent Energy Limited | Fuel supply for a fuel cell |
WO2012058687A2 (en) | 2010-10-29 | 2012-05-03 | Ardica Technologies | Pump assembly for a fuel cell system |
US9169976B2 (en) | 2011-11-21 | 2015-10-27 | Ardica Technologies, Inc. | Method of manufacture of a metal hydride fuel supply |
US20230236756A1 (en) * | 2022-01-25 | 2023-07-27 | Infineon Technologies Ag | Buffer management in an ethernet switch |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4168469A (en) * | 1977-10-04 | 1979-09-18 | Ncr Corporation | Digital data communication adapter |
US4703475A (en) * | 1985-12-04 | 1987-10-27 | American Telephone And Telegraph Company At&T Bell Laboratories | Data communication method and apparatus using multiple physical data links |
EP0365731B1 (en) * | 1988-10-28 | 1994-07-27 | International Business Machines Corporation | Method and apparatus for transferring messages between source and destination users through a shared memory |
US5136582A (en) | 1990-05-29 | 1992-08-04 | Advanced Micro Devices, Inc. | Memory management system and method for network controller |
US5247516A (en) * | 1991-03-28 | 1993-09-21 | Sprint International Communications Corp. | Configurable composite data frame |
US5410677A (en) * | 1991-12-30 | 1995-04-25 | Apple Computer, Inc. | Apparatus for translating data formats starting at an arbitrary byte position |
US5267240A (en) * | 1992-02-20 | 1993-11-30 | International Business Machines Corporation | Frame-group transmission and reception for parallel/serial buses |
DE69329709D1 (de) * | 1993-04-29 | 2001-01-04 | Ibm | Verfahren und Gerät für Mehrfachübertragung von Daten in einem Kommunikationssystem |
US5440545A (en) * | 1993-08-02 | 1995-08-08 | Motorola, Inc. | Packet delivery system |
US5617537A (en) * | 1993-10-05 | 1997-04-01 | Nippon Telegraph And Telephone Corporation | Message passing system for distributed shared memory multiprocessor system and message passing method using the same |
US5574934A (en) * | 1993-11-24 | 1996-11-12 | Intel Corporation | Preemptive priority-based transmission of signals using virtual channels |
US5832310A (en) * | 1993-12-30 | 1998-11-03 | Unisys Corporation | Serial I/O channel having dependent and synchronous sources of control data and user defined data |
US5553302A (en) * | 1993-12-30 | 1996-09-03 | Unisys Corporation | Serial I/O channel having independent and asynchronous facilities with sequence recognition, frame recognition, and frame receiving mechanism for receiving control and user defined data |
US5551020A (en) * | 1994-03-28 | 1996-08-27 | Flextech Systems, Inc. | System for the compacting and logical linking of data blocks in files to optimize available physical storage |
US5574905A (en) * | 1994-05-26 | 1996-11-12 | International Business Machines Corporation | Method and apparatus for multimedia editing and data recovery |
US5651002A (en) * | 1995-07-12 | 1997-07-22 | 3Com Corporation | Internetworking device with enhanced packet header translation and memory |
US5812775A (en) * | 1995-07-12 | 1998-09-22 | 3Com Corporation | Method and apparatus for internetworking buffer management |
US6400715B1 (en) * | 1996-09-18 | 2002-06-04 | Texas Instruments Incorporated | Network address matching circuit and method |
US6477584B1 (en) * | 1997-03-21 | 2002-11-05 | Lsi Logic Corporation | Message FIFO empty early warning method |
AUPO932297A0 (en) * | 1997-09-19 | 1997-10-09 | Commonwealth Scientific And Industrial Research Organisation | Medium access control protocol for data communications |
US6519686B2 (en) * | 1998-01-05 | 2003-02-11 | Intel Corporation | Information streaming in a multi-process system using shared memory |
US7055151B1 (en) * | 1998-04-03 | 2006-05-30 | Applied Micro Circuits Corporation | Systems and methods for multi-tasking, resource sharing and execution of computer instructions |
US6330584B1 (en) * | 1998-04-03 | 2001-12-11 | Mmc Networks, Inc. | Systems and methods for multi-tasking, resource sharing and execution of computer instructions |
US6434145B1 (en) * | 1998-06-22 | 2002-08-13 | Applied Micro Circuits Corporation | Processing of network data by parallel processing channels |
US6912637B1 (en) * | 1998-07-08 | 2005-06-28 | Broadcom Corporation | Apparatus and method for managing memory in a network switch |
US6661774B1 (en) * | 1999-02-16 | 2003-12-09 | Efficient Networks, Inc. | System and method for traffic shaping packet-based signals |
JP3561870B2 (ja) * | 1999-02-19 | 2004-09-02 | 富士通株式会社 | パケットバッファ装置 |
US7116679B1 (en) * | 1999-02-23 | 2006-10-03 | Alcatel | Multi-service network switch with a generic forwarding interface |
EP1161817B1 (en) * | 1999-03-17 | 2006-10-25 | Broadcom Corporation | Network switch |
US6952401B1 (en) * | 1999-03-17 | 2005-10-04 | Broadcom Corporation | Method for load balancing in a network switch |
US6643716B2 (en) * | 1999-03-29 | 2003-11-04 | Intel Corporation | Method and apparatus for processing serial data using a single receive fifo |
JP2000332817A (ja) * | 1999-05-18 | 2000-11-30 | Fujitsu Ltd | パケット処理装置 |
US6747978B1 (en) * | 1999-05-27 | 2004-06-08 | Nortel Networks Limited | Direct memory access packet router method and apparatus |
WO2001013590A1 (en) * | 1999-08-17 | 2001-02-22 | Conexant Systems, Inc. | Integrated circuit with a core processor and a co-processor to provide traffic stream processing |
JP2001127766A (ja) * | 1999-10-25 | 2001-05-11 | Toshiba Corp | ラインインターフェース装置、及び、パケット交換機 |
US6687247B1 (en) * | 1999-10-27 | 2004-02-03 | Cisco Technology, Inc. | Architecture for high speed class of service enabled linecard |
US6788697B1 (en) * | 1999-12-06 | 2004-09-07 | Nortel Networks Limited | Buffer management scheme employing dynamic thresholds |
US6876659B2 (en) * | 2000-01-06 | 2005-04-05 | International Business Machines Corporation | Enqueuing apparatus for asynchronous transfer mode (ATM) virtual circuit merging |
US6922408B2 (en) * | 2000-01-10 | 2005-07-26 | Mellanox Technologies Ltd. | Packet communication buffering with dynamic flow control |
JP3732989B2 (ja) * | 2000-01-12 | 2006-01-11 | 富士通株式会社 | パケットスイッチ装置及びスケジューリング制御方法 |
US6977930B1 (en) * | 2000-02-14 | 2005-12-20 | Cisco Technology, Inc. | Pipelined packet switching and queuing architecture |
US6731644B1 (en) * | 2000-02-14 | 2004-05-04 | Cisco Technology, Inc. | Flexible DMA engine for packet header modification |
US6963921B1 (en) * | 2001-02-16 | 2005-11-08 | 3Com Corporation | Method and apparatus for hardware assisted TCP packet re-assembly |
US7230917B1 (en) * | 2001-02-22 | 2007-06-12 | Cisco Technology, Inc. | Apparatus and technique for conveying per-channel flow control information to a forwarding engine of an intermediate network node |
US6532185B2 (en) * | 2001-02-23 | 2003-03-11 | International Business Machines Corporation | Distribution of bank accesses in a multiple bank DRAM used as a data buffer |
US7130916B2 (en) * | 2001-02-23 | 2006-10-31 | International Business Machines Corporation | Linking frame data by inserting qualifiers in control blocks |
US6658546B2 (en) * | 2001-02-23 | 2003-12-02 | International Business Machines Corporation | Storing frame modification information in a bank in memory |
US6681340B2 (en) * | 2001-02-23 | 2004-01-20 | International Business Machines Corporation | Efficient implementation of error correction code scheme |
-
2001
- 2001-02-23 US US09/791,336 patent/US7130916B2/en not_active Expired - Fee Related
-
2002
- 2002-02-20 WO PCT/GB2002/000751 patent/WO2002069601A2/en active IP Right Grant
- 2002-02-20 KR KR1020037010706A patent/KR100554825B1/ko not_active IP Right Cessation
- 2002-02-20 CN CNB028048490A patent/CN100429906C/zh not_active Expired - Fee Related
- 2002-02-20 EP EP02712096A patent/EP1362465B1/en not_active Expired - Lifetime
- 2002-02-20 DE DE60210748T patent/DE60210748T2/de not_active Expired - Lifetime
- 2002-02-20 AT AT02712096T patent/ATE323999T1/de not_active IP Right Cessation
-
2006
- 2006-08-31 US US11/469,390 patent/US20070002172A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
WO2002069601A2 (en) | 2002-09-06 |
KR20030076680A (ko) | 2003-09-26 |
US7130916B2 (en) | 2006-10-31 |
DE60210748T2 (de) | 2007-01-04 |
CN100429906C (zh) | 2008-10-29 |
KR100554825B1 (ko) | 2006-02-22 |
DE60210748D1 (de) | 2006-05-24 |
WO2002069601A3 (en) | 2003-03-13 |
US20020118694A1 (en) | 2002-08-29 |
EP1362465A2 (en) | 2003-11-19 |
ATE323999T1 (de) | 2006-05-15 |
EP1362465B1 (en) | 2006-04-19 |
US20070002172A1 (en) | 2007-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11531472B2 (en) | Scalable memory system protocol supporting programmable number of levels of indirection | |
CN1502198A (zh) | 通过将限定符插入控制块中链接帧数据 | |
US8811411B2 (en) | Packet aggregation and fragmentation at layer-2 over a managed network | |
US20030051076A1 (en) | Methods and system for pre-fetching descriptors | |
US7447230B2 (en) | System for protocol processing engine | |
CN1643872A (zh) | 缓存流数据 | |
CN1267418A (zh) | 连网系统 | |
CN1545658A (zh) | 具有双端口存储器仿真配置的交换结构 | |
CN1171429C (zh) | 一种交换数据交换网点内部的信息的方法 | |
CN1859325A (zh) | 基于链表的进程间消息传递方法 | |
US8341351B2 (en) | Data reception system with determination whether total amount of data stored in first storage area exceeds threshold | |
US8223788B1 (en) | Method and system for queuing descriptors | |
EP1554644A2 (en) | Method and system for tcp/ip using generic buffers for non-posting tcp applications | |
CN1595910A (zh) | 一种网络处理器的数据包接收接口部件及其存储管理方法 | |
CN1528078A (zh) | 网络处理器中分组描述符字段位置的分配 | |
CN118509399A (zh) | 一种报文处理方法、装置、电子设备及存储介质 | |
CN111352657B (zh) | FPGA高速高效流水读取x86数据的方法 | |
US10003551B2 (en) | Packet memory system, method and device for preventing underrun | |
US9137167B2 (en) | Host ethernet adapter frame forwarding | |
US11176064B2 (en) | Methods and apparatus for reduced overhead data transfer with a shared ring buffer | |
CN114827300A (zh) | 硬件保障的数据可靠传输系统、控制方法、设备及终端 | |
CN1281037C (zh) | 具有有效分组管理单元的分组转发系统及其操作方法 | |
US7840643B2 (en) | System and method for movement of non-aligned data in network buffer model | |
CN1602014A (zh) | 为网络处理器调度连接的方法与装置 | |
KR100330523B1 (ko) | 데이터그램의 효율적인 패킹을 위한 데이터 통신 프로토콜을구현하는 데이터 통신 장치, 방법 및 컴퓨터 프로그램 제품 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081029 Termination date: 20110220 |