CN1608366A - 用于交换数据分组或帧的装置和方法 - Google Patents

用于交换数据分组或帧的装置和方法 Download PDF

Info

Publication number
CN1608366A
CN1608366A CN02826089.9A CN02826089A CN1608366A CN 1608366 A CN1608366 A CN 1608366A CN 02826089 A CN02826089 A CN 02826089A CN 1608366 A CN1608366 A CN 1608366A
Authority
CN
China
Prior art keywords
data
equipment
port
interface
address bus
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
CN02826089.9A
Other languages
English (en)
Other versions
CN100527697C (zh
Inventor
凯·哈里基尔德-彼得森
彼得·O·尼尔森
金斯·P·泰格瑞-布瑞格
博·B·托姆森
奥鲁夫·拜格尔
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.)
Microsemi Communications Inc
Original Assignee
Vitesse Semiconductor 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 Vitesse Semiconductor Corp filed Critical Vitesse Semiconductor Corp
Publication of CN1608366A publication Critical patent/CN1608366A/zh
Application granted granted Critical
Publication of CN100527697C publication Critical patent/CN100527697C/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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • H04L12/427Loop networks with decentralised control
    • H04L12/43Loop networks with decentralised control with synchronous transmission, e.g. time division multiplex [TDM], slotted rings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/13Flow control; Congestion control in a LAN segment, e.g. ring or bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/43Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)
  • Bus Control (AREA)

Abstract

一个交换装置和方法,其中多个设备在一条数据总线(4)上交换数据。每个设备具有至少一个数据端口(10),并且至少一个设备具有多个数据端口(10)。数据端口可具有不同的数据速率。一个仲裁在允许数据在设备间传输之前考虑端口(10)的可用性或阻塞。设备在一个交叉点上直接通信。

Description

