CN100429906C - 通过将限定符插入控制块中链接帧数据 - Google Patents

通过将限定符插入控制块中链接帧数据 Download PDF

Info

Publication number
CN100429906C
CN100429906C CNB028048490A CN02804849A CN100429906C CN 100429906 C CN100429906 C CN 100429906C CN B028048490 A CNB028048490 A CN B028048490A CN 02804849 A CN02804849 A CN 02804849A CN 100429906 C CN100429906 C CN 100429906C
Authority
CN
China
Prior art keywords
controll block
buffer
frame
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.)
Expired - Fee Related
Application number
CNB028048490A
Other languages
English (en)
Other versions
CN1502198A (zh
Inventor
简·L.·卡尔维格纳斯
玛库·海蒂斯
约瑟夫·F.·洛根
法布瑞斯·J.·维尔普兰肯
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1502198A publication Critical patent/CN1502198A/zh
Application granted granted Critical
Publication of CN100429906C publication Critical patent/CN100429906C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3081ATM peripheral units, e.g. policing, insertion or extraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer 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)
  • Image Input (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (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的存储器的带宽利用率。
第5,561,807号美国专利公开了一种对存储在数据存储器的数据缓冲器内的消息进行多点广播的设备和方法。每个消息由存储在多个数据缓冲器内的数据构成。控制每个数据缓冲器,并将每个数据缓冲器映射到唯一直接控制块(DCB),该直接控制块存储表示数据缓冲器的特征的信息。通过链接可变长度DCB,可以产生消息。间接控制块(ICB)存储表示复制的数据或消息的特征的信息,并且间接控制块指向DCB。DCB内的字段承载表示复制该消息的次数的计数。
发明内容
本发明允许将包括与当前控制块无关的信息的限定符(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所示。在一个实施例中,数据流单元110可驻留在集成电路,即集成芯片上。数据流单元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工作。FCBU2225可被配置成当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保存在特定缓冲器的特定存储区中的帧修改命令。关于将帧修改命令存储到特定缓冲器内的特定存储体内的其他细节请参考第2002-0118693号美国专利公开。在一个实施例中,PCB 224可被配置成取回保存在特定缓冲器的特定存储区中的帧修改命令,并把这些命令保存在帧改变预备区存储器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的队列内、与例如FCB 310A的第一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、TBQ215)内的例如FCB 310B的最后FCB的FCB地址(FCBA)。计数字段304可以包括位于包括QCB 301的队列305内的FCB的数量。因为在附图所示的典型集300中,在包括QCB 301的队列305内存在两个例如FCB 310AB的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)的字节计数长度。可以将BCNT字段称为限定符,因为它识别与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字段称为限定符,因为它们包括关于与第一BCB320,例如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,例如BCB320C的各字段内的信息,因此,可以减少对存储器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的“生命周期”的其他细节请参考第2002-0118600号美国专利公开。然后,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的BCB 320(参考图3)的字节计数(BCNT)。可以将标题字段302内的BCNT称为限定符,因为它识别与用于存储数据帧而不存储关于包括QCB 301的BCB自由队列226的信息的一个或者多个例如缓冲器330AC的缓冲器330(参考图3)相关的一个或者多个例如BCB 320AC的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相关的一个或者多个例如BCB 320DF的BCB 320(参考图3)的字节计数(BCNT)长度的字段。也就是说,不是FCB 310存储与当前FCB 310相关的一个或者多个BCB320的字节计数长度(BCNT),而是BCNT字段存储与下一个FCB310相关的一个或者多个BCB 320的字节计数长度。请注意,例如FCB自由队列222(图2)的队列中的最后FCB 310,例如FCB310B(参考图3)不包括NFA字段或BCNT字段内的信息,因为在例如FCB自由队列222的队列(参考图2)内的最后FCB 310,例如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内的地址为在下一个租用期间可以检索的下一个FCB310的地址。然后,可以递减无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的地址。可以递减GQ 218内的QCB 301的计数字段304,以表示FCB 301已经从GQ218内出列。然后,分配器逻辑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 (8)

1、一种控制块内包含限定符的系统,该系统包括被配置用于处理一个或者多个数据帧的分组处理器(100),其中该处理器包括:
一个或者多个缓冲器,用于存储一个或者多个数据帧,其中一个或者多个缓冲器中的每个缓冲器与缓冲器控制块相关,其中一个或者多个数据帧中的每一个与帧控制块相关,并且其中每个帧控制块与一个或者多个缓冲器控制块相关;
其特征在于:
所述缓冲器控制块或帧控制块包括一个或者多个限定符字段,其中对于当前缓冲器控制块或帧控制块,相关的一个或者多个限定符字段包括有关下一个缓冲器控制块或帧控制块的信息,并且其中该信息与一个或者多个缓冲器相关或者与相关的缓冲器控制块相关。
2、根据权利要求1所述的系统,该系统进一步包括多个队列,所述队列被配置用于临时存储相关的帧控制块,其中在多个队列中的特定队列内,除了最后帧控制块外的所有帧控制块中的一个或者多个限定符字段包括关于与下一个帧控制块相关的缓冲器控制块的字节计数长度的信息。
3、根据权利要求2所述的系统,其中与一帧控制块相关的一个或者多个缓冲器控制块中的每个缓冲器控制块包括一个或者多个限定符字段,其中在所述一个或者多个缓冲器控制块中,除了最后缓冲器控制块外的所有缓冲器控制块中的所述一个或者多个限定符字段包括关于存储在与下一个缓冲器控制块相关的缓冲器内的帧数据的起始字节位置和结束字节位置的信息。
4、根据权利要求2或3所述的系统,其中所述多个队列中的每个队列包括队列控制块,其中所述多个队列中每个队列内的所述队列控制块包括标题字段,其中所述标题字段包括所述多个队列中每个队列内的第一帧控制块的地址。
5、根据权利要求4所述的系统,其中所述标题字段进一步包括限定符字段,其中所述限定符字段包括关于与所述第一帧控制块相关的一个或者多个缓冲器控制块的字节计数长度的信息。
6、根据权利要求4或5所述的系统,其中所述队列控制块进一步包括尾标字段,其中所述尾标字段包括所述队列内的最后帧控制块的地址。
7、根据权利要求4或5所述的系统,其中所述队列控制块进一步包括计数字段,其中所述计数字段包括所述队列内的帧控制块的个数。
8、一种通过将限定符插入控制块内减少存储器访问的方法,该方法包括步骤:
接收数据帧;
租用一个或者多个缓冲器控制块;
将所述数据帧存储到数据存储单元中与所述一个或者多个缓冲器控制块相关的一个或者多个缓冲器内;以及
租用与所述一个或者多个缓冲器控制块相关的帧控制块;
其特征在于,所述缓冲器控制块或帧控制块包括一个或者多个限定符字段,其中对于当前缓冲器控制块或帧控制块,相关的一个或者多个限定符字段包括与下一个缓冲器控制块或帧控制块有关的信息,并且其中该信息与一个或者多个缓冲器相关或者与相关的缓冲器控制块相关。
CNB028048490A 2001-02-23 2002-02-20 通过将限定符插入控制块中链接帧数据 Expired - Fee Related CN100429906C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/791,336 US7130916B2 (en) 2001-02-23 2001-02-23 Linking frame data by inserting qualifiers in control blocks
US09/791,336 2001-02-23

Publications (2)

Publication Number Publication Date
CN1502198A CN1502198A (zh) 2004-06-02
CN100429906C true 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)

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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5333269A (en) * 1988-10-28 1994-07-26 International Business Machines Corporation Mechanism for transferring messages between source and destination users through a shared memory
US5561807A (en) * 1993-04-29 1996-10-01 International Business Machines Corporation Method and device of multicasting data in a communications system

