CN1965548B - 转送突发数据的方法和装置 - Google Patents
转送突发数据的方法和装置 Download PDFInfo
- Publication number
- CN1965548B CN1965548B CN2005800186635A CN200580018663A CN1965548B CN 1965548 B CN1965548 B CN 1965548B CN 2005800186635 A CN2005800186635 A CN 2005800186635A CN 200580018663 A CN200580018663 A CN 200580018663A CN 1965548 B CN1965548 B CN 1965548B
- Authority
- CN
- China
- Prior art keywords
- packet
- memory
- burst
- output
- indication
- 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.)
- Active
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/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
从突发接口接收的数据基于一个个突发(burst-by-burst)被接收。一旦突发被接收,它被存储在处理队列中。只要处理队列能容纳一个数据突发,一个完整的突发就被接收。所述完整的数据突发被引导给一个输出端并被用来在所述输出端生成完整的数据突发。只要接收端口能接收所述输出突发,所述输出突发就被发送。
Description
相关应用
这一专利申请要求在2004年4月12日提交的美国申请序列号No.60/561,774、题目为“转送突发数据(bursty data)的方法和装置”的优先权上述申请与本申请是同一个发明者,在此并入作为参考。这一专利申请声明在2004年6月4日提交的美国申请序列号No.10/861,879、题目为“转送突发数据的方法和装置”的优先权,上述申请序列与本申请是同一个发明者,在此并入作为参考。
发明领域
本发明适合于通信数据。特别是,本发明涉及转送突发数据的方法和装置。
背景技术
广泛多样的电子通信系统利用一个已知的“突发接口”。突发接口通常能周期性地发送和接收一定量的数据。在这样一个周期的第一个间隔内,数据通常以高数据率发送和接收。在同一周期的第二个间隔内,接口通常是静止的,也就是说,在这第二个间隔内接口不发送或接收数据。
由于从一个系统到另一个系统传送的数据有突发的性质,因此突发接口会经常用到。突发接口也经常被用作对两个系统之间数据的物理采样进行退耦的机置,这两个系统彼此通信连接。例如,在数字系统中,两个独立的系统通常使用两个独立的时钟来操作。突发接口是一个实用的装置,它可以使在两个分立的时钟系统之间进行数据传输,这是因为突发接口通常能提供弹性的缓冲能力。
在过去,突发接口通常围绕着一个线性存储器来设计,该线性存储器已知是“先进先出”(FIFO)存储器。一个FIFO存储器通常提供一个输入端口和一个输出端口。在很多实施中,输入端口和输出端口可以分别有独立的时钟。例如,通常为FIFO输入端口提供一个独立的时钟机制。利用这一独立的时钟机制,数据可以存储到该FIFO存储器,不必考虑从该FIFO中检索(retrieve)数据所用的任何时钟机制。通常,FIFO存储器为数据检索提供了一个分离并独立的时钟机制。可使用检索数据时钟机制而不必考虑在该FIFO存储器中存储数据的所使用的时钟机制。这一结构类型可以用于支持对两个独立数据系统的时钟信号退耦的简化的机制。
在突发接口中,FIFO的输入端口通常用于在第一间隔利用输入时钟机制接收数据。FIFO的输出端口可以利用独立的检索时钟机制来用于检索数据。检索时钟机制通常也作为在接收突发数据的系统中操作数据的基础。这样,检索时钟机制可被认为是操作时钟,它对接收这样突发数据的系统的内部操作进行同步。数据于是可以以与接收突发数据的系统中的操作相称的适合速率从FIFO的输出端口检索。在来自另一系统的突发数据以独立速率到达时,其可被存储在该FIFO中。
现代计算机网络系统也使用突发接口结构。例如,一个已知是系统包接口(system packet interface,SPI)的普通计算机网络系统包含一个突发接口的特殊的实施方式,该突发接口可用于从一个系统单元到另一个的数据包传输。SPI接口可以用不同的级别定义(如SPI-3和SPI-4)。SPI-3和SPI-4定义了系统包接口的各个方面,包括但不局限于传输速率,对包定尺寸和对突发(burst)定尺寸。用于传递数据包的任意突发接口中一个有趣的特性是包对于数据突发(data burst)的校准(alignment)。例如,数据突发可以用于传递完整的单个包、单个包的一部分、完整的单个包和第二个包的一部分、两个或更多个完整数据包和两个或更多个数据包的一部分。数据包对于数据突发的校准是一个普遍的问题,它与用来将数据包从一个系统通信到另一系统的突发接口类型无关。
虽然FIFO在突发接口的设计和实施中是一个有用的结构模块,但用突发接口传递数据时,会出现一些问题。一个特别的问题是流控制。当突发接口是基于FIFO时,流控制通常被没计为反映FIFO内的存储器的可用性。例如,当FIFO被填充至特定的容量时,FIFO就不能可靠地接收一个完整数据突发。相应地,正在将突发数据传送至接收系统的系统将被指示保持额外的数据传输,直至接收系统能检索存储在FIFO中的一些数据。当接收系统检索存储在FIFO中的数据时,一旦FIFO能再次可靠地容纳额外数据突发时,保持指示可暂停。虽然这样的流控制能用来管理基于FIFO的突发接口,当由数据突发传递的数据被包封时,它就不合适了。这是因为在数据突发期间可发出保持指示,阻止了在给定时间段内对完整数据突发的接收。如果FIFO不能可靠地容纳完整数据突发,即如果数据包只能部分地被FIFO接收,接收系统就不能适当地处理数据包。对于数据需要利用一个第二突发接口被转发到另一个系统的情况,这是特别有问题的。
附图说明
一些可选择的实施方式将在下文结合附图被描述,其中相同的数字标记相同的元素,其中:
图1是描述一转发突发数据的方法示例的流程图;
图2是描述一接收完整数据突发的方法示例的流程图;
图3是描述一接收完整数据突发的可选择方法的流程图;
图4是显示一引导完整数据突发至处理队列的方法示例的流程图;
图5是描述一引导完整数据突发到输出端口的方法示例的流程图;
图6是描述一引导完整数据突发到输出端口的说明性的可选择方法的流程图;
图7是转发突发数据装置的实施方式实例的框图;
图8是描述处理队列的结构示例的图示说明;
图9是一个输入锁定单元(input locker unit)的说明性的实施方式的框图;
图10是描述队列单元的一实施方式实例的结构的框图;
图11是描述输出锁定单元(output locker unit)示例性实施方式实例的框图;
图12是描述一个突发桥接控制器(bursty bridge controller)实施方式实例的框图;
图13是转发突发数据的装置的一可选择实施方式的框图;和
图14是描述转发突发数据的装置的一可选择实施方式的内部操作的数据流程图。
具体实施方式
突发接口经常用来接收包封的数据。一个包封数据接口的例子是系统包接口(SPI)。SPI接口被主要定义在两个文件中,包捂:
SPI-3(OC-48系统包接口)OIF-SPI3-01.0----针对OC-48的物理和链路层的SPI-3包接口。OIF June 2000;和
SPI-4 phase 2(OC-192系统包接口)OIF-SPI4-02.0----System Packet InterfaceLeve4(SPI-4)Phase2:针对物理和链路层设备的OC-192系统接口。OIF January2001。
虽然本方法和装置能用来处理符合SPI规范的包封的数据突发,但是所附的权利要求并不旨在局限于这样的应用范围,它们可应用于任何来自一个系统的突发数据被另一个系统所接收的应用中。
图1是一个流程图,它描述了转发突发数据的方法示例。按照这一示例方法,首先接收完整的突发数据(步骤15),然后引导完整的数据突发到处理队列(步骤20),由此突发数据得以转发。当输出端口已准备好接收突发数据时(步骤25),完整的数据突发被从处理队列转发至输出端口(步骤30)。按照本方法的说明性的变化,当处理队列不能容纳完整的数据突发时(步骤5),产生一个满指示(步骤10)。这样,只要处理队列可用,完整的数据突发就可以被接收。
图2是一个流程图,它描述了接收完整数据突发的方法示例。根据这一示例的方法,说明了最大的输入突发尺寸(步骤35)。通过说明最大的输入突发尺寸,为接收完整数据突发分配最小的存储量。例如,在一个适用于接收与SPI-3规范相称的数据突发的可选择的方法中,最大输入突发尺寸可定义为128字节。在一个说明性的应用的情况下,当接受包含突发尺寸(BURST SIZE)的SPI-4数据突发时,可应用本方法。这些仅是可适合于包封的突发接口的特定类型的突发尺寸的说明性例子,且所附的权利要求并不旨在局限于这样说明性例子的范围。
按照这种方法的一个变化,小于或等于(步骤40)最大输入突发尺寸的数据包被完整地存储(步骤45)在以前分配的存储量中。当比最大输入突发尺寸大的数据包被接收时(步骤40),数据包的第一部分被存储(步骤50),例如存入第一个以前分配的存储量中。数据包的另外部分被分开存储(步骤55),例如存入第二个以前分配的存储量中。按照这一说明性的方法的一个变化,依照最大输入突发尺寸来决定存储量的分配。
图3是一个流程图,它描述了接受完整数据突发的可选择方法。按照这一可选择的方法,当数据包小于或等于最大输入突发尺寸(步骤60)时,通过进一步存储对数据包的源指示(步骤65),完整的数据突发被接收。如果接收到的数据包大于最大输入突发尺寸(步骤60),存储数据包的第一部分的源指示(步骤70),例如存储于第一个以前分配的存储量。数据包的另外部分的源指示被分开存储(步骤75),例如存储于第二个以前分配的存储量。在这一可选择的方法中,依照最大输入突发尺寸以及提供用于容纳与数据包相关的源指示的额外的存储量,来说明第一个以前分配的存储量。
图4是一个流程图,它显示了引导一个完整数据突发至处理队列的方法示例。按照这一示例方法,依照源指示来确定处理队列。当处理队列对一个特定的源指示可用时(步骤80),通过请求队列容器(queue container)(步骤85)并引导完整数据突发至队列容器(步骤90),来完成引导该完整的数据突发至处理队列。当处理队列对一个特定的源指示不可用时(步骤80),必须请求一个新的处理队列。根据本方法的一个说明性变化,相应于队新的处理队列的请求而创建新的处理队列(步骤95)。然后该新处理队列与此前不能对其确定处理队列的源指示相关联。
图5是一个流程图,它描述了引导一个完整数据突发到一个输出端口的方法示例。按照这一方法示例,完整的数据突发按照说明的最大输出突发尺寸从处理队列被引导到输出端口(步骤105)。当数据包小于或等于最大输出突发尺寸(步骤110)时,该完整数据包被存储(步骤115),例如存储于以前分配的存储量。否则,数据包的第一部分被存储(步骤120)而数据包的另外部分被分开存储(步骤125)。按照一可选择的方法,数据包的第一部分被存储于第一以前分配的存储量,而数据包的另外部分被存储于第二以前分配的存储量。每种情况中被分配的存储量是根据以前说明的最大输出突发尺寸来分配的。
在进一步引导完整数据突发到输出端口的过程中,为数据包确定目的地指示(步骤130)。然后目的地指示连同数据包一起被存储(步骤135)。按照一个可选择的方法,分配的用来容纳数据包的存储量是按照以前说明的最大输出突发尺寸来分配的,且分配额外的存储量用来支持目的地指示的存储。
图6是一个流程图,它描述了引导完整的数据突发到输出端口的说明性的可选择方法。按照这一可选择的方法,说明最大输出突发尺寸(步骤140)。一个或更多个处理队列被用作一个源,输出突发根据最大输出突发尺寸构建。这样,按照这一可选择的方法,存储在一个或更多个处理队列中的一个或更多个完整的数据突发能够被结合,以形成单个的输出突发。依照所说明的最大输出突发尺寸和从一个或更多个处理队列中检索的每个完整数据突发,确定能够被结合以形成单个输出突发的完整数据突发的数目。
按照这一可选择方法的一个变化的例子,第一和第二数据包(步骤145)从一个或更多个处理队列中检索并一起存储,以形成一个输出突发,该输出突发小于或等于最大输出突发尺寸。在这一可选择的方法的另一变化中,第一数据包和第二数据包的一部分(步骤150)从一个或更多个处理队列中检索并一起存储,以形成一个输出突发,该输出突发小于或等于最大输出突发尺寸。按照这一可选择的方法的另一变化,第一数据包的一部分和一个完整的第二数据包(步骤155)从一个或更多个处理队列中检索,以形成一个输出突发,该输出突发小于或等于最大输出突发尺寸。按照这一可选择的方法的另一变化,第一数据包的一部分和第二数据包的一部分(步骤160)从一个或更多个处理队列中检索,以形成一个输出突发,该输出突发小于或等于最大输出突发尺寸。
按照这一可选择方法,一个完整的数据突发通过进一步确定第一目的地指示(步骤165)和第二目的地指示(步骤170)被转发到输出端。根据第一数据包和第一数据包的一部分之中的至少一个来确定第一目的地指示。根据第二数据包中和第二数据包的一部分之中的至少一个来确定第二目的地指示。第一和第二目的地指示随后被存储(步骤175),例如连同根据这里所述而形成的一个完整的输出突发,存储上述第一和第二目的地指示。
图7是转发突发数据的装置的实施方式实例的框图。按照这一实施方式实例,用于转发突发数据的装置包含输入锁定单元200,队列单元205和输出锁定单元210。按照一个可选择的实施方式,输入锁定单元200包括一个第一突发接口215。按照另一个可选择的实施方式,输出锁定单元210包括一个第二突发接口220。按照一个可选择的实施方式,突发接口包括一个用于帮助到外部网络接口设备的连接的电路。例如,一个包含在输入锁定单元200或输出锁定单元210中的突发接口可用来连接适应SPI的网络设备(SPI compliant network device),该网络没备提拱了物理层连通性。按照另一个可选择的实施方式,突发接口包括一个能够直接连接到数据网络的电路。例如,按照这一可选择的实施方式的突发接口包含适应SPI的网络设备,该设备提供了物理层连通性。应该注意到,适应SPI的网络设备的任何参考在此被描述仅为了说明的目的,这并不意味着限制所附权利要求的范围。
输入锁定单元200使用第一突发接口215作为从如230的源接收完整数据突发的装置。完整数据突发从输入锁定单元200转发245至队列单元205。按照一个可选择的实施方式,队列单元205进一步包括了用于存储完整数据突发的队列存储器225。队列单元205将队列存储器225组织成一个或更多个处理队列。处理队列的结构在下文更充分地描述。当输出端口能接收来自处理队列的完整的数据突发时,队列单元205引导250完整数据突发到输出锁定单元210。队列单元205接收来自突发数据接口的输出请求信号375。按照一个举例的使用情况,该使用情况不意味着限制下文所附权利要求的范围,当用所示装置分派数据突发至适应SPI的数据接口时,输出请求信号375包含一个多重状态信号,该信号指示目的地设备是否处于“满足”,“饿”或“饥渴”状态。输出锁定单元利用第二突发接口220使完整数据突发对目的地设备可用240。
通过在处理队列中存储完整的数据突发,只要处理队列能接受额外的数据突发,所示装置就能利用第一突发接口215连续地接收完整的数据突发。当处理队列不能接收完整的数据突发时,队列单元205产生一个保持信号(holdsignal)232。保持信号232用来阻止数据突发的到达。例如,保持信号232可在适应SPI的数据接口中被用作硬件流控制信号。应该注意到,由队列单元205产生的硬件流控制信号232被用来控制数据突发的到达。这与用什么样的突发数据接口类型将数据突发传递至第一突发接口215无关。相应地,所附权利要求的范围并不意味着局限于以上所描述的任何突发接口的特定的例子。
图8是描述处理队列的结构示例的图示说明。按照队列单元205的一个实施方式例子,队列单元205将处理队列组织为链表。按照这一实施方式的例子,队列单元205维护一个第一突发指针400。第一突发指针400用于存储突发容器405的地址,突发容器405用于存储一个第一完整数据突发425。按照这一实施方式的例子,队列单元205包括位于其产生的突发容器405之中的下一个突发指针415。下一个突发指针415用于存储在链表中的其后的突发容器410的引用。按照实施方式的另一例子,队列单元205为突发标识420在突发容器中提供了额外的存储。突发标识420通常包括数据突发的源指示275,该数据突发由输入锁定单元200利用第一突发接口215接收。按照实施方式的另一例子,突发标识420进一步包括一个突发长度295。按照另一个可选择的实施方式,队列单元205使用突发标识420以存储数据包信息。例如,一个所示实施方式,给包的起始280,包的继续285和包的结束290设置各个标记。用这些标记来表示数据包的哪一部分是包含在存储于突发容器405的突发数据425中。
图9是输入锁定单元的实施方式示例的框图。按照这一所示的实施方式,输入锁定单元200包含一个第一突发数据接口215。突发数据接口215的结构前面已经描述过了。输入锁定单元200进一步包括了多个输入锁定265。每个输入锁定包括对一个完整数据突发的存储。在每个输入锁定265中提供的存储量按照本方法的要领由最大输入突发尺寸300来说明。输入锁定单元200的示例性的实施方式进一步包括了一个输入控制器260。
按照所示实施方式,输入控制器260产生一个传输指令信号261,该信号导致数据突发被引导到可用的输入锁定265,该数据突发是由第一突发数据接口215从源如230接收到的。输入控制器260将连续的完整数据突发存储在一个或更多个相应的数据锁定265中,以此来管理连续的完整数据突发的到达。按照一个可选择的实施方式,输入锁定单元200提供数据锁定265,数据锁定265进一步包括对突发标识420的存储。各个数据锁定265可由队列单元205直接访问。队列单元205检索完整的数据突发245以及任选的突发标识420将被更充分地描述。
按照一个说明性的使用情况,当接收包封的数据传输时,应用本实施方式。在一些情况下,完整的数据包包含在由第一突发接口215接收的单个数据突发中。在这种情况下,输入控制器260使到达第一突发接口215的完整数据包被存储到第一输入锁定265中。在其他情况下,数据包比数据突发大,并必须跨越两个或更多数据突发。当数据包跨越两个或更多数据突发时,输入控制器260在第一输入数据锁定265中存储数据包的第一部分,并在第二输入数据锁定266中存储数据包的另外的部分。
图10是描述队列单元的一实施方式实例的框图。按照这一实施方式例子,队列单元205包含一个队列控制器325和队列映射(queue map)330。按照一个可选择的实施方式,队列单元205进一步包含队列存储器350。在操作中,,队列单元205指示何时队列存储器350中维护的处理队列能容纳一个完整的数据突发。当处理队列不能容纳一个完整的数据突发时,队列控制器325产生保持信号232。保持信号232可以用作流控制信号,如以前的随图7提供的操作说明中所讨论的。当处理队列能容纳一个完整的数据突发时,队列控制器325产生一取出锁定信号(fetch-locker signal)246。取出锁定信号246被用来从一个包含在输入锁定单元200中的输入锁定265中检索一个完整数据突发。按照一个可选择的实施方式,为包含在输入锁定单元200中的每个输入锁定265产生分立的取出锁定信号246,即取出锁定信号246包括了一个输入锁定265的固有选择。
为响应取出锁定信号246,一个特定的输入锁定265提供了一个完整的数据突发245给队列存储器350。利用从输入锁定265接收到的突发标识340来选择第一突发指针345。当需要一个新的处理队列时,用第一突发指针345指示在新的容器链表中的第一突发容器,新的容器链表一起形成了新的处理队列。当与一个数据突发相关联的源指示还没有和存储在队列映射330中的第一突发指针相关联时,需要一个新的处理队列。选定的第一突发指针345构成地址360的一部分,该地址用来在队列存储器350中存储突发数据。当数据突发245的连续单元存储在队列存储器350中时,额外的地址比特位(即偏移(offset))355由队列控制器325提供。突发标识340按照地址360也存储在队列存储器350中,地址360包括了第一突发指针345和由队列控制器325提供的一个偏移355。当收到随后的数据突发时,队列控制器325在队列存储器350中存储下一个突发指针346,该指针作为到存储在队列存储器350中的随后的数据突发容器的连接。
正如前面所讨论的,队列单元205收到来自突发数据接口的输出请求信号375。在检索数据突发250时,队列单元205也提供一个输出选通脉冲(strobe)380。在从队列存储器350检索数据突发时,按照第一突发指针345选择数据突发250,在提供了队列中第一容器的内容时,该指针由队列映射330提供。当队列存储器350提供来自队列中的第一容器的数据突发250时,它也将连接地址365提供回至队列控制器325。队列控制器325随后引导这一连接地址347到队列映射330。当队列映射330接收到一个有效的连接地址347时,它利用有效连接地址347来选择存储在队列存储器350中的数据容器。应该注意到的是,随后,利用通常携带有第一突发指针的信号线(即信号线345),队列存储器350被寻址。在这种情况下,这些信号线携带由队列映射350收到的连接地址347。简而言之,以可从队列控制器325接收的有效连接地址347,队列映射330取代它为特定突发标识340所具备的(通过选择器335)任何第一突发指针。
图11是描述输出锁定单元实施方式实例的框图。按照这一实施方式的例子,一个输出锁定单元包含多个输出锁定445、一个目的地确定单元441和一个输出控制器440。同时包含在这一实施方式例子中的还有第二突发接口220。在操作中,输出控制器440响应由队列单元205产生的输出选通脉冲380。在对输出选通脉冲380的响应中,输出控制器440生成一个锁定选择信号。输出控制器440通常能够生成多个锁定选择信号,每个锁定选择信号对应于一个特定的输出数据锁定445。应该注意到,在任一给定时刻,只有一个锁定选择信号是有效的。还应该注意到,利用由输出控制器440生成的锁定选择,可以使来自多个输出数据锁定445中的单个输出数据锁定能够工作。被激活的输出数据锁定445接收来自队列单元205的数据突发250。
在输出控制器440操作时,它识别包含在数据突发中的数据包的部分。例如,输出控制器440检查包含在从队列单元205收到的数据突发250中的突发标识420。按照这一突发标识,输出控制器440确定数据包的哪一部分被包含在数据突发中。例如,如原先参考图8所述,一个突发标识的说明性实施方式包括一个起始包标记280,一个继续包标记285和一个结束包标记290。
按照一个可选择的实施方式,当完整的数据包小于等于输出锁定单元210所容纳的最大输出突发尺寸时,输出控制器440在第一输出数据锁定445中存储完整的数据包。数据突发的尺寸可以根据包含在突发标识420中的突发长度指示295来确定。当一个数据包大于最大突发尺寸时,数据包的第一部分被存储在第一输出数据锁定445中,数据包的另外部分被存储在第二输出数据锁定445中。应该注意到,在这种情况下,数据包的第一部分包含在从队列单元205接收的第一数据突发中。在这种情况下,数据包的另外部分被接收在从队列单元205接收的第二数据突发中。
通常,数据包信息结合的四种不同类型可以从队列单元205中接收。在一种情况下,第一数据包包含在第一数据突发中,第二数据包包含在第二数据突发中。在这种情况下,包含在第一数据突发中的第一数据包存储在第一输出数据锁定445中。在不同的应用场合,第一数据包包含在第一数据突发中,而第二数据包的一部分包含在第二数据突发中。相应地,第一数据包存储在第一输出数据锁定中,而第二数据包封的所述部分存储在第二输出数据锁定中。在另外的示例使用场合,第一数据突发包含第一数据包的一部分,而整个第二数据包包含在一个第二数据突发中。在这种情况下,第一数据包的所述部分存储在第一输出数据锁定中,而整个第二数据包存储在第二输出数据锁定中。在另外一种情况下,输出控制器将检测这样一个事实,即第一数据突发包括第一数据包的一部分而第二数据突发包括第二数据包的一部分。在这一操作情形下,第一数据包的所述部分存储在第一输出数据锁定中,而第二数据包的所述部分存储在第二输出数据锁定中。
目的地确定单元441操作,为从队列单元205接收的每个数据突发生成目的地指示,它被存储在一个包含于输出锁定单元210中的输出数据锁定445中。按照一个可选择的实施方式,目的地确定单元441以从队列单元205接收的数据包、数据包的第一部分和数据包的另外部分中的至少一个为基础,生成目的地指示。按照另一个可选择的实施方式,目的地确定单元441基于从队列单元205接收的第一数据包和第一数据包的一部分中的至少一个,生成第一目的地指示。按照这一可选择的实施方式,目的地确定单元441基于从队列单元205接收的第二数据包和第二数据包的一部分中的至少一个生成第二目的地指示。由目的地确定单元441生成的一个或更多个目的地指示被引导到第二突发接口220并为第二突发接口用于当其传播240到第二突发接口媒介上时寻址数据突发。
图12是描述一个突发桥接控制器实施方式实例的框图。按照这一实施方式例子,突发桥接控制器503包含一个输入锁定单元510,一个队列控制器515,输出锁定单元520和存储器控制器530。在这一实施方式例子中,输入锁定单元510包括一个或更多个输入数据锁定,每个都能够存储从第一突发接口505接收的完整的数据突发。第一突发接口505通常能够接收来自第一突发接口媒介540的数据突发。输出锁定单元520包括一个或更多个输出数据锁定,每个都能够接收来自队列控制器515的完整数据突发。输出锁定单元520引导一个或更多个输出数据锁定的内容到第二突发接口525。第二突发接口525通常能够传播数据突发至第二突发接口媒介550。所有这些单元的上述操作是与这里所讲述的技术和方法相称的。
在突发桥接控制器503操作时,队列控制器515通过将数据突发引导到存储控制器530来妥善安排数据突发的存储,该数据突发存储在包含于输入锁定单元510中的一个或更多个输入数据锁定中的一个。队列控制器515通过存储控制器530在存储器535中产生一个处理队列,该存储器依附于突发桥接控制器503。这一实施例中的队列控制器515以与上述其他实施方式中的队列控制器相称的方式来操作。相应地,在存储器535中生成第一突发容器,存储在输入数据锁定中的数据突发被引导到这个第一突发容器。与特定的源指示相关联的随后的数据突发存储在额外的容器中,这些容器基于需要在存储器535中生成。队列控制器515能够基于诸如存储器535的使用情况,但不局限于这样情况,产生一个保持信号516。
按照这一可选择的实施方式,输出锁定单元520与队列控制器515交互作用,以检索存储在存储器535中的突发容器中的数据突发。这一交互作用是与本文描述的输出锁定的其他实施方式的交互作用相称的。从存储器535中检索该数据突发(即从存储在存储器535中的突发容器中),并将其引导到包含在输出数据单元520中的输出数据锁定,然后其被引导到第二突发接口525。如上所述,第二突发接口525引导该数据突发到第二突发接口媒介550。
图13是转发突发数据装置的一个可选择的实施方式的框图。按照这一实施方式的例子,从如620的源到如630的目的地转发突发数据的装置600包括一个或更多个处理器605、一个第一突发接口615、一个第二突发接口625和一个存储器640。这些单元依靠总线610彼此通信连接。装置600的这一实施例还包括一个或更多个功能模块。功能模块通常实施为指令序列。按照一个可选择的实施方式,实施功能模块的指令序列存储在存储器640中。读者应理解,术语“最低限度地使处理器(minimally causes the processor)”及其变形意在作为开口的(open-ended)功能列举,这些功能由处理器605实行,正如它执行特定的功能模块(即指令序列)。这样,一个实施方式被包含在所附权利要求的范围内,在该实施方式中,特定的功能模块使处理器605完成除了在所附权利要求中定义的功能之外的其他功能。
按照一个可选择的实施方式,这里所描述的功能模块(即它们相应的指令序列)能够按照本方法转发突发数据,这些功能模块可以被传送到计算机可读媒介上。这样媒介的例子包括但不局限于随机访问存储器、只读存储器(ROM)、压缩磁盘ROM(CD ROM)、软盘、硬盘驱动器、磁带和数字多功能盘(DVD)。按照这里所示的技术和要领,这样的能单独或组合以构成单机产品的计算机可读媒介可用来将通常用途的计算平台转换成可以转发突发数据的设备。相应地,这里所附的权利要求包括这样的计算机可读媒介,其被传送了能实施本方法和所有这里所述的要领的指令序列。
这一实施例的存储器640中存储的是功能模块,包括突发接收器模块645、队列管理模块655和突发分派模块650。在操作中,存储器640被分配以提供输入锁定缓冲器670、队列缓冲器675和输出锁定缓冲器680。应该注意到,至少按照一个可选择的实施方式,处理器605能够给第一突发接口615发出保持信号607。保持信号607相应于这里提供的要领进行操作。
图14是描述转发突发数据装置的一个可选择的实施方式的内部操作的数据流程图。按照这一实施方式的例子,第一突发接口615接收到数据突发620。当由处理器605执行时,突发接收器模块645最低限度地使处理器605从第一突发接口615检索完整的数据突发。突发接收器模块645进一步最低限度地使处理器605将该完整的数据突发存储在存储器640中的一个部分,这部分已知为输入锁定缓冲器670。按照一个说明性的可选择的实施方式,本装置的一个特征是突发接收器模块645包含一个快速执行模块(例如:实施为一个中断服务程序)。这样,突发接收器模块645使得处理器605实行简化了的从第一突发接口615到存储器640的完整数据突发的传输。
按照一个可选择的实施方式,通过首先最小限度地使处理器605确立最大输入突发尺寸,突发接收器模块645使处理器将完整的突发数据从第一突发接口615移动至输入锁定缓冲器670。按照一个可选择的实施方式,依照最大输入突发尺寸指示来确立最大输入突发尺寸。按照另一个可选择的实施方式,这一指示由处理器605从一个外部源接收。按照另一个可选择的实施方式,最大输入突发尺寸指示由处理器605从存储器640检索。通常,装置600的制造时,最大输入突发尺寸指示被存储在存储器640中。
按照另一个可选择的实施方式,处理器605继续执行突发接收器模块645,同时,当数据包小于或等于最大输入突发尺寸时,进一步地将一个完整的数据包存储在输入锁定缓冲器670。按照这一可选择的实施方式,处理器605进一步在输入锁定缓冲器670中存储数据包的第一部分,直至达到最大输入突发尺寸,并且当数据包大于最大输入突发尺寸时,在输入锁定缓冲器670分开存储数据包的另外部分,直至达到最大输入突发尺寸。
按照另一个可选择的实施方式,当数据包小于或等于最大输入突发尺寸时,处理器605进一步在输入锁定缓冲器670中存储数据包的源指示。处理器605继续执行这一可选择实施方式的突发接收器模块645,同时,当数据包大于最大输入突发尺寸时,进一步最小限度地使处理器605在输入锁定缓冲器670中存储数据包一部分的源指示,并且在输入锁定缓冲器670分开存储数据包另外部分的源指示。
处理器605通过执行队列管理模块655继续操作。当由处理器605执行时,队列管理模块655最小限度地使处理器605在存储器640的一部分中产生一个处理队列,存储器640的这一部分已知为队列缓冲器675。当与收到的数据包相关联的源指示没有相应的处理队列时,可以用处理器605来产生处理队列。如果处理队列和收到的数据包相关联,处理器605继续执行队列管理模块655,同时,最小限度地将输入锁定缓冲器670的内容存储到相关联的处理队列中,该队列由处理器605在队列缓冲器675中维护。
当由处理器605执行时,另一个可选择的说明性的实施方式中的队列管理模块655最小限度地使处理器将一个完整的数据突发从在队列缓冲器675中维护的处理队列移至存储器640的一部分,这一部分已知为输出锁定缓冲器680。按照一个可选择的实施方式的例子,队列管理模块655通过最小限度地使处理器确立最大输出突发尺寸,使处理器605移动完整的数据突发。按照一个可选择的实施方式,通过最小限度地使处理器接收一个最大输出突发尺寸指示来确立最大输出突发尺寸。在另一个可选择的实施方式中,最大输出突发尺寸作为一个值存储在存储器640中,处理器605从那里对其检索。
在一个可选择的实施方式的例子中,当由处理器605执行时,如果数据包小于或等于最大输出突发尺寸,队列管理模块655最小限度地使处理器605在输出锁定缓冲器680中存储数据包。按照这个可选择的实施方式的例子,当数据包大于最大输出突发尺寸时,队列管理模块655进一步最小限度地使处理器605在输出锁定缓冲器680中存储数据包的第一部分,直至达到最大输出突发尺寸,同时进一步最小限度地使处理器605在输出锁定缓冲器680中也存储数据包另外部分,直至达到最大输出突发尺寸。当由处理器605执行时,这一可选择的实施方式例子中的队列管理模块655进一步最小限度地使处理器605为存储的数据包,存储的数据包的第一部分和存储的数据包的另外部分中的至少一个确定目的地指示。随即,所确定的目的地指示被存储在输出锁定缓冲器680,同时处理器605继续执行队列管理模块655。
按照另一个可选择的实施方式,当由处理器605执行时,队列管理模块655通过最小限度地使处理器605利用转换映射(translation map)确定目的地指示,来使处理器605确定目的地指示。相应地,处理器605利用特定数据包的源指示来从转换映射中选择目的地指示。在另一个可选择的实施方式中,当由处理器605执行时,队列管理模块655通过最小限度地使处理器605从存储在输入锁定缓冲器670中的数据包中提取首部部分,来使处理器605确定目的地指示。随即按照提取的首部部分,处理器605产生目的地指示,同时处理器605继续执行队列管理模块655。
在另一个可选择的实施方式中,队列管理模决655通过最小限度地使处理器605确立最大输出突发尺寸,来使处理器从存储在队列缓冲器675的处理队列移动完整数据突发。按照一个可选择的实施方式,处理器605按照最大输出突发尺寸指示确立最大输出突发尺寸。按照另一个可选择的实施方式,这一指示被处理器605从存储器640中检索,在存储器640中该指示作为一个值被存储。在另一个可选择的实施方式中,处理器605继续执行队列管理模块655,同时从转发突发数据的装置600的外部源接收最大输出突发尺寸指示。
按照一个可选择的实施方式例子,当由处理器605执行时,队列管理模块655最小限度地使处理器605确立最大输出突发尺寸。按照另一个可选择的实施方式,队列管理模块655进一步最小限度地使处理器605按照最大输出突发尺寸在输出锁定缓冲器680中存储第一数据包和第二数据包。在另一个可选择的实施方式中,队列管理模块655进一步最小限度地使处理器605按照最大输出突发尺寸在输出锁定缓冲器680中存储第一数据包和第二数据包的一部分。在另一个可选择的实施方式中,队列管理模块655进一步最小限度地使处理器605按照最大输出突发尺寸在输出锁定缓冲器680中存储第一数据包的一部分和第二数据包。在另一个可选择的实施方式中,队列管理模块655进一步最小限度地使处理器605按照最大输出突发尺寸在输出锁定缓冲器680中存储第一数据包的一部分和第二数据包的一部分。在每一个这样的可选择的实施方式中,在处理器执行队列管理模块655时,它还从一个或更多个存储在队列缓冲器675的处理队列中检索数据包或数据包的一部分,队列缓冲器675在存储器640中维护。在一个实施方式中,队列管理模块655能够将保持信号607发送至第一突发接口615。
在处理器605继续执行队列管理模块655的这一可选择的实施方式时,它为第一数据包和第一数据包的一部分中的至少一个确定第一目的地指示,并为第二数据包和第二数据包的一部分中的至少一个确定第二目的地指示,然后在输出锁定缓冲器680中存储第一和第二目的地指示。当处理器605继续执行队列管理模块655的这一可选择的实施方式时,输出锁定缓冲器680的内容被通信到突发分派模块650,其又通过总线610从存储器640被通信到第二突发接口625,第二突发接口625与如630的目的地相通信。
本方法和装置利用几个可选择的典型的实施方式来描述,可以预期,对那些本领域的技术人员来说,在阅读了说明并研究了图之后,本发明的可选择方式、调整、改变和等同是显而易见的。因此,这意味着这里所附权利要求真正的主旨和范围包括所有这样的可选择方式、调整、改变和等同。
Claims (33)
1.一种转发突发数据的方法,包括:
接收完整的数据突发至一个存储器,其中接收完整的数据突发包括:从所述存储器接收最大输入突发尺寸,且当数据包小于或等于所述最大输入突发尺寸时,在所述存储器中存储完整的所述数据包,且当数据包大于所述最大输入突发尺寸时,在所述存储器中存储所述数据包的第一部分直至达到所述最大输入突发尺寸,并且在所述存储器中还分开存储所述数据包的另外部分直至达到所述最大输入突发尺寸;
引导所述存储器中的所述完整的数据突发到所述存储器中的处理队列;和
当输出端口可以为一个特定的逻辑端口接收数据时,从所述存储器中的所述处理队列引导所述存储器中的所述完整的数据突发到所述输出端口。
2.如权利要求1所述的方法,进一步包括当所述存储器中的处理队列不能容纳数据突发时产生一个满指示。
3.如权利要求1所述的方法,进一步包括:
当数据包小于或等于所述最大输入突发尺寸时,在所述存储器中存储所述数据包的源指示;和
当数据包大于所述最大输入突发尺寸时,在所述存储器中存储所述数据包的一部分的源指示,并且在所述存储器中还分开存储所述数据包的另外部分的源指示。
4.如权利要求1所述的方法,进一步包括当与所述存储器中的接收的数据包相关联的所述存储器中的源指示没有相应的处理队列时,在所述存储器中请求一个处理队列。
5.如权利要求1所述的方法,其中,从所述存储器中的所述处理队列引导所述存储器中的所述完整数据突发到输出端口包括:
从所述存储器检索最大输出突发尺寸;
当从所述存储器中的所述输出队列接收到的数据包小于或等于来自所述存储器的所述最大输出突发尺寸时,在所述存储器中存储所述数据包;
当从所述存储器中的所述输出队列接收到的数据包大于所述最大输出突发尺寸时,在所述存储器中存储所述数据包的第一部分直至达到所述最大输出突发尺寸,并且在所述存储器中还分开存储所述数据包的另外部分直至达到所述最大输出突发尺寸;
为存储的数据包,存储的数据包的第一部分和存储的数据包的另外部分之中的至少一个确定目的地指示;和
在所述存储器中存储所述确定的目的地指示。
6.如权利要求5所述的方法,其中,确定目的地指示包括以下步骤中的至少一个,即利用转换映射将源指示转换成目的地指示和从所述存储器中的数据包中提取首部部分以及按照所述提取的首部部分生成目的地指示。
7.如权利要求1所述的方法,其中,从所述存储器中的所述处理队列引导所述存储器中的所述完整的数据突发到输出端口包括:
在所述存储器中说明最大输出突发尺寸;
按照所述最大输出突发尺寸,在所述存储器中一起存储下述的至少一个:第一数据包和第二数据包;第一数据包和第二数据包的一部分;第一数据包的一部分和第二数据包;和第一数据包的一部分和第二数据包的一部分,所述数据包是从一个或更多个输出队列接收的;
为第一数据包和第一数据包的一部分中的至少一个确定第一目的地指示并为第二数据包和第二数据包的一部分中的至少一个确定第二目的地指示;和
在所述存储器中存储所述第一目的地指示和第二目的地指示。
8.一种转发突发数据的方法,包括:
接收完整数据突发至集成电路中的一个存储器,其中,接收完整的数据突发包括:按照在所述集成电路中的所述存储器接收到的最大输入突发尺寸指示确立最大输入突发尺寸,且当数据包小于或等于所述最大输入突发尺寸时,在所达集成电路中的所述存储器存储完整的所述数据包,且当数据包大于所述最大输入突发尺寸时,在所述集成电路中的所述存储器存储所述数据包的第一部分直至达到所述最大输入突发尺寸,并且还在所述集成电路中的所述存储器分开存储所述数据包的另外部分直至达到所述最大输入突发尺寸;
引导所述完整的数据突发到所述集成电路中的所述存储器中的处理队列;和
当输出端口能够为一个特定的逻辑端口接收数据时,从包含在所述集成电路中的所述存储器中的所述处理队列中引导所述完整数据突发到包含在所述集成电路中的所述输出端口。
9.如权利要求8所述的方法,进一步包括当所述集成电路中的所述存储器中的处理队列不能容纳数据突发时,生成一个满指示。
10.如权利要求8所述的方法,进一步包括:
按照在所述集成电路中的所述存储器接收到的最大输入突发尺寸的指示确立最大输入突发尺寸;
当数据包小于或等于所述最大输入突发尺寸时,在所述集成电路中的所述存储器存储所述数据包的源指示;和
当数据包大于所述最大输入突发尺寸时,在所述集成电路中的所述存储器存储所述数据包第一部分的源指示,并且还在所述集成电路中的所述存储器分开存储所述数据包的另外部分的所述源指示。
11.如权利要求8所述的方法,进一步包括当与接收到的数据包相关联的源指示没有相应的处理队列时,请求在所述集成电路中的所述存储器创建所述存储器中的一个处理队列。
12.如权利要求8所述的方法,其中,从所述存储器中的所述处理队列引导所述完整数据突发到输出端口包括:
按照在所述集成电路中的所述存储器接收到的最大输出突发尺寸的指示确立最大输出突发尺寸;
当从所述输出队列接收到的数据包小于或等于所述最大输出突发尺寸时,存储所述数据包;
当从所述输出队列接收到的数据包大于所述最大输出突发尺寸时,在所述集成电路中的所述存储器存储所述数据包的第一部分直至达到所述最大输出突发尺寸,并且在所述集成电路中的所述存储器分开存储所述数据包的另外部分直至达到所述最大输出突发尺寸;
在所述集成电路中为存储的数据包,存储的数据包的第一部分和存储的数据包的另外部分之中的至少一个确定目的地指示;和
在所述集成电路中的所述存储器存储所述确定的目的地指示。
13.如权利要求12所述的方法,其中确定目的地指示包括以下步骤中的至少一个,即利用包含在所述集成电路中的转换映射将源指示转换成目的地指示和从数据包中提取首部部分以及按照所述提取的首部部分生成目的地指示。
14.如权利要求8所述的方法,其中,从所述存储器中的所述处理队列引导所述完整的数据突发到输出端口包括:
按照在所述集成电路中的所述存储器接收到的最大输出突发尺寸的指示确立最大输出突发尺寸;
按照所述最大输出突发尺寸,在所述集成电路中的所述存储器一起存储下述的至少一个:第一数据包和第二数据包;第一数据包和第二数据包的一部分;第一数据包的一部分和第二数据包;和第一数据包的一部分和第二数据包的一部分,所述数据包是从一个或更多个输出队列接收的;
在所述集成电路中,为第一数据包和第一数据包的一部分中的至少一个确定第一目的地指示,并为第二数据包和第二数据包的一部分中的至少一个确定第二目的地指示;和
在所述集成电路中的所述存储器存储所述第一和第二目的地指示。
15.一种转发突发数据的装置,包括:
位于一个存储器中的输入锁定单元,其能够接收完整数据突发,其中所述存储器中的所述输入锁定单元包括:第一突发数据接口,和多个输入锁定,每个输入锁定能存储数据直至达到最大输入突发尺寸,和输入控制器,当整个数据包可以被存储在一个输入锁定中时,所述输入控制器使得到达所述第一突发接口的完整数据包被存储在第一输入锁定中,否则,使得数据包的第一部分被存储在第一输入锁定中,而所述数据包的另外部分被存储在第二输入锁定中;
所述存储器中的队列单元,其能够存储来自所述存储器中的处理队列中的所述存储器中的所述输入锁定单元的完整数据突发;和
所述存储器中的输出锁定单元,其能够使从所述存储器中的所述处理队列接收的完整数据突发变得可用。
16.如权利要求15所述的装置,其中,当处理队列不能接收数据突发时,所述存储器中的所述队列单元能够生成一个保持指示。
17.如权利要求15所述的装置,其中,每个输入锁定能进一步存储突发标识,以及其中所述的输入控制器使得源指示与相关联的数据包一起被存储。
18.如权利要求15所述的装置,其中,当与接收的数据包相关联的源指示没有相关联的处理队列时,所述存储器中的所述队列单元能够在所述存储器中创建一个新的处理队列。
19.如权利要求15所述的装置,其中所述存储器中的所述输出锁定单元包括:
多个输出锁定,每个能够存储数据直至达到最大输出突发尺寸;
第二突发接口;
目的地确定单元,其能够根据到达所述输出锁定单元的数据包,数据包的第一部分和数据包的另外部分中的至少一个生成目的地指示;和
输出控制器,其能够:
当完整的数据包小于或等于所述最大输出突发尺寸时,将从所述存储器中的处理队列中接收的所述完整数据包存储到第一输出锁定中,否则,在第一输出锁定中存储数据包的第一部分并在第二输出锁定中存储所述数据包的另外部分,以及其中所述输出控制器能够进一步
引导在其中一个所述输出锁定中存储的数据到所述第二突发接口。
20.如权利要求19所述的装置,其中,所述目的地确定单元包括转换映射和数据包首部提取单元中的至少一个,所述转换映射能够根据收到的数据包的源指示提供目的地指示,所述数据包首部提取单元能够从包含在接收到的数据包中的包首部提取目的地指示。
21.如权利要求15所述的装置,其中,所述存储器中的所述输出锁定单元包括:
多个输出锁定,每个能够存储数据直至达到最大输出突发尺寸;
输出接口,包括第一类型突发接口和第二类型突发接口中的至少一个;
目的地确定单元,其能够为到达所述输出锁定单元的第一数据包和第一数据包的一部分中的至少一个生成第一目的地指示,并能够为到达所述输出锁定单元的第二数据包和第二数据包的一部分中的至少一个生成第二目的地指示;和
输出控制器,其能够:
按照所述最大输出突发尺寸,在输出锁定中存储从一个或更多个输出队列接收的下述的至少一个:第一数据包和第二数据包;第一数据包和第二数据包的一部分;第一数据包的一部分和第二数据包;和第一数据包的一部分和第二数据包的一部分,以及其中所述输出控制器能够进一步引导存储在一个所述输出锁定中的数据到所述输出接口。
22.一种突发桥接控制单元,包括:
位于一个存储器中的输入锁定单元,其能够存储从第一突发接口接收的完整数据突发,其中,所述存储器中的所述输入锁定单元包括:多个输入锁定,每个所述输入锁定能存储数据突发直至达到最大输入突发尺寸,和输入控制器,当从所述第一突发接口接收到的数据包小于或等于所述最大输入突发尺寸时,所述输入控制器能够存储完整的所述数据包,否则,在第一输入锁定中存储数据包的第一部分,在第二输入锁定中存储所述数据包的另外部分;
队列控制器,其能够存储保存在所述存储器中的处理队列的所述存储器中的所述输入锁定单元中的完整突发,并进一步能够创建和管理存储在计算机可读媒介中的所述存储器中的处理队列;
所述存储器中的输出锁定单元,其能够存储从由所述队列控制器管理的所述存储器中的处理队列接收的完整数据突发,且进一步能够使得所述完整数据突发对第二突发接口可用;和
存储器控制器,其能够按照从所述队列控制器接收到的命令引导所述存储器中的所述数据的存储。
23.如权利要求22所述的突发桥接控制单元,其中,所述多个输入锁定进一步能存储所述存储器中的一个突发指示,以及其中所述输入控制器使所述存储器中的所述突发指示被存储在输入锁定中,所述输入锁定用来存储相关联的数据突发。
24.如权利要求22所述的突发桥接控制单元,其中,当所述存储器中的处理队列不能容纳一个数据突发时,所述队列控制器进一步能生成一个保持信号。
25.如权利要求22所述的突发桥接控制单元,其中,所述输出锁定单元包括:
多个输出锁定,每个能够存储数据直至达到最大输出突发尺寸;
目的地确定单元,其能够根据到达所述输出锁定单元的数据包,数据包的第一部分和数据包的另外部分中的至少一个生成目的地指示;和
输出控制器,其能够:
当所述存储器中的从处理队列中接收的完整的数据包小于或等于所述最大输出突发尺寸时,将所述完整数据包存储到第一输出锁定中,否则,在第一输出锁定中存储数据包的第一部分并在第二输出锁定中存储所述数据包的另外部分,以及其中所述输出控制器能够进一步
引导存储在其中一个所述输出锁定中的数据和生成的目的地指示到第二突发接口。
26.一种用来转发突发数据的装置,包括:
一个存储器;
处理器,其能够在所述存储器外执行指令;
第一突发接口,其能够从一个源接收突发数据;和
第二突发接口,其能够传递突发数据到目的地;
所述存储器包括:
突发接收器模块,当由所述处理器执行时,所述突发接收器模块最小限度地使所述处理器将从所述第一突发接口收到的完整数据突发存储在所述存储器的输入锁定缓冲器部分中,其中,所述突发接收器模块通过最小限度地使所述处理器完成以下步骤使所述处理器接收完整数据突发:按照最大输入突发尺寸指示确立最大输入突发尺寸,且当数据包小于或等于所述最大输入突发尺寸时,在所述存储器的输入锁定部分中存储完整的所述数据包,且当数据包大于所述最大输入突发尺寸时,在所述存储器的所述输入锁定部分中存储所述数据包的第一部分直至达到所述最大突发尺寸,并且还在所述存储器的所述输入锁定部分中分开存储所述数据包的另外部分直至达到所述最大输入突发尺寸;
队列管理模块,当由所述处理器执行时,所述队列管理模块最小限度地使所述处理器将所述存储器的所述输入锁定缓冲器部分的内容存储到维护在所述存储器的队列缓冲器部分的处理队列中,并进一步最小限度地使所述处理器从所述处理队列将完整数据突发转移至所述存储器的输出锁定部分;和
突发分派模块,当由所述处理器执行时,所述突发分派模块最小限度地使所述处理器将所述存储器的所述输出锁定部分的内容引导到所述第二突发接口。
27.如权利要求26所述的装置,其中,当没有足够的存储器可以用来使处理队列容纳一个完整数据突发时,所述队列管理模块进一步最小限度地使所述处理器给所述第一突发接口生成一个保持信号。
28.如权利要求26所述的装置,其中所述突发接收器模块进一步最小限度地使所述处理器完成以下步骤:
当数据包小于或等于所述最大输入突发尺寸时,在所述存储器的所述输入锁定部分中存储所述数据包的源指示;和
当数据包大于所述最大输入突发尺寸时,在所述存储器的所述输入锁定部分中存储所述数据包的一部分的源指示,并且还在所述存储器的所述输入锁定部分中分开存储所述数据包的另外部分的所述源指示。
29.如权利要求26所述的装置,其中,当与接收到的数据包相关联的源指示没有相应的处理队列时,所述队列管理模块进一步最小限度地使所述处理器在所述存储器的队列缓冲器部分中创建一个处理队列。
30.如权利要求26所述的装置,其中,所述队列管理模块通过最小限度地使所述处理器完成以下步骤使所述处理器从所述处理队列中将完整数据突发转移至所述存储器的输出锁定部分:
按照最大输出突发尺寸指示确立最大输出突发尺寸;
当从所述处理队列中收到的数据包小于或等于所述最大输出突发尺寸时,将所述数据包存储到所述存储器的输出锁定部分;
当从所述输出队列中收到的数据包大于所述最大输出突发尺寸时,在所述存储器的所述输出锁定部分中存储所述数据包的第一部分直至达到所述最大输出突发尺寸,并且在所述存储器的所述输出锁定部分中分开存储所述数据包的另外部分直至达到所述最大输出突发尺寸;
为存储的数据包,存储的数据包的第一部分和存储的数据包的另外部分中的至少一个确定目的地指示;和
在所述存储器的所述输出锁定部分中存储所述确定的目的地指示。
31.如权利要求26所述的装置,其中,通过利用转换映射将源指示转换成目的地指示,所述队列管理模块通过最小限度地使所述处理器确定目的地指示来使得所述处理器确定目的地指示。
32.如权利要求26所述的装置,其中,通过从数据包中提取首部部分和根据所述提取的首部部分生成目的地指示,所述队列管理模块通过最小限度地使所述处理器确定目的地指示来使得所述处理器确定目的地指示。
33.如权利要求26所述的装置,其中所述队列管理模块通过最小限度地使所述处理器完成以下步骤使所述处理器从所述处理队列将完整数据突发转移至所述存储器的输出锁定部分:
按照最大输出突发尺寸指示确立最大输出突发尺寸;
按照所述最大输出突发尺寸,在所述存储器的输出锁定部分一起存储从一个或更多个输出队列接收的下述的至少一个:第一数据包和第二数据包;第一数据包和第二数据包的一部分;第一数据包的一部分和第二数据包;和第一数据包的一部分和第二数据包的一部分;
为第一数据包和第一数据包的一部分中的至少一个确定第一目的地指示,并为第二数据包和第二数据包的一部分中的至少一个确定第二目的地指示;和
在所述存储器的输出锁定部分中存储所述第一和第二目的地指示。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US56177404P | 2004-04-12 | 2004-04-12 | |
US60/561,774 | 2004-04-12 | ||
US10/861,897 US7940662B2 (en) | 2004-04-12 | 2004-06-04 | Method and apparatus for forwarding bursty data |
US10/861,897 | 2004-06-04 | ||
PCT/US2005/012293 WO2005101763A1 (en) | 2004-04-12 | 2005-04-11 | Method and apparatus for forwarding bursty data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1965548A CN1965548A (zh) | 2007-05-16 |
CN1965548B true CN1965548B (zh) | 2012-08-22 |
Family
ID=38083555
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800186635A Active CN1965548B (zh) | 2004-04-12 | 2005-04-11 | 转送突发数据的方法和装置 |
CN2005800187727A Expired - Fee Related CN1965550B (zh) | 2004-04-12 | 2005-04-12 | 处理完整数据突发的方法与装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800187727A Expired - Fee Related CN1965550B (zh) | 2004-04-12 | 2005-04-12 | 处理完整数据突发的方法与装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20060039284A1 (zh) |
CN (2) | CN1965548B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7573896B2 (en) * | 2004-10-15 | 2009-08-11 | Integrated Device Technology, Inc. | Method and apparatus for generic interface, packet cut-through, overbooking, queue concatenation, and logical identification priority for a system packet interface device |
US8000281B2 (en) * | 2007-08-09 | 2011-08-16 | Industrial Technology Research Institute | System and method for providing multicast/broadcast services in a wireless network |
US8046559B2 (en) * | 2008-03-27 | 2011-10-25 | Intel Corporation | Memory rank burst scheduling |
CN101262427B (zh) * | 2008-04-29 | 2010-08-18 | 上海交通大学 | VoIP在无线局域网中多跳传输的优化方法 |
CN104272682A (zh) * | 2012-05-15 | 2015-01-07 | 华为技术有限公司 | 用于提供对数据存储器进行存储访问的动态调度的方法和设备 |
CN111447637B (zh) * | 2020-03-27 | 2023-04-25 | 天津光电通信技术有限公司 | 频谱数据采集方法、装置、设备及存储介质 |
EP4158848A4 (en) * | 2020-05-29 | 2023-07-26 | Telefonaktiebolaget LM Ericsson (PUBL) | METHODS AND ARRANGEMENTS TO SUPPORT THE ESTIMATION OF LATENCY ACROSS A COMMUNICATION PATH IN A COMMUNICATION NETWORK |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6591316B1 (en) * | 1999-05-20 | 2003-07-08 | Marconi Communications, Inc. | Avoiding fragmentation loss in high speed burst oriented packet memory interface |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU3416293A (en) * | 1991-12-23 | 1993-07-28 | Network Express | System for internetworking data terminal equipment through a switched digital network |
US6201789B1 (en) * | 1996-12-30 | 2001-03-13 | Compaq Computer Corporation | Network switch with dynamic backpressure per port |
CA2309931C (en) * | 1998-09-14 | 2005-05-17 | Hyun-Seok Lee | Method for processing data to be transmitted over common channel |
US6813249B1 (en) * | 1999-02-16 | 2004-11-02 | Efficient Networks, Inc. | System and method for prefetching data |
US6999464B2 (en) * | 2001-08-28 | 2006-02-14 | Axiowave Networks, Inc. | Method of scalable non-blocking shared memory output-buffered switching of variable length data packets from pluralities of ports at full line rate, and apparatus therefor |
US7215666B1 (en) * | 2001-11-13 | 2007-05-08 | Nortel Networks Limited | Data burst scheduling |
US7301906B2 (en) * | 2001-12-17 | 2007-11-27 | Lsi Corporation | Methods and structures for improved buffer management and dynamic adaption of flow control status in high-speed communication networks |
US7546399B2 (en) * | 2002-03-25 | 2009-06-09 | Intel Corporation | Store and forward device utilizing cache to store status information for active queues |
-
2005
- 2005-04-11 US US11/102,996 patent/US20060039284A1/en not_active Abandoned
- 2005-04-11 CN CN2005800186635A patent/CN1965548B/zh active Active
- 2005-04-12 CN CN2005800187727A patent/CN1965550B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6591316B1 (en) * | 1999-05-20 | 2003-07-08 | Marconi Communications, Inc. | Avoiding fragmentation loss in high speed burst oriented packet memory interface |
Also Published As
Publication number | Publication date |
---|---|
US20060039284A1 (en) | 2006-02-23 |
CN1965550B (zh) | 2012-02-29 |
CN1965548A (zh) | 2007-05-16 |
CN1965550A (zh) | 2007-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8107377B2 (en) | Reordering packets | |
CN1965548B (zh) | 转送突发数据的方法和装置 | |
US5561807A (en) | Method and device of multicasting data in a communications system | |
US7165094B2 (en) | Communications system and method with non-blocking shared interface | |
EP1192753B1 (en) | Method and apparatus for shared buffer packet switching | |
EP0551242B1 (en) | Multiprocessor buffer system | |
US20040151170A1 (en) | Management of received data within host device using linked lists | |
EP2061191A1 (en) | Buffering architecture for packet injection and extraction in on-chip networks. | |
JPH08214000A (ja) | Atmネットワークにおけるマルチキャストする方法と装置 | |
EP0374338B1 (en) | Shared intelligent memory for the interconnection of distributed micro processors | |
US20030053470A1 (en) | Multicast cell buffer for network switch | |
US5341475A (en) | Method for exchanging messages between a shared memory and communication adapters using an efficient logical protocol | |
US5572697A (en) | Apparatus for recovering lost buffer contents in a data processing system | |
EP1481317B1 (en) | Shared queue for multiple input-streams | |
US20060165055A1 (en) | Method and apparatus for managing the flow of data within a switching device | |
US6240095B1 (en) | Buffer memory with parallel data and transfer instruction buffering | |
KR20010053612A (ko) | 기억 장치 및 상기 기억 장치를 동작시키기 위한 방법 | |
WO1999029071A1 (en) | Resource sharing | |
US5163049A (en) | Method for assuring data-string-consistency independent of software | |
WO2005101762A1 (en) | Method and apparatus for processing a complete burst of data | |
JP3255113B2 (ja) | パケットスイッチシステム、これを含む集積回路、パケットスイッチ制御方法、パケットスイッチ制御プログラム記録媒体 | |
US7161950B2 (en) | Systematic memory location selection in Ethernet switches | |
CN105164983B (zh) | 多层面网络装置的输出队列和多层面网络装置的输出队列的相关管理方法 | |
US7116659B2 (en) | Data transmission memory | |
US20210294765A1 (en) | Method and system for controlling data response with aid of attribute of transaction identifier |
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 |