用于交换数据分组或帧的装置和方法
技术领域
本发明涉及一种装置和一种方法,用于交换数据,例如数据分组或帧,其中多个设备通过一条数据总线彼此通信,其中每个设备与一个或多个I/O端口通信。
背景技术
已知多个实施多个I/O端口的正常交换器,这些I/O端口均允许相同的最高数据速率。在此情况下,它们可以都以相同的数据速率与一个中枢总线通信。但是当要提供具有不同的最高数据速率的I/O端口时,会发现一个问题。
此问题在例如EP-A-1162798中获得了解决,其中提供了一个公共存储器,从而各个I/O端口对此公共存储器和公共数据总线的访问权限与该I/O端口的数据速率相联系。但是,通过这种方式,一个端口与公共存储器的通信将阻碍所有其他端口在该时间段与公共存储器的通信。
其他技术可参见US-A-6,335,932和WO00/72524。
发明内容
在一个第一方面中,本发明涉及一个用于交换数据的装置,该装置包括:
-一条数据总线
-多个可通过数据总线彼此交换数据的设备,每个设备可从至少一个相应的I/O端口接收数据,以及将数据发送给该I/O端口,至少一个第一设备可从多个相应的I/O端口接收数据,以及将数据发送给这些I/O端口,
-用于确定设备之间在数据总线上交换数据的顺序的仲裁器装置所述设备能够:
-接收和存储来自一个相应的I/O端口的数据,
-将关于一个(最好是每个)相应的端口的阻塞或可用信息发送给仲裁器,
-从仲裁器接收指示接收到的数据是否可在数据总线上发送的信息,
-如果接收到的信息指示数据可被发送,则在数据总线上发送数据,以及
-从数据总线接收数据并将接收到的数据转发给一个相应的I/O端口,
仲裁器能够:
-从所述多个设备接收阻塞或不可用信息,以及
-根据阻塞信息确定交换数据的顺序。
通常,每个I/O端口可与一个或多个计算机或网络通信。
从而,至少设备之一将具有多个端口,这对仲裁等形成了挑战,因为这些端口与数据总线只有一个“连接”。其他设备可能只具有一个或不同数目个端口。
在本文中,端口或设备不可用的原因可能有多个。一个原因是其中的阻塞,因此端口不能发送接收到的数据。另一个原因是与设备间的带宽相比,端口外的带宽可能填满设备或端口中的缓冲器,以至于需要减少传输或暂时中止传输。这也是一种类型的阻塞。
在本文中,数据总线上的数据交换可由一系列设备同时、以交错的方式或以脉动的方式串行地、并行地、时分复用地执行。
在首选实施方式中,当总线上发送和接收设备之间传输分组期间,两个设备可通过总线和其他在中间接收分组的设备通信。最好多个设备可在数据总线上至少以基本相同的速率直接与彼此交换数据。在此种方式中,数据总线是一个交叉点,而不仅是数据交换总线。首选的数据总线是一个由多个设备形成的环状的总线,其中每个设备可从一个设备接收数据,并能将数据发送到另一个设备。
在当前的首选实施方式中,设备像珍珠一样位于由数据总线形成的链子上。设备通过沿着环的同一方向并且在设备间逐个转发数据来交换数据。这可以通过脉动的方式执行,因为所有设备实际上可向下一个设备转发数据。当一个设备接收到数据时,它将确定该数据是不是给该设备的-如果不是的话就只是转发数据-或者数据是否还针对其他设备的。
目前,数据段可为任何类型的数据,例如一个数据分组或帧,这种数据分组或帧遵循一个标准,例如以太网、IEEE 802.3、SONET和/或令牌环标准。在本文中,一个数据分组或帧可为数据和其他信息的任何集合。通常,一个数据分组或帧将具有一个带有寻址或路由信息的报头,以及一个携带着要发送或传输的数据的数据部分或有效载荷。数据可在本系统或方法之外被传输或作为一种类型存在,例如具有固定或变化的大小的数据分组或单元-但也可以另一种方式(例如作为固定大小的单元)在本系统内部交换。
设备宜可用于建立一个发送设备和一个接收设备之间的一个连接,该连接在数据已被发送后被删除。通过这种方式,在一个具有较慢的端口的设备与一个具有较快的端口的设备之间的数据交换将确保分组或帧在具有较快的端口的设备不被延迟的情况下被迅速地传输。接收设备宜包括用于在将接收到的数据发送到目标端口之前接收并保存这些数据的装置。
第一数目个I/O端口可允许一个第一高、较高的数据接收/发送速率,第二数目个I/O端口可允许一个第二高、较低的数据接收/发送速率,该速率比较高的速率低。
在一种情况下,至少一个I/O端口将进一步允许一个或多个其他的数据接收/发送速率,该速率比其最高数据速率低。这可能是三速端口(根据端口与之通信的其他网络元件的能力允许1G比特/秒、100M比特/秒和10M比特/秒的端口)的情况。
在通信中,标准化的数据速率通常是彼此的因数。在以太网中,数据速率是10的因数(10M比特/秒、100M比特/秒、1G比特/秒、10G比特/秒),而在SONET中因数是4。从而通过较高的第一数据速率是较低的第二数据速率的整数倍。
每个设备最好能够至少以第一速率从数据总线接收数据并将数据发送给数据总线。当每个设备的各个端口的速率合计达到一个预定的最高数据速率时-或一个低于最高速率的速率时,设备在总线上通信的速率通常将比该最高速率高,以便在总线上具有一个加速因子。
在一个首选实施方式中,每个设备可以有效地连接到第一群组的一个或多个I/O端口或者第二群组的多个I/O端口。作为替换,设备也可具有相同数目的第一和第二I/O端口。
至少一个设备宜包括一个存储装置,该存储装置包括多个数据队列,用于存储从一个或多个I/O端口和/或从数据总线接收到的数据。对于每个I/O端口,存储装置可具有一个或多个数据队列。此外,至少一个第二设备可进一步包括一个接口,该接口在具有第一和第二I/O端口的第一组合的第一实施方式和具有第一和第二I/O端口的第二组合的第二实施方式之间是可变的,存储装置可在第一和第二实施方式中为由接口实现的每个I/O端口提供一个或多个队列。此外,可能希望用于第一I/O端口的队列的大小不同于用于第二I/O端口的队列。
在第一实施方式中,接口可具有多个第二I/O端口,在第二实施方式中,接口可具有一个或多个第一I/O端口,在第一实施方式中,存储装置对于接口的每个第一I/O端口可包括第一数目个队列,在第二实施方式中,存储装置对于接口的每个第二I/O端口可包括第二数目个队列。
队列数目可以是相同的,例如每个优先级是一个。
仲裁器最好能够向至少一个第一设备提供关于一个或多个相应的端口可向哪个设备发送数据的信息。在多个端口希望发送并且哪个端口发送数据不是不重要的情况下(如果一个端口希望向一个阻塞的端口发送数据),这将促进传输。
仲裁器最好能够为至少一个第一设备检查是否多个端口中的第一端口希望向一个阻塞的或不可用的端口发送数据,如果是的话,则检查是否多个端口的另一个端口希望向一个未阻塞的或可用的端口发送数据,如果是的话,则向至少一个第一设备发送关于其他端口被允许发送数据的信息。
从而,选择了一个希望向一个可用端口或设备发送数据的端口(如果这样的端口存在的话)。在本文中,数据的优先级也会被考虑(参见下文),以便根据其优先级评估每个传输。
此外,至少一个第一设备最好能够确定向哪个I/O端口发送从数据总线接收到的数据,因为它将从同一个数据总线接收所有数据。这种确定可根据数据本身做出,或者根据作为数据的一部分或附加在数据上(在数据总线上或与数据总线并行地)发送给设备的附加数据做出。
通常,确定的仲裁器的交换/交流顺序可被确定为使得当数据发向一个未阻塞的或可用的端口时才被允许在数据总线上转发。但是,在一个有趣的实施方式中,一个设备能够确定一个相应的I/O端口处的阻塞,并将相应的信息发送给仲裁器,并且当一个阻塞的I/O端口希望向一个接收设备或I/O端口发送数据时,仲裁器能够不考虑接收设备或I/O端口的任何阻塞或不可用性,并通知相关设备阻塞的I/O端口被允许发送数据。这将是对于上述情况的唯一例外。
从而,即使在一个设备的出口方有阻塞,在接收设备的入口方的阻塞也可否决该阻塞,因此促进数据交换,并将数据溢出问题转移到出口方,从而出口方可决定丢弃数据。
每个设备最好能够将在相关I/O端口处接收到的所有数据发送给数据总线。从而在单个端口之间不会在设备中发生内部交换。在此种方式中,设备可以不那么复杂。
本装置宜包括至少一个设备,该设备进一步包括一个处理装置,该处理装置能够:
-为在其I/O端口接收到的每个分组或帧提供一个优先级,
-在发送到数据总线之前将在其I/O端口接收到的每个分组或帧分成单元,并在从I/O端口输出之前将从数据总线接收到的单元组装成帧或分组,
-处理在I/O端口接收到的每个分组或帧,和/或
-从在I/O端口接收到的每个分组或帧中得到用于传输给仲裁器的信息
设备可为设备的每个I/O端口包括一个处理装置。
此外,装置还可进一步包括一个查找(Look-Up)引擎,该查找引擎能够接收关于在一个I/O端口接收到的每个数据段的信息并且从该信息中得出关于一个或多个接收数据段的I/O端口或设备的标识信息。从而,每个设备可进一步从接收到的每个数据段得出关于该数据段的信息,将该信息发送给LU引擎,从LU引擎接收标识信息,并且在数据总线上交换标识信息和数据段(例如固定大小的单元)。在最后一种情况中,数据和标识信息可在接收到标识信息之后以及在数据总线上交换它们之前被存储,以及/或者至少一个设备能够根据标识信息,确定数据是否是针对于该设备的,如果数据不是针对该设备的则沿着数据总线转发数据。
在一个实施方式中,至少一个第三设备具有用于为其相应的I/O端口接收到的每个数据段提供一个优先级的装置,并且其中仲裁器也能够根据数据的优先级确定交换数据的顺序。
所述优先级可用于仲裁器中以给予高优先级数据优先级-即首先交换/交流高优先级数据以及仅那些可与要交换的高优先级数据一起交换的低优先级数据(或者较低优先级数据已等待了足够长时间时)。此优先级也可用于存储在不同队列中的数据-并且可为端口/设备和优先级均指定可用性/阻塞数据以便一个特定端口可实际被阻塞-但仅对于一个给定的优先级。
此外,当不止一个端口或设备要接收由一个接收设备接收到的一个数据段时,仲裁器能够确定哪些端口和设备是可用的或未阻塞的,并将信息发送到接收设备,以便让其将数据转发给那些端口和设备,并且随后当其他端口或设备可用或未阻塞时,通知接收设备将数据转发到那些设备或端口。
在这种方式中,在传输到所有端口时传输没有因为某些端口不可用而被延迟。首先发送到可用端口然后发送到其余端口(或者通过更多步骤执行传输)提高了交叉点的速率。
本发明的一个第二方面涉及一种在一个交换装置中交换数据的方法,该交换装置包括:
-一条数据总线
-多个可通过数据总线彼此交换数据的设备,每个设备可从至少一个相应的I/O端口接收数据,以及将数据发送给该I/O端口(每个端口最好能够与一个或多个计算机或网络通信),至少一个第一设备可从多个相应的I/O端口接收数据,以及将数据发送给这些I/O端口,
-用于确定设备之间在数据总线上交换数据的顺序的仲裁器装置,
该方法包括每个设备:
-接收和存储来自一个相应的I/O端口的数据,
-将关于一个(最好是每个)相应的端口的阻塞或可用信息发送给仲裁器,
-从仲裁器接收指示接收到的数据是否可在数据总线上发送的信息,
-如果接收到的信息指示数据可被发送,则在数据总线上发送数据,以及
-从数据总线接收数据并将接收到的数据转发给一个相应的I/O端口,
仲裁器能够:
-从设备接收阻塞或不可用信息,以及
-根据阻塞信息确定交换数据的顺序(最好使得数据仅在它是发向一个非阻塞的或可用端口时才被允许在数据总线上转发)。
此外,当多个设备(最好是所有设备)以至少基本相同的速率在数据总线上直接彼此交换数据时,数据总线可被用作一个交叉点。在此情况下,第一数目个I/O端口可允许一个第一高、较高的数据接收/发送速率,第二数目个I/O端口可允许一个第二高、较低的数据接收/发送速率,该速率比较高的速率低。此外,至少一个I/O端口还允许一个或多个其他的数据接收/发送速率,所述速率比其最高数据速率低,每个设备最好能够至少以第一速率从数据总线接收数据并将数据发送给数据总线,并且每个设备可与第一群组的一个或多个I/O端口或者第二群组的多个I/O端口通信。
在首选实施方式中,至少一个第二设备将从一个或多个相应的I/O端口和/或数据总线接收到的数据段存储在一个存储装置中,该存储装置包括多个用于保存数据段的数据队列。从而,对于每个相应的I/O端口,所述至少一个第二设备可将数据段存储在一个或多个数据队列中。此外,所述至少一个第二设备可进一步包括一个接口,该接口在具有第一和第二I/O端口的第一组合的第一实施方式和具有第一和第二I/O端口的第二组合的第二实施方式之间是变化的,所述存储装置可在第一和第二实施方式中都为由接口实现的每个I/O端口提供一个或多个队列。在该情况下,在第一实施方式中,接口可具有多个第二I/O端口,在第二实施方式中,接口可具有一个或多个第一I/O端口,在第一实施方式中,存储装置对于接口的每个第一I/O端口可包括第一数目个队列,在第二实施方式中,存储装置对于接口的每个第二I/O端口可包括第二数目个队列。
仲裁器宜接收关于在I/O端口处接收的每个数据段(例如一个数据分组或帧)的信息,该信息包括用于接收该数据的一个I/O端口和/或一个设备。
此外,仲裁器宜向至少一个第一设备提供关于可向哪个相应的端口发送数据的信息。在该情况下,仲裁器宜为至少一个第一设备检查是否多个端口中的第一端口希望向一个阻塞的或不可用的端口发送数据,如果是的话,则检查是否多个端口的另一个端口希望向一个未阻塞的或可用的端口发送数据,如果是的话,则向所述至少一个第一设备发送关于其他端口被允许发送数据的信息。
在一个首选实施方式,所述至少一个第一设备确定向哪个I/O端口发送从数据总线接收到的数据。
此外,在一个首选实施方式中,一个设备确定一个相应的I/O端口的接收部分处的阻塞,并将相应的信息发送给仲裁器,并且当一个阻塞的I/O端口希望向一个接收设备或I/O端口发送数据时,仲裁器能够不考虑接收设备或I/O端口的任何阻塞或不可用性,并通知相关设备阻塞的I/O端口被允许发送数据。
每个设备可将在相关I/O端口处接收到的所有数据段发送给数据总线。
通常,如果需要一个正常交换行为,则至少一个第三设备可进一步包括一个或多个处理步骤,这些步骤是:
-为在其I/O端口接收到的每个分组或帧提供一个优先级,
-在发送到数据总线之前将在其I/O端口接收到的每个分组或帧分成单元,并在从I/O端口输出之前将从数据总线接收到的单元组装成帧或分组,
-处理在I/O端口接收到的每个分组或帧,以及
-从在I/O端口接收到的每个分组或帧中得出用于传输给仲裁器的信息。
从而,至少一个第三设备可为设备的每个I/O端口执行一个或多个处理步骤,以及/或者为在其相应的I/O端口处接收到的每个数据段执行提供一个优先级的步骤,并且,从而仲裁器能够根据数据的优先级确定交换数据的顺序。
该方法宜进一步包括以下步骤:一个查找(Look-Up)引擎接收关于在一个I/O端口接收到的每个数据段的信息,并且从该信息中得出关于一个或多个接收该数据段的I/O端口或设备的标识信息。从而,每个设备可进一步从接收到的每个数据段得出关于该数据段的信息,将该信息发送给LU引擎,从LU引擎接收标识信息,并且在数据总线上一起交换标识信息和数据段。此外数据和标识信息可在接收到标识信息之后以及在数据总线上交换它们之前被存储。此外,至少一个第四设备可根据标识信息确定数据是否是针对于该设备的。最后,当不止一个端口或设备要接收由一个接收设备接收到的一个数据段时,仲裁器能够确定哪些端口和设备是可用的或未阻塞的,并将信息发送到接收设备,以便让其将数据转发给那些端口和设备,并且随后当其他端口或设备可用或未阻塞时,通知接收设备将数据转发到那些设备或端口。
本发明的其他方面涉及一个接口,该接口能够操作多个彼此独立并且彼此校准/同步的输入/输出群组。
无疑,以下任何方面可与以上任何方面相结合以得到一个更有趣的芯片。
一般地,以下方面涉及一个接口以及一个具有该接口的交换器,其中该接口既可用于一个或多个较高数据速率通信,也可用于更多的较低数据速率通信。
当前,高速以太网端口不是用于10GbE就是用于1GbE,每个接口要求芯片上不同数目个引脚。本发明的一个方面涉及如何在具有这两种接口的多速率芯片上减少必须的引脚数。
本发明的该方面涉及使用一个标准接口以便用相同的输入/输出支持多个其他接口。
要在接口上传输的数据可以任何形式提供。目前,对于10G比特/秒的以太网数据通信,数据最好是XGMII格式的(32比特串行数据接口),对于较低比特率的通信,数据最好是GMII格式的。在实际接口上,10G比特/秒的数据最好以一个XAUI信号的形式被发送,而四个1G比特/秒的信号以串行通信的形式被发送。无疑,在接口上接收到的数据也最好以这些格式被发送。
一般地,与先前的一个高速端口被降级为一个低速端口的多速率以太网(工业)标准相比,这代表了一个额外的优点。
主要优点是对于消费者的,他们能够将一个交换器或MAC等的每个端口配置成10GbE模式或一组1GbE端口。
对于制造商,好处是:
-对几个用途使用相同的宏的能力。
-由于将多个芯片合成一个而获得的芯片运行、测试和存储的减少。
本发明的一个第三方面涉及一个接口,该接口包括:
-多个用于串行化并行数据的装置,每个串行化装置可输出一个串行数据信号,
-用于提供多个独立的第一并行数据的第一装置,为每个串行化装置提供一个第一并行数据,
-用于提供第二并行数据的第二装置,用于将第二并行数据分成多个第三并行数据,并用于将一个第三并行数据提供给每个串行化装置,以及
-用于校准和/或同步从串行化装置输出的串行数据信号以便得到多个串行数据信号之间的一个预定时序关系的装置。
在本文中,校准和/或同步是时间上的校准或同步,以便在数据输入和/或输出之间存在一个预定时序关系。校准/同步后的信号最好将以一个共同频率操作,并且使用一个共同的数据协议。
此外,提供彼此独立的信号将意味着表示的数据将被独立解译。
从而,各个数据可以以不同频率被提供、串行化、发送等,某些个别数据可被视为彼此独立,而其他的可被校准/同步。
校准/同步装置最好能够在接收第一并行数据时不校准/同步从串行化装置输出的串行数据信号。通过该方式,各个第一串行数据可以被独立地发送-例如以不同的或任意的运行时钟频率。
通常,数据将以一个恒定的数据流形式或单独的分组/帧/单元的形式出现。并行数据可在其宽度上表示一整个分组/帧/单元,或者一个分组/帧/单元可在多个时钟周期内在并行总线上发送。
本发明的一个第四方面涉及一个接口,该接口包括:
-多个用于串行化并行数据的装置,每个串行化装置可输出一个串行数据信号,
-用于提供多个独立的第一并行数据的第一装置,为每个串行化装置提供一个第一并行数据,
-用于提供第二并行数据的第二装置,用于将第二并行数据分成多个第三并行数据并用于将一个第三并行数据提供给每个串行化装置,以及
-用于校准和/或同步第三并行数据以便得到多个第三串行数据信号之间的一个预定时序关系的装置。
校准/并行装置最好能够被禁用-例如当第一提供装置活动时。
目前第一和第二提供装置最好不并行或同时操作-以便当时第一和第二并行数据中只有一个被提供给串行化装置。
在首选实施方式中,第一提供装置可沿着一条第一并行数据总线输出每个第一并行数据,其中第一并行数据总线具有预定的第一数目个导体,其中第二提供提供装置可沿着一条第二数据总线输出第二并行数据,其中第二数据总线具有预定的第二数目个导体,并且其中第一和第二数据总线至少具有一个公共的导体。
在此情况下,第二并行数据的分割可以仅仅是将第二总线的导体分成多个导体组。
导体的预定的第一数目与导体的第二数目不同,并且第一并行数据总线可被包括在第二并行数据总线中。
实际上,其中所述多个串行化装置乘以预定的第一数目个导体最好与预定的第二个数目个导体相同。
希望第一提供装置能够遵循GMII标准输出第一并行数据,其中第二提供装置能够遵循XGMII标准输出第二并行数据,并且串行化装置能够遵循XAUI或无限频带标准输出多个串行数据信号,例如当其串行信号被校准时。否则,串行化装置的输出可以是独立运行的串行通信,例如对于在多个SERDES连接或光纤上的通信。
本发明的另一个方面涉及一个接口,该接口包括:
-多个装置,每个装置用于接收一个串行数据信号,以及用于将串行数据信号去串行化为并行数据,
-用于在去串行化操作之前校准/同步串行数据信号以便获得多个并行数据之间的一个预定时序的装置,校准/同步装置可被禁用,
-当校准/同步装置未被禁用时,用于将关于去串行化后的校准/同步后的串行信号的并行数据合并成一个并行数据段或一个并行数据流的装置。
一个第六方面涉及一个接口,该接口包括:
-多个装置,每个装置用于接收一个串行数据信号,以及用于将串行数据信号去串行化为并行数据,
-用于校准/同步多个并行数据以便获得多个并行数据之间的一个预定时序的装置,校准/同步装置可被禁用,
-当校准/同步装置未被禁用时,用于将校准/同步后的并行数据合并成一个并行数据段或一个并行数据流的装置。
在第五和第六方面中,去串行化装置最好能够沿着一个第一并行数据总线输出每个并行数据,其中第一并行数据总线具有预定的第一数目个导体,其中合并装置最好能够沿着一个第二数据总线输出单个并行数据,其中第二数据总线具有预定的第二数目个导体,并且其中第一和第二数据总线具有至少一个公共导体。此外,预定的第一数目个导体可以与第二数目个导体不同。此外,第一并行数据总线最好包括在第二并行数据总线中,并且其中所述多个串行化装置乘以预定的第一数目个导体最好与预定的第二个数目个导体相同。
在首选实施方式中,去串行化装置能够遵循GMII标准输出第一并行数据,其中合并装置能够遵循XGMII标准输出第二并行数据,并且其中去串行化装置能够遵循XAUI或无限频带标准接收多个串行数据信号(当校准有意义时,否则数据可为独立的自由运行通信)。
在本发明的所有上述第二至第六方面中,最好提供一个装置,用于提供一个用于串行化/去串行化装置中的时钟信号。此时钟提供装置可提供一个具有两个时钟信号频率之一时钟信号,其中当各个输入/输出群组彼此独立地操作时,提供具有时钟信号频率之一的时钟信号,而当校准装置被运行时,提供时钟信号频率中的另一个。时钟频率中的一个频率和另一个频率最好从包括3.25GHz、1.25GHz和2.5GHz中选择。一个信号的频率可为1.25GHz,而另一个信号的频率可为3.25GHz或2.5GHz。
应注意校准/同步装置的禁用可以仅仅是绕过或“不经过”校准/同步装置发送或传输数据的装置。从而,一个校准/同步装置可以一直是完全可操作的,但禁用装置可使得没有数据发送给它,因此从效果上来看它没有“明显的”操作。作为替换,第一或第二提供装置和/或合并装置可以一直被恒定地操作,其中数据的发送/传输只将正确数据送入或送出串行化/去串行化装置。
本发明的一个第七方面涉及一个通信系统,该通信系统包括一个根据第三或第四方面的第一接口和根据第五或第六方面的一个第二接口,以及用于将多个串行信号从第一接口传输到第二接口的装置,该系统包括用于处理由第二接口输出的多个并行数据和/或单个并行数据的装置,处理装置能够彼此独立地处理多个并行数据。
此系统能够以两种操作模式之一被操作,这两种模式包括:
-一种第一操作模式,其中第一和第二接口的校准/同步装置被操作,以及
-一种第二操作模式,其中第一和第二接口的校准/同步装置被禁用。
这两种操作模式将是一个接收/发送一个数据流或一个单个数据段的模式(在某个时刻),或者一个接收/发送多个独立的数据流或数据段(在某个时刻),使用相同的串行化/去串行化装置以及相同的传输装置。
本发明的另一方面涉及一种操作第三至第六方面中任何一方面的接口的方法,该方法包括:
-确定要接收和/或输出的串行数据信号是否将被校准和/或同步,以及
-相应地操作校准/同步装置。
然后,确定步骤可包括确定要通过接口输出或输入的一个总的数据速率,并且如果该数据速率超过一个预定的阈值,则校准/同步数据。从而,正如系统的总带宽一样,到外部计算机、网络、网络元件、芯片等的链路或连接的数目可被修改。可使用中继来减少连接数或增加带宽,这一点与当前选择的数据速率和连接数相结合将产生一个非常强大的修改工具。
从而,确定步骤可包括确定多个串行数据信号的一个总数据速率,并且如果该数据速率超过一个预定阈值则操作校准/同步装置。
无疑,在相反的情况下,即串行“信道”之一的质量具有一个比其他“信道”低的可能最大数据速率时,通过不“锁定”路径的数据速率而是允许其他数据速率比“低质量”数据路径可能达到的速率高来获取一个较高的数据速率。
还有一个方面涉及一种操作根据第五或第六方面的接口的方法,该方法包括:在两种操作模式之间变化,其中:
-在第一操作模式中,去串行化装置彼此独立地接收数据,并彼此独立地输出并行数据,以及
-在第二操作模式中,输出一个单个并行数据。
本发明还涉及一种操作根据第三或第四方面的接口的方法,该方法包括:在两种操作模式之间变化,其中:
-在一种第一操作模式中,串行化装置彼此独立地接收第一并行数据,并彼此独立地输出串行数据,以及
-在一种第二操作模式中,输出的多个串行数据信号具有预定的时序关系。
本发明的一个重要方面涉及一个交换器,该交换器具有:
-多个设备,每个设备包括一个根据第三或第四方面的接口和一个根据第五或第六方面的接口,并且每个设备能够从一个或多个网络连接接收多个串行数据信号,以及将多个串行数据信号输出给这些网络连接,
-设备能在其上交换数据的一条数据总线,
其中所述设备的至少一个能够在以至少两种操作模式之一操作之间变化,这两种操作模式包括:
-第一操作模式,其中设备能够通过接口从第一数目个网络连接接收串行数据信号,以及通过接口将串行数据信号发送给这些网络连接,以及
-第二操作模式,其中设备能够通过接口从第二数目个网络连接接收串行数据信号,以及通过接口将串行数据信号发送给这些网络连接,第二数目大于第一数目。
在本文中,一个“网络连接”可以是与一个或多个计算机或计算机网络的数据通信的连接,其中计算机网络可以是WWW或互联网、单个计算机,以及其间的任何东西。
所述至少一个设备最好包括一个处理装置,该处理装置能够在发送到数据总线之前处理从接口接收到的数据,处理装置可在以至少两种操作模式之一操作之间变化,这两种操作模式包括:
-第一操作模式,其中装置能够彼此独立地处理来自第一数目个彼此独立的网络连接中的每一个的数据,以及
-第二操作模式,其中装置能够彼此独立地处理来自第二数目个彼此独立的网络连接的数据。
数据的处理将取决于交换器的实际使用。一种处理可以是检查错误、执行数据的标准化或归范化、确定数据将被发送到何处(例如用一个查找表)或者它从何处来,数据类型是什么,以及它具有什么样的优先级。其他处理是数据的更改,例如转换一个分组封装,删除、添加或替换一部分数据以及纠正数据中的错误。
在此情况下,在第二操作模式中,处理装置可包括对应于第二数目个独立程序中的每一个的单独存储器以及在第二数目个独立程序之间共享的逻辑。从而,可获得逻辑上的节省。这可通过将来自所有处理程序的VHDL代码合成为芯片中的一个块来实现。
从而,同样通过处理装置,到达或来自接口的路径的数据可被彼此独立的处理。
在第二操作模式中,处理装置最好包括对应于第二数目个独立程序中的每一个的单独存储器以及在第二数目个独立程序之间共享的逻辑。
此外,所述至少一个设备最好进一步包括一个存储装置,该存储装置可在接口处接收数据与总线上传输数据之间存储数据,存储装置可以在以至少两种操作模式之一操作之间变化,这两种操作模式包括:
-第一操作模式,用于当设备以其第一操作模式操作时,其中存储装置能够在对应于第一数目个网络连接乘以第一预定数的多个队列中存储接收到的数据,以及
-第二操作模式,用于当设备以其第二操作模式操作时,其中存储装置能够在对应于第二数目个网络连接乘以第二预定数的多个队列中存储接收到的数据。
当希望能够在一个关于诸如优先级的队列中存储数据时,预定的第一和第二数目可以不等于一。从而,预定的数目可以涉及优先级数目。
本发明的另一个方面涉及一种操作一个交换器的方法,该交换器具有:
-多个设备,每个设备包括一个根据第三或第四方面的接口和一个根据第五或第六方面的接口,并且每个设备能够通过所述接口从一个或多个网络连接接收多个串行数据信号以及将多个串行数据信号输出给这些网络连接,
-设备能在其上交换数据的一条数据总线,
该方法包括在至少一个设备上在至少两种操作模式之间变化,这两种操作模式包括:
-第一操作模式,其中设备能够通过接口从第一数目个网络连接接收串行数据信号,以及通过接口将串行数据信号发送给这些网络连接,以及
-第二操作模式,其中设备能够通过接口从第二数据个网络连接接收串行数据信号,并通过接口将串行数据信号发送给这些网络连接,第二数目大于第一数目。
该方法最好还包括在发送到数据总线之前处理从接口接收到的数据的步骤,该方法包括使处理在至少两种操作模式之间变化,这两种操作模式包括:
-第一操作模式,其中来自第一数目个彼此独立的网络连接中每一个的数据被彼此独立地处理,以及
-第二操作模式,其中来自第二数目个彼此独立的网络连接中的数据被彼此独立地处理。
此外,可添加一个步骤,用于在接口处接收数据与总线上传输数据之间存储数据,该方法包括使存储在至少两种操作模式之间变化,这两种操作模式包括:
-第一操作模式,用于当设备以其第一操作模式操作时,其中存储装置能够在对应于第一数目个网络连接乘以第一预定数的多个队列中存储接收到的数据,以及
-第二操作模式,用于当设备以其第二操作模式操作时,其中存储装置能够在对应于第二数目个网络连接乘以第二预定数的多个队列中存储接收到的数据。
本发明的一个最后的方面涉及一种操作上述交换器的方法,该方法包括:
-对于至少一个设备,确定是否使用第一或第二操作模式,以及
-以确定的操作模式操作设备。
本接口可以是一个电子电路或一个通信系统的不同部件之间的一个接口。从而,接口可包括一个芯片的引脚、焊点或接口,其中校准和操作装置可形成芯片的一部分。在该情况下,接口可确定进/出芯片的通信。在这个特定情况下,芯片的接口可通过相同的接口/引脚/焊点来确定一个较宽的接口和多个较窄的接口,以及在何处以不同的频率运行接口。这将减少芯片的引脚/焊点/接口数。在该情况下,并行数据和并行数据总线可以是芯片内部的。
无疑,接口可通过连接器或插头或通过焊接与网络、芯片、计算机等互联。
虽然目前第一操作模式最好只接收/发送第一操作模式中一个单个数据段或流,但是也可使用任何数目个并行发送/接收。整个发明涉及对于两个不同数目的数据流或段(最好是以不同的总数据速率传输的)使用相同的端口。实际选择可涉及各个子接口之间连接器的交迭。
附图说明
以下将参考附图说明两个实施方式,附图中:
-图1以一幅框图的形式描绘了本发明的整个首选实施方式,
-图2描绘了图1的首选实施方式的最重要的部件的一幅框图,
-图3是对图2的一个合并的MAC的更详细的描绘,
-图4是对图2的部件的更详细的描绘,
-图5是对首选实施方式的仲裁器的描绘,以及
-图6是图2的一个替换实施方式。
具体实施方式
图1描述了首选的整个系统,它是一个以太网交换器,它具有多个通过一个环状总线4通信的组合设备/端口,其中一个设备具有一个总线接口70和一个数据操作部件5,以及一个由四个宽的双箭头10表示的组合端口。
交换器通过在端口接收以太网分组、执行它的一个处理(以下将对其进行解释)以及在总线4上通过总线端口70将分组转发给另一个组合端口(以固定大小的单元的形式)操作,其中所述另一个组合端口在分组上执行附加处理并输出该分组。
在此实施方式中,交换器的所有设备的功能是相同的。
本总线和设备的整体功能可参见2001年9月28日提出申请的美国专利申请号09/965127,此专利申请在此处被结合进来作为参考。主要不同是本数据总线的较大带宽,以及在本申请中环状总线上只有8个设备,而在该申请中有16个。
从而,每个设备能够在数据总线上以相同的速率发送和接收数据。但是,本发明涉及一个方面,其中不同的设备可以有具有不同的数据速率的不同端口“配置”。通过这种方式,更改总线上的总带宽可以不要求更改总线上的通信结构,同时仍然产生带宽和端口数据速率的增大。这种方式也避免了一个较低数据速率的设备向一个较高数据速率的设备发送从而降低了较高数据速率的设备的能力的问题。相反的情况也是成问题的。
交换器的仲裁器(图5)将接收来自设备的传输请求,并且确定各个设备能以什么顺序发送其数据。此仲裁器在各个设备的各个端口之间仲裁。
当仲裁器向一个设备发布一个传输确认时,设备将以多个固定大小的单元的形式发送数据分组。在此确认中,可引入关于将向接收设备上的哪个(或哪些)端口输出分组的信息。接收设备具有用于接收此信息并将单元/分组转发到正确的输出队列的装置。请进一步参见下文。
更具体地,参见图2,但是目前先忽略图2的下半部分,在一个端口10处接收到一个以太网分组,并且该分组被转发到一个MAC 40,该MAC 40执行其标准MAC处理,并将该分组转发给一个分类器/分析器50,用于分类和分析(得出分组的一个优先级并确定通过总线向哪一个其他设备发送分组)。无疑,此分类器/分析器50可在交换器的多个或所有设备之间共享(或者其一部分可被共享)。
在首选实施方式中,在各个设备中提供分类器,但在交换器的所有设备之间共享分析器(参见图1:第7号)。分组的报头从设备发送到分析器,然后分析器将执行一个集中查找,并返回接收设备的一个标识符。
在分析/分类之后,在通过一个总线接口70在总线上传输之前,分组被存储在一个入口队列系统60中。在传输之前分组最好被分成固定大小的单元。
接收设备上的总线接口70将接收单元,并将这些单元传输给一个出口队列系统80,并且进一步传输给一个重写器90,此重写器将在最终分组被传输给MAC 40用于输出之前执行对最终分组的修改。
应注意可能希望提供MAC 40和通道校准之间的信号的额外的格式,例如8b/10b编码,以及各个编码器可通信以便在10G的情况下编码32比特XGMII字。
在本发明中一个交换器的上述典型功能被增强了,因为设备可在两种模式之间通过软件配置:
-第一模式,其中设备充当交换器的一个单个10G比特/秒I/O端口,以及
-第二模式,其中设备充当交换器的四个1G比特/秒I/O端口。
无疑这要求对各元件进行修改以实现此功能。
对于MAC 40,在图3中可看到它的一个更详细的视图,从中可看到,实际上,至少功能性地存在5个MAC。四个1G比特/秒MAC和一个10G比特/秒MAC。1G比特/秒通过GMII 1G比特/秒标准与一个通道校准器30通信,其中通道校准器30的功能将在下文中说明。10G比特/秒MAC通过XGMII 10G比特/秒标准通信。
MAC可以1)是系统中完全分隔的单元以及在定义设备的一块芯片上。作为替换,它们也可2)合并四个1G比特/秒MAC并且使10G比特/秒MAC成为一个单独的部件。此外,五个MAC可以3)被完全分隔到芯片上的一个块中。在此情况下,合并意味着其逻辑和存储或者被合并,或者在某些情况下在组合MAC之间共享。
这些解决方案具有以下优点/缺点:
1):必须定义一个单个块。但是,所有MAC(即,所有4个1G比特/秒MAC同时被操作)必须在相同的时钟域中被操作并且被同步。当每个MAC将一个OE馈送给一根光纤时,这将成为一个问题。此外,由于组合的块将再使用MAC上的逻辑,因此可以实现一个整体的块的减小,从而块的整体大小将小于各个块的大小之和。
2):可看到上述同步的缺点-现在必须定义两个块。此外,可看到大小和逻辑在一定程度上减少。
3):去除了同步缺点,但现在必须定义5个单独的块。此外,芯片上的MAC的大小将是最大的。
实际上,还有一种解决方案可被使用:提供一个MAC(对于1G比特/秒的MAC),它能够通过时间复用来执行四个1G比特/秒MAC的操作。在该情况下,与四个单独的1G比特/秒的MAC相比,可使用相同的逻辑,并且只需要提供保存各个时间复用MAC的状态的存储器的四个复本。
对于分析器/分类器50,存在多个关于如何向该单元提供此多功能的方法。可能提供能够保存从MAC 40接收到的分组并在串行的基础上在每个分组上操作的存储器。在该种情况下,分析器/分类器必须只要能够处理一个10G比特/秒的分组速率。
如果不希望在系统中此位置提供这样的存储器,分类器/分析器50可以四个单独的(以4×1G比特/秒的模式的)分析器/分类器的形式运行,正如MAC一样,这些分析器/分类器可被合成为一个具有四个状态存储器但具有合并的逻辑的单个块。
首选实施方式能够处理多个优先级,并在优先化的队列中在入口队列系统60中存储分组/单元。从而,队列系统60已经能够处理多个队列,并且从1×10G比特模式和4×1G比特模式的转换只需要更改队列数目。此更改是非常简单的。
对于出口队列系统80也是一样的。
重写器90可以按照与MAC 40和分析器/分类器50相同的方式被更改或配制。
那么现在看看图2的下半部分(此外也参见图4)。
从图3可以明显看出MAC输出四个GMII信号或一个XGMII信号。这些信号将被格式化并从系统输出。
基本概率是以下观察资料:
-XAUI是基于4个(同步的)3.125GHz PECL信道的。
-四重SGMII使用4个(未同步的)1.25GHz PECL信道。
-此外,1GbE serdes是基于一个1.25GHz LVDS信道的,它可能涉及三速SGMII。
从而,可能在一个XAUI端口和四个(例如,三速)1GbE端口之间共享相同的引脚集合。
从而,1G/10G信号在一个端口上输出,当所有四个I/O被使用时该端口能够输出XAUI,或者当四个I/O被独立使用时该端口作为4×1G比特/秒SGMII/SERDES。
XAUI要求四个通道被校准。传输介质(铜缆或光缆)中或者甚至10G比特/秒MAC与XAUI端口之间的信号之间可能产生时间偏移。因此,为了在10G比特/秒模式中使用,提供一个通道校准30以便最好既以RX模式也以TX模式执行此校准。
从MAC输出的XGMII/GMII信号是并行信号,这些信号需要被串行化以用于XAUI中和SERDES/SGMII中。提供了四个SERDES单元20用于该用途。
系统的此部分的一个重要方面是通过相同的SERDES电路既可实现1G比特/秒操作也可实现10G比特/秒操作,其中SERDES电路是相当复杂的电路。
在10G比特/秒模式中,通道校准30将确保接收到的XAUI信号或要(作为XAUI信号)发送的XGMII信号的行校准。在1G比特/秒模式中,不使用通道校准。
为了在大多数模式中使用,为每个通道提供一个时钟数据恢复CDR 15。此电路得到内嵌于XAUI/SERDES/SGMII信号中的时钟。
CDR 15将由一个PLL 16馈入,其中PLL 16能够提供分别用于SERDES/SGMII、无限频带和XAUI的1.25GHz、2.5GHz和3.125GHz信号。在1GbE情况下可通过使用一个1∶2预比例器减小此范围。
无限频带通信也可用于本发明中,因为它与XAUI相当类似。
在SGMII的特定实施方式中,可在链接上提供一个单独的时钟信号,并且可能希望本系统输出从链接得到的时钟信号,以便也能用于期待此信号的系统中。
Serdes电路是标准Serdes电路,并且只在SGMII情况下需要CDR,在该情况下时钟内嵌于信号中。
要考虑的一个问题可能是功率:由于高速逻辑用于3.125GHz,因此它在1.25GHz时可能消耗额外的功率。但是此问题可以通过调整提供给高速逻辑的偏置电流,以便芯片或者至少其相关部分能够以两个偏置电流操作来解决。
应注意市场中的一个类似的开发是一个四重SGMII铜PHY,它具有面向MAC的单个时钟(以较低的速率对应于类似的开发);在这种情况下,CDR块可被相当可观地简化。
以上专利申请中说明的仲裁器相当适合用于本实施方式中,因为单个设备中的内部仲裁将与仲裁器的设备间仲裁一起执行要求的任务。
但是,在这类产品中除了大致的仲裁外还需要多个其他功能。因此,图5示出了一种优选的仲裁。
当环中有8个设备时,所执行的整个仲裁是指每第8个时钟周期应对每个设备做出一个仲裁决定。
此仲裁是通过根据接收到的请求找出接收器-发送器对的最佳集合来执行的。无疑,被发送的请求的数据分组的优先级是被考虑的。上述接收器-发送器对是这样的I/O端口对一其中在同一时间只有各个设备的一个端口能够发送,并且在同一时间只有各个设备的一个端口能够接收。
一个设备的每个端口具有自己的仲裁器中的时序安排队列。可看到8个设备(设备0-7)中的每一个可与这些设备中的每一个以及一个CPU通信。
每个设备具有用于传输请求的四个队列,每个队列一个请求。如果一个设备只有一个单个端口,则这四个队列可减少为一个(或者只要不使用其他三个)。
仲裁中遇到的一个问题是行的头部阻止,其中一个较低优先级的数据分组由于不被发送而阻止了一个较高优先级的分组。此问题是通过以下方法解决的:继承优先权以使得对于一个特定的分组,队列中它前面的任何分组具有与它相等或比它更高的优先级。如果一个较高优先级的分组被排列在一个较低优先级的分组之后,则较低优先级的分组继承较高优先级,以便能被迅速发送,以使得真正较高优先级的分组能被发送。
从而,设备的队列中的所有分组的最高优先级与一个仲裁器请求一起(如果特定设备的仲裁器队列已满,则没有仲裁器请求)被转发给仲裁器以便实现优先级继承。
此方式的一个替换方式可以是允许分组在队列中改变位置。这在本实施方式中是不希望的,因为位置改变也必须被报告给单个设备。
当两个源希望向同一目标发送数据分组时,要考虑的另一点是由源发送的数据量。因此,对所有源设备保持桶的水平。
对于每个设备中的每个端口,仲裁器6保持关于其作为一个源和一个目标的状态的信息。CPU设备只拥有目标信息。仲裁是基于此信息的。
仲裁器根据来自单个端口的仲裁器请求而发布单元总线访问权限许可。对于每个设备,仲裁器首先执行一个“本地”仲裁,对于每个端口,此“本地仲裁”确定是否该端口希望发送数据,以及希望的接收端口是否可用(如果存在多个具有相同优先级的候选者,则轮换进行)。从而,每个设备得到一个请求。然后如下文将要进一步说明的那样,在设备之间执行仲裁。仲裁器还生成一个同步信号,所有设备都与之同步。
源信息:
·请求队列。每个队列包括最多4个仲裁器请求。对于多播分组,一个请求保持在队列中,直到所有目标端口已接收到帧,这可能需要几个帧传输。
·每个设备的漏桶水平。可编程漏桶。通过对减少量之间的四个bus_clk数目进行编程,可在从0.9375G比特/秒至60G比特/秒的范围内设置泄漏率,例如,数目为2导致泄漏率为30G比特/秒。桶大小为255个单元(255单元对应于约23千字节)。漏桶必须是饱和的。
·每个队列的继承优先级。等待的帧中的最高优先级,即为其在请求队列中存储了仲裁器请求的帧以及处于设备的RX队列系统中的尚未为其做出仲裁器请求的帧中的最高优先级。
·活动的。指示一个设备当前是否正在发送,即,它是否已经开始传输一个帧,并且尚未传输最后的单元。
目标信息:
·活动的。指示目前是否有一个向所述设备的帧传输。
·每个端口阻塞。指示一个端口处于阻塞中。注意CPU设备不能指示阻塞,必须在必要的情况下在本地丢弃帧。
仲裁器能够每八个bus_clk周期为所有八个(源)设备生成一个许可。对于一个活动的源(端口和设备),仲裁器必须每八个周期送出相同的许可。唯一的例外是一个或多个目标设备/端口发生阻塞的情况,在这种情况下,许可被收回,直到在当前传输中充当目标的所有设备中的阻塞已经清除。
当使一个帧的最后的单元被传输的许可发出时,一个目标端口/设备变得不活动。每当一个目标设备不活动时,则做出一个新的仲裁决定。其结果是开始到该目标的一个新的帧传输,或者目标保持不活动。当做出一个仲裁决定时,只能考虑不活动的源,并且,显然只考虑当前具有向该特定目标传输的请求的源。在这些源中,具有最高的继承优先级的源是候选者。如果有多个候选者,则选择具有最低漏桶水平的候选者。如果仍然有多个候选者,则使用轮换方式。
轮换仲裁器的状态只在其生效时被更新。轮换仲裁器作为一个具有移动最低优先级点的优先级编码器。当轮换仲裁生效时,最低优先级点移动到刚被选中的设备,将其放到优先级列表的底部,用于仲裁下次生效时。
可同时(即在同样的八周期时段中)对更多目标做出同样的仲裁决定,这使得来自选中的源的下一次帧传输的所有单元都具有多个目标。
总而言之,当为一个目标做出一个仲裁决定时,标识一个单个源所必须的步骤按着以下列表从顶部开始执行:
1.查找不活动的源
2.查找具有到达目标的帧数据的源
3.查找具有最高的继承优先权的源
4.查找具有最低漏桶水平的源
5.使用轮换仲裁
对于每个传输,请求中的目标设备/端口集合被减少直到它为空。此时该请求被从队列中删除。
可以禁用一个源。当一个源被禁用时,来自该源的请求被忽略,只对已在请求队列中的请求发布许可。
以上首选实施方式提供了一个单个10G比特/秒连接和四个1G比特/秒连接之间的选择。此特定选择的原因是同一接口可支持一个XAUI(10G)接口或四个SERDES(1G)接口。显然,四个1G端口不能以10G的速率通信,但是总线接口和队列系统能接收10G(或者由一个加速引起的更高的速率,以便避免阻塞)的突发脉冲。如果队列系统发生阻塞,则使用流控制,以便停止发送设备。
但是,可以制成这样一种交换器,在该交换器中不提供上述选择,而是一种主干(总线和整个结构)能够提供不对应于任何标准数据速率的数据速率,例如14G比特/秒。在该情况下,可为每个设备选择一个端口组合,以便带宽被充分利用。
一个该种类型的交换器可参见图6,其中MAC 40已被修改,以便现在既能够处理4个1G比特/秒端口也能处理一个10G比特/秒端口。在这种方式中,元件40、50、60、70、80和90应能够处理14G比特/秒,而不是10G比特/秒。作为替换,也可提供最多14个1G比特/秒端口。
从而,设备又可具有不同的端口数目和端口速率,而设备在通信中不会被减慢。
在本实施方式中,以及正如上述申请中说明的那样,每个设备能够以一个预定的数据速率接收和发送数据。从而,数据分组被接收并且被存储以便以该速率发送,以及以该速率被存储以用于以任何希望的速率从设备发送。
从而,似乎不需要允许多个设备同时向同一目标发送数据。但是,这一点可被很容易地促进,因为接收设备的队列系统已经具有多个队列以接收多个数据分组。另外,如果数据分组是发向设备中的不同端口的,则不同的端口最好拥有不同的队列。从而,很可能有多个源向一个相同的目标设备发送数据。