Family Cites Families (46)

* Cited by examiner, † Cited by third party
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
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
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
US6330584B1 (en) * 1998-04-03 2001-12-11 Mmc Networks, Inc. Systems and methods for multi-tasking, resource sharing and execution of computer instructions
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
US6434145B1 (en) * 1998-06-22 2002-08-13 Applied Micro Circuits Corporation Processing of network data by parallel processing channels
US6792500B1 (en) * 1998-07-08 2004-09-14 Broadcom Corporation Apparatus and method for managing memory defects
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
US6993027B1 (en) * 1999-03-17 2006-01-31 Broadcom Corporation Method for sending a switch indicator to avoid out-of-ordering of frames in a network switch
US7184441B1 (en) * 1999-03-17 2007-02-27 Broadcom Corporation Network switch stacking configuration
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
US6804239B1 (en) * 1999-08-17 2004-10-12 Mindspeed Technologies, Inc. Integrated circuit that processes communication packets with co-processor circuitry to correlate a packet stream with context information
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 富士通株式会社 パケットスイッチ装置及びスケジューリング制御方法
US6731644B1 (en) * 2000-02-14 2004-05-04 Cisco Technology, Inc. Flexible DMA engine for packet header modification
US6977930B1 (en) * 2000-02-14 2005-12-20 Cisco Technology, Inc. Pipelined packet switching and queuing architecture
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
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
US7130916B2 (en) * 2001-02-23 2006-10-31 International Business Machines Corporation Linking frame data by inserting qualifiers in control blocks
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5333269A (en) * 1988-10-28 1994-07-26 International Business Machines Corporation Mechanism for transferring messages between source and destination users through a shared memory
US5561807A (en) * 1993-04-29 1996-10-01 International Business Machines Corporation Method and device of multicasting data in a communications system

