CN100512205C - 虚拟输出队列(VoQ)管理方法和装置 - Google Patents

虚拟输出队列(VoQ)管理方法和装置 Download PDF

Info

Publication number
CN100512205C
CN100512205C CNB2003101230182A CN200310123018A CN100512205C CN 100512205 C CN100512205 C CN 100512205C CN B2003101230182 A CNB2003101230182 A CN B2003101230182A CN 200310123018 A CN200310123018 A CN 200310123018A CN 100512205 C CN100512205 C CN 100512205C
Authority
CN
China
Prior art keywords
grouping
segmentation
last
links
last segmentation
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
CNB2003101230182A
Other languages
English (en)
Other versions
CN1518298A (zh
Inventor
凌静
J-C·考尔德伦
J-M·卡亚
黄安国
V·乔希
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
Publication of CN1518298A publication Critical patent/CN1518298A/zh
Application granted granted Critical
Publication of CN100512205C publication Critical patent/CN100512205C/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/30Peripheral units, e.g. input or output ports
    • H04L49/3045Virtual queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/621Individual queue per connection or flow, e.g. per VC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/624Altering the ordering of packets in an individual queue
    • 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/3027Output queuing
    • 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/3072Packet splitting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow
    • H04L49/9089Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
    • H04L49/9094Arrangements for simultaneous transmit and receive, e.g. simultaneous reading/writing from/to the storage element
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/205Quality of Service based

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种在多业务***中用于从接收数据分组集中提供一个虚拟输出队列(VoQ)的方法和装置。每一分组被分成包括最后一个分段的至少一个分段,最后一个分段包含诸如差错状态和分组长度之类的分组信息。该***接收来自一个数据流中的分组;将分组解析成为包括第一分段和最后一个分段的分段;当最后一个分段被接收时基于时间将每一分组的每一个最后一个分段放置到一个链接列表中;将最后一个分段链接到第一分段,并且使用该链接列表作为输出队列。这个***考虑了不同大小的分组的迅速编译和传送,并且避免了对于为等候最后一个分段以便抛弃一个受损分组的接收处理的需要。

Description

虚拟输出队列(VoQ)管理方法和装置
技术领域
本发明一般涉及高速数据传送领域,并且更具体地涉及在高速IP路由器环境中对不同类别的业务有效实现VoQ的方法和装置。
背景技术
数据通信网所接收并传送的数据量在不断增长。数据通过网络从始发者或请求者传送到目的地,比如路由器、切换平台、其它网络或者应用程序。沿路径可以有多个传送点,比如通常以分组或数据帧的形式接收数据的硬件路由器等等。在每一传送点,必须以迅速且有效的方式将数据路由到网络中的下一位置。在从一点到另一点的数据传送中可使用某些协议或标准,并且此类标准使得利用不同结构的硬件和软件能够有效接收并传送数据。此类标准包括但是不限为ITU(国际电信联盟)和ANSI(美国国家标准学会)所公布的标准。
上述传送点通过数据网络操作来接收来自各个请求者的数据帧或分组,并按照一种有序且有效的方式提供结果或满足请求。包括访问资源的请求在内的帧或分组可以同步到达或异步到达。这些请求可以是接入多个资源或信道或者是接入特定的一组资源或信道。
图1说明了此种***中一项固有的任务。网络中的一个传送点,比如一个路由器,可以接收来自多个队列的分组。各队列可以通过诸如信道之类的多个信道来接收分组。从路由器以一种有序方式(如经由一个输出列表)提供通过各个信道从队列中接收到的所有分组。所提供的预期输出列表是单个公共的输出列表,比如一个VoQ。VoQ收集所有信道的队列信息并通过公共输出端口传送输出列表信息。
在不同的应用中,不同的呼入请求可以符合不同类别的业务,其中某些类别具有比其它类别更高的优先级。所接收的数据可以采用不同的形式,包括不同的分组尺寸和相关参数。分组可以从多个队列中到达,每个分组具有一个特定的业务类别。
这样一种多业务类别VoQ方案的问题是:以一种FIFO(先进先出)方式简单排列呼入请求可能导致低效率,最值得注意的低效率是估计分组质量、组合队列以及准备传送数据所需要的时间。这样一个过程可能需要对存储器进行许多查找,比如:接收分组可被储存在存储器中或者入队,从存储器中读取或者出队,然后被传送。
过去的***所采用的就是一种FIFO方案,一旦收到分组的第一个字节就排列该分组。如果分组不完整或者被中断时这类***可能会受到延迟。这样一个有缺点的分组必须被修复或者舍弃,而任一动作都会降低吞吐量和***性能。另一方面,这些***使用以所接收分组的最后一位的时序为基础的FIFO逻辑。在许多情况下,这也很可能导致低效率;例如,在分组受损坏的情况下,分组长度和差错信息是无效的,直到该分组结束为止。除其它因素外,上述这些低效率导致为管理不同的VoQ而过量访问存储器,这是不希望的。
鉴于互联网业务的当前状况,并且考虑到在当前可用存储装置上与入队、出队以及传送输出队列相关的显著延迟,理想的是提供一种***和方法,其可改善网络处理机、业务管理器(Traffic Manager)或者其它装置的可得到的最大传输速率,其中其它装置通过原先提供的那些***和方法使用VoQ或其它排队方案。
发明内容
本发明提供了一种方法,用以组合来自一组被接收分组的输出队列,其中每一分组具有至少一个分段,而最后一个分段包含分组信息。所述方法包括:首先处理一个分组,包括:接收来自该分组的所有分段;使该分组的最后一个分段包含在一个链接列表中;并使所述链接列表中的该分组的最后一个分段与该分组的任何可用的第一分段相关联;并且按照上述首先进行的处理,包括上述接收、包含和关联各步骤,进一步处理任何剩余分组。
本发明还提供了一种***,用以为多类别业务组合来自被接收数据分组的输出队列,其中每一分组具有至少一个分段,而每一分组中的最后一个分段包含分组信息,所述***包括:一解析和组合装置,其用于接收来自至少一个数据流的各分组并且将该分组解析成为分段,包括第一分段和最后一个分段;以及一链接装置,其用于根据接收最后一个分段的时间而将每一分组的各最后一个分段放置到一个链接列表中,并且将最后一个分段链接到第一分段。
附图说明
现以示例方式(而非限定性方式)结合附图说明本发明,附图中:
图1展示组合数据流并且创建一个VoQ和输出列表;
图2提供根据本发明方案用于分组分段存储的一种基础数据结构;
图3是根据本发明方案的多业务VoQ的数据结构;和
图4是单一一个数据流VoQ数据结构。
具体实施方式
本发明方案实现包括必要入队和出队算法在内的多类别业务的VoQ,并且提供用于实现VoQ的外部存储器构件。本发明方案可被使用在分组入队和出队应用中,其中接收分组的最后一个字节的到达时间确定相关VoQ中分组的传送顺序。另外,只可在收到分组最后一个字节时才产生的某些信息,比如分组长度或接收差错信息,可以在分组从存储器中出队时被前置(penpended)于该分组。分组信息的前置使得分组的传送或舍弃早于过去的可用方案。除了分组内容之外,前置的信息可以在芯片上或者远程地被储存于数据存储器中。
***可以是任何多业务访问引擎,包括但是不限于以大约622Mbps和2.4Gbps之间速率工作于SONET/SDH数据流、用于ATM、IP和以太网传输的多业务宽带访问引擎。该***提供全双工业务管理并且按照在此描述的功能处理信元和/或分组的同步流。还可以在其它第二层或者第三层产品中实现本发明方案。本发明方案通过各分组的最后一个分段链接属于同一VoQ的分组。访问的次数通常等于入队分段的数目。
入队并建立一个VoQ的基本概念以图1说明。如图1所示,多个请求者可以传送分组到诸如网络交换机或者路由器之类的硬件装置,然后硬件装置为每个业务类别的所有接收到的分组建立一个VoQ。一收到最后一个分段,就对分组进行解码并使其与一个队列链接或者相关。对于每个队列(在此实施方案中也称为一个数据流)或者虚连接(VCC),所述装置形成所接收到的分组的一个VoQ链接列表。一旦接收到一个分组的分段,而该分段不是该分组的最后一个分段,***就将该分段链接到相应数据流的现有链接列表。当接收到分组的最后一个分段时,这个分组就被链接到相应VoQ中的前一分组。
图2说明按照前述方案对于单个数据流的分组分段存储。由图2可见,首先接收的是分段1(即图中的201),接着是分段2、3、4和5(分别为图中的202、203、204和205)。分段5包括关于它是该分组中最后一个分段的信息。每个分段均在接收时加以储存,但是只有接收到分段5(205)时才链接这些分段。五个分段依照先是分段5(205)、然后是分段1(201)、分段2(202)、分段3(203)和分段4(204)的顺序进行链接。然后通过将分段5(205)链接到前一分组206而将这些分组都链接到前一分组206。图2表示单个业务类别的接收、分段以及排序。
该***以与分段和分组相关的指针形式保持特定的信息。该信息被用于使每个VoQ入队或出队。该信息可以被保持在单片存储器中,但也可以使用本领域技术人员所知的任何可利用的存储装置。在一个VoQ开始时,一个头指针指向包含分组最后一个分段的存储分段。在图2中,对于一个两分段VoQ链接列表,头指针220指向前一分组206的最后一个分段。一个尾指针指向一个空闲存储分段的位置,该空闲存储分段用于存储属于该特定VoQ的下一分组的最后一个分段。在图2中,第一尾指针230a最初指向最后放置分段5(205)的空闲位置,然后此第一尾指针230a移动到由尾指针230b示出的空闲位置207。当前指针(未示出)指向待传送的下一分段的位置。在图2所示方案中,当前指针将指向待传送的下一分段。如果前一分组206已经被传送,则当前指针将指向分段5(205)。
***还在数据存储器中建立一个链接列表或一组链接列表。在分组的每个分段中可以使用控制字段以启用和帮助链接。在除了分组最后一个存储分段之外的所有分组存储分段中,可以使用一些控制字段。下一分段指针指向当前分段之后的下一分段。因此在图2中,分段3(203)中的下一分段指针将指向分段4(204)。当前数据流数字提供了当前分组的数据流数字或VCC数字。该数字可以在多个位置中或者在分组的第一分段中使用。因此在图2中,分段5(205)可以包括一个当前数据流数字,比如当前数据流数字5,指示出分组和分段所对应的数据流。EOP或称分段结束是一种二元型指示,表明该分段是否是分组的最后一个分段。根据图2,所传送的五个分组只有分段4(204)包括一个“真”EOP指示。SOP或称分组开始指示该分段是一个分组的开始还是一个分组的继续。图2中的分段1(201)的SOP可表示一个分组的开始,而分段2-4(202-204)的SOP可指示分组的继续。SOP因此可以是一种二元型指示。
对于一个分组的最后一个分段,例如图2中的分段5(205),可以提供其它控制字段。一个分组的倒数第二个分段的控制字段可以包括下一分段指针,即指向该分组第一分段的指针。对图2而言,下一分段指针可指示分段1(201)。在分组只包含一个分段的情形中,该字段可被用来存储数据流数字或者VCC。最后分段指针指向特定VoQ中下一分组的最后一个存储分段。因此在图2中,前一分组206将最后分段指针指向下一分组的最后一个存储分段,即分段5(205)。分组长度指示该分组的长度,分组状态指示通常遇见的差错存在,包括但是不局限于重新装配差错和UTOPIA下溢或上溢指示。正如在上面有关前一分组所描述的一样,EOP和SOP还可以被包括在分组的最后分段中。
对一个分段可以使用不同数量的控制字段位,在一个实施例中控制字段位可以为64位。控制字段可以包括上述字段以及诸如分组长度之类的字段。通过包括若干分段以代替一定数量的字节,并附以指示最后一个分段是否满的一个位,可以编码分组长度。如果最后一个分段是满的,则它与前面的分段大小相等。但如果最后一个分段不是满的,则该分段的最后一个字节可用来存储在最后一个分段中的字节数目。三个字段,即:分组长度、最后一个分段满以及最后一个分段的长度,可用于以字节来计算分组长度。对于一个分段分组,第一个和最后一个分段使用下一分段指针控制字段来存储与该分组相应的数据流数字或VCC数字。
一个将本发明方案用于多个VoQ的示例示于图3。图3示出了一个VoQ使用的数据结构以及三个与之相关的VCC/数据流。图3未示的其它VoQ可以根据情况使用相同的数据结构。三个数据流如图3所示,即VCC/数据流1(301)、VCC/数据流2(302)和VCC/数据流3(303)。实时接收的第一个满的分组是从数据流2(302)接收到的分组C。分组C第一分段311被接收并被解码,接着是分组C的倒数第二个分段312。在图3所示各组分段中,在分组C的第一分段311的和分组C的倒数第二个分段312之间接收到的中间分段由虚线表示,它们也被接收和解码。如果通过包括该分组最后一个分段的检查在内的接收和解码,确定分组C或任何其它分组受损,则该***抛弃受损分组并且不对该分组进一步处理,比如不将它放入链接列表中。在此实施例中,分组C的最后一个分段313包含诸如分组长度、接收差错信息和/或其它控制信息之类的信息,它被捕获并与VoQ链接列表320中的头指针321相关。这个头指针321被给予一个地址,比如A1,并且该头指针321与从各个数据流中收到的分组的最后一个分段相关。VoQ链接列表320中的分组C的最后一个分段313与分组C的第一分段311相关或链接,用于定位和传输。
正如在此所使用的,一个分组有包括第一分段、倒数第二个分段和最后一个分段的三个信元。第一个和倒数第二个分段包含数据以及上述控制字段,而最后一个分段包括参考信息,其被放置到VoQ链接列表320中,并且与来自该VoQ链接列表320的第一分段相关。关于分组的这些分段或者说子组也可以使用其它术语。如此即形成两个链接列表:VoQ链接列表320与VCC/数据流链接列表,其中VCC/数据流链接列表链接从每个数据流中收到的不是最后一个的分段。
及时接收到的下一分组是从数据流1(301)接收到的分组A。分组A的第一分段311被接收,其后有分组A的倒数第二个分段332。分组A的最后一个分段333被捕获在并VoQ链接列表320中与分组C的最后一个分段313相关,并且与分组A的第一分段331相关或链接以用于定位和传输。接收到的下一分组是分组B,它也是从数据流1(301)中接收到的。分组B的第一分段334被接收,其后有分组B的倒数第二个分段335。分组B的最后一个分段336被捕获并在VoQ链接列表320中与分组A的最后一个分段333相关,并且与分组B的第一分段334相关或链接以用于定位和传输。
接收到的下一分组是从数据流3(303)接收到的单一一个分段的分组D(341)。作为单一分组,它只被简单地置于VoQ链接列表320中,它全部与分组B的最后一个分段336相关。不提供来自VoQ链接列表320的关联,并且分组D不被链接到VCC/数据流链接列表。
及时接收到的下一分组是从数据流3(303)中接收到的分组E。分组E的第一个分段342被接收,其后有分组E的倒数第二个分段343。分组E的最后一个分段344被捕获并在VoQ链接列表320中与分组D的倒数第二个分段341相关,并且也与分组E的第一分段342相关或链接以用于定位和传输。及时接收到的下一分组是也从数据流3(303)中接收到的分组F。分组F的第一个分段345被接收,其后有分组F的倒数第二个分段346。分组F的最后一个分段347被捕获并在VoQ链接列表320中与分组E的最后一个分段344相关,并且也与分组F的第一分段345相关或链接以用于定位和传输。
尾指针350指向链接列表的尾部。分组被链接如图3的链接列表320中所示,即按照分组C、分组A、分组B、分组D、分组E和分组F的顺序被链接。其它被接收到的分组被标记并链接到VoQ链接列表320,并且那些分组按照这个顺序传送。
在每个数据流被分配给它自己的VoQ的情形下,可以使用图4的数据结构。图4原理上类似于图2,但是提供关于特定数据结构方面的更多细节。包括在图4所示单元内的括号中的数字表示分段的到达顺序。
由图4可见,第一分组的第一分段401首先到达,接着是第一分组的第二分段402,然后是其它分段,再随后是第一分组的倒数第二个分段403,接着是第一分组的最后一个分段404。下一分组按照类似方式被接收,即:第二分组的第一分段411首先到达,接着是第二分组的第二分段412,然后是其它分段,再随后是第二分组的倒数第二个分段413,接着是第二分组的最后一个分段414。第三分组按照类似方式被接收,即:第三分组的第一分段421首先到达,接着是第三分组的第三分段422,然后是其它分段,再随后是第三分组的倒数第三个分段423,接着是第三分组的最后一个分段424。其它分组以类似方式被接收。链接列表以加黑粗线450a、450b和450c示出,其链接第一分组、第二分组、第三分组等等的最后一个分段。
在图3和4中,每一分组的最后一个分段指向两个不同的分段,即:同一分组的第一分段和下一分组的最后一个分段。使用这种数据结构,***能够传送分组并可以接收分组及使分组出队,而使得各分组可以按照最后分段、第一分段、第二分段、所有其它中间分段、然后是倒数第二分段这样一种顺序被读取。出队处理器一开始就可以访问包括但是不限于差错状态和分组长度的分组信息,并决定是否抛弃该分组、转发该分组并且可选择地将其状态(即:未完成的、失败的CRC或者其它适当的状态)预先附加到该分组。这样一种实施方案避免了在出队处理器最初接收分组之后,第二次访问该分组的第一分段以存储用于解码的分组信息的需要。由于分组的最后部分首先出队,所以处理器可以在芯片上存储该分段直到倒数第二个分段出队为止。
可以从一个VoQ中添加或接收一个分段如下。当该分段不是分组的最后一部分时,***使用一个保留的将来分段地址来为相应VCC/数据流将该分段写入数据存储器中。如果该分段是分组的第一分段,则可将相应的VCC/数据流数字写入存储分段中。***然后更新该存储分段中的控制字段。当该分段是分组(包括任何单一分段的分组)的最后一个分段时,***可以使用保留的将来最后一个分段的地址来将该分段写入数据存储器中,其中该地址由相应VoQ的尾指针指示。该***分配一个新的空闲分段,更新尾指针并且更新存储分段中的控制字段。如果相应的VoQ没有分组,则***更新头指针以没有分组的情况。
为了传送或删除一个分段,该***首先读取当前指针指示的存储分段。可能存在三种不同的情形:如果该分段与头指针所指示的分段相同且该分段不是只有一个分段的分组,则该分段是分组的最后一个分段,***然后存储这个分段,传送前一分组的最后一个分段,将下一个最后一个分段的地址存储作为头指针,并将该分组的第一分段的地址存储作为当前指针;如果情形是通过将已被读取的分段数目和分组长度进行比较,发现该分段是倒数第二个分段,则该***将头指针中的地址存储作为当前指针并传送该分段。在第三种情形下,也就是任何其它情形下,***将下一分段的地址存储作为当前指针并传送该分段。最后,在所有三种情形中,***释放被传送的存储分段。
可以使用能够起到在此所述作用的任何硬件、软件或者固件来实现本发明的***。一种实施方案是处理器加上数据存储器,其中处理器具有有效的排队、解析和装配能力,而数据存储器可以是单片存储器;但是也可使用其它硬件、软件和/或固件。
本领域技术人员应该理解,本发明的方案可以被应用到执行入队和/或出队的、或者建立输出队列的其它***,并且不限制为在此描述的入队/出队结构和过程。另外,虽然在此已经讨论了具体的队列、VCC、数据流、请求者、分组、分段和控制字段,但是应该理解,可以使用更多或更少的队列、VCC、数据流、请求者、分组、分段和控制字段同时仍然在本发明范围之内。因此,对本领域技术人员来说可以想到的所有修改、变化或等价方案都将被认为是落入所附权利要求书中定义的本发明范围之内。

Claims (21)

1.一种用于组合来自一组被接收分组的输出队列的方法,其中每一分组具有至少一个分段,其中最后一个分段包含分组信息,所述方法包括:
首先处理一个分组以将所述分组添加到所述输出队列,包括:接收该分组的所有分段;使该分组的最后一个分段包含在一个链接列表中,所述链接列表链接到已经包括在所述链接列表中的前一分组的另一最后一个分段;并且如果所述分组具有多于一个分段,则使所述链接列表中的该分组的最后一个分段与该分组的第一分段相关联;和
按照包括上述接收、包含和关联各步骤的上述首先进行的处理,处理后续分组,以将所述后续分组添加到所述输出队列。
2.根据权利要求1所述的方法,其特征在于所述分组信息包括从一组信息中选择的至少一个信息,该组信息包括差错状态和分组长度。
3.根据权利要求2所述的方法,其特征在于所述分组长度包括:分组的分段总数、最后一个分段是否满的指示以及最后一个分段中的字节数。
4.根据权利要求1所述的方法,其特征在于其中所述的关联进一步包括:使所述分组的第一分段与该分组的第二分段相关联。
5.根据权利要求1所述的方法,其特征在于可以从多个数据流中接收该组被接收分组。
6.根据权利要求1所述的方法,其特征在于其中所述的关联进一步包括:
当前一分组有效时,使所述最后一个分段与来自该前一分组的最后分段相关联;并且
当前一最后分组无效时,使所述最后一个分段与一个头指针相关联。
7.根据权利要求1所述的方法,其特征在于其中一个剩余分组包括包含单个分段的一个分组,并且其中对所述包含单个分段的分组的进一步处理包括:
接收来自所述仅包含单个分段的分组的该分段;并且
使该单个分段包含在所述链接列表中。
8.一种用于组合来自一组被接收数据分组的输出队列的方法,其中最后一个分段包含分组信息,所述方法包括:
接收来自至少一个数据流的多个分组;
将所述分组中的每一个解析成为分段,包括第一分段和最后一个分段;
根据接收最后一个分段的时间将与各个所述分组关联的最后一个分段放置到将连续分组的最后一个分段相互链接的一个链接列表中;
将每个所述分组的最后一个分段链接到各相应一个所述分组的第一分段;并且
使用所述链接列表作为所述输出队列。
9.根据权利要求8所述的方法,其特征在于每个所述分组的最后一个分段包括分组信息,所述分组信息包括差错状态或分组长度中的至少一个。
10.根据权利要求9所述的方法,其特征在于所述分组长度包括:每个所述分组的分段总数、最后一个分段是否满的指示以及最后一个分段中的字节数。
11.根据权利要求8所述的方法,其特征在于所述分段包含取决于在每个所述分组内的分段位置的控制字段。
12.根据权利要求8所述的方法,其特征在于其中所述的链接每个所述分组的最后一个分段进一步包括:
如果前一分组有效,则使最后一个分段与来自所述分组之中的该前一分组的最后分段相关联;并且
如果所述前一分组无效,则使所述最后一个分段与所述输出队列的一个头指针相关联。
13.根据权利要求12所述的方法,其特征在于所述方法进一步包括在所述的链接之后以及在所述的使用之前,使每个所述分组的第一分段与第二分段关联。
14.根据权利要求8所述的方法,其特征在于将与各个所述分组关联的最后一个分段放置到将连续分组的最后一个分段相互链接的一个链接列表中包括根据接收每个所述分组的最后一个分段的时间而放置与每一所述分组关联的最后一个分段。
15.一种用于组合来自一组被接收数据分组的输出队列的***,其中每一分组中的最后一个分段包含分组信息,所述***包括:
一解析和组合装置,其用于接收来自至少一个数据流的各分组并且将该分组解析成为分段,包括第一分段和最后一个分段;和
一链接装置,其用于根据接收每个分组的最后一个分段的时间而将每一分组的各最后一个分段放置到将连续分组的最后一个分段相互链接的一个链接列表中,并且为每个分组将最后一个分段链接到第一分段。
16.根据权利要求15所述的***,其特征在于每个所述分组的最后一个分段包括分组信息,该分组信息包含差错状态信息或分组长度信息中的至少一个。
17.根据权利要求16所述的***,其特征在于所述分组长度信息包括:分组的分段总数、最后一个分段是否满的指示以及最后一个分段中的字节数。
18.根据权利要求15所述的***,其特征在于所述分段包含取决于在分组内的分段位置的控制字段。
19.根据权利要求18所述的***,其特征在于所述最后一个分段中的控制字段包含下一分段指针和最后分段指针,其中该下一分段指针指向该分组的第一分段,而该最后分段指针则在下一分组有效时,指向该下一分组的最后一个分段的存储位置。
20.根据权利要求15所述的***,其特征在于所述链接装置被用于在前一分组有效时使所述最后一个分段与来自该前一分组中的最后分段相关联;而在该前一个最后分组无效时使所述最后一个分段与一个头指针相关联。
21.根据权利要求15所述的***,其特征在于所述链接装置进一步被用于使第一分段与第二分段关联。
CNB2003101230182A 2003-01-06 2003-12-23 虚拟输出队列(VoQ)管理方法和装置 Expired - Fee Related CN100512205C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/337,615 US7295564B2 (en) 2003-01-06 2003-01-06 Virtual output queue (VoQ) management method and apparatus
US10/337,615 2003-01-06

Publications (2)

Publication Number Publication Date
CN1518298A CN1518298A (zh) 2004-08-04
CN100512205C true CN100512205C (zh) 2009-07-08

Family

ID=32681287

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2003101230182A Expired - Fee Related CN100512205C (zh) 2003-01-06 2003-12-23 虚拟输出队列(VoQ)管理方法和装置

Country Status (2)

Country Link
US (1) US7295564B2 (zh)
CN (1) CN100512205C (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7800932B2 (en) * 2005-09-28 2010-09-21 Sandisk 3D Llc Memory cell comprising switchable semiconductor memory element with trimmable resistance
US20060067347A1 (en) * 2004-09-29 2006-03-30 Uday Naik Cell-based queue management in software
CN100461748C (zh) * 2004-10-22 2009-02-11 华为技术有限公司 直接互连交换网路由的方法
US20080101374A1 (en) * 2006-10-27 2008-05-01 Hewlett-Packard Development Company Lp Packet fifo
US8694999B2 (en) * 2006-12-07 2014-04-08 Wind River Systems, Inc. Cooperative scheduling of multiple partitions in a single time window
CN101651614B (zh) * 2009-09-14 2011-08-10 华为技术有限公司 多端口队列调度方法及设备
US9112818B1 (en) * 2010-02-05 2015-08-18 Marvell Isreal (M.I.S.L) Ltd. Enhanced tail dropping in a switch
CN101860489B (zh) * 2010-06-09 2012-12-12 西南交通大学 基于隐式流分割器的负载均衡结构
CN101964747B (zh) * 2010-09-10 2012-12-19 西南交通大学 基于前置反馈的两级交换结构工作方法
CN103391596B (zh) * 2012-05-07 2017-03-08 华为终端有限公司 数据传输方法及装置
US9306876B1 (en) 2013-04-01 2016-04-05 Marvell Israel (M.I.S.L) Ltd. Multibank egress queuing system in a network device
US9485326B1 (en) 2013-04-01 2016-11-01 Marvell Israel (M.I.S.L) Ltd. Scalable multi-client scheduling
US9838341B1 (en) 2014-01-07 2017-12-05 Marvell Israel (M.I.S.L) Ltd. Methods and apparatus for memory resource management in a network device
US10270713B2 (en) * 2014-12-16 2019-04-23 Oracle International Corporation Scheduling packets with multiple destinations in a virtual output queue network switch
US9813362B2 (en) 2014-12-16 2017-11-07 Oracle International Corporation Framework for scheduling packets with multiple destinations in a virtual output queue network switch
US10721187B1 (en) * 2017-05-18 2020-07-21 Juniper Networks, Inc. Emulating output queued behavior in a virtual output queue switch

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088734A (en) * 1997-11-12 2000-07-11 International Business Machines Corporation Systems methods and computer program products for controlling earliest deadline first scheduling at ATM nodes
US6088745A (en) * 1998-03-17 2000-07-11 Xylan Corporation Logical output queues linking buffers allocated using free lists of pointer groups of multiple contiguous address space
CA2349005A1 (en) * 1998-10-27 2000-05-04 Fujitsu Network Communications, Inc. Network to network priority frame dequeuing
US6574231B1 (en) * 1999-05-21 2003-06-03 Advanced Micro Devices, Inc. Method and apparatus for queuing data frames in a network switch port
US7352777B2 (en) 2001-10-31 2008-04-01 Intel Corporation Data framer
US7061867B2 (en) 2002-04-02 2006-06-13 Intel Corporation Rate-based scheduling for packet applications
US7154853B2 (en) 2002-05-02 2006-12-26 Intel Corporation Rate policing algorithm for packet flows
US7065628B2 (en) 2002-05-29 2006-06-20 Intel Corporation Increasing memory access efficiency for packet applications
US20030223442A1 (en) 2002-05-29 2003-12-04 Huang Anguo T. Buffer memory reservation
US6754744B2 (en) * 2002-09-10 2004-06-22 Broadcom Corporation Balanced linked lists for high performance data buffers in a network device
US6892284B2 (en) 2002-09-11 2005-05-10 Intel Corporation Dynamic memory allocation for assigning partitions to a logical port from two groups of un-assigned partitions based on two threshold values
US6944728B2 (en) 2002-12-23 2005-09-13 Intel Corporation Interleaving memory access

Also Published As

Publication number Publication date
US7295564B2 (en) 2007-11-13
CN1518298A (zh) 2004-08-04
US20040131069A1 (en) 2004-07-08

Similar Documents

Publication Publication Date Title
CN100512205C (zh) 虚拟输出队列(VoQ)管理方法和装置
US6295532B1 (en) Apparatus and method for classifying information received by a communications system
US7151744B2 (en) Multi-service queuing method and apparatus that provides exhaustive arbitration, load balancing, and support for rapid port failover
US6259699B1 (en) System architecture for and method of processing packets and/or cells in a common switch
EP1264430B1 (en) Non-consecutive data readout scheduler
US7577163B2 (en) Apparatus and method for facilitating data packet transportation
US6389031B1 (en) Methods and apparatus for fairly scheduling queued packets using a ram-based search engine
EP0916214B1 (en) Method and apparatus for source rate pacing in an atm network
US6122279A (en) Asynchronous transfer mode switch
US6219352B1 (en) Queue management with support for multicasts in an asynchronous transfer mode (ATM) switch
US6442164B1 (en) Method and system for allocating bandwidth and buffer resources to constant bit rate (CBR) traffic
US6370144B1 (en) Methods and apparatus for shaping queued packets using a two-dimensional RAM-based search engine
JPH0779232A (ja) 通信装置
JP2001217873A (ja) 複数のデータストリームのパケット送信優先順位を決定する方法及び装置、データストリーム間でのデータパケットについての送信優先順位を決定する方法
JPH08237279A (ja) トラフィック制御装置
CN102971996A (zh) 带有分组突发的负载平衡的交换节点
JPH08331154A (ja) 最大−最小公平割当を行うパケット交換ネットワーク用混雑制御システムおよび方法
JPH07147590A (ja) 高速パケット伝送ネットワーク用プログラマブル高性能データ通信アダプタ
US6278995B1 (en) Apparatus and method for providing a binary range tree search
JP2011024269A (ja) 低ビットレートアプリケーション用にatmセルを生成するための方法
US20020150047A1 (en) System and method for scheduling transmission of asynchronous transfer mode cells
US7203198B2 (en) System and method for switching asynchronous transfer mode cells
Moors et al. ATM receiver implementation issues
WO2010025509A1 (en) Method of and apparatus for statistical packet multiplexing
US7130267B1 (en) System and method for allocating bandwidth in a network node

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: 20090708

Termination date: 20101223