Claims (82)

1.一个用于交换数据的装置,该装置包括:
-一条数据总线
-多个可通过数据总线彼此交换数据的设备,每个设备可从至少一个相应的I/O端口接收数据,以及将数据发送给该I/O端口,至少一个第一设备可从多个相应的I/O端口接收数据,以及将数据发送给所述多个相应的I/O端口,
-用于确定设备之间在数据总线上交换数据的顺序的仲裁器装置所述多个设备能够:
-接收和存储来自一个相应的I/O端口的数据,
-将关于一个相应的端口的阻塞或可用信息发送给仲裁器,
-从仲裁器接收表示接收到的数据是否可在数据总线上发送的信息,
-如果接收到的信息表示数据可被发送,则在数据总线上发送数据,以及
-从数据总线接收数据并将接收到的数据转发给一个相应的I/O端口,
所述仲裁器能够:
-从所述多个设备接收阻塞或不可用信息,以及
-根据阻塞信息确定交换数据的顺序。
2.根据权利要求1的一个装置,其中多个设备可在数据总线上至少以基本相同的速率彼此直接交换数据。
3.根据权利要求2的装置,其中第一数目个I/O端口允许第一高、较高的数据接收/发送速率,第二数目个I/O端口可允许第二高、较低的数据接收/发送速率,该速率比所述较高的速率低。
4.根据权利要求3的装置,其中至少一个I/O端口进一步允许一个或多个低于其最高数据速率的其他的数据接收/发送速率。
5.根据权利要求3的装置,其中每个设备能够至少以第一速率从数据总线接收数据并将数据发送给数据总线。
6.根据权利要求3的装置,其中每个设备有效地连接到第一群组的一个或多个I/O端口或者第二群组的多个I/O端口。
7.根据前述任一权利要求的装置,其中至少一个第二设备包括一个存储装置,该存储装置包括多个数据队列以用于存储从一个或多个I/O端口和/或从数据总线接收到的数据分组或帧。
8.根据权利要求7的装置,其中对于每个I/O端口,存储装置具有一个或多个数据队列。
9.根据权利要求7的装置,其中所述至少一个第二设备进一步包括一个接口,该接口在具有第一和第二I/O端口的第一组合的第一实施方式和具有第一和第二I/O端口的第二组合的第二实施方式之间是可变的,存储装置可在第一和第二实施方式的每一个中为接口实现的每个I/O端口提供一个或多个队列。
10.根据权利要求9的装置,其中在第一实施方式中,所述接口可具有多个第二I/O端口,在第二实施方式中,接口可具有一个或多个第一I/O端口,在第一实施方式中,存储装置对于接口的每个第一I/O端口包括第一数目个队列,在第二实施方式中,存储装置对于接口的每个第二I/O端口包括第二数目个队列。
11.根据前述任一权利要求的装置,其中仲裁器能够接收关于在I/O端口接收到的每个数据段的信息,该信息包括接收该数据段的一个I/O端口和/或一个设备。
12.根据前述任一权利要求的装置,其中仲裁器能够向至少一个第一设备提供关于哪个相应端口被允许发送数据的信息。
13.根据权利要求12的装置,其中仲裁器能够为所述至少一个第一设备检查是否多个端口中的第一端口希望向一个阻塞的或不可用的端口发送数据,如果是,则检查是否多个端口的另一个端口希望向一个未阻塞的或可用的端口发送数据,如果是,则向所述至少一个第一设备发送关于所述另一个端口被允许发送数据的信息。
14.根据前述任一权利要求的装置,其中所述至少一个第一设备能够确定向多个相应I/O端口中的哪一个发送从数据总线接收到的数据。
15.根据前述任一权利要求的装置,其中一个设备能够确定一个相应的I/O端口处的阻塞,并将相应的信息发送给仲裁器,并且当一个阻塞的I/O端口希望向一个接收设备或端口发送数据时,仲裁器能够不考虑接收设备或I/O端口的任何阻塞或不可用性,并通知相关设备阻塞的I/O端口被允许发送数据。
16.根据前述任一权利要求的装置,共中每个设备能够将在相应I/O端口处接收到的所有数据段发送给数据总线。
17.根据前述任一权利要求的装置,其中至少一个第三设备进一步包括一个处理装置,该处理装置能够:
-为在其I/O端口接收到的每个数据段提供一个优先级,
-在发送到数据总线之前将在其I/O端口接收到的每个数据段分成多个单元,并在从一个I/O端口输出之前将从数据总线接收到的单元组装成数据段,
-处理在I/O端口接收到的每个数据段,和/或
-从在I/O端口接收到的每个数据段中得到用于传输给仲裁器的信息。
18.根据权利要求17的装置,其中所述设备可为设备的每个I/O端口包括一个处理装置。
19.根据权利要求17的装置,其中所述至少一个第三设备具有用于为其相应的I/O端口上接收到的每个数据段提供一个优先级的装置,并且其中仲裁器能够也根据数据的优先级确定交换数据的顺序。
20.根据前述任一权利要求的装置,进一步包括一个查找引擎,该查找引擎能够接收关于在一个I/O端口接收到的每个数据段的信息并且从该信息中得出关于一个或多个接收该数据段的I/O端口或设备的标识信息。
21.根据权利要求20的装置,其中每个设备可进一步从接收到的每个数据段中得出关于该数据段的信息,将该信息发送给查找引擎,从查找引擎接收标识信息,并且在数据总线上与数据段一起交换标识信息。
22.根据权利要求20的装置,其中数据和标识信息在接收到标识信息之后以及在数据总线上被交换之前被存储。
23.根据权利要求20的装置,其中至少一个第四标识设备能够根据标识信息确定数据是否是发向该设备的。
24.根据权利要求20的装置,其中当不止一个端口或设备要接收在一个接收设备接收到的一个数据段时,仲裁器能够确定哪些端口和设备是可用的或未阻塞的,并将信息发送到所述接收设备,以使其将数据转发给那些端口和设备,并且随后当其他端口或设备可用或未阻塞时,通知接收设备将数据转发到那些设备或端口。
25.一种用于在一个交换装置中交换数据的方法包括:
-一条数据总线,
-多个可通过数据总线彼此交换数据的设备,每个设备可从至少一个相应的I/O端口接收数据,以及将数据发送给该I/O端口,至少一个第一设备可从多个相应的I/O端口接收数据,以及将数据发送给所述多个相应的I/O端口,
-用于确定设备之间在数据总线上交换数据的顺序的仲裁器装置,
该方法包括所述每个设备:
-接收和存储来自一个相应的I/O端口的数据,
-将关于一个相应的端口的阻塞或可用信息发送给仲裁器,
-从仲裁器接收表示接收到的数据是否可在数据总线上发送的信息,
-如果接收到的信息表示数据可被发送,则在数据总线上发送数据,以及
-从数据总线接收数据并将接收到的数据转发给一个相应的I/O端口,
所述仲裁器能够:
-从所述多个设备接收阻塞或不可用信息,以及
-根据阻塞信息确定交换数据的顺序。
26.根据权利要求25的方法,其中多个设备以至少基本相同的速率在数据总线上彼此直接交换数据。
27.根据权利要求26的方法,其中第一数目个I/O端口允许第一高、较高的数据接收/发送速率,第二数目个I/O端口允许第二高、较低的数据接收/发送速率,该速率比所述较高的速率低。
28.根据权利要求27的方法,其中至少一个I/O端口进一步允许一个或多个低于其最高数据速率的其他的数据接收/发送速率。
29.根据权利要求27的方法,其中每个设备至少以第一速率从数据总线接收数据并将数据发送给数据总线。
30.根据权利要求27的方法,其中每个设备与第一群组的一个或多个I/O端口或者第二群组的多个I/O端口通信。
31.根据权利要求25-30中任何一条权利要求的方法,其中至少一个第二设备将从一个或多个相应的I/O端口和/或数据总线接收到的数据段存储在一个存储装置中,该存储装置包括用于保存数据段的多个数据队列。
32.根据权利要求31的方法,其中对于每个相应的I/O端口,所述至少一个第二设备将数据段存储在一个或多个数据队列中。
33.根据权利要求31的方法,其中所述至少一个第二设备进一步包括一个接口,该接口在具有第一和第二I/O端口的第一组合的第一实施方式和具有第一和第二I/O端口的第二组合的第二实施方式之间变化,存储装置在第一和第二实施方式的每一个中为接口实现的每个I/O端口提供一个或多个队列。
34.根据权利要求33的方法,其中在第一实施方式中,所述接口具有多个第二I/O端口,在第二实施方式中,接口具有一个或多个第一I/O端口,在第一实施方式中,存储装置对于接口的每个第一I/O端口包括第一数目个队列,在第二实施方式中,存储装置对于接口的每个第二I/O端口包括第二数目个队列。
35.根据权利要求25-34中任何一条的方法,其中仲裁器接收关于在I/O端口处接收的每个数据段的信息,该信息包括接收所述数据段的一个I/O端口和/或一个设备。
36.根据权利要求25-35中任何一条的方法,其中仲裁器向至少一个第一设备提供关于哪个相应的端口被允许发送数据的信息。
37.根据权利要求36的方法,其中仲裁器为所述至少一个第一设备检查是否多个端口中的一个第一端口希望向一个阻塞的或不可用的端口发送数据,如果是,则检查是否多个端口的另一个端口希望向一个未阻塞的或可用的端口发送数据,如果是,则向所述至少一个第一设备发送关于所述另一个端口被允许发送数据的信息。
38.根据权利要求25-37中任何一条的方法,其中所述至少一个第一设备确定向其多个相应的I/O端口中的哪一个发送从数据总线接收到的数据。
39.根据权利要求25-38中任何一条的方法,其中一个设备确定一个相应的I/O端口处的阻塞,并将相应的信息发送给仲裁器,并且当一个阻塞的I/O端口希望向一个接收设备或端口发送数据时,仲裁器能够不考虑接收设备或I/O端口的任何阻塞或不可用性,并通知相关设备阻塞的I/O端口被允许发送数据。
40.根据权利要求25-39中任何一条的方法,其中每个设备将在相应的I/O端口处接收到的所有数据段发送给数据总线。
41.根据权利要求25-40中任何一条的方法,其中至少一个第三设备进一步包括一个或多个处理步骤,这些步骤是:
-为在其I/O端口接收到的每个分组或帧提供一个优先级,
-在发送到数据总线之前将在其I/O端口接收到的每个分组或帧分成多个单元,并在从一个I/O端口输出之前将从数据总线接收到的单元组装成帧或分组,
-处理在I/O端口接收到的每个分组或帧,以及
-从在I/O端口接收到的每个分组或帧中得出用于传输给仲裁器的信息。
42.根据权利要求41的方法,其中所述至少一个第三设备可为设备的每个I/O端口执行一个或多个处理步骤。
43.根据权利要求41的方法,其中所述至少一个第三设备执行为其相应的I/O端口处接收到的每个数据段执行提供一个优先级的步骤,并且其中仲裁器也根据数据的优先级确定交换数据的顺序。
44.根据权利要求25-43中任何一条的方法,进一步包括以下步骤:一个查找引擎接收关于在一个I/O端口接收到的每个数据段的信息,并且从该信息中得出关于一个或多个接收该数据段的I/O端口或设备的标识信息。
45.根据权利要求44的方法,其中每个设备进一步从接收到的每个数据段得出关于该数据段的信息,将该信息发送给查找引擎,从查找引擎接收标识信息,并且在数据总线上与数据段一起交换标识信息。
46.根据权利要求44的方法,其中数据和标识信息在接收到标识信息之后以及在数据总线上被交换之前被存储。
47.根据权利要求44的方法,其中至少一个第四设备根据标识信息确定数据是否是发向该设备的。
48.根据权利要求44的方法,其中当不止一个端口或设备要接收在一个接收设备接收到的一个数据段时,仲裁器确定哪些端口和设备是可用的或未阻塞的,并将信息发送到所述接收设备,以便让其将数据转发给那些端口和设备,并且随后当其他端口或设备可用或未阻塞时,通知接收设备将数据转发到那些设备或端口。
49.一个接口,该接口包括:
-多个用于串行化并行数据的装置,每个串行化装置可输出一个串行数据信号,
-用于提供多个独立的第一并行数据的第一装置,为每个串行化装置提供一个第一并行数据,
-用于提供第二并行数据的第二装置,用于将第二并行数据分成多个第三并行数据并将一个第三并行数据提供给每个串行化装置,以及
-用于校准和/或同步从串行化装置输出的串行数据信号以便得到多个串行数据信号之间的一个预定时序关系的装置。
50.根据权利要求49的接口,其中,校准/同步装置能够在接收第一并行数据时不校准/同步从串行化装置输出的串行数据信号。
51.一个接口,该接口包括:
-多个用于串行化并行数据的装置,每个串行化装置可输出一个串行数据信号,
-用于提供多个独立的第一并行数据的第一装置,为每个串行化装置提供一个第一并行数据,
-用于提供第二并行数据的第二装置,用于将第二并行数据分成多个第三并行数据并将一个第三并行数据提供给每个串行化装置,以及
-用于校准和/或同步第三并行数据以便得到多个第三串行数据信号之间的一个预定时序关系的装置。
52.根据权利要求49-51中任何一条的接口,校准/并行装置能够被禁用。
53.根据权利要求49-52中任何一条的接口,其中第一提供装置可沿着一条第一并行数据总线输出每个第一并行数据,其中第一并行数据总线具有第一预定数目个导体,其中第二提供装置可沿着一条第二数据总线输出第二并行数据,其中第二数据总线具有第二预定数目个导体,并且其中第一和第二数据总线至少具有一个公共导体。
54.根据权利要求53的接口,导体的第一预定数目与导体的第二预定数目不同。
55.根据权利要求53的接口,其中第一并行数据总线被包括在第二并行数据总线中。
56.根据权利要求53的接口,其中多个串行化装置乘以第一预定数目个导体等于第二预定数目个导体。
57.根据权利要求49-56中任何一条的接口,其中第一提供装置能够遵循GMII标准输出第一并行数据,其中第二提供装置能够遵循XGMII标准输出第二并行数据,并且串行化装置能够遵循XAUI或无限频带标准输出多个串行数据信号。
58.一个接口,该接口包括:
-多个装置,每个装置用于接收一个串行数据信号,以及用于将串行数据信号去串行化为并行数据,
-用于在去串行化之前校准/同步所述串行数据信号以便获得多个并行数据之间的一个预定时序关系的装置,校准/同步装置可被禁用,
-当校准/同步装置未被禁用时,用于将对应去串行化后的校准/同步后的串行信号的并行数据合并成一个单个并行数据段或一个单个并行数据流的装置。
59.一个接口,该接口包括:
-多个装置,每个装置用于接收一个串行数据信号,以及用于将串行数据信号去串行化为并行数据,
-用于校准/同步所述多个并行数据以便获得多个并行数据之间的一个预定时序关系的装置,校准/同步装置可被禁用,
-当校准/同步装置未被禁用时,用于将校准/同步后的并行数据合并成一个单个并行数据段或一个单个并行数据流的装置。
60.根据权利要求58或59中任何一条的接口,其中去串行化装置能够沿着一个第一并行数据总线输出每个并行数据,其中第一并行数据总线具有第一预定数目个导体,其中合并装置能够沿着一个第二数据总线输出单个并行数据,其中第二数据总线具有第二预定数目个导体,并且其中第一和第二数据总线具有至少一个公共导体。
61.根据权利要求60的接口,其中导体第一预定数目与导体的第二预定数目不同。
62.根据权利要求60的接口,其中第一并行数据总线包括在第二并行数据总线中。
63.根据权利要求60的接口,其中多个串行化装置乘以第一预定数目个导体等于第二预定数目个导体。
64.根据权利要求58-63中任何一条的接口,其中去串行化装置能够遵循GMII标准输出第一并行数据,其中合并装置能够遵循XGMII标准输出第二并行数据,并且其中去串行化装置能够遵循XAUI或无限频带标准接收多个串行数据信号。
65.根据权利要求49-64中任何一条的接口,进一步包括一个用于提供一个时钟信号的装置,并且其中串行化/去串行化装置能够根据该时钟信号执行串行化/去串行化。
66.根据权利要求65的接口,其中时钟提供装置能够提供具有两个时钟信号频率之一的时钟信号,其中当校准/同步装置被禁用时,提供具有时钟信号频率之一的时钟信号,而当校准装置未被禁用时,提供具有时钟信号频率中的另一个频率的时钟信号。
67.根据权利要求66的接口,其中时钟频率中的一个频率和另一个频率从包括3.25GHz、1.25GHz和2.5GHz的组中选择。
68.根据权利要求67的接口,其中一个信号的频率为1.25GHz,而另一个信号的频率为3.25GHz或2.5GHz。
69.一种通信系统,该通信系统包括根据权利要求49-57中任何一条的一个第一接口和根据权利要求58-64中任何一条的一个第二接口,以及用于将多个串行信号从第一接口传输到第二接口的装置,该系统包括用于处理由第二接口输出的多个并行数据和/或单个并行数据的装置,处理装置能够彼此独立地处理所述多个并行数据。
70.根据权利要求69的通信系统,该系统能够以两种操作模式之一被操作,这两种模式包括:
-第一操作模式,其中第一和第二接口的校准/同步装置被操作,以及
-第二操作模式,其中第一和第二接口的校准/同步装置被禁用。
71.操作权利要求49-68中任何一条的接口的方法,该方法包括:
-确定要接收和/或输出的一个或多个串行数据信号是否将被校准和/或同步,以及
-相应地操作校准/同步装置。
72.根据权利要求71的方法,其中确定步骤包括确定多个串行数据信号的总的数据速率,并且如果该数据速率超过一个预定的阈值则操作校准/同步装置。
73.操作权利要求58-64中任何一条的接口的方法,该方法包括:在两种操作模式之间变化,其中:
-在第一操作模式中,去串行化装置彼此独立地接收数据,并彼此独立地输出并行数据,以及
-在第二操作模式中,输出单个并行数据。
74.操作权利要求49-57中任何一条的接口的方法,该方法包括:在两种操作模式之间变化,其中:
-在第一操作模式中,串行化装置彼此独立地接收第一并行数据,并彼此独立地输出串行数据,以及
-在第二操作模式中,多个串行数据信号输出具有预定的时序关系。
75.一种交换器,该交换器具有:
-多个设备,每个设备包括一个根据权利要求49-57中任何一条的接口和一个根据权利要求58-68中任何一条的接口,并且每个设备能够从一个或多个网络连接接收多个串行数据信号,以及将多个串行数据信号输出给所述一个或多个网络连接,
-所述设备能在其上交换数据的一条数据总线,
其中所述多个设备中的至少一个能够在至少两种操作模式之间变化,这两种操作模式包括:
-第一操作模式,其中设备能够通过接口从第一数目个网络连接接收串行数据信号,以及通过接口将串行数据信号发送给所述第一数目个网络连接,以及
-第二操作模式,其中设备能够通过接口从第二数目个网络连接接收串行数据信号,以及通过接口将串行数据信号发送给所述第二数目个网络连接,第二数目大于第一数目。
76.根据权利要求75的交换器,其中所述至少一个设备包括一个处理装置,该处理装置能够在发送到数据总线之前处理从接口接收到的数据,处理装置可在至少两种操作模式之间变化,这两种操作模式包括:
-第一操作模式,其中装置能够彼此独立的处理来自第一数目个网络连接中的每一个的数据,以及
-第二操作模式,其中装置能够彼此独立的处理来自第二数目个网络连接的数据。
77.根据权利要求76的交换器,其中在第二操作模式中处理装置包括对应于第二数目个独立过程中的每一个的单独存储器以及在第二数目个独立程序之间共享的逻辑。
78.根据权利要求75的交换器,其中至少一个设备进一步包括一个存储装置,该存储装置可在在接口接收数据与在总线上传输数据之间存储数据,存储装置可以在至少两种操作模式之间变化,这两种操作模式包括:
-第一操作模式,用于当设备以其第一操作模式操作时,其中存储装置能够在对应于第一数目个网络连接乘以一个第一预定数目的多个队列中存储接收到的数据,以及
-第二操作模式,用于当设备以其第二操作模式操作时,其中存储装置能够在对应于第二数目个网络连接乘以一个第二预定数目的多个队列中存储接收到的数据。
79.一种操作一个交换器的方法,该交换器具有:
-多个设备,每个设备包括一个根据权利要求49-57中任何一条的接口和一个根据权利要求58-68中任何一条的接口,并且每个设备能够通过所述接口从一个或多个网络连接接收多个串行数据信号,以及通过所述接口将多个串行数据信号输出给所述一个或多个网络连接,
-所述设备能在其上交换数据的一条数据总线,
该方法包括在所述多个设备的至少之一中在至少两种操作模式之间变化,这两种操作模式包括:
-第一操作模式,其中所述设备能够通过所述接口从第一数目个网络连接接收串行数据信号,以及通过接口将串行数据信号发送给第一数目个网络连接,以及
-第二操作模式,其中设备能够通过接口从第二数目个网络连接接收串行数据信号,以及通过接口将串行数据信号发送给第二数目个网络连接,第二数目大于第一数目。
80.根据权利要求79的方法,进一步包括在发送到数据总线之前处理从接口接收到的数据的步骤,该方法包括使处理在至少两种操作模式之间变化,这两种操作模式包括:
-第一操作模式,其中来自第一数目个网络连接的每一个的数据被彼此独立地处理,以及
-第二操作模式,其中来自第二数目个网络连接中的数据被彼此独立地处理。
81.根据权利要求79的方法,进一步包括在接口接收数据与在总线上传输数据之间存储数据的步骤,该方法包括使存储在至少两种操作模式之间变化,这两种操作模式包括:
-第一操作模式,用于当设备以其第一操作模式操作时,其中存储装置能够在对应于第一数目个网络连接乘以一个第一预定数目的多个队列中存储接收到的数据,以及
-第二操作模式,用于当设备以其第二操作模式操作时,其中存储装置能够在对应于第二数目个网络连接乘以一个第二预定数目的多个队列中存储接收到的数据。
82.一种操作根据权利要求75的交换器的方法,该方法包括:
-对于所述多个设备的至少一个,确定是使用第一或第二操作模式,以及
-以确定的操作模式操作所述设备。
CNB028260899A 2001-11-09 2002-11-07 用于交换数据分组或帧的装置和方法 Expired - Fee Related CN100527697C (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US34447301P 2001-11-09 2001-11-09
US60/344,473 2001-11-09
US36511802P 2002-03-19 2002-03-19
US60/365,118 2002-03-19

Publications (2)

Publication Number Publication Date
CN1608366A true CN1608366A (zh) 2005-04-20
CN100527697C CN100527697C (zh) 2009-08-12

Family

ID=26993938

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028260899A Expired - Fee Related CN100527697C (zh) 2001-11-09 2002-11-07 用于交换数据分组或帧的装置和方法

Country Status (4)

Country Link
US (1) US7342889B2 (zh)
EP (1) EP1464144A4 (zh)
CN (1) CN100527697C (zh)
WO (1) WO2003043271A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108322405A (zh) * 2018-03-21 2018-07-24 山东超越数控电子股份有限公司 一种基于数据的流量均衡方法与装置

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7280549B2 (en) * 2001-07-09 2007-10-09 Micron Technology, Inc. High speed ring/bus
US7286557B2 (en) * 2001-11-16 2007-10-23 Intel Corporation Interface and related methods for rate pacing in an ethernet architecture
US7519089B1 (en) * 2002-02-27 2009-04-14 Advanced Micro Devices, Inc. Arrangement in a channel adapter for transmitting data according to link widths selected based on received link management packets
US7376146B2 (en) * 2002-05-16 2008-05-20 Intel Corporation Bus conversion device, system and method
US7003609B2 (en) * 2003-09-23 2006-02-21 Tellabs Petaluma, Inc. Method and apparatus of allocating minimum and maximum bandwidths on a bus-based communication system with redundant communication circuits
US7065594B2 (en) 2003-09-23 2006-06-20 Tellabs Petaluma, Inc. Method and apparatus of allocating minimum and maximum bandwidths on a bus-based communication system
US7200732B2 (en) * 2004-01-23 2007-04-03 Tellabs Petaluma, Inc. Method and apparatus of adding grant information to a memory
US9264384B1 (en) * 2004-07-22 2016-02-16 Oracle International Corporation Resource virtualization mechanism including virtual host bus adapters
US7881332B2 (en) * 2005-04-01 2011-02-01 International Business Machines Corporation Configurable ports for a host ethernet adapter
US7586936B2 (en) 2005-04-01 2009-09-08 International Business Machines Corporation Host Ethernet adapter for networking offload in server environment
US7508771B2 (en) 2005-04-01 2009-03-24 International Business Machines Corporation Method for reducing latency in a host ethernet adapter (HEA)
US7903687B2 (en) 2005-04-01 2011-03-08 International Business Machines Corporation Method for scheduling, writing, and reading data inside the partitioned buffer of a switch, router or packet processing device
US7492771B2 (en) 2005-04-01 2009-02-17 International Business Machines Corporation Method for performing a packet header lookup
US7706409B2 (en) 2005-04-01 2010-04-27 International Business Machines Corporation System and method for parsing, filtering, and computing the checksum in a host Ethernet adapter (HEA)
US7606166B2 (en) 2005-04-01 2009-10-20 International Business Machines Corporation System and method for computing a blind checksum in a host ethernet adapter (HEA)
US7697536B2 (en) * 2005-04-01 2010-04-13 International Business Machines Corporation Network communications for operating system partitions
US20060221953A1 (en) 2005-04-01 2006-10-05 Claude Basso Method and apparatus for blind checksum and correction for network transmissions
US7577151B2 (en) * 2005-04-01 2009-08-18 International Business Machines Corporation Method and apparatus for providing a network connection table
US20060268692A1 (en) * 2005-05-31 2006-11-30 Bellsouth Intellectual Property Corp. Transmission of electronic packets of information of varying priorities over network transports while accounting for transmission delays
US9813283B2 (en) 2005-08-09 2017-11-07 Oracle International Corporation Efficient data transfer between servers and remote peripherals
US20070263713A1 (en) * 2006-05-09 2007-11-15 Aronson Lewis B Digital video interface
US7734183B2 (en) * 2006-08-25 2010-06-08 Emcore Corporation XFI-XAUI integrated circuit for use with 10GBASE-LX4 optical transceivers
JP4701152B2 (ja) * 2006-10-20 2011-06-15 富士通株式会社 データ中継装置、データ中継方法およびデータ中継プログラム
KR101045085B1 (ko) * 2009-06-30 2011-06-29 주식회사 하이닉스반도체 병-직렬 변환회로
US9973446B2 (en) 2009-08-20 2018-05-15 Oracle International Corporation Remote shared server peripherals over an Ethernet network for resource virtualization
US9331963B2 (en) 2010-09-24 2016-05-03 Oracle International Corporation Wireless host I/O using virtualized I/O controllers
US9083550B2 (en) 2012-10-29 2015-07-14 Oracle International Corporation Network virtualization over infiniband
US9372818B2 (en) * 2013-03-15 2016-06-21 Atmel Corporation Proactive quality of service in multi-matrix system bus
JP6511875B2 (ja) * 2015-03-09 2019-05-15 富士通株式会社 情報処理システム、スイッチ装置及び情報処理システムの制御方法
US10715441B2 (en) * 2015-09-04 2020-07-14 Arista Networks, Inc. System and method of a high buffered high bandwidth network element
US10397144B2 (en) * 2016-12-22 2019-08-27 Intel Corporation Receive buffer architecture method and apparatus

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2876914B2 (ja) * 1992-09-07 1999-03-31 日本電気株式会社 パケット交換装置におけるバッファ制御方式
GB9509484D0 (en) * 1995-05-10 1995-07-05 Gen Datacomm Adv Res Atm network switch
US6097700A (en) * 1995-09-18 2000-08-01 Telefonaktiebolaget L M Ericsson (Publ) Packet switched radio channel congestion control
US5822300A (en) * 1996-04-02 1998-10-13 Compaq Computer Corporation Congestion management scheme
US6098109A (en) * 1996-12-30 2000-08-01 Compaq Computer Corporation Programmable arbitration system for determining priority of the ports of a network switch
US6393548B1 (en) * 1997-02-14 2002-05-21 Advanced Micro Devices, Inc. Variable 16 or 32 bit PCI interface which supports steering and swapping of data
US6434115B1 (en) * 1998-07-02 2002-08-13 Pluris, Inc. System and method for switching packets in a network
GB2348580B (en) * 1999-03-30 2001-03-14 3Com Corp System and method for congestion control in packet-based communication networks
US6519225B1 (en) * 1999-05-14 2003-02-11 Nortel Networks Limited Backpressure mechanism for a network device
CN1108075C (zh) * 1999-09-24 2003-05-07 华为技术有限公司 无线信道的动态分配的方法
WO2002030047A2 (en) * 2000-10-04 2002-04-11 Vitesse Semiconductor Corporation A data communication network switching unit having a systolic ring structure

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108322405A (zh) * 2018-03-21 2018-07-24 山东超越数控电子股份有限公司 一种基于数据的流量均衡方法与装置

Also Published As

Publication number Publication date
EP1464144A1 (en) 2004-10-06
EP1464144A4 (en) 2010-09-22
US7342889B2 (en) 2008-03-11
WO2003043271A1 (en) 2003-05-22
CN100527697C (zh) 2009-08-12
US20040081145A1 (en) 2004-04-29

Similar Documents

Publication Publication Date Title
CN1608366A (zh) 用于交换数据分组或帧的装置和方法
CN1181654C (zh) 使用网络处理器的网络交换机和方法
CN1204503C (zh) 用于通信网络的装置、系统及其操作方法
CN1204509C (zh) 通信网络装置
CN1118984C (zh) 高速分组传输网络的可编程线路适配器和数据分组缓存方法
CN1201242C (zh) 数据传送控制装置和电子装置
CN1311377C (zh) 转寄信息封包的方法
CN1239984C (zh) Vlsi网络处理器和方法
CN1612562A (zh) 用策略流实现不同因特网协议数据包转发的方法和设备
CN1677979A (zh) 通过网络在计算机之间共享对象的系统和方法
CN1496632A (zh) 用在扩展局域网中的以优先级为基础的负载平衡方法和设备
CN1870589A (zh) 信息包传输装置及网络系统
CN101061672A (zh) 通信系统、无线局域网基站控制装置和无线局域网基站装置
CN1620783A (zh) 用于在通信环上同时管理多个令牌的方法和系统
CN1132881A (zh) 交换机适配器、计算机和数据交换方法
CN1761243A (zh) 传输设备和方法、记录介质、程序和控制设备
CN1917471A (zh) 以太网接入装置及其接入方法
CN1138211C (zh) 数据传输控制装置及电子设备
CN1522079A (zh) 通信系统、多播交换设备及通信方法
CN1319209A (zh) 数字通信处理器
CN1960336A (zh) 一种实现灵活QinQ的方法及设备
CN1518233A (zh) 发送接收电路、发送接收方法以及发送接收装置
CN1663193A (zh) 用于管理通信网络中的链路资源的方法
CN1835508A (zh) 转发与控制分离网络件内信息交换的方法
CN1243314C (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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090812

Termination date: 20161107