CN1351784A - 管理多个异步传输模式的信元队列的方法和装置 - Google Patents

管理多个异步传输模式的信元队列的方法和装置 Download PDF

Info

Publication number
CN1351784A
CN1351784A CN00804670A CN00804670A CN1351784A CN 1351784 A CN1351784 A CN 1351784A CN 00804670 A CN00804670 A CN 00804670A CN 00804670 A CN00804670 A CN 00804670A CN 1351784 A CN1351784 A CN 1351784A
Authority
CN
China
Prior art keywords
pointer
data
cell
storage
formation
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
Application number
CN00804670A
Other languages
English (en)
Other versions
CN100512065C (zh
Inventor
S·C·罗伊
E·L·帕雷拉
I·拉姆斯登
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.)
Transwitch Corp
Original Assignee
Transwitch 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 Transwitch Corp filed Critical Transwitch Corp
Publication of CN1351784A publication Critical patent/CN1351784A/zh
Application granted granted Critical
Publication of CN100512065C publication Critical patent/CN100512065C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/104Asynchronous transfer mode [ATM] switching fabrics
    • H04L49/105ATM switching elements
    • H04L49/108ATM switching elements using shared central buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • H04L49/203ATM switching fabrics with multicast or broadcast capabilities
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

检查进入交换机的信元,将它们放入共享RAM(36),指向这个RAM位置的一个指针被写入共享RAM中的另外一个位置。每次将一个信元添加到这个队列的时候更新管理RAM中的表(36b)入口。创建这个多点传输会话中所有地址的一个多点传输表。收到多点传输信元的时候,查询这个多点传输会话表,指向这个信元的指针被拷贝到这个表中每个地址的队列中。当一个指针退出队列的时候,读取这个指针指向的信元,并且将它发送给这个队列地址。读取这个信元的时候,这个信元的目的地计数减1。当目的地计数减到0的时候,用于储存这个信元的RAM位置被添加到空闲表中。每次读指针的时候,都要更新受到影响的队列的表入口。当这个队列变成空队列的时候,切换表入口的活动比特。

Description