Also Published As

Publication number Publication date
EP1362465B1 (en) 2006-04-19
KR100554825B1 (ko) 2006-02-22
US7130916B2 (en) 2006-10-31
KR20030076680A (ko) 2003-09-26
DE60210748T2 (de) 2007-01-04
CN1502198A (zh) 2004-06-02
DE60210748D1 (de) 2006-05-24
EP1362465A2 (en) 2003-11-19
US20020118694A1 (en) 2002-08-29
ATE323999T1 (de) 2006-05-15
WO2002069601A3 (en) 2003-03-13
US20070002172A1 (en) 2007-01-04
WO2002069601A2 (en) 2002-09-06

Similar Documents

Publication Publication Date Title
CN100429906C (zh) 通过将限定符插入控制块中链接帧数据
US6577542B2 (en) Scratchpad memory
US5175732A (en) Method and apparatus for controlling data communication operations within stations of a local-area network
CN100571195C (zh) 多端口以太网交换装置及数据传输方法
CN1643872B (zh) 缓存流数据
US11929931B2 (en) Packet buffer spill-over in network devices
CN109565455B (zh) 具有高速缓存的分组存储器中的分组描述符存储
EP0606368A1 (en) Packet processing method and apparatus
EP0308408A1 (en) MESSAGE TRANSFER METHOD AND DEVICE.
CN1545658A (zh) 具有双端口存储器仿真配置的交换结构
US20090031092A1 (en) Data reception system
CN100479450C (zh) 用于减少对存储器的访问的方法和系统
CN100539538C (zh) 具有链表处理器的存储器管理系统
CN1953418A (zh) 处理信息分组的方法和使用该方法的电信设备
US10061513B2 (en) Packet processing system, method and device utilizing memory sharing
US20160294729A1 (en) Packet memory system, method and device for preventing underrun
US11176064B2 (en) Methods and apparatus for reduced overhead data transfer with a shared ring buffer
US20030093594A1 (en) Apparatus and method for controlling block signal flow in a multi digital signal processor configuration from a shared peripheral direct memory controller to high level data link controller
US6847990B2 (en) Data transfer unit with support for multiple coherency granules
US9582215B2 (en) Packet processing system, method and device utilizing memory sharing
JP2007504698A (ja) 通信ネットワークを介して接続されたプロセッシングユニットを備えた電子回路
CN116303159A (zh) 一种ddr4访问控制方法、装置及网络设备
CN103544123A (zh) Sdram控制器及对sdram存储空间的访问方法
CN104272682A (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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20081029

Termination date: 20110220