CN1689283A - 使用仲裁系统处理超级帧的方法和装置 - Google Patents
使用仲裁系统处理超级帧的方法和装置 Download PDFInfo
- Publication number
- CN1689283A CN1689283A CNA038237687A CN03823768A CN1689283A CN 1689283 A CN1689283 A CN 1689283A CN A038237687 A CNA038237687 A CN A038237687A CN 03823768 A CN03823768 A CN 03823768A CN 1689283 A CN1689283 A CN 1689283A
- Authority
- CN
- China
- Prior art keywords
- output port
- frame
- grouping
- groupings
- message
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/356—Switches specially adapted for specific applications for storage area networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了在具有多个输入端口和多个输出端口的交换机中传输多个分组的方法和装置。在一个或多个输入端口处接收两个或更多分组。标识多个输出端口中经由其来发送所述两个或更多分组中的每一个的输出端口。将请求消息发送到仲裁器。然后响应于请求消息从仲裁器接收准予消息。生成包括两个或更多所接收的分组的帧。然后当接收到准予消息时,将该帧发送到所述多个输出端口之一。另外,还公开了执行仲裁以协调对在一个或多个输入端口处接收到的多个分组或帧的发送,以用于由一个或多个输出端口传输的方法和装置。从一个或多个输入端口接收一个或多个请求消息,所述请求消息中的每一个指示出经由所述输出端口之一发送一个或多个分组或帧的请求。然后仲裁器确定所述输出端口之一能否接收所述一个或多个分组或帧。当确定所述输出端口之一能够接收所述一个或多个分组或帧时生成或发送准予消息,所述准予消息指示所述输出端口之一能接收所述一个或多个分组或帧。
Description
技术领域
本发明涉及网络技术。更具体而言,本发明涉及使用仲裁系统处理超级帧的方法和装置。
背景技术
近年来,存储设备容量的增加速度跟不上存储需求的增加。因此,一个给定的服务器或其他主机必须访问多个物理上独立的存储节点(通常是盘)。为了解决这些存储限制,开发了存储区域网络(SAN)。一般,存储区域网络是这样一种高速专用网络,其代表更大的用户网络将不同的数据存储设备和相关的数据主机互连起来。然而,虽然SAN使得存储设备可被配置来由网络中的多个网络设备和/或实体使用,但数据存储需求常常是动态而非静态的。
图1示出了一个示例性的传统存储区域网络。更具体而言,在存储区域网络102中,可以将一组主机(例如服务器或工作站)104、106、108耦合到存储设备(例如盘)的池(pool)。用SCSI的用语来说,可将所述主机视为“发起者”,并将所述存储设备视为“目标”。存储池例如可通过一组存储阵列或盘阵列110、112、114来实现。盘阵列110、112、114中的每一个还对应于一组盘。在本例中,第一盘阵列110对应于盘116、118,第二盘阵列112对应于盘120,第三盘阵列114对应于盘122、124。希望能够经由盘阵列110、112、114动态并不可见地向主机104-108中的每个主机分配存储装置(例如盘),而非允许所有主机104-108访问所有的盘116-124。换言之,可以通过虚拟存储器(例如虚拟盘)的概念来分配物理存储器(例如物理盘)。这使得人们可以用允许对存储装置的动态透明分配的方式,将异构的发起者连接到分布式的异构目标组(存储池)。
在诸如SAN之类的网络中,数据的传输速度尤其重要。然而,网络内的数据传输的速度存在多种限制。其中一种限制是每秒可传输的分组数。而且,试图满足或超过这种限制可能会导致交换机内的拥塞,除非交换机被设计为避免拥塞。
一种通常用于在交换机内的输出端口处防止拥塞的系统是仲裁系统。在传统的仲裁处理中,交换机经由多个输入端口之一接收分组。更具体而言,交换机所接收到的每个分组都被寻址为经由多个输出端口之一传输。仲裁器不是将分组按照接收时的原样转发到适当的输出端口,而是对分组的传输进行仲裁,以防止输出端口处的拥塞。遗憾的是,仲裁一般是在每个分组的基础上执行的。因此,仲裁处理对每个分组的传输引入了很大的延迟。
鉴于以上问题,希望能够提高诸如存储区域网络内的数据传输速度。而且,有益的是能在实现了仲裁器的交换机中加速数据传输。
发明内容
本发明能够加速实现了仲裁器的交换机中的数据传输。这是部分地通过生成包括多个分组(或帧)的帧而实现的。这样,仲裁器管理帧的传输而非管理单个分组的传输。
根据本发明的一个方面,公开了用于在交换机中传输多个分组的方法和装置,所述交换机具有多个输入端口和输出端口。每个端口都可以支持输入端口功能以及输出端口功能。然而,为了本申请的目的,术语“输入端口”和“输出端口”被用来指代这些单独的功能。在所述多个输入端口中的一个或多个输入端口处接收到两个或更多分组(或帧)。标识出所述多个输出端口之一,将经由该输出端口发送所述两个或更多分组中的每一个。将请求消息发送到仲裁器。然后,响应于所述请求消息而从仲裁器接收到准予消息。生成被称为超级帧的包括所述两个或更多所接收的分组在内的帧。然后,当接收到准予消息时,将该帧发送到所述多个输出端口之一。一旦经由所述多个输出端口之一传输了所述帧或相关分组,就将相应的可用消息发送到仲裁器,所述可用消息指示出该输出端口现在能够接收下一帧或者一个或多个分组。换言之,可用消息指示出能够接收帧或相关的(多个)分组的一个或多个缓冲区的可用性。例如,可用消息可以指示出能够接收预定数量的字节的一个或多个缓冲区的可用性。
根据本发明的另一方面,当接收和/或排队了分组之后,立即发送请求消息。这使得仲裁处理可以在另外的分组可被接收并置于虚拟输出队列中以用于后续的在超级帧中的传输期间进行。或者,请求消息可以在对去往同一输出端口的两个或更多个分组进行排队之后发送。当从仲裁器接收到准予消息时,可将包括去往同一输出端口的多个分组在内的帧传输到该输出端口。这样,就可以由仲裁器管理多个分组的传输,并且由交换机传输,同时仅需要仲裁器处理单个请求和准予消息。例如,取决于输出存储资源,每个请求和准予消息可以对应于最大数量的字节。
根据本发明的另一方面,使用仲裁器来协调对在一个或多个输入端口处接收到的多个分组或帧的发送,以用于由一个或多个输出端口传输。仲裁器从一个或多个输入端口接收到一个或多个请求消息,所述请求消息中的每一个都指示出经由所述输出端口之一发送一个或多个分组或帧的请求。例如,可以将多个分组或帧在将被称为“超级帧”的帧中一起发送。仲裁器确定所述输出端口之一是否能够接收所述一个或多个分组或帧。例如,仲裁器可以确定信用(credit)是否可用于所请求的输出端口。然后,当确定出所述输出端口之一能够接收所述一个或多个分组或帧时,生成或发送准予消息,所述准予消息指示出所述输出端口之一能够接收所述一个或多个分组或帧。
根据本发明的另一方面,在每个端口基础上实现本发明。更具体而言,本发明可以实现为专用于交换机内的每个端口的硬件和/或软件。换言之,一个或多个网络设备的所选端口可以用硬件和/或软件实现所公开的功能。这使得处理可以随端口的数量而可扩展。因此,本发明较之传统的基于仲裁的交换方案,为数据传输提供了高得多的带宽,这是因为每个“可用-请求-准予”周期可处理多个分组。
多种网络设备可以被配置为或适合于拦截、生成、修改和传输分组或帧,以实现所公开的功能。这些网络设备包括但不局限于服务器(例如主机)、路由器和交换机。而且,上述处理的功能可以实现在软件和硬件中。
本发明的另一方面涉及包括机器可读介质在内的计算机程序产品,在所述介质上提供了程序指令,所述程序指令用于全部或部分地实现上述的方法和技术。本发明的方法中的任何方法都可以在这种机器可读介质上提供。另外,本发明涉及如这里所描述的所生成和/或使用的数据的各种组合和设置。例如,具有这里所描述的格式、并在适当的介质上提供的分组和帧是本发明的一部分。
附图说明
在下面的“具体实施方式”部分中,将结合附图对本发明的这些及其他特征进行更详细的说明。
图1是示出示例性传统存储区域网络的框图。
图2是示出用于在交换机内处理分组的仲裁机制的时间线。
图3是示出能够实现所公开的交换功能的多个实施例的存储区域网络的框图。
图4是示出根据本发明多个实施例,可实现本发明的示例性系统的框图。
图5是示出其中可实现本发明多个实施例的示例性交换机的框图。
图6示出了根据本发明多个实施例,被附加到交换机所接收的分组上的示例性分组头部。
图7示出了根据本发明多个实施例,被生成以用于传输到输出端口的示例性超级帧。
图8是示出根据本发明多个实施例,对交换机所接收的分组进行处理和传输的方法的处理流程图。
图9示出了可由诸如以上参照图4描述的仲裁器所维护的示例性仲裁表。
图10示出了根据本发明多个实施例,可连接到仲裁器所服务于的多个线路卡的示例性交叉条(cross-bar)。
图11示出了根据本发明多个实施例,向仲裁器发送对输出端口的请求的列表的输入线路卡。
图12示出了根据本发明多个实施例,将对输出端口的请求的列表发送到仲裁器的两个不同的输入线路卡。
图13示出了根据本发明多个实施例,仲裁器用来根据输出端口来对从每个线路卡接收到的请求进行分类的一组输出队列。
图14是示出根据本发明多个实施例,将请求分类到输出队列中的方法的处理流程图。
图15示出了根据本发明多个实施例,由仲裁器用来在每个输出端口基础上跟踪信用的一组信用队列。
图16示出了根据本发明多个实施例,由仲裁器用来在将准予发送到线路卡之前在线路卡基础上对队列中的准予进行排序的一组准予队列。
图17示出了根据本发明多个实施例,由每个线路卡用来跟踪发送自输入端口的请求,以使其可以按适当的顺序处理接收自仲裁器的准予的机制。
图18是示出根据本发明多个实施例,对线路卡中接收自仲裁器的准予进行处理的方法的处理流程图。
具体实施方式
在以下说明中,阐述了许多具体细节,以提供对本发明的透彻理解。然而,对本领域技术人员来说将会很清楚的是,没有这些具体细节中的一些或全部也可以实施本发明。在其他实例中,并未详细示出公知的处理步骤,以免多余地模糊了本发明的内容。
在光纤信道网络内,通常在某个起始时间,在每个端口的基础上分配多个缓冲区。然后根据所指定的缓冲区的使用情况来发出光纤信道信用(credit)。然而,这种信用机制并未与仲裁机制结合使用。图2示出了可用在诸如光纤信道网络之类的网络中以在每个分组的基础上传输分组的仲裁机制的时间线。如图所示,时间线202以纳秒(ns)为单位示出了时钟周期。如图所示,当第一分组n在0ns处到达交换机的流入端口时,一个请求消息被发送到仲裁器。类似地,后续分组n+1在约30ns处到达交换机的端口。当仲裁器在约10ns处接收到第一分组的请求消息n时,仲裁器大约花费50ns来将准予消息发送到所述流入端口,所述准予消息指示出可在交换机内传输第一分组n。此后不久,传输所述分组n(示出在约60ns处),这可能花费约20ns。一旦第一分组被传输到交换机的用于传输的流出端口,第二请求消息就在约80ns处被发送到仲裁器。同样,由于仲裁器将准予消息发送到流入端口大约花50ns,因此仲裁器在约135ns处发送对应于第二分组的第二准予消息。因此,直到约135ns处才由流入端口将第二分组n+1发送到流出端口。由于所述仲裁机制对其接收到的准予请求的串行特性,对经由流出端口进行的每个分组的传输而言,存在约80ns的延迟。
根据本发明的多个实施例,使用仲裁器来防止交换机输出端口处的拥塞。然而,在单个帧中附加并传输多个分组,而非在每个分组的基础上进行仲裁。这样,降低了与交换机对多个分组的传输相关的延迟。
本发明的多个实施例可以实现在诸如交换机之类的网络设备中。注意,这种交换机所接收和传输的帧和/或分组具有为诸如以太网或光纤信道之类的标准协议而指定的帧格式。因而,传统上用于生成这种帧的软件和硬件也可用于本发明。根据本发明,还采用了额外的硬件和/或软件来修改和/或生成与标准协议相兼容的帧。
所述帧是由诸如主机、交换机或存储设备之类的网络设备生成的。显然,应当用适当的执行所公开功能的软件和/或硬件来配置适当的网络设备。当然,无需将存储区域网络中的所有网络设备都配置为具有所公开的功能。确切地说,可将所选择的交换机和/或端口配置为具有或适于所公开的功能。类似地,在多个实施例中,可以通过对多个节点的选择来使能或禁止这种功能。而且,希望将网络设备的所选择的端口配置为能够执行所公开的功能,或者持续地执行,或者仅在使能状态下执行。
存储区域网络中所采用的标准协议(即用于将数据成帧的协议)通常与网络所承载的“流量类型”同义,虽然并非一定如此。下面将会说明,所述流量类型是以某种封装格式来定义的。流量类型的示例通常是第2层或相应层的格式,例如以太网、光纤信道和无限带宽(InfiniBand)。
如上所述,存储区域网络(SAN)是代表更大的用户网络将不同的数据存储设备与相关网络主机(例如数据服务器或末端用户机)互连起来的高速专用网络。SAN由系统的物理配置定义。换言之,SAN中的这些设备必须是物理上互连的。在诸如图3所示的存储区域网络131中,可以实现多个存储设备132、134、136、138、140和142,这些存储设备可以是同构的(例如同样的设备类型、大小或配置),也可以是异构的(例如不同的设备类型、大小或配置)。可以响应于主机144和146所发送命令,将数据从存储设备132-142的多个部分中读出和向其中写入。经由被配置为执行交换功能的一个或多个交换机、路由器或其他网络节点而将存储设备和主机互连在一起,从而实现存储设备和主机之间的通信。在本例中,交换机148、150和152经由交换机间链路154和156彼此通信。
如上所述,本发明涉及诸如存储区域网络之类的网络中的数据传输。虽然本发明可以实现在单一交换机中,但组成网络架构的多个交换机也可以一起实现本发明。此外,本发明的多个实施例是在每个端口基础上实现的。换言之,一个多端口交换机可将所公开的功能分别实现在其一个或多个端口上。各个端口具有专门的逻辑,用于掌管用于由各个端口所处理的分组或帧的所公开的功能。这使得可以对分组和帧进行处理以可随端口数量而可扩展,并较之传统仲裁方案可以提供大得多的带宽以用于数据传输。
在本发明的专门优选实施例中,所公开的逻辑分别实现在给定交换机的各个端口上——而非对交换机的所有端口具有集中处理。这使得处理能力可以在每个端口基础上与准确的需求紧密匹配。如果对整个交换机采用中央处理器(服务于多个端口),则该处理器必须被设计/选择为处理所有端口上的最大流量。对于许多应用,这代表极高的处理要求和非常巨大/昂贵的处理器。如果中央处理器太小,则交换机有时将会无法跟上网络的交换需求。
许多商用存储区域网络运行SCSI协议来访问存储站点。常常,存储区域网络采用光纤信道(FC-PH ANSI X3.230-1994,Fibre Channel-Physicaland Signaling Interface)作为较低级协议,并在光纤信道之上运行IP和SCSI。注意,本发明不局限于这些协议中的任意协议。例如,可以用以太网、无限带宽等来代替光纤信道。此外,较高级协议无需包括SCSI。例如,主机可使用其他协议来访问存储装置。
图4示出了根据本发明多个实施例,包括可实现本发明的仲裁器的系统。如图所示,交换机402包括多个输入端口(例如流入端口)I1 404、I2406、I3 408和多个输出端口(流出端口)O1 410、O2 412和O3 414。当在输入端口404-408接收到分组时,可在单个帧中将在输入端口404-408中的一个或多个端口接收到的两个或更多分组一起传输到输出端口410-414之一或相关联的软件和/或硬件。更具体而言,识别出多个输出端口中用于发送所述两个或更多分组的一个端口。例如,所选择的输出端口可以对应于分组中所标识的目的地IP地址。一旦将两个或更多分组识别为对应于同一输出端口,就可将它们在单个帧中同时传输,以用于经由输出端口传输。例如,可以在生成帧之前,将分组存储在与输出端口之一相关的虚拟输出队列中。在本例中,每个输出端口O1、O2、O3都有单独的虚拟输出队列与之相关,如416、418、420所示。更具体而言,根据一个实施例,在每个输入端口处都设置了一组单独的虚拟输出队列(为简化说明未示出)。
为了发送帧以由输出端口之一传输,将请求消息422发送到仲裁器424。当仲裁器424接收到指示出输出端口接受一个或多个分组或帧以用于传输的能力的可用消息426时,仲裁器424将准予消息428发送到输入端口。然后,生成包括两个或更多个接收到的分组在内的帧430,并将其发送到适当的输出端口。或者,优选地全部或部分地在接收准予消息428之前生成帧430。
当传输帧430时,将其存储在与适当的输出端口相关的可用缓冲区中。注意,所述缓冲区是每个输出端口的有限资源,这一点是重要的。因此,每个缓冲区代表指定数量的字节,当请求和可用消息匹配时,授予所述缓冲区“所有权”。
根据一个实施例,通过附加从与输出端口之一相关的虚拟输出队列得到的两个或更多分组来生成帧。这个帧被称为“超级帧”,下面将参照图7更详细地说明所述超级帧。更具体而言,优选地将头部附加到这些分组中的每一个,其指示出经由多个输出端口中的哪一个来发送分组。因此,可在生成帧之前,将具有其所附加的头部的每个分组存储在适当的虚拟输出队列中。
在仲裁器和输入端口之间,以及在仲裁器和输出端口之间的通信可以用多种方式来完成。例如,可以通过一个或多个线路卡内的多条控制线来实现可用消息、请求消息和准予消息。然而,这只是示例性的,可以实现与仲裁器通信的其他方法。注意,分组或帧无需由仲裁器拦截,而是可以直接从输入端口传输到输出端口,这一点是重要的。然而,在多个实施例中,希望经由仲裁器将分组或帧发送到输出端口。
如上所述,存储区域网络内的多个交换机可以是支持所公开的交换功能的交换机。图5是示出可实现本发明多个实施例的示例性交换机的框图。如图所示,输入端口经由双向连接器502接收数据。与输入端口相关联,设置了媒体访问控制(MAC)模块504,其允许接收诸如以太网或光纤信道之类的多种协议的帧(和分组)。在本例中,经由双向连接器502接收帧或分组,并且新的或修改后的帧或(多个)分组从交换机架构(switch fabric)520离开。然而,注意,可以其他方式来实现交换机,这一点是重要的。这之所以重要是因为主机和盘可以例如图5所示那样连接到线路卡,也可以共享若干线路卡。
帧或分组由转发引擎(FWD)512所接收,所述转发引擎512从帧的多个字段中得到信息,例如源地址和目的地地址。然后,转发引擎512访问转发表514,以确定源地址是否可访问所指定的目的地地址。转发引擎512还确定用来发送帧的适当的交换机端口,并为帧生成适当的路由标签。在一个实施例中,用来发送帧的端口在附加到分组或帧的头部中被标识出来。
一旦将分组或帧适当地格式化以用于传输,帧在被传输之前将会由缓冲排队模块516所接收,所述缓冲排队模块516将被可互换地称为虚拟输出队列引擎或调度器。如上面参照图4所述,帧或分组被暂时存储在缓冲区或虚拟输出队列518中,而非将其按接收时的原样发送。另外,希望基于每个对应于不同优先级的一组队列中的一个队列的服务质量来暂时存储分组。一旦从获得自适当的虚拟输出队列518的一个或多个接收到的帧中生成了帧(即超级帧),就经由交换机架构520将帧传输到适当的输出端口。具体而言,可以从两个或更多个所接收到的分组或帧中生成超级帧。然而,注意,本发明是依赖于机会的,因此当不存在拥塞时,本发明不会等待接收额外的分组或帧以生成所传输的帧(例如超级帧),这一点是重要的。因此,可以从单个分组或帧中生成帧。这样,给多个源分配了更均等的带宽,从而实现了传输处理中的公平性。如图所示,外出端口具有其自身的(多个)缓冲区521、MAC模块522和双向连接器524,所述缓冲区521可用于暂时存储接收到的分组或帧,经由所述双向连接器524可以传输从超级帧获得的分组或整个超级帧。下面将参照图7更详细地说明示例性的超级帧。
如上面参照图4所述,上述功能是与仲裁器相结合地执行的。例如,仲裁功能可以实现在架构卡中。
优选地,上述功能在每个端口基础上而非每个交换机基础上执行。因此,每个交换机可以具有一个或多个能够执行所公开功能的端口,以及不能执行这种功能的端口。
虽然以上参照图5描述的网络设备被描述为交换机,但这些网络设备仅仅是说明性的。因此,诸如路由器之类的其他网络设备可以被实现用于利用例如上述功能来接收、处理、修改和/或生成分组或帧,以用于在存储区域网络中传输。而且,上述网络设备仅仅是说明性的,因此可以实现其他类型的网络设备以执行所公开的交换功能。
图6示出了根据本发明的多个实施例,可被附加到每个被附加到帧内的分组上的头部。如图所示,分组头部602优选地标识出用于发送分组的输出端口(例如目的地端口)。另外,为了使帧中的分组能被输出端口解析和发送,头部602优选地还指示出分组长度606。例如,分组长度606可以指示出分组中的比特数或字节数。分组头部602被附加到分组608上。
一旦被输出端口接收,输出端口就可以经由输出端口发送整个帧,或者解析分组以用于单独传输。图7是根据本发明多个实施例,可在诸如以上参照图4和图5描述的交换机中传输的帧。帧702在此被称为超级帧。在帧内由起始指示符和结束指示符来描绘每个具有附加头部的分组。如图7所示,分组起始指示符(SOP)704表示超级帧702中第一个分组的起始,如分组头部706和分组708(指示分组体)所示。伪分组结束指示符(FEOP)710描绘出第一个分组的结束。伪分组起始指示符(FSOP)712描绘出后续分组的起始,所述后续分组包括分组头部714和分组体716。分组结束指示符(EOP)718描绘出超级帧702中最后一个分组的结束。
为了确保超级帧遵从其在输出端口处将被存储的存储器(例如缓冲区)的大小,通常会存在一个最大分组数量,或者存在对超级帧内的比特数或字节数的限制。因此,由于附加了虚拟输出队列内的两个或更多分组,因此可以保持这些分组的以比特或字节为单位的长度的总和,以确保该总和小于或等于预定的比特数或字节数。例如,可以附加多个分组以提供约1.5倍最大传输单位的最大值。注意,交换机所传输的分组可能包括多种信息或数据,这一点是重要的。
图8是根据本发明多个实施例,示出了在诸如以上参照图4和图5而说明的交换机中实现本发明的方法的流程图。如框802所示,在多个输入端口之一处接收到分组。然后,转发引擎在框804作出转发判决,以确定经由多个输出端口中的哪个端口来发送所述分组。根据多个实施例,将指示出所述转发判决的头部附加(在前面附加)到分组上,并将分组转发以存储在虚拟输出队列中。因此,在本例中,与输出端口相关的虚拟输出队列中每个分组的头部将会标识出用于发送这些分组(或相关的(多个)帧)的输出端口。然后,在框806将请求消息发送到仲裁器。所述请求消息优选地标识出多个输出端口之一。另外,所述请求消息指示将帧或者一个或多个分组发送到所标识的输出端口的请求。更具体而言,所述请求消息可以指示出发送一个帧的请求,所述帧包括从与输出端口相关的虚拟输出队列中得到的两个或更多分组。因此,所述请求消息指示出对与输出端口相关的输入缓冲区的请求。换言之,所述请求消息可以指示出对下一输入缓冲区的所有权的请求,直到其已在所述缓冲区中存储了超级帧为止。例如,调度器或虚拟输出队列引擎可以在将请求消息发送到仲裁器之前,在虚拟输出队列中检测一个或多个分组的存在。优选地首先服务于虚拟输出队列头部处的分组。因此,分组可能在另一请求消息能够被发送之前,在虚拟输出队列中等待其他分组被处理。根据一个优选实施例,当在输入端口中的一个或多个端口接收到两个或更多分组之后,发送请求消息。例如,可能在虚拟输出队列中检测到分组,并因此确定要经由多个输出端口中的同一端口发送所述分组。或者,优选地当在虚拟输出队列中(例如虚拟输出队列的头部处)检测到两个或更多分组当中的第一个分组之后,发送请求消息。这样,仲裁器可以在另外的分组在虚拟输出队列中被接收以用于在帧中传输的同时处理所述请求。
当仲裁器在框808处接收到所述请求时,它等待直到接收到可用消息(即信用),所述可用消息指示出能够接收寻址到请求消息中所标识的输出端口的帧或者一个或多个分组的可用流入缓冲区,如框810所示。然后,仲裁器在框812发送准予消息,该准予消息指示出请求消息中所标识的输出端口。更具体而言,所述准予消息可以指示出,可以发送寻址到所指定的输出端口的由一个或多个分组组成的帧。当然,如果仲裁器接收到了所述请求并且其先前已经接收到了信用,则它将会立即发送准予消息。
注意,仲裁器可能接收到与同一输出端口相关的多个请求,这一点是重要的。因此,根据一个实施例,仲裁器基于请求消息的到达顺序,选择要将这些请求中的哪个请求与“可用”消息相匹配。
当在框814,输入端口或相关的硬件和/或软件接收到来自仲裁器的准予消息时,其生成诸如以上参照图7描述的超级帧,并在框816将该超级帧发送到适当的输出端口。如上所述,超级帧包括两个或更多所接收的分组。为了确保超级帧遵从其在输出端口处将被存储的存储器(例如缓冲区)的大小,通常会存在一个最大分组数量,或者存在对超级帧内的比特数或字节数的限制。因此,由于附加了虚拟输出队列内的两个或更多分组,因此可以保持这些分组的以比特或字节为单位的长度的总和,以确保该总和小于或等于预定的比特数或字节数。例如,可以附加多个分组以提供约1.5倍最大传输单位的最大值。
如上面参照框814所述,根据一个实施例,超级帧是在从仲裁器接收到准予消息之后生成的。因此,无论何时发送请求消息,准予消息都会触发超级帧的生成。然而,也可以在接收准予消息之前执行或开始帧的生成。换言之,可以全部或部分地在接收准予消息之前生成帧。例如,可以将在虚拟输出队列中接收到的多个分组按照接收时的原样附加。换言之,一旦接收到准予消息,这就可触发对已经生成的帧的发送。
一旦输出端口或者相关的硬件和/或软件接收到超级帧,随后就在框818,将寻址到输出端口的超级帧存储在与该输出端口相关的缓冲区中。然后,从所述缓冲区中得到帧,并将该帧解析以得到两个或更多分组。例如,为了解析帧,可以从帧中的分组的头部中得到分组长度。然后在框820,经由输出端口传输分组。然后在框822,输出端口将可用消息(即信用)发送到仲裁器。在本实例中,所述可用消息指示出能够接收寻址到输出端口的帧(或者一个或多个分组)的可用缓冲区。
虽然上述实施例是参照为了经由输出端口分别传输两个或更多分组而得到帧这一情况而描述的,但该示例仅是说明性的。因此,也可以经由输出端口整体传输超级帧。例如,超级帧可以由接收到帧的另一交换机所解析,也可以被压缩以用于有效的传输。
图9示出了可由诸如以上参照图4描述的仲裁器所维护的示例性仲裁表。更具体而言,仲裁器维护仲裁表902,其中对与输出端口处的可用存储器(例如缓冲区)相对应的可用信用904(例如可用消息)进行跟踪。另外,还对从输入端口接收到的未决请求906(例如请求消息)进行跟踪,所述未决请求指示出对与特定输出端口相关的存储器的请求。由于可能以任意顺序接收到信用904和未决请求906,因此对两者都进行维护。一旦信用904与请求906相匹配(即对于同一目的地端口的信用和请求),则可发送准予消息,并可从仲裁表中删除信用904和请求906两者。
如以上参照图5所述,一个或多个线路卡可以经由交换机架构520(即交叉条)耦合到仲裁器。图10示出了根据本发明多个实施例,可连接到仲裁器所服务于的多个线路卡的示例性交叉条。更具体而言,通过交叉条,可将输入端口-输出端口对彼此耦合。类似地,通过交叉条,输入线路卡和输出线路卡可与仲裁器通信。
根据一个实施例,交叉条是基于帧的缓冲交叉条1002。如图所示,在本例中,所述缓冲交叉条包括多个垂直条1004和水平条1006。另外,交叉条1002还包括多个开关1008。开关1008被一起配置以使得在给定时间可以接通任意交换机。通常,两个输入端无法同时连接到同一输出端。然而,使用缓冲交叉条消除了这一限制。
缓冲交叉条在对于交叉条1002的每个输入端和输出端处都包括一个或多个缓冲区1010。利用缓冲区1010,数据可以在所有输入端同时传输,直到输入端和输出端处的缓冲区1010变满为止。缓冲交叉条的使用使得仲裁器可以尽快发送准予,以将信用与请求相匹配,而无需担心先前的准予是否已导致分组被发送,这是因为交叉条中的(多个)缓冲区允许将多个分组发送到同一输出端而不进行阻塞。实际上,人们可以将仲裁器所使用的信用数量与交叉条中缓冲区的大小相匹配。这样,就将通过交叉条的流量最大化。
根据多个实施例,输入端口所发送的请求消息被线路卡拦截,并发送到仲裁器。例如,可将请求消息在列表中发送到仲裁器。图11示出了根据本发明多个实施例,向仲裁器发送对输出端口的请求的列表的输入线路卡。在本例中,输入线路卡1100包括两个输入端口:输入端口A 1102和输入端口B 1104。如上面参照图4所述,每个输入端口具有一组与输出端口相对应的相关虚拟输出队列。因此,输入端口A 1102具有一组与输出端口A-D相关的虚拟输出队列1106-1112,并且输入端口B 1104具有一组与输出端口A-D相关的虚拟输出队列1114-1120。然后,线路卡将请求消息1122发送到仲裁器。如图所示,请求消息1122可在列表中发送,所述列表指示出请求消息1122被发送到仲裁器以用于处理的顺序。具体而言,如图所示,请求ABC从输入端口1102发送,请求AB从输入端口1104发送,请求B从输入端口1102发送。如上所述,当仲裁器确定对于每个请求消息,已接收到信用或信用已可用于相应端口时,其将准予消息发送到线路卡。然后,线路卡可以将准予消息提供到输入端口,并传输由输入端口所发送的帧。
图12示出了根据本发明多个实施例,将对输出端口的请求的列表发送到仲裁器的两个不同的输入线路卡。如上所述,经由交叉条将多个输入线路卡和输出线路卡耦合到仲裁器。在本例中,两个不同的输入线路卡耦合到单个交叉条。与图11所示的例子相似,第一线路卡1202包括输入端口A 1204和输入端口B 1206。输入端口A 1204具有一组相关虚拟输出队列1208-1214,输入端口B 1206具有一组相关虚拟输出队列1216-1222。如图所示,每组虚拟输出队列1208-1214和1216-1222都包括用于每个输出端口A-D的虚拟输出队列。在本例中,线路卡11202具有4个来自输入端口A的未决请求和2个来自输入端口B的未决请求。第一线路卡1202经由交叉条1246,将相应的请求列表1248发送到仲裁器(未示出)。如图所示,请求消息列表可包括与输入端口中的一个或多个端口相关的一个或多个请求。因此,线路卡代表其一个或多个输入端口发送请求消息列表。如上所述,每个请求消息列表指示出线路卡将相关请求消息发送到仲裁器以用于处理的顺序。
第二线路卡1224包括输入端口C 1226和输入端口D 1228。输入端口C 1226具有一组虚拟输出队列1230-1236,输入端口D 1228具有一组虚拟输出队列1238-1244。如图所示,每组虚拟输出队列1230-1236和1238-1244都包括用于每个输出端口A-D的虚拟输出队列。在本例中,线路卡21224具有3个来自输入端口C的未决请求和0个来自输入端口D的未决请求。第二线路卡1224经由交叉条1246,将相应的请求列表1250发送到仲裁器(未示出)。如图所示,请求消息列表可包括与输入端口中的一个或多个端口相关的一个或多个请求。因此,线路卡代表其一个或多个输入端口发送请求消息列表。如上所述,每个请求消息列表指示出线路卡将相关请求消息发送到仲裁器以用于处理的顺序。在以上说明中,为每个分组生成请求消息并将其发送到仲裁器。然而,在一个优选实施例中,优选地发送多个请求消息,所述请求消息的数量少于虚拟输出队列中请求(例如分组)的数量。
当仲裁器接收到来自线路卡的请求消息时,其优选地存储或跟踪这些请求消息,以允许生成准予消息并按相应的顺序将其传输到适当的线路卡和/或输入端口。图13示出了根据本发明多个实施例,仲裁器用来根据输出端口来对从每个线路卡接收到的请求进行分类的一组输出队列。仲裁器维护多个输出队列。每个输出队列与输出端口之一相关。在本例中,第一输出队列1302与输出端口A相关,第二输出队列1304与输出端口B相关,第三输出队列1306与输出端口C相关,第四输出队列1308与输出端口D相关。
如图所示,每个请求消息被分类并存储在输出队列之一中。例如,可将标识出从中接收到请求消息的线路卡的线路卡标识符存储在输出队列中。在本例中,与输出端口A相关的第一输出队列1302包括与第一线路卡相关的单个请求消息。与输出端口B相关的第二输出队列1304包括一组请求消息1312,其包括3个从第一线路卡接收到的请求消息和1个从第二线路卡接收到的请求消息。与输出端口C相关的第三输出队列1306包括从第一线路卡接收到的单个请求消息1314,而与输出端口D相关的第四输出队列1308包括从第二线路卡接收到的2个请求消息1316。每个请求消息还可标识出输出端口之一。注意,请求是按从线路卡中接收到它们的顺序被插入到队列当中的,以便提供线路卡之间的公平性。例如,在队列B 1304中,来自线路卡2的请求位于来自线路卡1的请求之后,这是因为来自线路卡2的请求在时间上较晚到达。
当仲裁器确定输出端口能够接收一个或多个分组或者帧以用于传输时,所述仲裁器就生成或发送准予消息。例如,当仲裁器接收到可用消息(例如信用)或确定信用对于输出端口可用时,其可将准予消息发送到输出队列中所标识的线路卡。这样,可以按接收到请求消息的顺序来处理给定输出端口的准予消息。
图14是示出根据本发明多个实施例,将请求分类到输出队列中的方法的处理流程图。如上面参照图13所示,仲裁器可以维护多个输出队列,其中根据被请求的输出端口来对请求进行分类。更具体而言,可以使用队列,按诸如以上参照图13描述的方式,对来自一个或多个线路卡的请求进行分类。如框1402所示,仲裁器接收来自每个线路卡的请求列表。为了得到线路卡之间的公平性,根据一个实施例,本发明在线路卡(以及相应的请求列表)之间进行轮转(round robin)。然后,在框1404得到来自所有线路卡的请求列表中的下一请求。换言之,仲裁器看的是来自所有线路卡的请求列表中的每个列表中的下一请求。如果仲裁器在框1405确定存在去往同一输出端口的多个请求(例如位于两个或更多列表的头部的请求),则其在框1406,在列表/线路卡之间进行轮转,以决定将哪个请求插入输出队列。在框1407标识与每个请求相关的线路卡。如图所示,将标识出接收到请求的线路卡的线路卡标识符存储在与所请求的输出端口相关的输出队列中。一旦每个请求列表的所有第一元素都已被插入到适当的输出队列中,仲裁器就进行到下一元素。在框410,根据轮转法或其他算法,对请求列表中的每个请求重复所述处理。
如上所述,仲裁器跟踪每个输出端口的请求和信用。这样,其可以确定何时可将准予发送到请求的输入端口和/或线路卡。如上面参照图9所述,仲裁器可维护仲裁表,以跟踪与这些请求相匹配的未决请求和可用信用。图15示出了根据本发明多个实施例,由仲裁器用来在每个输出端口基础上跟踪信用的一组信用队列。由于仲裁器跟踪其所接收的信用和请求,因此其可将此信息分别或一起存储在列表、队列、表或其他合适的数据结构中。在本例中,在与多个输出端口相对应的多个信用队列中存储或跟踪信用。更具体而言,与输出端口A相关的第一信用队列1502存储2个信用或信用指示符,而与输出端口B相关的第二信用队列1504以及与输出端口C相关的第三信用队列1506存储1个信用或信用指示符。与输出端口D相关的第四信用队列1508存储2个信用或信用指示符。因此,仲裁器可以在接收到信用时更新计数器或队列,以指示出可用于特定输出端口的信用数量。类似地,仲裁器可以通过检查适当的信用队列来确定信用是否可用于输出端口。当仲裁器生成和/或传输准予消息时,其删除或更新适当的计数器或队列,以反映请求消息和信用的使用情况。
尽管仲裁器可以在生成准予消息之后立即发送该准予消息,但其也可暂时存储准予消息。图16示出了根据本发明多个实施例,由仲裁器用来在将准予发送到线路卡之前在线路卡基础上对队列中的准予进行排序的一组准予队列。在本例中,第一准予队列1602与第一输入线路卡相关,而第二准予队列1604与第二输入线路卡相关。准予消息或准予指示符按照传输到相应线路卡的期望顺序存储在队列中。如图所示,队列中的每个条目标识出为其提供准予消息的输出端口。准予消息可以分别发送或在列表中发送。例如,可在单个帧中将多个准予消息发送到线路卡。
图17示出了根据本发明多个实施例,由每个线路卡用来跟踪发送自输入端口的请求,以使其可以按适当的顺序处理接收自仲裁器的准予的机制。如图所示,每个线路卡维护列表1702、队列或其他数据结构,用于维护下述顺序,线路卡按所述顺序代表多个输入端口将请求消息发送到仲裁器。具体而言,可以如图所示地为每个输出端口(例如输出端口A)维护单独的列表1702。当接收到准予消息时,线路卡可对应于线路卡发送请求的顺序,将准予消息转发到适当的输入端口。换言之,线路卡将会确定哪个输入端口应接收每个准予消息,并相应地转发准予消息。
图18是示出根据本发明多个实施例,对线路卡中接收自仲裁器的准予进行处理的方法的流程图。在框1802,当线路卡接收到准予消息时,该线路卡将该准予消息提供到适当的输入端口,如上所述。输入端口在框1804将一个或多个分组或帧发送到输出端口。更具体而言,输入端口可以用超级帧的形式发送多个分组或帧。在框1806,超级帧消费输出端口处的一个或多个缓冲区。在框1808,当输出端口传输超级帧或者相应的分组或帧时,其随后生成并传输一个或多个信用。在一个优选实施例中,传输单个信用。
虽然使用仲裁系统在交换机内生成并传输超级帧,但也可以在控制输出端口处拥塞的同时使交换机所传输的数据量最大化。因此,在使仲裁器所导致的延时最小化的同时,使交换机的吞吐量最大化。
虽然在此示出并说明了本发明的说明性实施例和应用,但可以进行多种变化和修改而仍保持在本发明的原理、范围和精神之内,并且本领域普通技术人员在仔细阅读本申请之后将会很清楚这些变化。例如,本发明被描述为应用于帧。然而,应该理解到,本发明并不局限于这种实现,而是同样可以应用于分组。另外,可以通过给请求、信用,和/或准予消息附加优先级,随后将其与分组/帧的优先级匹配,从而支持有意的对分组和/或帧的重排序。而且,本发明的应用与其所实现的上下文和系统无关。因此,广而言之,本发明无需使用上述操作来执行,而是可用于支持诸如存储区域网络之类的网络中的其他操作。
另外,虽然描述了示例性的交换机,但上述实施例也可实现在多种网络设备(例如服务器)和多种介质中。例如,用于实现上述本发明的指令和数据可存储在盘驱动器、硬盘驱动器、软盘、服务器计算机或远程联网计算机上。因此,所述实施例应被视为说明性而非限制性的,并且本发明不应被限制为这里所给出的细节,而是可在所附权利要求书的范围及其等同物之内进行修改。
Claims (82)
1.一种在交换机中传输多个分组的方法,所述交换机具有多个输入端口和多个输出端口,所述方法包括:
在所述多个输入端口中的一个或多个输入端口处接收两个或更多个分组或帧;
标识所述多个输出端口中的一个输出端口,将经由该输出端口发送所述分组或帧;
将请求消息发送到仲裁器;
响应于所述请求消息,接收来自所述仲裁器的准予消息;
生成包括所述接收的两个或更多个分组或帧的数据结构;以及
当接收到所述准予消息时,将所述数据结构发送到所述多个输出端口中所述的一个输出端口。
2.如权利要求1所述的方法,其中所述请求消息和所述准予消息中的每一个都具有与之相关的优先级。
3.如权利要求1所述的方法,还包括:
对于多个请求消息,重复所述接收步骤、标识步骤和发送步骤,使得接收到多个准予消息;以及
维护将所述请求消息发送到所述仲裁器的顺序。
4.如权利要求3所述的方法,其中所述方法在所述交换机中的线路卡内执行。
5.如权利要求3所述的方法,还包括:
按照将所述请求消息发送到所述仲裁器的顺序来处理所述多个准予消息。
6.如权利要求3所述的方法,其中所述请求消息和所述准予消息中的每一个都具有与之相关的优先级,所述方法还包括:
按照与所述多个准予消息相关的优先级所指示出的顺序来处理所述多个准予消息。
7.如权利要求4所述的方法,其中所述顺序或所述请求消息标识出所述多个输入端口中的一个输入端口,所述请求消息是经由该输入端口被发送到仲裁器的,所述方法还包括:
将所述多个准予消息中的每一个发送到相应的所标识的输入端口,从而使所述数据结构可被发送到所述输出端口。
8.如权利要求1所述的方法,其中将请求消息发送到仲裁器包括:
从所述输入端口发送所述请求消息。
9.如权利要求1所述的方法,其中将请求消息发送到仲裁器包括:
从线路卡将所述请求消息发送到所述仲裁器。
10.如权利要求9所述的方法,其中从线路卡将所述请求消息发送到所述仲裁器包括:
将包括所述请求消息在内的一个或多个请求消息的列表发送到所述仲裁器。
11.如权利要求1所述的方法,其中当在所述多个输入端口中的一个输入端口处接收到所述两个或更多个分组或帧中的一个分组或帧之后,执行对所述请求消息的发送。
12.如权利要求11所述的方法,其中所述两个或更多个分组或帧存储在队列中。
13.如权利要求1所述的方法,其中当在所述多个输入端口中的一个或多个端口处接收到两个或更多个分组或帧之后,执行对所述请求消息的发送。
14.如权利要求1所述的方法,其中生成包括所述接收的两个或更多个分组或帧的数据结构的步骤是在接收来自所述仲裁器的准予消息的步骤之后执行的。
15.如权利要求1所述的方法,其中生成包括所述接收的两个或更多个分组或帧的数据结构的步骤是至少部分地在接收来自所述仲裁器的准予消息的步骤之后执行的。
16.如权利要求1所述的方法,其中将所述数据结构发送到所述多个输出端口中所述的一个输出端口的步骤是在接收来自所述仲裁器的准予消息的步骤之后执行的。
17.一种用于传输多个分组的网络设备,所述网络设备具有多个输入端口和多个输出端口,所述网络设备包括:
用于在所述多个输入端口中的一个或多个端口处接收两个或更多个分组或帧的装置;
用于标识所述多个输出端口中的一个输出端口的装置,将经由该输出端口发送所述分组或帧;
用于将请求消息发送到仲裁器的装置;
用于响应于所述请求消息,接收来自所述仲裁器的准予消息的装置;
用于生成包括所述接收的两个或更多个分组或帧的数据结构的装置;以及
用于在接收到所述准予消息时,将所述数据结构发送到所述多个输出端口中所述的一个输出端口的装置。
18.一种用于传输多个分组的网络设备,所述网络设备包括:
多个输入端口和多个输出端口;
处理器;以及
存储器,所述处理器和所述存储器中的至少一个适于执行以下操作:
在所述多个输入端口中的一个或多个端口处接收两个或更多个分组或帧;
标识所述多个输出端口中的一个输出端口,将经由该输出端口发送所述分组或帧;
将请求消息发送到仲裁器;
响应于所述请求消息,接收来自所述仲裁器的准予消息;
生成包括所述接收的两个或更多个分组或帧的数据结构;以及
当接收到所述准予消息时,将所述数据结构发送到所述多个输出端口中所述的一个输出端口。
19.一种计算机可读介质,其上存储有计算机可读指令,用于在交换机中传输多个分组,所述交换机具有多个输入端口和多个输出端口,所述指令包括:
用于在所述多个输入端口中的一个或多个端口处接收两个或更多个分组或帧的指令;
用于标识所述多个输出端口中的一个输出端口的指令,将经由该输出端口发送所述分组或帧;
用于将请求消息发送到仲裁器的指令;
用于响应于所述请求消息,接收来自所述仲裁器的准予消息的指令;
用于生成包括所述接收的两个或更多个分组或帧的数据结构的指令;以及
用于在接收到所述准予消息时,将所述数据结构发送到所述多个输出端口中所述的一个输出端口的指令。
20.一种在交换机中传输多个分组的方法,所述交换机具有多个输入端口和多个输出端口,所述方法包括:
在所述多个输入端口中的一个或多个输入端口处接收分组或帧;
确定所述多个输出端口中的一个输出端口,将经由该输出端口发送所述分组或帧;
对于在所述多个输入端口中的一个或多个输入端口处接收到的两个或更多个分组或帧,重复所述接收步骤和所述确定步骤,其中所述两个或更多个分组或帧被确定为要经由所述多个输出端口中的同一输出端口发送;
将请求消息发送到仲裁器,所述请求消息标识出所述多个输出端口中所述的一个输出端口;
接收来自所述仲裁器的准予消息,所述准予消息标识出所述多个输出端口中所述的一个输出端口;
生成包括所述接收的两个或更多个分组或帧的数据结构;以及
当接收到所述准予消息时,将所述数据结构发送到所述多个输出端口中所述的一个输出端口。
21.如权利要求20所述的方法,其中发送所述请求消息包括:
将所述请求消息从线路卡发送到所述仲裁器。
22.如权利要求20所述的方法,其中发送所述请求消息包括:
将包括所述请求消息在内的一个或多个请求消息的列表发送到所述仲裁器。
23.如权利要求22所述的方法,其中所述一个或多个请求消息的列表包括与所述多个输入端口中的一个或多个输入端口相关的多个请求。
24.如权利要求22所述的方法,其中将包括所述请求消息在内的一个或多个请求消息的列表发送到所述仲裁器包括:
代表所述多个输入端口中的一个或多个输入端口,从线路卡将所述请求消息的列表发送到所述仲裁器。
25.如权利要求20所述的方法,其中生成数据结构的步骤是在接收所述准予消息的步骤之后执行的。
26.如权利要求20所述的方法,其中对帧的生成是至少部分地在接收所述准予消息之前执行的。
27.如权利要求20所述的方法,还包括:
将所述接收的两个或更多个分组或帧存储在与所述多个输出端口中的一个输出端口相关的虚拟输出队列中;并且
其中,生成所述数据结构的步骤包括将所述分组或帧附加到与所述多个输出端口中所述的一个输出端口相关的虚拟输出队列中。
28.如权利要求27所述的方法,其中所述虚拟输出队列与所述多个输入端口中的一个输入端口相关。
29.如权利要求27所述的方法,还包括:
将头部附加到每个所接收的分组或帧上,所述头部指示出所述多个输出端口中的一个输出端口,将经由该输出端口发送所述分组或帧;
其中,将每个所接收的分组或帧存储在虚拟输出队列中包括将具有所附加的头部的所接收的分组或帧存储在与所述多个输入端口中的一个输入端口相关的虚拟输出队列中。
30.如权利要求29所述的方法,其中与所述多个输出端口中的一个输出端口相关的虚拟输出队列中的每个分组或帧的头部标识出所述多个输出端口中的同一输出端口,将经由该输出端口发送所述分组或帧。
31.如权利要求20所述的方法,其中所述请求消息指示出将包括一个或多个分组或帧的数据结构发送到所述多个输出端口中所述的一个输出端口的请求。
32.如权利要求20所述的方法,其中所述准予消息指示出可以发送包括一个或多个分组或帧的数据结构,所述分组或帧寻址到所述多个输出端口中所述的一个输出端口。
33.如权利要求27所述的方法,其中所述请求消息指示出发送包括两个或更多个分组或帧的数据结构的请求,所述两个或更多个分组或帧是从与所述多个输出端口中所述的一个输出端口相关的虚拟输出队列中得到的。
34.如权利要求20所述的方法,其中所述请求消息指示出对与所述多个输出端口中所述的一个输出端口相关的输入缓冲区的请求。
35.如权利要求20所述的方法,其中所述请求消息指示出将一个或多个分组或帧发送到所述多个输出端口中所述的一个输出端口的请求,并且所述准予消息指示出可以发送寻址到所述多个输出端口中所述的一个输出端口的一个或多个分组或帧。
36.如权利要求20所述的方法,其中所述请求消息指示出将两个或更多个分组或帧发送到所述多个输出端口中所述的一个输出端口的请求,并且所述准予消息指示出可以发送寻址到所述多个输出端口中所述的一个输出端口的两个或更多个分组或帧。
37.如权利要求29所述的方法,其中由转发引擎来执行以下操作:确定所述多个输出端口中将经由其来发送所述分组或帧的一个输出端口,以及将头部附加到每个所接收的分组或帧上。
38.如权利要求20所述的方法,其中当所述仲裁器接收到可用消息时,所述仲裁器发送所述准予消息,所述可用消息指示出能够接收数据结构或者一个或多个分组或帧的可用缓冲区,所述数据结构或者一个或多个分组或帧寻址到在所述请求消息中标识出的所述多个输出端口中所述的一个输出端口。
39.如权利要求38所述的方法,其中所述请求消息是与所述多个输出端口中所述的一个输出端口相关的多个请求消息中的一个请求消息。
40.如权利要求20所述的方法,其中当所述仲裁器接收到可用消息时,所述仲裁器发送所述准予消息,所述可用消息指示出所述多个输出端口中的一个输出端口接受一个或多个分组或帧以用于传输的能力。
41.如权利要求29所述的方法,还包括:
转发具有所附加的头部的分组或帧,以存储在所述虚拟输出队列中。
42.如权利要求41所述的方法,其中转发具有所附加的头部的分组或帧的步骤是由转发引擎来执行的。
43.如权利要求29所述的方法,其中所述头部还包括所述分组或帧的长度。
44.如权利要求27所述的方法,还包括:
在将所述请求消息发送到所述仲裁器之前,在所述虚拟输出队列中检测一个或多个分组或帧的存在。
45.如权利要求27所述的方法,还包括:
在将所述请求消息发送到所述仲裁器之前,在所述虚拟输出队列中检测所述两个或更多个分组或帧的存在。
46.如权利要求29所述的方法,其中在帧中由起始指示符和结束指示符界定出每个具有所附加的头部的分组或帧。
47.如权利要求29所述的方法,其中所述接收的两个或更多个分组或帧的头部还指示出所述分组或帧的长度,并且其中,生成包括存储在所述虚拟输出队列中的所接收的两个或更多个分组或帧在内的数据结构的步骤包括:
对所述接收的两个或更多个分组或帧中的每一个的分组长度进行求和,以确定其和小于或等于预定的比特数或字节数。
48.如权利要求47所述的方法,其中附加所述接收的两个或更多个分组或帧,以提供约为1.5倍传输单位的最大值。
49.如权利要求20所述的方法,还包括:
将所述数据结构存储在与所述多个输出端口中所述的一个输出端口相关的缓冲区中。
50.如权利要求20所述的方法,还包括:
在所述多个输出端口中所述的一个输出端口处传输所述数据结构。
51.如权利要求50所述的方法,还包括:
在传输所述数据结构之后,将可用消息发送到所述仲裁器。
52.如权利要求20所述的方法,还包括:
解析所述数据结构,以得到所述两个或更多个分组或帧;以及
在所述多个输出端口中所述的一个输出端口处传输所述两个或更多个分组或帧。
53.如权利要求52所述的方法,还包括:
在传输所述数据结构之后,将可用消息发送到所述仲裁器。
54.如权利要求52所述的方法,其中所述两个或更多个分组或帧中的每一个的头部都指示出分组长度,并且其中,解析所述数据结构的步骤包括:
从所述数据结构中的每个分组或帧的头部中得到所述长度。
55.如权利要求20所述的方法,还包括:
将所述数据结构存储在与所述多个输出端口中所述的一个输出端口相关的缓冲区中;
得到存储在所述缓冲区中的所述数据结构;
解析所述数据结构,以得到所述两个或更多个分组或帧;以及
在所述多个输出端口中所述的一个输出端口处传输所述两个或更多个分组或帧。
56.如权利要求55所述的方法,还包括:
将可用消息发送到所述仲裁器,所述可用消息指示出可用缓冲区,所述可用缓冲区能够接收寻址到所述多个输出端口中所述的一个输出端口的数据结构或者一个或多个分组或帧。
57.如权利要求20所述的方法,还包括:
将所述数据结构存储在与所述多个输出端口中所述的一个输出端口相关的缓冲区中;
得到存储在所述缓冲区中的所述数据结构;以及
在所述多个输出端口中所述的一个输出端口处传输所述数据结构。
58.如权利要求57所述的方法,还包括:
将可用消息发送到所述仲裁器,所述可用消息指示出可用缓冲区,所述可用缓冲区能够接收寻址到所述多个输出端口中所述的一个输出端口的数据结构或者一个或多个分组或帧。
59.如权利要求20所述的方法,其中所述可用消息指示出可用流入缓冲区,所述可用流入缓冲区能够接收寻址到所述多个输出端口中所述的一个输出端口的数据结构或者一个或多个分组或帧。
60.一种在交换机中传输多个分组或帧的方法,所述交换机具有多个输入端口和多个输出端口,所述方法包括:
在所述多个输入端口中的一个输入端口处接收分组或帧;
确定所述多个输出端口中的一个输出端口,将经由该输出端口发送所述分组或帧;
将头部附加到所述接收的分组或帧上,所述头部指示出所述多个输出端口中所述的一个输出端口,将经由该输出端口发送所述分组或帧;
将所述具有所附加的头部的所接收的分组或帧存储在与所述多个输入端口中所述的一个输入端口相关的虚拟输出队列中;
对于在所述多个输入端口中的一个或多个输入端口处接收到的两个或更多个分组或帧,重复所述接收步骤、确定步骤、附加步骤和存储步骤,其中所述两个或更多个分组或帧中的每一个都具有所附加的头部,所述头部指示出所述多个输出端口中的同一输出端口,将经由该输出端口发送所述分组或帧;
将请求消息发送到仲裁器,所述请求消息指示出将数据结构发送到所述多个输出端口中所述的一个输出端口的请求;
接收来自所述仲裁器的准予消息,所述准予消息指示出可以发送寻址到所述多个输出端口中所述的一个输出端口的数据结构;
生成包括存储在所述虚拟输出队列中的所述接收的两个或更多个分组或帧的数据结构,所述接收的分组或帧中的每一个都具有所附加的头部,所述头部指示出所述多个输出端口中的同一输出端口,将经由该输出端口发送所述分组或帧;以及
当接收到所述准予消息时,将所述数据结构发送到所述多个输出端口中所述的一个输出端口。
61.一种执行仲裁以协调对在一个或多个输出端口上接收到的多个分组或帧的发送以用于由一个或多个输出端口传输的方法,该方法包括:
从所述输入端口中的一个或多个输入端口接收一个或多个请求消息,所述请求消息中的每一个都指示出经由所述输出端口中的一个输出端口发送一个或多个分组或帧的请求;
确定所述输出端口中所述的一个输出端口是否能够接收所述一个或多个分组或帧;以及
当确定出所述输出端口中所述的一个输出端口能够接收所述一个或多个分组或帧时,生成或发送准予消息,所述准予消息指示出所述输出端口中所述的一个输出端口能够接收所述一个或多个分组或帧。
62.如权利要求61所述的方法,所述请求消息中的每一个都具有与之相关的优先级。
63.如权利要求61所述的方法,其中所述准予消息具有与之相关的优先级。
64.如权利要求61所述的方法,其中所述方法在光纤信道网络中执行。
65.如权利要求61所述的方法,其中确定所述输出端口中所述的一个输出端口是否能够接收所述一个或多个分组或帧的步骤包括:
从所述的一个输出端口接收信用,所述信用指示出一个或多个缓冲区可用于接收所述一个或多个分组或帧。
66.如权利要求65所述的方法,其中所述信用由所述的一个输出端口重新生成。
67.如权利要求65所述的方法,其中所述信用由所述的一个输出端口响应于错误状况而重新生成。
68.如权利要求65所述的方法,其中所述信用具有与之相关的优先级。
69.如权利要求61所述的方法,其中确定所述输出端口中所述的一个输出端口是否能够接收所述一个或多个分组或帧的步骤包括:
确定信用对于所述的一个输出端口是否可用,所述信用指示出一个或多个缓冲区可用于接收所述一个或多个分组或帧。
70.如权利要求61所述的方法,其中接收一个或多个请求消息的步骤包括:
从代表所述输入端口中的一个或多个输入端口的一个或多个线路卡接收所述请求消息。
71.如权利要求70所述的方法,还包括:
将所述准予消息存储在与所述线路卡中的一个线路卡相关的准予队列中,所述准予消息标识出在所述请求消息之一中所标识的输出端口。
72.如权利要求70所述的方法,其中从一个或多个线路卡接收所述请求消息的步骤包括:
从所述一个或多个线路卡接收一组或多组请求消息。
73.如权利要求72所述的方法,其中所述的每组请求消息都指示出从相关线路卡接收到相关请求消息的顺序。
74.如权利要求72所述的方法,还包括:
将所述多组请求消息中的每个请求消息存储在多个队列之一中,所述多个队列中的每个队列都与所述多个输出端口中的一个输出端口相关。
75.如权利要求72所述的方法,其中存储每个请求消息包括:
将与所述多组请求消息中的每个请求消息相关的线路卡标识符存储在多个队列之一中,所述多个队列中的每个队列都与所述多个输出端口中的一个输出端口相关,所述线路卡标识符标识出所述线路卡中从其处接收到所述请求消息的一个线路卡。
76.如权利要求61所述的方法,其中所述请求消息中的每一个都标识出所述输出端口中的一个输出端口。
77.如权利要求61所述的方法,其中当确定出所述输出端口中所述的一个输出端口能够接收所述一个或多个分组或帧时,生成或发送准予消息的步骤包括:
当接收到可用消息时发送所述准予消息,所述可用消息指示出可用缓冲区,所述可用缓冲区能够接收寻址到在所述请求消息中标识的所述多个输出端口中所述的一个输出端口的一个或多个分组或帧。
78.如权利要求61所述的方法,其中当确定出所述输出端口中所述的一个输出端口能够接收所述一个或多个分组或帧时,生成或发送准予消息的步骤包括:
当接收到可用消息时发送所述准予消息,所述可用消息指示出所述多个输出端口中的一个输出端口接受一个或多个分组或帧以用于传输的能力。
79.如权利要求70所述的方法,其中所述线路卡通过具有缓冲区的交叉条耦合到所述仲裁器。
80.一种适于协调对在一个或多个输入端口上接收到的多个分组或帧的发送以用于由一个或多个输出端口传输的仲裁器,该仲裁器包括:
用于接收来自所述输入端口中的一个或多个输入端口的一个或多个请求消息的装置,所述请求消息中的每一个都指示出经由所述输出端口之一发送一个或多个分组或帧的请求;
用于确定所述输出端口之一是否能够接收所述一个或多个分组或帧的装置;以及
用于在确定出所述输出端口之一能够接收所述一个或多个分组或帧时,生成或发送准予消息的装置,所述准予消息指示出所述输出端口之一能够接收所述一个或多个分组或帧。
81.一种适于协调对在一个或多个输入端口上接收到的多个分组或帧的发送以用于由一个或多个输出端口传输的仲裁器,该仲裁器包括:
处理器;和
存储器,所述处理器和所述存储器中的至少一个适于执行以下操作:
从所述输入端口中的一个或多个输入端口接收一个或多个请求消息,所述请求消息中的每一个都指示出经由所述输出端口之一发送一个或多个分组或帧的请求;
确定所述输出端口之一是否能够接收所述一个或多个分组或帧;以及
当确定出所述输出端口之一能够接收所述一个或多个分组或帧时,生成或发送准予消息,所述准予消息指示出所述输出端口之一能够接收所述一个或多个分组或帧。
82.一种计算机可读介质,其上存储有计算机可读指令,用于执行仲裁以协调对在一个或多个输入端口上接收到的多个分组或帧的发送以用于由一个或多个输出端口传输,所述指令包括:
用于接收来自所述输入端口中的一个或多个输入端口的一个或多个请求消息的指令,所述请求消息中的每一个都指示出经由所述输出端口之一发送一个或多个分组或帧的请求;
用于确定所述输出端口之一是否能够接收所述一个或多个分组或帧的指令;以及
用于在确定出所述输出端口之一能够接收所述一个或多个分组或帧时,生成或发送准予消息的指令,所述准予消息指示出所述输出端口之一能够接收所述一个或多个分组或帧。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/264,082 US20110164616A1 (en) | 2002-10-02 | 2002-10-02 | Methods and apparatus for processing superframes |
US10/264,082 | 2002-10-02 | ||
US10/264,065 | 2002-10-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1689283A true CN1689283A (zh) | 2005-10-26 |
Family
ID=35306441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA038237687A Pending CN1689283A (zh) | 2002-10-02 | 2003-09-29 | 使用仲裁系统处理超级帧的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20110164616A1 (zh) |
CN (1) | CN1689283A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009076896A1 (zh) * | 2007-12-14 | 2009-06-25 | Huawei Technologies Co., Ltd. | 业务交换的方法和设备及业务交换单元 |
CN101286942B (zh) * | 2007-01-10 | 2011-04-20 | 国际商业机器公司 | 管理无限带宽通信链路的发送机、接收机和方法 |
CN101989942B (zh) * | 2009-08-07 | 2012-10-31 | 无锡江南计算技术研究所 | 仲裁控制方法、通信方法、仲裁器和通信系统 |
US8325690B2 (en) | 2006-12-19 | 2012-12-04 | Huawei Technologies Co., Ltd. | Method for superframe management and coordinator thereof |
CN104518958A (zh) * | 2013-09-27 | 2015-04-15 | 中国电信股份有限公司 | 关联光纤信道信号的传输处理方法与光传送网设备 |
CN107005489A (zh) * | 2014-12-29 | 2017-08-01 | 甲骨文国际公司 | 用于支持联网设备中的高效虚拟输出队列(voq)分组冲刷方案的系统和方法 |
CN109218230A (zh) * | 2017-06-30 | 2019-01-15 | 英特尔公司 | 用于平衡跨多级网络交换机的输入端口的吞吐量的技术 |
CN110140115A (zh) * | 2016-12-30 | 2019-08-16 | 英特尔公司 | 用于在用于交换机架构的多级仲裁上实现公平性的系统和方法 |
CN112491746A (zh) * | 2019-09-11 | 2021-03-12 | 爱思开海力士有限公司 | 数据处理设备及其操作方法 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080130592A1 (en) * | 2006-12-04 | 2008-06-05 | Electronics And Telecommunications Research Institute | Apparatus and method for managing medium access slot in wireless personal area network |
US7710993B1 (en) * | 2007-10-31 | 2010-05-04 | Extreme Networks, Inc. | Pseudo wire processing in a packet forwarding device |
US8547971B1 (en) * | 2009-01-07 | 2013-10-01 | Marvell Israel (M.I.S.L) Ltd. | Multi-stage switching system |
WO2010082803A2 (en) * | 2009-01-19 | 2010-07-22 | Lg Electronics Inc. | Method for delivering message based on cpm service and server thereof |
US8358651B1 (en) | 2009-09-21 | 2013-01-22 | Marvell International Ltd. | Switch device having a plurality of processing cores |
US8509069B1 (en) * | 2009-12-22 | 2013-08-13 | Juniper Networks, Inc. | Cell sharing to improve throughput within a network device |
US8400915B1 (en) * | 2010-02-23 | 2013-03-19 | Integrated Device Technology, Inc. | Pipeline scheduler for a packet switch |
US9172659B1 (en) | 2011-07-12 | 2015-10-27 | Marvell Israel (M.I.S.L.) Ltd. | Network traffic routing in a modular switching device |
US8897315B1 (en) | 2012-01-06 | 2014-11-25 | Marvell Israel (M.I.S.L) Ltd. | Fabric traffic management in a network device |
US9112708B1 (en) | 2012-01-27 | 2015-08-18 | Marvell Israel (M.I.S.L) Ltd. | Processing multicast packets in a network device |
US8938053B2 (en) * | 2012-10-15 | 2015-01-20 | Twilio, Inc. | System and method for triggering on platform usage |
US9118610B1 (en) * | 2013-08-05 | 2015-08-25 | Qlogic, Corporation | Network information processing and methods thereof |
US9571541B1 (en) | 2013-10-03 | 2017-02-14 | Marvell Israel (M.I.S.L.) Ltd. | Network device architecture using cache for multicast packets |
US10904150B1 (en) | 2016-02-02 | 2021-01-26 | Marvell Israel (M.I.S.L) Ltd. | Distributed dynamic load balancing in network systems |
WO2018047152A1 (en) | 2016-09-12 | 2018-03-15 | Marvell World Trade Ltd. | Merging read requests in network device architecture |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5511076A (en) * | 1994-11-07 | 1996-04-23 | Digital Equipment Corporation | Method and apparatus to efficiently reuse virtual connections by means of chaser packets |
US5768257A (en) * | 1996-07-11 | 1998-06-16 | Xylan Corporation | Input buffering/output control for a digital traffic switch |
US6002675A (en) * | 1997-01-06 | 1999-12-14 | Cabletron Systems, Inc. | Method and apparatus for controlling transmission of data over a network |
US6072805A (en) * | 1997-06-30 | 2000-06-06 | Sun Microsystems, Inc. | Observing arbiter |
US6285679B1 (en) * | 1997-08-22 | 2001-09-04 | Avici Systems, Inc. | Methods and apparatus for event-driven routing |
US6563837B2 (en) * | 1998-02-10 | 2003-05-13 | Enterasys Networks, Inc. | Method and apparatus for providing work-conserving properties in a non-blocking switch with limited speedup independent of switch size |
US6636483B1 (en) * | 1999-02-25 | 2003-10-21 | Fairchild Semiconductor Corporation | Network switch with zero latency flow control |
US6999414B2 (en) * | 1999-10-27 | 2006-02-14 | Broadcom Corporation | System and method for combining requests for data bandwidth by a data provider for transmission of data over an asynchronous communication medium |
US7203164B2 (en) * | 1999-10-27 | 2007-04-10 | Broadcom Corporation | Voice architecture for transmission over a shared, contention based medium |
US7102999B1 (en) * | 1999-11-24 | 2006-09-05 | Juniper Networks, Inc. | Switching device |
US6813274B1 (en) * | 2000-03-21 | 2004-11-02 | Cisco Technology, Inc. | Network switch and method for data switching using a crossbar switch fabric with output port groups operating concurrently and independently |
US6882649B1 (en) * | 2000-03-31 | 2005-04-19 | Sun Microsystems, Inc. | Least choice first arbiter |
GB0012592D0 (en) * | 2000-05-24 | 2000-07-12 | Power X Limited | High speed digital switch arbiter |
US7020715B2 (en) * | 2000-08-22 | 2006-03-28 | Adaptec, Inc. | Protocol stack for linking storage area networks over an existing LAN, MAN, or WAN |
US6711357B1 (en) * | 2000-10-31 | 2004-03-23 | Chiaro Networks Ltd. | Timing and synchronization for an IP router using an optical switch |
US7042883B2 (en) * | 2001-01-03 | 2006-05-09 | Juniper Networks, Inc. | Pipeline scheduler with fairness and minimum bandwidth guarantee |
EP1354450A2 (en) * | 2001-01-17 | 2003-10-22 | Broadcom Corporation | System and method for a guaranteed delay jitter bound when scheduling bandwidth grants for voice calls via a cable network |
US6763418B1 (en) * | 2001-09-07 | 2004-07-13 | Agilent Technologies, Inc. | Request bus arbitration |
US6920106B1 (en) * | 2001-09-07 | 2005-07-19 | Agilent Technologies, Inc. | Speculative loading of buffers within a port of a network device |
US20030107987A1 (en) * | 2001-12-07 | 2003-06-12 | Kinstler Gary A. | Reconfiguration system for a communication network |
US7292594B2 (en) * | 2002-06-10 | 2007-11-06 | Lsi Corporation | Weighted fair share scheduler for large input-buffered high-speed cross-point packet/cell switches |
US6907453B2 (en) * | 2002-09-18 | 2005-06-14 | Broadcom Corporation | Per CoS memory partitioning |
US20040081108A1 (en) * | 2002-10-02 | 2004-04-29 | Andiamo Systems | Arbitration system |
-
2002
- 2002-10-02 US US10/264,082 patent/US20110164616A1/en not_active Abandoned
-
2003
- 2003-09-29 CN CNA038237687A patent/CN1689283A/zh active Pending
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8325690B2 (en) | 2006-12-19 | 2012-12-04 | Huawei Technologies Co., Ltd. | Method for superframe management and coordinator thereof |
CN101286942B (zh) * | 2007-01-10 | 2011-04-20 | 国际商业机器公司 | 管理无限带宽通信链路的发送机、接收机和方法 |
CN101459593B (zh) * | 2007-12-14 | 2011-11-23 | 华为技术有限公司 | 业务交换的方法和设备及业务交换单元 |
WO2009076896A1 (zh) * | 2007-12-14 | 2009-06-25 | Huawei Technologies Co., Ltd. | 业务交换的方法和设备及业务交换单元 |
CN101989942B (zh) * | 2009-08-07 | 2012-10-31 | 无锡江南计算技术研究所 | 仲裁控制方法、通信方法、仲裁器和通信系统 |
CN104518958B (zh) * | 2013-09-27 | 2018-01-12 | 中国电信股份有限公司 | 关联光纤信道信号的传输处理方法与光传送网设备 |
CN104518958A (zh) * | 2013-09-27 | 2015-04-15 | 中国电信股份有限公司 | 关联光纤信道信号的传输处理方法与光传送网设备 |
CN107005489A (zh) * | 2014-12-29 | 2017-08-01 | 甲骨文国际公司 | 用于支持联网设备中的高效虚拟输出队列(voq)分组冲刷方案的系统和方法 |
CN107005489B (zh) * | 2014-12-29 | 2021-02-02 | 甲骨文国际公司 | 用于支持分组交换的系统、方法、介质和设备 |
CN110140115A (zh) * | 2016-12-30 | 2019-08-16 | 英特尔公司 | 用于在用于交换机架构的多级仲裁上实现公平性的系统和方法 |
CN110140115B (zh) * | 2016-12-30 | 2024-03-26 | 英特尔公司 | 用于在用于交换机架构的多级仲裁上实现公平性的系统和方法 |
CN109218230A (zh) * | 2017-06-30 | 2019-01-15 | 英特尔公司 | 用于平衡跨多级网络交换机的输入端口的吞吐量的技术 |
CN109218230B (zh) * | 2017-06-30 | 2024-04-26 | 英特尔公司 | 用于平衡跨多级网络交换机的输入端口的吞吐量的技术 |
CN112491746A (zh) * | 2019-09-11 | 2021-03-12 | 爱思开海力士有限公司 | 数据处理设备及其操作方法 |
CN112491746B (zh) * | 2019-09-11 | 2022-09-27 | 爱思开海力士有限公司 | 数据处理设备及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US20110164616A1 (en) | 2011-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1689283A (zh) | 使用仲裁系统处理超级帧的方法和装置 | |
US11916781B2 (en) | System and method for facilitating efficient utilization of an output buffer in a network interface controller (NIC) | |
US5796732A (en) | Architecture for an expandable transaction-based switching bus | |
US6731646B1 (en) | Fibre channel switching system and method | |
US5894481A (en) | Fiber channel switch employing distributed queuing | |
US5619497A (en) | Method and apparatus for reordering frames | |
US6510161B2 (en) | Low latency shared memory switch architecture | |
JP3448067B2 (ja) | ネットワークアダプタのためのネットワークコントローラ | |
US7401126B2 (en) | Transaction switch and network interface adapter incorporating same | |
CN1267418A (zh) | 连网系统 | |
CN1214168A (zh) | 有效的输出请求分组交换设备和方法 | |
CN1617526A (zh) | 在物理端口上模拟多个逻辑端口的方法和装置 | |
JPH08251101A (ja) | 転送路割り当てシステム | |
US7382736B2 (en) | Method for scoring queued frames for selective transmission through a switch | |
US11722585B2 (en) | Reliable communications using a point to point protocol | |
US9282000B1 (en) | Network devices having configurable receive packet queues and related methods | |
US7630384B2 (en) | Method and system for distributing credit in fibre channel systems | |
JP2002513968A (ja) | 制御とタイプヘッダのフィールドに基づいてファイバーチャネルフレームをマップする方法 | |
US20040081108A1 (en) | Arbitration system | |
US7218638B2 (en) | Switch operation scheduling mechanism with concurrent connection and queue scheduling | |
CN101044466A (zh) | 用于优化网络中的数据传送的方法和系统 | |
US9225672B1 (en) | Systems and methods for packet grouping in networks | |
AU2003275303B2 (en) | Method and apparatus for processing superframes using an arbitration system | |
US7522522B2 (en) | Method and system for reducing latency and congestion in fibre channel switches | |
CN1838096A (zh) | PCI-Express通信系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20051026 |