管理多个异步传输模式的信元队列的方法和装置
本发明涉及共同拥有的第5774465号美国专利,以及共同拥有的被批准的序列号是08/796085的申请,在这里将它们的内容全部引入作为参考。发明背景
1.发明领域
本发明涉及异步传输模式(ATM)通信交换机。具体而言,本发明涉及一种方法和装置,用于管理公共存储器中的多个ATM信元队列,其中的一些ATM信元要进行多点传输。
2.技术现状
异步传输模式交换机通常都包括多个缓冲器、队列或者FIFO,用于通过交换机管理异步传输模式信元流。这些缓冲器可以是在交换器的入口,在交换机的出口,或者在交换机的入口和出口之间。从共同拥有的被批准的序列号是08/796085的申请中说明了如何使用实现多个队列的公共存储器(RAM)。在公共RAM中用来管理多个队列的方法叫做“链表”。根据缓冲器管理的这一链表方法,特定队列里的每个数据单元都包括一个指针,指向队列中的下一个连续单元,从而允许将多个队列(链表)分段存储在整个公共RAM中。例如,如图11所示,RAM的一个框可以包括“N”个队列作为链表#1、#2、……、#N。每个表都可以包括“n”个数据单元,用一种非连续方式储存在RAM中。为了使这个表中每个数据单元都能以适当的方式跟这个表中的其它单元联系起来,除了这个单元中连续储存的“m”个字以外,每个单元都包括一个指针,指向这个表中下一个单元的RAM的物理地址。如同图11中表#N的第二个单元所示,除了这个表中第一个单元以外的其它单元还包括一个指针,指向这个表中前一个单元的RAM物理地址。指向前一个单元的指针被用于测试或者实现LIFO缓冲器而不是典型的FIFO缓冲器。
这些链表队列由图12所示的另外一个表来管理,其中对于每个队列(链表)有三个参数:队列中第一个数据单元的存储器地址(首部指针)、队列中最后一个数据单元的存储器地址(尾部指针)和队列深度(计数器)。另外,通过为排队数据单元能够使用的空闲RAM块储存一个首部指针、一个尾部指针和一个计数器,还保存有RAM中自由空间的一个表(空闲表)。显然,没有使用的RAM块,它们不一定是连续的,是用前一个和下一个指针做的索引,就跟被使用的块一样。通过这种方式,可以在单独一个公共存储器中建立、删除和管理多个队列。
ATM一个有用的特征是它能支持多点数据传输。多点数据传输在有效地进行会议呼叫的时候特别有用。第5774465号美国专利中讨论了实现多点传输的一种方法。总的来说,要进行多点传输的每个异步传输模式信元都用不同的地址首部进行多次拷贝。在交换机出口采用离散队列的ATM交换机中,多点传输信元被拷贝到多个队列中。在交换机入口采用链表队列的交换机中,多点传输可能会更加复杂。
在链表系统中管理多点传输的一种简单方法跟上面描述的方法相似,也就是每个多点传输数据单元都被拷贝到多个链表中。这种方法实现起来非常容易,但它不能有效地利用存储器。在链表系统中管理多点传输的一种解决方案是提高链表中每个数据单元的杂项开销。按照这一方法,每个数据单元都有一个首部,其中包括关于要多点传输的数据单元的多个地址信息。这样做能够更加有效地使用数据存储器,因为它没有必要存储同一组数据的多个拷贝。但是,对具有扩展首部信息的多点传输数据单元的管理将非常复杂,因为必须不断地监视和更新每个多点传输状态。判断什么时候必需的所有多点传输信元拷贝都已经发送完成,从而判断什么时候信元缓冲空间能够腾出来非常困难。此外,随着多点传输目的地的数量增加,每个数据单元的系统开销量有可能超过数据单元的大小。
发明简述
因此本发明的一个目的是提供一种方法和装置,用于管理公共存储器中的多个异步传输模式队列。
本发明的另外一个目的是提供一种方法和装置,用于管理公共存储器中多个异步传输模式队列并且支持多点传输。
本发明的再一个目的是提供一种方法和装置,用于管理支持多点传输并且能够有效地利用存储器中公共存储器的多个异步传输模式队列。
本发明还有一个目的就是提供一种方法和装置,用于管理公共存储器中的多个异步传输模式队列,它支持多点传输,能够有效地利用存储器,而且很容易实现。
按照上面将详细讨论的这些目的,本发明的装置包括用于储存异步传输模式信元以及用于储存指向储存的每个异步传输模式信元的至少一个指针的公共存储器,其中的指针保存在多个链表中,以便建立多个队列,还包括一个管理存储器,用于储存指向公共存储器中储存的指针的下标,每个多点传输会话还有一个表,以及指向公共存储器中自由空间的一个下标。
按照本发明的这个优选实施方案,公共存储器被分配在64个字节的块中(16个32比特字)用于储存信元和储存指针。每个异步传输模式信元都跟一些交换机专用系统开销以及等待这个信元的目的地的个数(也就是这个信元是它的一部分的队列的个数)一起储存在一个块中。储存在链表中以便定义队列的指针同时储存在连续的64字节块中,它包括16个指针和另外一个字,指向15个指针的下一块。队列中的所有指针都用一个表入口(在管理存储器中)做索引,它包括第一个和最后一个指针的地址,队列中信元的个数,队列最大长度(也就是最大的队列长度),以及说明这个队列是否活跃的一个说明。根据这个优选实施方案,管理存储器中的每个多点传输会话表都包括一个5比特计数器,说明多点传输会话中的地址总数,以及一个地址表。但是,这个计数器可以是一个全32比特字。
本发明的方法包括将异步传输模式信元存入块公共存储器,每个异步传输模式信元的一个字记录着等待这个信元的目的地的个数,并且将指针作为链表存入异步传输模式信元。这些指针储存在连续的块中,每块都有一个尾部指针指向下一个连续块。本发明的方法还包括将指针的每个链表的下标作为一个表入口加以管理,每个入口都包括关于指向数据单元的队列的第一个和最后一个指针的信息;对于每个多点传输会话,维护这个会话中涉及到的所有队列的一个表。
根据本发明的优选方法,检查进入这个交换机的信元,将它们放进共享的RAM中,将指向RAM的位置的指针写入共享RAM中的另外一个位置。每次添加信元的时候更新管理RAM的表入口。开始多点传输会话的时候,利用多点传输会话中所有地址创建一个多点传输表。收到多点传输信元的时候,查询多点传输会话表,指向这个信元的指针都被拷贝到每一个指针目的地链表;从而有效地将信元结合进多个队列。当一个指针退出队列的时候(也就是“弹出”),读取这个指针指向的信元,发送给这个队列的地址。读取这个信元的时候,这个信元的目的地计数减1。当目的地计数减到0的时候,用于储存这个信元的RAM位置被添加到空闲表中。每次读指针的时候,都要更新受到影响的队列的表入口。不再需要这个队列的时候,翻转表入口中的活动比特。活动比特用于区分空队列,它在等待不再需要的空队列的输入。
通过以下详细说明,同时参考附图,本领域里的技术人员会更加了解本发明的其它目的和优点。
附图简述
图1是实施本发明的方法的一个装置框图;
图2是说明按照本发明如何管理图1所示共享存储器和管理存储器的一个原理图;
图3是本发明中管理存储器内容的一个原理图;
图4是用于储存共享存储器中ATM信元的16个字存储器块的框图;
图5是用于将指针存入ATM信元的16个字存储器块的框图;
图6是用于识别队列的管理存储器16个字块的框图;
图7是用于识别多点传输会话地址的管理存储器16个字块的一个框图;
图8是说明本发明中队列初始化过程的一个简化流程图;
图9是说明缓冲器初始化以后进来的信元的处理的一个简化流程图;
图10是说明本发明中出去的信元的处理的一个简化流程图;
图11是共享RAM中链表FIFO的原理图;和
图12是用于管理图11所示链表FIFO的管理RAM的原理图。
优选实施方案
为了理解本发明,详细描述中要涉及到ATM交换机,例如ATM目的地交换机的物理层VLSI部分。前面提到的共同拥有的美国专利的装置可以用于实施本发明。最好是将图1所示那种类型的装置用于实施本发明。
图1所示的装置10包括一个ATM交换机接口12,它对进入或者离开ATM交换机的ATM信元进行处理。这样,接口12通过UTOPIA入口14和UTOPIA出口16跟UTOPIA接口连接(没有画出),通过接口17跟交换机18连接。如图1所示,这个交换机是本申请人的受让人的专有共享总线系统,它的商标是CELLBUS(注册商标)。通过下面的详细描述本领域里的技术人员会明白本发明可以利用其它的共享总线结构或者传统交换机结构来实现。还会明白在异步传输模式交换机中,会有几个装置12跟交换机18连接,UTOPIA接口将被用于将交换机跟用户线和网络连接起来。这种装置12将被本申请人的受让人以商标ASPEN(注册商标)出售,将被用于构造ATM交换机的一个部件。
装置12包括一个内部总线20和三个RISC处理器22、24、26,它们全部跟内部总线20连接。入口处理器22跟一个小的入口缓冲器28连接,它在UTOPIA入口14和内部总线20之间。出口处理器24跟一个小的出口缓冲器30连接,它位于内部总线20和UTOPIA出口16之间。每个处理器都可以通过一个主机接口32编程,它也可以用于收集通过装置12的通信量的统计信息。提供一个DMA接口34用于将这个装置12跟一个外部RAM36连接起来。如同下面将详细描述的一样,RAM36包括一个共享RAM部分36a,它储存着数据和指针的队列以及用于管理共享RAM的管理RAM部分36b。
通过装置12的数据流基本上是如下:数据进入UTOPIA入口14和小缓冲器28。入口处理器22通过总线20和DMA结构34将这些信元或者数据包传递给RAM36中适当的队列。速率处理器26将这些信元或者数据包从RAM36中的队列里取出来,将它们放进共享总线(或者交换机结构)18。来自ATM交换机中其它装置12的数据被速率处理器从共享总线18中取走,通过内部总线20发送给小出口缓冲器30,在那里它们被出口处理器24从队列中取出传递给UTOPIA出口16。
现在参考图2,将参考一个单元表来描述本发明,每个数据单元都有同样的“m”个字和一个字计数器。如同下面将详细描述的一样,计数器说明应当接收这些数据的目的地的个数(例如多点传输目的地)。按照本发明,数据单元中的每个字都储存在共享RAM36a的一个连续空间里,从而可以通过单独一个地址对整个数据单元进行访问。每个数据单元至少有一个指针(如果这个数据单元要进行多点传输就有多个指针),这些指针作为多个链表储存在共享RAM中的另外一个位置上。如同下面将详细描述的一样,这些指针储存在RAM的连续块中,链表指针指向跟这同一个队列有关的指针的下一个连续块。当指针的链表有效地建立起一个单元队列(FIFO)的时候,指向各个单元的指针的一个链表用商标QUEUE LINK FIFO或者缩写QLF来表示。如图2所示,QLF中指针的个数建立起队列中数据单元的个数。但是,如同下面将详细描述的一样,不同链表中的指针可以指向同一个数据单元,也就是说,一个数据单元可以是在多个队列中。例如,如图2所示,其中画出了三个不同的QLF,用于产生三个不同的队列,这个单元表中有几个单元被一个以上的QLF指向;也就是说,有几个单元在一个以上的队列中。如图2所示,每个QLF都用管理RAM36b中指向QLF的一个表入口做下标。按照一个优选实施方案,指向每个QLF的表入口指针包括说明QLF是否“活动”的信息,指向这个QLF中最后一个指针的一个尾部指针,说明QLF中指针总数的一个信元数以及这个队列中数据的单元总数,说明这个队列中允许的最大信元数的一个队列最大长度,以及指向QLF中第一个指针的一个首部指针。
如上所述,如图3所示,在管理RAM中储存着每个QLF(QLF#1,QLF#2,……,QLF#N)的一个表入口指针。另外,管理RAM中还储存着指向共享RAM中自由空间的一个类似的表入口指针。此外,如同下面将详细描述的一样,为本发明管理的每个多点传输会话储存一个多点传输会话表(MST)。
按照本发明的这个优选实施方案,共享RAM被划分成64个字节的块(16个32比特字),用于储存信元和指针。每个ATM信元(数据单元)跟某些交换机专用系统开销和等待这个信元的目的地的个数储存在单独一个块中。例如,如图4所示,一块共享RAM的前两个字被作为交换机专用参数,接下来的13个字被用作ATM信元的数据有效负荷,最后一个字被用于说明应当接收这个信元的一个拷贝的目的地的个数。
指向一个队列中的信元的指针同样储存在64个字节块中,如图5所示。每块都保存15个指针,以及指向特定队列中15个指针的下一块的一个指针。例如,如果一个队列中有41个信元,共享RAM的3块中就会储存41个指针。第一块储存前15个指针,还有一个指针指向包括接下来15个指针的存储器块的位置;接下来的块指向接下来的15个指针,还有一个指针指向包括剩余的11个指针的存储器块的位置。
从前面可以看出,指向一个队列中每个信元的指针的块都按照跟链表相似的方式储存。每个队列中的所有指针都用一个表入口来做下标,它包括第一个和最后一个指针的地址,这个队列中的信元个数,最大队列长度,以及说明这个队列是否活动的一个说明。这个优选表入口格式在图6中说明,它说明管理RAM的64字节块中的5个队列的下标。而按照本发明的一个实施方案,这些表入口被写入管理RAM中保留的连续部分,根本不需要图6所建议的表入口的链接块。这个优选的表入口格式包括一个1比特活动说明符“A”,可以很快地改变它的内容,释放这个表的空间供新的条目使用,指向共享RAM中的指针的29比特尾部指针,它指向队列尾部的信元,队列中当前信元个数的一个16比特计数器,说明任意时刻队列中能够有的最大信元数的一个16比特数,以及指向共享RAM中的指针的一个29比特首部指针,它指向队列开头的信元。按照这个优选实施方案,这个表用队列编号表示,提供了足够的资源来管理共享RAM中的64千个队列(65536)。另外,提供了跟图6所示相似的表入口,指向共享RAM中的空闲块。
由此可知,本领域里的技术人员会发现这些信元可以通过将指针拷贝给多个QLF并且将适当的个数写入包括一个多点传输信元的每个存储器块的最后一个字(“计数”)来实现多点传输(见图4)。但是,必须提供某些装置来拷贝这些指针。按照本发明的优选实施方案,每次建立多点传输会话的时候,在管理RAM中都要创建一个多点传输会话表(MST)。在信元的首部信息中给这个MST做索引,它是多点传输会话的一部分。按照本发明,如图7所示,每个MST都有一个5比特计数(Dest#)多点传输会话目标数,以及每个多点传输目的地队列一个16比特地址(QID)。如图7所示,可以在单个64字节表中列出直到30个多点传输目的地。
下面参考图8~10所示的流程图进一步地描述本发明的方法。现在来看图8,当进来的第一个ATM信元在100中进入系统的时候,在102中检查它的首部,并且剥离首部保护字。在信元能够按照本发明发明的方法排队之前,必须进行图8所示的操作,虽然不必按照图示顺序。在104打开这个信元的一个缓冲器(图4),在106中打开指向这个信元以及同一队列中其它信元的一个缓冲器(图5)。在108中将这个信元写入信元缓冲器,在110中指向这个信元缓冲器的地址的指针被写入指针缓冲器。在112中将一个表入口(图6)写入管理RAM中的一个位置,说明第一个队列已经打开。在这个过程中的某个点上,例如图8中的114,判断这个信元是不是多点传输信元。如果它不是一个多点传输信元,这个输入信元的排队就完成,在116中更新自由空间指针。如果这个信元是多点传输会话的一部分,就在118中查询MST(图7)。指向这个信元的指针被拷贝到MST中列出的QID,在116中更新空闲存储器指针之前,在120中来自MST的Dest#被拷贝到信元缓冲器中的计数字。
一旦缓冲器被初始化,必须在信元进出交换机的时候对它们进行管理。图9说明信元进来的过程中对缓冲器的管理。在130收到一个进来的信元。在132检查进来的信元的首部,最好是从这个信元去掉首部保护字(HEC)。能够进一步处理这个信元之前,最好进行图9所示的操作,虽然没有必要按照图示顺序。特别是必须在134判断是否有足够的存储器(共享RAM和管理RAM)来处理这个信元。如果没有,就必须在136中抛弃这个信元。还必须在138中判断这个信元是否已经有了一个队列。如果这个信元没有一个队列作为它的目的地,就在140在管理RAM中为它创建一个新的QLF表入口,在146中在共享RAM中创建一个新的指针缓冲器。如果这个信元要去往已经存在的缓冲器,就在142改变已有的QLF表入口。在144还要判断这个队列已有的指针缓冲器是否已经满。如果是这样,就在146打开一个新的指针缓冲器(将这个新指针缓冲器的地址写入旧指针缓冲器的最后一个字)。在148中,将这个异步传输模式信元(作为一个单元)写入这个信元缓冲器,在150将指向这个信元的指针写入指针缓冲器(QLF)。在某些点上,例如在152上,判断这个信元是不是一个多点传输信元。如果不是,这个信元的处理就在154结束,更新自由空间指针。如果是,就在156查询这个信元的MST,指针被拷贝到MST列出来的目的地队列,来自MST的Dst#被拷贝到这个信元缓冲器的最后一个字。
退出本发明队列系统的信元的处理在图10中说明。当一个队列的目的地能够获得一条路径的时候,在160中跟这个目的地有关来自这个队列的第一个指针就按照FIFO方式从这个队列中弹出来。读出这个指针以便找到这个信元的存储器位置,并且在162从共享RAM中读出这个信元。在164中从这个信元首部判断这个信元是不是一个多点传输信元。如果不是,就将这个信元发送给目的地,在166中更新自由空间指针,说明刚才储存这个信元的RAM块现在可以用了。自由空间指针更新以后,在172改变这个队列的QLF表入口(图6)。特别是将这个信元计数减1,改变首部指针,使它指向下一个信元指针(图6中的下一个指针)。
回到164,如果这个信元是一个多点传输信元,这个信元被发送给它的目的地后,跟这个信元有关的计数器(图5所示框中的最后一个字)就在168中减去1。如果在170中认为这个计数器等于0,就按照以上方式在166中更新自由空间指针。如果这个计数器不等于0,在共享的RAM中同一个位置就有这个信元的一个拷贝,因为其它队列中的指针都指向它。在172中按照上述方式改变这个队列的QLF表入口,以反映这个队列有一个新的起始点和少了一个信元。
在这里已经描述了管理共享RAM中多个ATM信元队列的方法,同时为多点传输信元提供有效的装置和实现这些方法的装置。尽管描述了本发明的特定实施方案,但是其目的不是将本发明局限于此。所以,虽然公开了特定的存储器块的大小,但是当然也可以采用其它的大小,牺牲本发明的一些好处,却保留本方面的多数好处。还有,尽管给出了表入口的特定格式,但是应当认识到也可以使用其它格式。此外,虽然参考流程图给出了特定的方法步骤,但是应当明白可能需要额外的方法步骤来实现本发明,具体取决于使用的硬件和本领域里的技术人员明白的其它参数。更进一步,虽然说明方法步骤的流程图是按照特定的顺序给出来的,但是应当明白一些方法步骤顺序可以是任意的,一些步骤的顺序可以任意改变而不会有任何不良后果,一些方法步骤的顺序可以改变时要同时进行其它的相应改变,本发明的基本步骤不受描述它们的顺序的限制。另外,尽管描述本发明的时候参考了异步传输模式信元,但是应当明白本发明的装置和方法可以用于其它类型的数据的存储。还有,虽然画出和描述了特定的电路和软件流程图,但是应当明白也可以用其它的电路和/软件按照本发明的原理来进行数据管理。因此本领域里的技术人员会明白,可以对本发明进行其它的修改,它不会偏离本发明的实质和范围。

Claims (28)

1.用管理存储器管理共享存储器中收到的数据的队列的一种方法,该方法包括:
a)接收作为多个数据包代表多个数据队列的数据;
b)将每个数据包写入共享存储器中的一个位置;
c)对于写入共享存储器中一个位置的每个数据包,创建至少一个指针,指向包括这个数据包的位置;
d)在数据包所属数据队列的基础之上,在共享存储器的一个位置上储存至少一个指针,作为至少一个指针队列的一部分,这个指针队列对应于某个数据队列;
e)对于每个指针队列,将信息存入所述管理存储器,该信息包括一个首部指针,指向共享存储器中的一个位置,这个共享存储器包括所述指针,指向包括要首先出来的接收数据的共享存储器中的所述位置。
2.权利要求1的方法,其中:
数据包是异步传输模式信元。
3.权利要求2的方法,其中:
共享存储器中的每个位置都是一个64字节块。
4.权利要求3的方法,其中:
队列中异步传输模式信元组的指针储存在连续组中,这些连续组有一个指针,指向下一个连续指针组,这些指针按照信元离开队列的顺序储存。
5.权利要求1的方法,还包括:
f)对于要传递到多个目的地的每个数据包,储存指向包括多点传输数据包的位置的指针的多个拷贝,指针个数等于目的地个数,其中
将每个数据包写入共享存储器中一个位置的所述步骤包括,对于每个多点传输数据包,写入一个数据包计数,这个计数代表目的地的个数。
6.权利要求1的方法,其中:
所述信息包括一个尾部指针,它指向共享存储器中的所述位置,这个共享存储器包括所述指针,指向包括收到的要最后发送的数据的共享存储器中的所述位置。
7.权利要求1的方法,其中:
所述信息包括这个队列中指针个数的一个计数。
8.权利要求5的方法,还包括:
g)对于每个多点传输会话,写入一个队列标识符表,用于识别跟多点传输会话有关的每个队列。
9.权利要求8的方法,其中:
队列标识符表被写入管理存储器。
10.权利要求1的方法,还包括:
f)在管理存储器中保存一个指针,它指向共享存储器中的下一个空闲位置。
11.采用具有多个数据存储位置的共享存储器以及用于管理收到的数据的多个队列的管理存储器的一种方法,该方法包括:
a)将收到的数据转发给共享存储器中需要的多个数据存储位置;
b)创建一个指针,指向包括收到的数据的每个数据存储位置;
c)将这些指针存入多个队列;和
d)将指针队列的有关信息存入管理存储器,这些信息包括每个指针队列的一个首部指针,这个首部指针指向指针的数据存储位置,被指向的这个指针指向包括要首先离开队列的收到的数据的数据存储位置。
12.权利要求11的方法,其中:
收到的数据包括异步传输模式信元。
13.权利要求12的方法,其中:
所述数据存储位置包括多个64字节块。
14.权利要求11的方法,其中:
所述指针储存在连续组中,这些连续组有一个指针,指向下一个连续指针组。
15.权利要求11的方法,还包括:
为了对数据进行多点传输,创建多个指针,指向包括多点传输数据的数据存储位置;和
f)将所述多个指针储存在多个队列中。
16.权利要求11的方法,其中:
所述信息包括一个尾部指针,指向一个指针的数据存储位置,这个指针指向包括要最后离开队列的收到的数据的数据存储位置。
17.权利要求11的方法,其中:
所述信息包括队列中指针的一个计数。
18.权利要求15的方法,还包括:
g)对于每个多点传输会话,包括跟这个多点传输会话有关的一个指针队列表。
19.权利要求18的方法,其中:
跟多点传输会话有关的这个指针队列表保存在管理存储器中。
20.权利要求11的方法,还包括:
e)保存一个指针,指向下一个空闲数据存储位置。
21.管理收到的数据的多个队列的装置,包括:
a)有多个数据存储位置的一个共享存储器装置;
b)接收数据并且将收到的数据转发给所述共享存储器装置中数据存储位置的控制装置,用于创建一个指针,指向储存收到的数据的所述数据存储位置中的每一个位置,并且用于将指针储存在所述共享存储器中的指针队列里,所述指针队列对应于接收到的数据的多个队列;和
c)储存所述指针队列的有关信息的管理存储器装置,所述信息包括每个指针队列的一个首部指针,所述首部指针指向所述指针的数据存储位置,这个指针指向包括收到的数据要最先离开收到的数据的队列的数据存储位置。
22.权利要求21的装置,其中:
收到的数据是异步传输模式信元。
23.权利要求22的装置,其中:
所述数据存储位置包括多个64字节块。
24.权利要求21的装置,其中:
所述控制装置包括用于创建多个指针,指向储存多点传输数据的每个数据存储位置的装置。
25.权利要求21的装置,其中:
所述信息包括每个指针队列的一个尾部指针,所述尾部指针指向所述指针的数据存储位置,这个指针指向包括要最后离开收到的数据队列的收到的数据的数据存储位置。
26.权利要求21的装置,其中:
所述信息包括所述指针队列中指针个数的一个计数。
27.权利要求24的装置,其中:
所述控制装置包括保存每个多点传输会话的一个队列表的装置,所述队列表包括跟这个多点传输会话有关的所有指针队列的一个表。
28.权利要求21的装置,其中:
所述控制装置包括保存一个指针,指向所述数据存储位置中下一个空闲位置的装置。
CNB008046700A 1999-03-05 2000-02-11 管理多个异步传输模式的信元队列的方法和装置 Expired - Lifetime CN100512065C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/263289 1999-03-05
US09/263,289 1999-03-05
US09/263,289 US6246682B1 (en) 1999-03-05 1999-03-05 Method and apparatus for managing multiple ATM cell queues

Publications (2)

Publication Number Publication Date
CN1351784A true CN1351784A (zh) 2002-05-29
CN100512065C CN100512065C (zh) 2009-07-08

Family

ID=23001144

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB008046700A Expired - Lifetime CN100512065C (zh) 1999-03-05 2000-02-11 管理多个异步传输模式的信元队列的方法和装置

Country Status (7)

Country Link
US (1) US6246682B1 (zh)
EP (1) EP1163747A1 (zh)
JP (1) JP2002538718A (zh)
CN (1) CN100512065C (zh)
CA (1) CA2361126A1 (zh)
HK (1) HK1044427A1 (zh)
WO (1) WO2000052858A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100413278C (zh) * 2002-10-25 2008-08-20 阿尔卡特公司 接入节点的atm交换设备中使用的组播系统和方法
CN100531123C (zh) * 2005-12-14 2009-08-19 中兴通讯股份有限公司 一种实现数据包模式到信元帧模式转换的装置及其方法
CN101035079B (zh) * 2007-04-10 2010-04-21 华为技术有限公司 一种异步转发方法、系统及设备
CN101052937B (zh) * 2004-09-08 2011-06-08 费希尔-罗斯蒙德系统公司 从数据队列中丢弃部分接收的消息
CN1736068B (zh) * 2002-11-11 2012-02-29 拉姆伯斯公司 流量管理结构体系
CN113821191A (zh) * 2021-10-13 2021-12-21 芯河半导体科技(无锡)有限公司 一种可配置fifo深度的装置及方法

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6603771B1 (en) 1999-07-02 2003-08-05 Cypress Semiconductor Corp. Highly scalable architecture for implementing switch fabrics with quality of services
US6584517B1 (en) 1999-07-02 2003-06-24 Cypress Semiconductor Corp. Circuit and method for supporting multicast/broadcast operations in multi-queue storage devices
US6678271B1 (en) * 1999-07-12 2004-01-13 Nortel Networks Limited High performance system and method having a local bus and a global bus
US6625177B1 (en) 1999-08-09 2003-09-23 Cypress Semiconductor Corp. Circuit, method and/or architecture for improving the performance of a serial communication link
US6628656B1 (en) 1999-08-09 2003-09-30 Cypress Semiconductor Corp. Circuit, method and/or architecture for improving the performance of a serial communication link
US7046686B1 (en) * 1999-08-17 2006-05-16 Mindspeed Technologies, Inc. Integrated circuit that processes communication packets with a buffer management engine having a pointer cache
DE10015683B4 (de) * 2000-03-29 2006-07-13 Infineon Technologies Ag Datenübertragungsspeicher
US7389358B1 (en) 2000-09-13 2008-06-17 Fortinet, Inc. Distributed virtual system to support managed, network-based services
US7487232B1 (en) * 2000-09-13 2009-02-03 Fortinet, Inc. Switch management system and method
US8250357B2 (en) 2000-09-13 2012-08-21 Fortinet, Inc. Tunnel interface for securing traffic over a network
US7574495B1 (en) * 2000-09-13 2009-08-11 Fortinet, Inc. System and method for managing interworking communications protocols
US7272643B1 (en) 2000-09-13 2007-09-18 Fortinet, Inc. System and method for managing and provisioning virtual routers
US7111072B1 (en) 2000-09-13 2006-09-19 Cosine Communications, Inc. Packet routing system and method
US7444398B1 (en) * 2000-09-13 2008-10-28 Fortinet, Inc. System and method for delivering security services
US6822958B1 (en) * 2000-09-25 2004-11-23 Integrated Device Technology, Inc. Implementation of multicast in an ATM switch
US7016349B1 (en) * 2000-09-29 2006-03-21 Cypress Semiconductor Corp. Logic for generating multicast/unicast address (es)
US6578118B1 (en) * 2000-09-29 2003-06-10 Cypress Semiconductor Corp. Method and logic for storing and extracting in-band multicast port information stored along with the data in a single memory without memory read cycle overhead
US6851000B2 (en) 2000-10-03 2005-02-01 Broadcom Corporation Switch having flow control management
US7181547B1 (en) 2001-06-28 2007-02-20 Fortinet, Inc. Identifying nodes in a ring network
US7110405B2 (en) * 2001-09-18 2006-09-19 Integrated Device Technology, Inc. Multicast cell buffer for network switch
US7035273B1 (en) 2002-02-06 2006-04-25 Marvell International Ltd. Quality of service queueing system for a network switch
JP3738736B2 (ja) * 2002-02-15 2006-01-25 日本電気株式会社 ユートピアバスセルカウンタ回路
EP1504272A2 (en) * 2002-04-30 2005-02-09 Transwitch Corporation An atm device incorporating methods and apparatus for increasing the number of utopia ports and method and apparatus for avoiding head of line blocking
US6765867B2 (en) * 2002-04-30 2004-07-20 Transwitch Corporation Method and apparatus for avoiding head of line blocking in an ATM (asynchronous transfer mode) device
US7209440B1 (en) 2002-05-07 2007-04-24 Marvell International Ltd. Method and apparatus for preventing blocking in a quality of service switch
US7110415B1 (en) 2002-05-17 2006-09-19 Marvell International Ltd. Apparatus and method for dynamically limiting output queue size in a quality of service network
US7203192B2 (en) * 2002-06-04 2007-04-10 Fortinet, Inc. Network packet steering
US7376125B1 (en) 2002-06-04 2008-05-20 Fortinet, Inc. Service processing switch
US7161904B2 (en) 2002-06-04 2007-01-09 Fortinet, Inc. System and method for hierarchical metering in a virtual router based network switch
US7177311B1 (en) * 2002-06-04 2007-02-13 Fortinet, Inc. System and method for routing traffic through a virtual router-based network switch
US7043559B2 (en) * 2002-06-27 2006-05-09 Seiko Epson Corporation System for distributing objects to multiple clients
US7124196B2 (en) * 2002-08-07 2006-10-17 Intel Corporation Processing a network packet using queues
US7266120B2 (en) 2002-11-18 2007-09-04 Fortinet, Inc. System and method for hardware accelerated packet multicast in a virtual routing system
US7738496B1 (en) 2002-12-31 2010-06-15 Cypress Semiconductor Corporation Device that provides the functionality of dual-ported memory using single-ported memory for multiple clock domains
US7688736B1 (en) 2003-05-05 2010-03-30 Marvell International Ltd Network switch with quality of service flow control
US7626985B2 (en) * 2003-06-27 2009-12-01 Broadcom Corporation Datagram replication in internet protocol multicast switching in a network device
US7720095B2 (en) 2003-08-27 2010-05-18 Fortinet, Inc. Heterogeneous media packet bridging
US7934057B1 (en) 2003-12-24 2011-04-26 Cypress Semiconductor Corporation Logic for implementing a dual clock domain read access with predictable timing for bi-directional inputs/outputs
WO2006015513A1 (en) * 2004-08-12 2006-02-16 Intel Corporation Method and system for processing multicast packets
US7499419B2 (en) 2004-09-24 2009-03-03 Fortinet, Inc. Scalable IP-services enabled multicast forwarding with efficient resource utilization
US7808904B2 (en) 2004-11-18 2010-10-05 Fortinet, Inc. Method and apparatus for managing subscriber profiles
US7742506B2 (en) * 2005-05-27 2010-06-22 Agere Systems Inc. Controlling timeslot delay in a digital communication system
US7831624B2 (en) * 2005-06-24 2010-11-09 Seagate Technology Llc Skip list with address related table structure
JP4992260B2 (ja) * 2006-03-24 2012-08-08 日本電気株式会社 バッファ装置及びバッファ制御方法
US8145809B1 (en) 2007-03-09 2012-03-27 Cypress Semiconductor Corporation Busy detection logic for asynchronous communication port
JP4552205B2 (ja) * 2007-12-17 2010-09-29 Necエンジニアリング株式会社 スイッチ機能付きフィルタ
US10050896B2 (en) * 2014-11-14 2018-08-14 Cavium, Inc. Management of an over-subscribed shared buffer
US10733144B2 (en) 2016-07-13 2020-08-04 Netapp, Inc. Persistent indexing and free space management for flat directory
US10083127B2 (en) 2016-08-22 2018-09-25 HGST Netherlands B.V. Self-ordering buffer
US11792114B2 (en) 2019-05-23 2023-10-17 Hewlett Packard Enterprise Development Lp System and method for facilitating efficient management of non-idempotent operations in a network interface controller (NIC)
CN112732166A (zh) * 2019-10-28 2021-04-30 华为技术有限公司 访问固态硬盘的方法及装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5123101A (en) 1986-11-12 1992-06-16 Xerox Corporation Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss
JP2803262B2 (ja) 1989-12-15 1998-09-24 日本電気株式会社 パケット・スイッチ
US5535197A (en) * 1991-09-26 1996-07-09 Ipc Information Systems, Inc. Shared buffer switching module
US5446726A (en) 1993-10-20 1995-08-29 Lsi Logic Corporation Error detection and correction apparatus for an asynchronous transfer mode (ATM) network device
US5390175A (en) 1993-12-20 1995-02-14 At&T Corp Inter-cell switching unit for narrow band ATM networks
JP3464034B2 (ja) 1994-03-18 2003-11-05 富士通株式会社 Atm遠隔保守用コネクション設定方式
US5537400A (en) * 1994-04-15 1996-07-16 Dsc Communications Corporation Buffered crosspoint matrix for an asynchronous transfer mode switch and method of operation
US5555244A (en) 1994-05-19 1996-09-10 Integrated Network Corporation Scalable multimedia network
US5521916A (en) * 1994-12-02 1996-05-28 At&T Corp. Implementation of selective pushout for space priorities in a shared memory asynchronous transfer mode switch
US5530806A (en) 1994-12-15 1996-06-25 At&T Corp. Method and apparatus for storing and retrieving routing information in a network node
US5636210A (en) 1995-08-02 1997-06-03 Agrawal; Jagannath P. Asynchronous transfer mode packet switch
US5689500A (en) * 1996-01-16 1997-11-18 Lucent Technologies, Inc. Multistage network having multicast routing congestion feedback
US5774465A (en) 1996-05-17 1998-06-30 Transwitch Corp. Method and apparatus for providing multiple multicast communication sessions in an ATM destination switch
US5893162A (en) 1997-02-05 1999-04-06 Transwitch Corp. Method and apparatus for allocation and management of shared memory with data in memory stored as multiple linked lists

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100413278C (zh) * 2002-10-25 2008-08-20 阿尔卡特公司 接入节点的atm交换设备中使用的组播系统和方法
CN1736068B (zh) * 2002-11-11 2012-02-29 拉姆伯斯公司 流量管理结构体系
CN101052937B (zh) * 2004-09-08 2011-06-08 费希尔-罗斯蒙德系统公司 从数据队列中丢弃部分接收的消息
CN100531123C (zh) * 2005-12-14 2009-08-19 中兴通讯股份有限公司 一种实现数据包模式到信元帧模式转换的装置及其方法
CN101035079B (zh) * 2007-04-10 2010-04-21 华为技术有限公司 一种异步转发方法、系统及设备
CN113821191A (zh) * 2021-10-13 2021-12-21 芯河半导体科技(无锡)有限公司 一种可配置fifo深度的装置及方法

Also Published As

Publication number Publication date
JP2002538718A (ja) 2002-11-12
HK1044427A1 (zh) 2002-10-18
CA2361126A1 (en) 2000-09-08
CN100512065C (zh) 2009-07-08
WO2000052858A1 (en) 2000-09-08
EP1163747A1 (en) 2001-12-19
US6246682B1 (en) 2001-06-12

Similar Documents

Publication Publication Date Title
CN100512065C (zh) 管理多个异步传输模式的信元队列的方法和装置
US6487202B1 (en) Method and apparatus for maximizing memory throughput
US6542502B1 (en) Multicasting using a wormhole routing switching element
EP0960536B1 (en) Queuing structure and method for prioritization of frames in a network switch
US6504846B1 (en) Method and apparatus for reclaiming buffers using a single buffer bit
EP0960504B1 (en) Multicopy queue structure with searchable cache area
JP3064650B2 (ja) 同報通信装置
EP0960503B1 (en) Method and apparatus for selectively discarding packet for blocked output queues in the network switch
US6523060B1 (en) Method and apparatus for the management of queue pointers by multiple processors in a digital communications network
US8010751B2 (en) Data forwarding engine
US6219352B1 (en) Queue management with support for multicasts in an asynchronous transfer mode (ATM) switch
JP2001509653A (ja) ポイント対ポイントおよび/またはポイント対マルチポイントのatmセルのバッファ化
US20040064664A1 (en) Buffer management architecture and method for an infiniband subnetwork
JPH08214000A (ja) Atmネットワークにおけるマルチキャストする方法と装置
EP0960511A1 (en) Method and apparatus for reclaiming buffers
US6754744B2 (en) Balanced linked lists for high performance data buffers in a network device
US7352766B2 (en) High-speed memory having a modular structure
US7126959B2 (en) High-speed packet memory
US20040218592A1 (en) Method and apparatus for fast contention-free, buffer management in a multi-lane communication system
US7110405B2 (en) Multicast cell buffer for network switch
JP2004536515A (ja) デュアルポートメモリエミュレーション方式によるスイッチファブリック
US7039054B2 (en) Method and apparatus for header splitting/splicing and automating recovery of transmit resources on a per-transmit granularity
US6621825B1 (en) Method and apparatus for per connection queuing of multicast transmissions
JP3157113B2 (ja) トラヒックシェイパー装置
EP0960510B1 (en) Split-queue architecture and method of queuing

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
ASS Succession or assignment of patent right

Owner name: TR TECHNOLOGY FUND LIMITED LIABILITY COMPANY

Free format text: FORMER OWNER: TRANSWITCH CORP.

Effective date: 20081031

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20081031

Address after: The United States Delaware

Applicant after: Transwitch Corp.

Address before: American Connecticut

Applicant before: Transwitch Corp.

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1044427

Country of ref document: HK

CX01 Expiry of patent term

Granted publication date: 20090708

CX01 Expiry of patent term