CN105577576B - 分布式交换机架构 - Google Patents

分布式交换机架构 Download PDF

Info

Publication number
CN105577576B
CN105577576B CN201510746693.3A CN201510746693A CN105577576B CN 105577576 B CN105577576 B CN 105577576B CN 201510746693 A CN201510746693 A CN 201510746693A CN 105577576 B CN105577576 B CN 105577576B
Authority
CN
China
Prior art keywords
tile
data packet
buffer
entrance
outlet
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
Application number
CN201510746693.3A
Other languages
English (en)
Other versions
CN105577576A (zh
Inventor
威廉·布拉德·马修斯
布鲁斯·辉·克万
普尼特·阿加瓦尔
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.)
Avago Technologies International Sales Pte Ltd
Original Assignee
Avago Technologies General IP Singapore Pte Ltd
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 Avago Technologies General IP Singapore Pte Ltd filed Critical Avago Technologies General IP Singapore Pte Ltd
Publication of CN105577576A publication Critical patent/CN105577576A/zh
Application granted granted Critical
Publication of CN105577576B publication Critical patent/CN105577576B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/112Switch control, e.g. arbitration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/252Store and forward routing

Abstract

本发明涉及一种分布式交换机架构。该分布式交换机架构支持非常高的带宽应用。例如,分布式交换机架构可实现用于云网络。该架构可通过将流量管理部件组织成具有分布式缓冲的瓦片结构而扩展(scale)。瓦片结构被复制并且互连,以使用互连带宽调度算法执行从入口至出口的传输。通过添加更多的瓦片来实现更高的带宽可以实现带宽扩展。可以根据实现参数例如物理效率换出该架构中的互连。

Description

分布式交换机架构
相关申请的交叉引用
本申请要求于2014年11月5日提交的美国临时申请号62/075,621、于2015年10月28日提交的美国临时申请号62/247,673以及于2015年10月29日提交的美国申请号14/927,103的优先权,通过引用将其全部内容结合在此。
技术领域
本公开涉及网络通信。本公开还涉及用于云网络的分布式交换机架构。
背景技术
高速数据网络构成成为不可缺少的全球数据连接的主干网的一部分。在数据网络中,诸如交换机等网络设备将数据包从源端口引导至目的地端口,从而有助于最终将数据包从源引导至目的地。交换机架构的改进将进一步增强数据网络的性能。
发明内容
根据本发明的一个方面,提供一种网络通信的方法,包括:建立包括以下的分布式缓冲架构:入口瓦片(ingress tile)中的输入数据包缓冲器;和出口瓦片中的输出数据包缓冲器;利用交换结构连接所述入口瓦片和所述出口瓦片;并且通过所述交换结构(switching fabric)在所述入口瓦片与所述出口瓦片之间执行分布式带宽授权机制。
其中:所述分布式带宽授权机制包括储存并转发带宽信用授权机制(store-and-forward bandwidth credit grant mechanism);并且进一步包括:利用入口队列调度器跟踪所述输入数据包缓冲器中定义的主动虚拟输出队列(VoQ)。
进一步地,该方法包括:针对所述主动虚拟输出队列之中的选择的主动虚拟输出队列,发布带宽信用请求消息至所述出口瓦片。
进一步地,该方法包括:响应于所述带宽信用请求消息,利用出口信用调度器确定授权用于所述选择的主动虚拟输出队列的带宽;并且通过所述交换结构将信用授权消息传送至所述入口瓦片。
进一步地,该方法包括:在所述入口队列调度器处接收所述信用授权消息;并且将出队命令从所述入口队列调度器传输至入口上下文管理器。
进一步地,该方法包括:响应于所述出队命令,由所述入口上下文管理器对所述选择的虚拟输出队列添加出队上下文(dequeue context);发布被配置为引起字节从所述选择的主动虚拟输出队列出队的缓冲器读取命令;并且通过所述交换结构将所述字节传递至所述出口瓦片。
其中:所述分布式带宽授权机制包括直通授权机制;并且进一步包括:在所述入口瓦片的分级缓冲器中接收数据包信元;并且做出关于所述数据包信元是否在入口侧有资格直通至所述出口瓦片的入口侧决定。
进一步地,该方法包括:当所述数据包信元是在入口侧有资格的时,则通过所述交换结构将直通请求消息传输至所述出口瓦片。
进一步地,该方法包括:在所述出口瓦片处接收所述直通请求消息;并且做出关于所述数据包信元是否在出口侧有资格直通至(gress-side eligible for cut throughto)所述出口瓦片的出口侧决定。
进一步地,该方法包括:当所述数据包信元是出口侧有资格的时,则通过所述交换结构将直通授权消息传输回至所述入口瓦片。
进一步地,该方法包括:在所述入口瓦片处接收所述直通授权消息,并且将所述数据包信元传输至所述交换结构中的直通队列。
根据本发明的另一方面,提供一种用于网络通信的机器,包括:入口瓦片,包括:输入数据包缓冲器,被配置为储存整个接收的数据包和针对到达数据包的个别的数据包信元有效载荷;和分级缓冲器,被配置为在对与所述个别的数据包信元有效载荷对应的所述到达数据包做出直通决定时储存所述数据包信元有效载荷的数据包信元指针;出口瓦片,包括:输出数据包缓冲器,被配置为定义端口特定的直通缓冲器;交换结构,将所述入口瓦片连接至所述出口瓦片;以及带宽分配电路,分布在所述入口瓦片与所述出口瓦片之间,所述带宽分配电路被配置为:决定用于将所述整个接收的数据包从所述输入数据包缓冲器转移至所述输出数据包缓冲器的储存并转发带宽信用分配;并且决定用于将所述数据包信元有效载荷从所述输入数据包缓冲器转移至所述端口特定的直通缓冲器的直通带宽分配。
其中:所述带宽分配电路包括:入口瓦片直通管理器,被配置为对所述个别的数据包信元有效载荷评估入口侧直通资格标准。
其中:所述入口侧直通资格标准测试所述整个接收的数据包是否与所述到达数据包一样目的地为输出端口。
其中:所述带宽分配电路包括:出口瓦片直通管理器,被配置为对所述个别的数据包信元有效载荷评估出口侧直通资格标准。
其中:所述出口侧直通资格标准测试所述输出数据包缓冲器中的现有数据包是否与所述到达数据包一样目的地为输出端口。
其中:所述带宽分配电路包括入口队列调度器,所述入口队列调度器被配置为:跟踪在所述输入数据包缓冲器中定义的主动虚拟输出队列(VoQ);针对所述主动虚拟输出队列之中的选择的主动虚拟输出队列,发布带宽信用请求消息至所述出口瓦片;接收信用授权消息;并且将出队命令从所述入口队列调度器传输至被配置为主动地调度向所述出口瓦片传输的主动虚拟输出队列的入口上下文管理器。
其中:所述带宽分配电路包括出口信用调度器,所述出口信用调度器被配置为:响应所述带宽信用请求消息,授权用于所述选择主动虚拟输出队列的带宽;并且通过所述交换结构将信用授权消息传送至所述入口瓦片。
根据本发明的又一方面,提供一种用于网络通信的机器,包括:入口瓦片,包括:输入数据包缓冲器,被配置为储存整个接收的数据包和针对到达数据包的个别的数据包信元有效载荷;和分级缓冲器,被配置为在对与所述个别的数据包信元有效载荷对应的所述到达数据包做出直通决定时储存所述数据包信元有效载荷的数据包信元指针;出口瓦片,包括:输出数据包缓冲器,被配置为定义端口特定的直通缓冲器;交换结构,将所述入口瓦片连接至所述出口瓦片,所述交换结构包括:每入口瓦片储存并转发缓冲器;每入口瓦片直通缓冲器;第一调度电路,被配置为在所述每入口瓦片储存并转发缓冲器与所述每入口瓦片直通缓冲器之间进行选择,以驱动至所述出口瓦片的第一输出通道;以及第二调度电路,被配置为在所述每入口瓦片直通缓冲器之间而非所述每入口瓦片储存并转发缓冲器之间进行选择,以驱动用于直通信元至所述出口瓦片的第二输出通道。
机器进一步包括:带宽分配电路,分布在所述入口瓦片与所述出口瓦片之间,所述带宽分配电路被配置为:决定用于将所述整个接收的数据包从所述输入数据包缓冲器转移至所述输出数据包缓冲器的储存并转发带宽信用分配;并且决定用于将所述数据包信元有效载荷从所述输入数据包缓冲器转移至所述端口特定的直通缓冲器的直通带宽分配。
附图说明
图1示出了存储器管理单元(MMU)瓦片的实施例。
图2示出了交换机架构。
图3示出了图2中的交换机架构扩展为示出通过全网状互连从入口至出口的流的示图。
图4开始了储存并转发数据包处理的实施例。
图5继续图4中所示的实施例。
图6继续图4和图5中的实施例。
图7继续图4至图6中的实施例。
图8继续图4至图7中的实施例。
图9示出了交换结构。
图10示出了交换结构的额外细节。
图11示出了用于储存并转发流的出口瓦片处理的实施例。
图12示出了可在交换机架构中实现的逻辑。
图13示出了支持直通的分布式缓冲交换机架构。
图14至图18示出了关于SoP、MoP、以及EoP信元的直通的实施例。
具体实施方式
云网络对交换机架构的需求极大。下面描述的架构有助于云网络满足数兆兆位元带宽要求。该架构有助于避免高成本和高功率消耗的存储器,而无需考虑重新架构并且重新设计流量管理和数据包缓冲功能的主要部件。该架构实现了分布式算法,该分布式算法提供具有低延迟的高带宽可扩展的交换,并且提供了从入口至出口的数据包转发的储存并转发(SAF)与直通(CT)模式。
该架构使用分布式解决方法实现了扩展(scaling)。在入口与出口上以及在入口与出口之间的结构互连中设置缓冲。将缓冲与智能的低延迟算法结合,以用于协调从入口至出口的传输。在一些实现方式中,该架构满足使用单一端口存储器的高带宽目标。该架构仅使用一半的电路面积可提供与之前设备至少相同量的广告数据包缓冲器。就另一方面而言,对于相同的电路面积成本,该架构提供两倍的缓冲。
图1示出了与内部结构接口(internal fabric interface)(IFI)102通信的存储器管理单元(MMU)瓦片100的实施例。MMU瓦片100的实例可根据需要被多次复制,以扩展交换机的容量。进一步地,当将多个实例制作成单一集成电路时,产生的交换机架构通过支持SAF模式和CT模式的分布式缓冲架构实现了数据包的极低延迟传输。仅举一个实施例,MMU瓦片100可以1信元/时钟将信元(cell)发送至IFI 102并且以1信元/时钟从IFI 102接收信元。MMU瓦片100包括入口MMU或瓦片104和出口MMU或瓦片106。
入口瓦片104包括内核108与数据包输入缓冲器110,该缓冲器提供交换机架构中的若干个分布式缓冲器之一。当存在多个瓦片时,该架构可在输入缓冲器110中定义虚拟输出队列(VoQ),从而区分不同瓦片上潜在地来自同一队列的多个数据包。内核108还包括入队(ENQ)电路112(例如,将信元放置在输入缓冲器110中)、出队电路(DEQ)114(例如,从输入缓冲器移除信元)、以及队列控制电路116(例如,控制出队的数据包以,例如,从已经缓冲等待交换的多个数据包的给定输出队列选择队列顶部的(ToQ)数据包)。内核108还包括准入(ADM)控制电路118、信元链接电路120、以及数据包链接电路122。入口瓦片104进一步包括通过入口上下文管理器(ICM)124和入口队列调度器(IQS)126调度的内部结构,例如,入口瓦片104可通过IF自出口瓦片接收信用授权消息。
出口瓦片106包括出口信用调度器(ECS)128。ECS 128可接收队列状态消息(QSM)130诸如,从入口瓦片接收带宽信用请求消息和带宽状态更新消息,并且响应性地分配带宽信用。例如,入口瓦片104可发送带宽信用请求消息,从而使得IQS电路126向任何连接的出口瓦片报告:给定VoQ已导通(ON)或主动,并且VoQ应以通过例如配置接口建立的预配置QoS政策指定的速率接收信用。例如,入口瓦片104可将带宽状态更新消息发送给任何连接的出口瓦片,以使IQS电路126报告给定的VoQ已经关闭(OFF)或不主动,从而指示VoQ应停止接收信用,因为VoQ既没有信用盈余和/或没有更多的数据进行传输。入口瓦片104可从出口瓦片106接收信用授权消息132。应注意,具体地,信用请求和授权消息指带宽信用请求和授权消息。即,这些消息请求并且分配从输出端口上可用的带宽中的带宽的片(slice)。
出口瓦片106还包括内核134与数据包输出缓冲器136,提供交换机架构中的分布式缓冲的另一点。内核134也包括入队(ENQ)电路138(例如,将信元放置在输出缓冲器136中)、出队电路(DEQ)140(例如,从输出缓冲器136移除信元)、以及队列控制电路142(例如,控制出队以选择数据包,例如,从已经缓冲等待通过输出端口的传输的多个数据包的给定数据队列控制队列顶部(ToQ)数据包)。内核134也包括准入控制(ADM)电路144、信元链接电路146、以及数据包链接电路148。出口瓦片106进一步包括具有队列调度电路150和端口调度电路152的出口调度器。队列调度电路150和端口调度电路152通过与出口瓦片106连接的端口从输出缓冲器136中的队列调度信元的传输。
应注意,IFI 102定义将入口瓦片连接至出口瓦片的交换互连154的接口。交换互连154可以是能够将任何输入连接至任何输出的全网状,并且一个或多个IFI可形成交换结构。IFI 102可进一步包括独立的结构控制接收(FCR)路径156(例如,用于控制消息)和结构数据接收(FDR)路径158(例如,包括在图10和图13至图18中描述的SAF缓冲器1004和CT缓冲器1320)。IFI 102(以及由此交换结构)可进一步包括下面更为详细描述的、遍及交换机架构分布的缓冲的另一实例的缓冲。交换机架构可实现其他互连拓扑。根据实现参数,例如,物理效率,可换出(swapped out)交换互连154。例如,对于特定实现方式(例如,非常高的带宽10-20+Tbps实现方式),新的拓扑(例如,环)可能更为有效。
通过将流量管理部件组织成瓦片结构可扩展该架构。瓦片结构可被复制和互连,从而使用下面描述的低延迟互连带宽调度算法执行从入口至出口的传输。通过添加更多的瓦片可以实现带宽扩展,从而实现更高的带宽。作为一种有益结果,仅适度的物理变化可允许带宽扩展至每秒很多兆兆位。
图2示出了交换机架构200。交换机架构200包括MMU瓦片100的六个实例202、204、206、208、210、以及212。MMU瓦片通过交换结构而连接。每个MMU瓦片均可支持指定数目的端口,例如,对于24端口交换机来说,每个瓦片可支持4个端口。图3示出了交换机架构200的示图300,被扩充为示出通过全网状互连从入口至出口的流。在单一裸片(die)上可制造交换机架构200/300。
交换机架构200/300使用唯一的缓冲模型。缓冲模型不使用单一共享的存储器或交叉点存储器来储存数据包。更确切地,缓冲模型使用多个截然不同的分布式缓冲点。一个缓冲点是输入缓冲器110。输入缓冲器110为到达数据包提供位于包含入口端口的同一瓦片中的主要缓冲点,从该入口端口接收数据包。输出缓冲器136提供另一缓冲点。输出缓冲器136为离开数据包提供位于包含出口端口的瓦片中的次要缓冲点,从该出口端口传输数据包。
在输入缓冲器110中缓冲的数据包链接至VoQ。每个入口流量管理器对用于传输至出口流量管理器(ETM)的非空VoQ的集合执行仲裁。一旦在ETM处收到数据包,可在传输至出口端口之前,对数据包进行再次缓冲。出于若干种原因,可提供在出口端口上的缓冲,包括:流控制,例如,在出口端口或数据包必须离开的队列当前受流控制的情况;潜流规避,例如,可以缓冲数据包直至在出口瓦片处接收EoP信元,以避免潜流;以及出口端口竞争,例如,多个数据包可从不同的入口瓦片到达一个出口端口,且具有潜在不同的QoS要求,并且将数据包链接至出口队列,然后,使用出口端口调度器执行仲裁可解决该冲突。
图4开始SAF包处理的实施例。在图4中,ADM电路118对到达信元执行准入控制(402)。在该作用中,ADM电路118可确定是否接受或丢弃数据包。作为该确定的一部分,ADM电路118检验输入侧和输出侧上的缓冲阈值。在输入侧,ADM电路118可根据接收数据包的输入端口对输入阈值进行检验,以确保输入端口之间共享输入缓冲器110。同样,在输出侧,ADM电路118可根据输出端口对输出阈值进行检验,以确保输入缓冲器110将数据包提供给所有的输出端口,而非仅提供给一个或几个繁忙的输出端口。
在图4的实施例中,入队电路112使用由入口管线(IP)提供的队列ID将传入数据包链接至入口虚拟输出队列(VOQ)(404)。此外,一旦将数据包链接至VOQ,则将入队报告发送至IQS电路126(406)。
图5继续图4中所示的实施例。一旦收到入队报告,IQS电路126则处理入队报告(502)。IQS电路126还跟踪队列信用状态,以确定是否从出口瓦片请求信用(504)。例如,入口瓦片104中的IQS电路126可将带宽信用请求消息报告发送至目的地端口驻留的出口瓦片:给定VoQ已导通(ON)或主动,并且VoQ应以由通过例如配置接口建立的预配置QoS政策指定的速率接收信用。入口瓦片104中的IQS电路126还可将给定VoQ已关闭(OFF)或不主动的带宽状态更新消息发送至出口瓦片,从而指示VoQ停止接收信用,因为VoQ既没有信用盈余和/或又没有更多的数据进行传输。
图6示出了某些架构元件之间的交互600并且继续图4和图5中的实施例。当VoQ主动时,IQS电路126接收入队报告。IQS电路126确定何时请求带宽信用。为了请求带宽信用,IQS电路126将队列状态消息602发送至ECS 128。ECS 128分配信用并且将带宽信用授权消息604返回至IQS电路126。
图7示出了某些架构元件之间的交互700并且继续图4至图6中的实施例。在图7中,例如,IQS电路126通过带宽信用授权消息604接收带宽信用。IQS电路126保持有资格使用其信用的VoQ的列表702,例如,接收信用并且具有传输的信元的VoQ。IQS电路126选择队列并且将出队命令704发送至ICM 124。例如,出队命令704可指定队列以及从该队列出队的信用的字节数。
如图7所示,对于任意数目'n'的队列,ICM电路124保持出队上下文706。出队上下文是从入口传输至出口的每个VoQ的表示。ICM电路124响应出队命令704将队列添加到上下文中。在ICM电路124中,循环(RR)调度器708选择进行传输的下一VoQ并且保持加注(serving)VoQ的上下文,直至ICM 124已处理由出队命令704指定的字节数,或直至已传输数据包的EoP信元。响应选择加注的下一队列,ICM电路124将缓冲器读取命令710发送回至入口内核108,从而致使从输入缓冲器110的指定队列对字节进行检索并且将这些字节传输至交换结构。
应注意,IQS电路126保持有资格将数据包从入口瓦片传输至出口瓦片的VoQ的列表702。在一种实现方式中,当VoQ为非空并且VoQ已经收到带宽信用时,VoQ有资格传输数据包。在每个入口瓦片中存在多个有资格的VoQ,且数据包的目的地为任意数目的出口瓦片。IQS电路126可对潜在选择的每个有资格的VoQ执行调度。在一种实现方式中,调度是多因素调度:严格的优先级(SP)(例如,相对于较低优先级的数据包,拾取更高优先级的数据包),跟着为RR选择。即,IQS电路126可保持高优先级(HP)队列列表和(相对)较低优先级(LP)队列列表并且在调度的第一次循环时基于每个出口瓦片进行选择。通过严格的优先级选择,选择HP数据包,而非LP数据包。然后,作为第二次循环的RR调度在第一次循环中选择的数据包之间进行选择。IQS电路126创建出队命令704,以反映作为第二次调度循环的结果而做出的选择。
在图7中,ECS 128生成整个瓦片的带宽信用。例如,对于存在16个端口,每个均为100Gbps,1.6Tbps的带宽。ECS 128则生成分布在每个为100Gbps的16个端口之间的1.6Tbps的带宽信用。可选地,ECS 128可以比理论最大带宽更快的速率生成信用。例如,ECS 128可以2%的加速(或根据任何其他可配置的加速参数)生成信用,例如,每个端口为102Gbps,而非每个端口为100Gpbs。加速的信用速率可有助于解决信用发行算法是近似的,即该算法并不精确地获知将消耗多少字节的信用授权。在一些实例中,例如,因为在运行完带宽信用之前,已经到达EoP信元,所以仅消耗部分量的给定信用授权。基本上,加速信用速率对未使用的带宽信用至具有信元要传输的VoQ的交付产生影响。如图7所示,对于每个输出端口,ECS128可基于每个入口瓦片保持服务类别(CoS)列表,例如,CoS列表712。即,每个端口均可具有多个不同的CoS,并且每个CoS可具有尝试发送同一CoS的多个VoQ。对于给定输出端口的给定CoS,作为选择的第一阶段,ECS 128中的RR调度器(例如,RR调度器714)在入口瓦片之间进行选择。
在选择的第二阶段,对于每个端口,ECS 128可在不同的CoS之间进行选择。选择的第二阶段可以是SP和权重分布RR(WDRR)阶段(WDRR)715。例如,当给定端口的CoS被给出不同的优先级时,SP可赋予最高优先级CoS的优先性。然后,WDRR可根据分配给队列的权重进行选择,任意数目的队列可具有相同的优先级。即,SP+WDRR阶段遵循权重分配,从而与分配权重成比例地分发带宽信用,而当给定输出端口的不同优先级的CoS竞争带宽时,则根据优先级赋予严格的优先性。然而,应注意,通常,可以实现除SP+WDRR之外的选择机制,其中仅包括SP、仅包括WDRR、其他类型的RR、以及其他类型的信元调度器。因此,通过示出机制之外的选择机制可以实现交换机架构中的每个调度器,并且由此可根据希望的实现方式宽泛地改变交换机架构。
作为具体的实施例,假设端口存在8个CoS队列(CoS 1-8)。CoS 8和CoS 7是SP队列并且其余的CoS(CoS 1-6)是各自具有预配置权重的低优先级队列。在这种情况下,如果CoS8为非空,ECS 128调度器将首先拾取CoS 8。如果CoS 8为空,且如果CoS 7为非空,调度器拾取CoS 7。仅当CoS 8和CoS 7为空时,调度器才从CoS 1-6之中拾取,然后,根据其配置权重的比率拾取。
瓦片调度器716在ECS 128中实现了第三阶段。瓦片调度器716对给定出口瓦片的端口之中的信用分配进行仲裁。瓦片调度器716将分配全部的带宽信用,以满足每个端口的配置端口速率。换另一种方式表达,瓦片调度器716可响应每个端口的固定权重分配信用。为此,调度器716可保持所填充的端口条目(entry)的日历(calendar),以将信用授权指定给端口,从而满足其端口速率,例如,100Gbps的端口可具有50Gbps端口的日历条目的两倍之多,且ECS 128对每个日历条目生成固定数目的带宽信用。
图8继续上述实施例并且示出了入口内核108处理缓冲器读取命令710(802)。在该方面,ADM电路更新其对出于准入控制之目的而提供的队列的跟踪(804)。例如,入口内核108经由出队电路114使缓冲器读取命令710中指定的信元/字节出队(806)。出队电路114将出队字节传递至交换结构,以用于传输至适当的出口瓦片(808)。
图9示出了具有全网状互连902的交换结构901的示图900。在图9中,交换结构901接收信元(950)。交换结构901经由全网状互连902将信元交换至对应的出口瓦片(952)。交换结构901可包括全网状互连902和任意数目的IFI 904。每个IFI 904均包括FCR和FDR(例如,见图1)。
图10示出了交换结构901的另一示图1000。图10示出了交换结构901是用于交换机架构的另一分布式缓冲点。入口瓦片通过全网状902和内部结构接口(IFI)1002连接至出口瓦片。每个IFI 1002均包括FDR 1007和FCR 1008。对于信元数据,对于每个出口瓦片,IFI包括FDR 1007中的结构缓冲器1004。例如,结构缓冲器1004可以是分配给每个入口瓦片的互连传输FIFO。RR调度器1006可在结构缓冲器1004之间进行选择下一信元,以选择转发至与该IFI连接的出口瓦片。如上所述,控制信号可通过FCR 1008中的独立控制路径在交换机架构的电路之间传递,例如,与数据信元横越交换结构的路径截然不同的信号路径。
换另一种方式表达,交换结构901自身将传入信元储存在缓冲器中,例如,储存在先进先出(FIFO)存储器中(1050)。更具体地,交换结构901可将传入信元储存在每个入口瓦片的数据FIFO中。当一个以上的信元同时去往给定的出口瓦片时,缓冲便于竞争规避。如果缓冲器填充水平超过预定的延缓阈值,交换结构901则可将流控制消息发送回至入口瓦片,以请求入口瓦片延缓信元传输。例如,延缓可以继续,直至缓冲器水平落在预定恢复阈值以下时,交换结构901才发送恢复消息。仅举一种实现实施例,每个FIFO每个时钟循环可支持一次写入和一次读取。此外,例如,调度器按照循环顺序以1信元/时钟的速率向每个出口瓦片提供每个交换结构传输的FIFO。
图11示出了关于上面开始的SAF流实施例的出口瓦片处理的实施例1100。在图11中,从交换结构901接收数据包的信元,并且数据包链接电路148和信元链接电路146将数据包链接至输出缓冲器136中定义的特定队列。队列调度电路150和端口调度电路152控制用于传输的队列和端口选择。这些调度器还从输出缓冲器136控制数据包出队以及通过所选择的输出端口传输数据包。更详细地,队列调度电路150和端口调度电路152执行ECS 128中相应并行的SP+WDRR调度器715和瓦片调度器716的功能。
应注意,在图4至图11的上述所述实施例中,流模型是SAF。即,在入口侧上,不通过交换结构901传输数据包信元,直至在入口瓦片处接收到整个数据包。同样,在出口侧上,不将数据包信元传输至端口外,直至在出口瓦片处接收到整个数据包。
上述所述交换机架构提供了组合的输入/输出排队架构。图12示出了在交换机架构中可以实现的逻辑。在入口瓦片、出口瓦片、并且还在交换结构自身中定义了数据包缓冲器(1202)。当数据包到达入口瓦片时,入口瓦片将数据包排队给输入缓冲器110中定义的特定VoQ(1204)。
入口瓦片中的IQS电路126从出口瓦片请求带宽信用(1206)。在出口瓦片中,ECS128从入口瓦片接收带宽请求消息和带宽状态更新消息602(1208)。ECS 128响应性地分配带宽信用(1210)并且将带宽信用授权消息604返回至IQS电路126(1212)。
IQS电路126保持用于传输的有资格的VoQ的列表(1214)。IQS电路126执行调度,以选择VoQ(1216),并且将具有选择VoQ的响应的出队命令704发送至入口瓦片中的ICM电路124(1218)。ICM电路124保持被加注队列的出队上下文的列表(1220)并且执行调度以拾取所提供的下一VoQ(1222)。
对于将被加注的下一VoQ,ICM电路124发送缓冲器读取命令710(1224)。响应缓冲器读取命令,入口瓦片对其队列统计进行更新并且使对应的数据从输入缓冲器110出队(1226)。入口瓦片将出队数据发送至IFI,其中,出队数据储存在结构缓冲器中(1228)。IFI中的调度器选择从结构缓冲器进行检索的下一信元数据(1230),并且将信元数据发送至出口瓦片(1232)。出口瓦片接收信元数据(1234)并且将信元数据链接至输出缓冲器136中的队列(1236)。队列调度电路150和端口调度电路152选择信元,以通过选择的输出端口进行传输(1238),并且致使通过选择的输出端口从输出缓冲器136检索和传输信元数据(1240)。在单芯片上制造的复制的瓦片架构中可以执行上述所述全部处理。单芯片解决方案提供了极高的集成度和非常低的延迟,以支持兆兆位范围数据速率。
当满足具体的预定条件时,分布式缓冲交换机架构支持其他模式的传输,其中包括直通。利用直通,将数据包传入至入口瓦片的信元可立即开始流通经过交换结构901至出口瓦片。同样,在出口瓦片中完全接收到传出数据包之前,可将传出数据包的信元传输至输出端口外。然而,在一些实现方式中,在将SoP信元传输至输出端口之前,出口瓦片可在满足具体条件下保持SoP CT信元。例如,出口瓦片可保持SoP信元,直至数据包的至少阈值数目的额外信元到达出口瓦片。如此可有助于避免输出端口的低负荷运行条件。下面提供了直通操作的进一步细节。
图13示出了支持直通(CT)的分布式缓冲交换机架构1300。交换机架构1300包括入口瓦片1302、出口瓦片1304、以及IFI 1306。入口瓦片1302包括分级缓冲器1308(例如,分级FIFO)和入口瓦片CT管理器1310。出口瓦片包括出口瓦片CT管理器1312和每端口CT缓冲器1314(例如,每端口CT FIFO)。应注意,每端口CT缓冲器1314可储存信元有效载荷自身,或每端口CT缓冲器1314可储存在输出缓冲器136中储存的信元有效载荷的指针。IFI 1306包括结构CT管理器1316和缓冲电路1318。
缓冲电路1318包括每入口瓦片SAF结构缓冲器1004(见图10)以及每入口瓦片CT缓冲器1320。缓冲器1004和缓冲器1320可分别储存SAF信元和CT信元。然而,这仅是组织存储器系统的一种方式,并且可以实现其他选项。例如,可将SAF和CT信元有效载荷数据储存在数据包缓冲器1326中,并且SAF结构缓冲器1004和CT缓冲器1320可实现将信元有效载荷的指针储存在数据包缓冲器1326中的队列。如上所述,RR调度器1006在SAF缓冲器1004之间进行选择。然而,应注意,缓冲电路1318定义了数据输出的多个通道:通道0和通道1。缓冲电路1318能够在每个时钟输出两个信元,一个在通道0上,并且一个在通道1上。通道1可输出由信元调度器1322选择的SAF信元或CT信元。由信元调度器1324选择的CT信元保留了通道0。两个输出通道通过IFI 1306提供额外的带宽容量,具体地,双倍于CT信元的带宽。在IFI1306之外提供多个通道使得CT流加速。通道0和通道1允许每个时钟两个信元从IFI1306出队。该加速有助于避免交换结构中的队列堆积。因此,输出缓冲器136可具有多个(例如,每个通道一个)写入端口,以在每个时钟接收从交换结构到达的每时钟多个信元。
出口瓦片CT管理器1312处理从交换结构接收的CT信元。具体地,出口瓦片CT管理器将CT信元指引到每端口CT缓冲器1314中。端口调度电路152指引CT信元从每端口CT缓冲器1314出队并且通过输出端口传输出CT信元。
CT模式允许交换机架构1300绕过在入口瓦片1302和出口瓦片1304处进行缓冲的整个数据包。当满足预定条件时,入口瓦片CT管理器1310和出口瓦片CT管理器1312协作,以允许个别数据包信元从入口瓦片1302流至出口瓦片1304,而无需等待信元所属的整个数据包到达并且在输入缓冲器110(一旦接收)和输出缓冲器136(用于传输)中排队。
图14示出了使用CT的数据包(SoP)的开始的进度1400。SoP信元到达入口瓦片1302并且储存在分级缓冲器1308中(1402)。入口瓦片CT管理器1310对与SoP信元相关联的数据包执行局部(入口侧)CT资格检验(1404)。在一种实现方式中,局部资格检验包括输入缓冲器110是否已包含与接收的CT信元去往同一输出端口的数据包。如此,CT信元没有资格,因为其他数据包已经等待传输至该输出端口。如果CT资格检验通过,入口瓦片CT管理器1310则将CT请求消息1450发送至数据包的目的地出口瓦片(1406)。应注意,CT请求消息1450中的状态位可指示接收的信元是否是单个信元数据包(即,数据包适配在单个信元中)。CT请求消息1450可通过专用控制路径流经IFI 1306,如同上述所述队列状态和信用授权消息。专用控制路径提供非常低延迟的控制信道,以便于协调交换机架构中具有多个缓冲点的CT流的艰难操作。
图15示出了使用图14中的实施例处理CT信元的额外进度1500。出口瓦片CT管理器1312接收CT请求消息(1502)并且执行局部(出口侧)CT资格检验(1504)。在该方面,对于给定输出端口,出口瓦片CT管理器1312(在各个出口瓦片中)从潜在的多个入口瓦片接收CT请求消息。出口瓦片CT管理器1312基于输出端口状态确定是否授权或拒绝CT请求。例如,当该出口瓦片处的输出缓冲器136已经具有在该输出端口处排队的数据包时,出口瓦片CT管理器1312可拒绝CT请求。此外,当存在请求CT的同一输出端口的多个入口瓦片时,出口瓦片CT管理器可拒绝CT请求。进一步地,CT管理器1312可检验IFI 1306的状态,以做出CT决策。例如,FDR可将映射(map)发送至其出口瓦片(例如,下面参考的位图FDR_Empty_Bitmap)。映射可指定在IFI 1306中排队的任何信元是否去往任意出口瓦片端口。当IFI 1306已经具有去往端口(即,也时请求CT的信元的目的地)的排队信元时,CT管理器1312可拒绝CT。即,不允许新到达的SoP信元超越已经等待使用同一输出端口的信元。应注意,出口瓦片CT管理器1312存在于各个出口瓦片中并且保持由全部入口瓦片做出请求的全局图。然而,全局图可仅关于与具体出口瓦片相关联的输出端口。即,给定的出口瓦片CT管理器1312针对该出口瓦片的输出端口做出CT决策,并且该决策是请求入口瓦片的联合决策。通过入口侧和出口侧上的与上述所述不同的CT管理器可以执行额外或不同的检验。如果出口侧CT资格检验通过,出口瓦片CT管理器1312则可将CT授权消息1550返回至入口瓦片CT管理器1310。
CT信元到达分级缓冲器1308的开头。如果CT已被授权,CT信元则获得访问交换结构的优先权。CT信元1552游历交换结构并且储存在CT缓冲器1320中。换言之,CT信元1552绕过输入缓冲器110并且通过交换结构直接流至出口瓦片。CT信元具有访问交换结构的更高优先级。出于此原因,入口瓦片CT管理器1310还可实现饥饿规避,以防止规则的CT流阻止经过缓冲的SFA数据包数据到达出口瓦片。例如,入口瓦片CT管理器1310可通过预定时间窗口(例如,1000时钟的窗口)监测入口瓦片之外的SAF信元的速率以及入口瓦片之外的CT信元的速率。当SAF信元的速率落在预定停止CT阈值以下时(或满足任何其他饥饿条件),入口瓦片CT管理器1310可停止对其入口瓦片之外的新数据包的CT。入口瓦片CT管理器1310可停止CT指定的时间段,例如,直至饥饿条件解除(例如,当SAF信元的速率超过恢复CT阈值时)。
图16示出了使用图14和图15中的实施例处理CT信元的额外进度1600。CT信元1552到达CT缓冲器1320中(1602)。应注意,由缓冲电路1318中的SAF路径和CT路径共享驱动通道1的调度器1322。当CT信元可用时,调度器1322赋予CT信元的优先性并且优先地选择具有优先性的CT信元传输至出口瓦片。例如,在多个缓冲的CT信元之间,调度器1322和调度器1324可实现RR选择。在图16的实施例中,CT信元1552流经由调度器1324选择的CT缓冲器(1604)并且经由通道0被发送至出口瓦片1304(1606)。CT信元1552储存在对应的每出口端口CT缓冲器1314中(1608),并且端口调度电路152选择用于传输至输出端口之外的CT信元1552(1610)。
长度超过一个信元的数据包将具有数据包(EoP)信元的结束和数据包(MoP)信元的潜在的零或多个中部。图17示出了SoP之后的MoP/EoP1750信元的处理1700。在图17中,MoP/EoP信元1750到达分级缓冲器1308(1702)。如果信元是EoP信元,如果对应的数据包已被授权CT或数据包具有未完成的CT请求,入口瓦片CT管理器可将CT消息的结束发送至传出的出口瓦片。当MoP/EoP信元到达分级缓冲器1308的开头时,如果CT被授权,入口瓦片CT管理器1310针对源-目的地端口配对识别主动的CT流。因此,MoP/EoP信元1750具有访问交换结构的优先级,并且MoP/EoP信元1750横越交换结构并且到达CT缓冲器1320中(1706)。
图18示出了SoP之后的MoP/EoP信元1750的进一步处理1800。在图18中,在通过通道0的实施例中,MoP/EoP信元1750接收缓冲器电路1318之外的优先级选择(1802)。调度器1324将MoP/EoP信元1750发送至出口瓦片1304(1804)。MoP/EoP信元1750储存在对应的每输出端口CT缓冲器1314中(1806),并且端口调度电路152按照用于传输至输出端口外的次序选择MoP/EoP信元1750(1808)。
在一些实现方式中,分级缓冲器1308储存信元指针,并且信元有效载荷储存在输入缓冲器110中。在该方面,出于该目的保留与分级缓冲器1308的深度一样储存尽可能多的信元的输入缓冲器110的固定部分。分级缓冲器1308可以是固定延迟元件。即,在该缓冲器中,每个传入信元可等待固定数目的时钟循环。该延迟可以基于由入口瓦片发送出的CT请求与从出口瓦片返回的对应CT响应(授权或拒绝)之间的最坏往返延迟。所有数据包可通过分级缓冲器1308继续,与其是否有资格获取CT无关。同样,IFI 1306中的数据包缓冲器1326可储存关于SAF信元、CT信元、或SAF信元和CT信元的信元有效载荷,且缓冲电路1318储存数据包缓冲器1326中定义的CT队列或SAF队列的信元指针。
入口CT管理器状态
在一种实现方式中,入口瓦片CT管理器保持关于每个出口端口Egr_Port_i的下列状态信息:
CT_Eligible:该字段指示Egr_Port_i是否有资格获得CT。
Staging_FIFO_PktCntr:指计算去往Egr_Port_i的数据包的数目的数据包水平计数器,数据包当前在分级缓冲器1308中并且已经决定去往SAF,但是,SPO尚未从分级FIFO出队。
Pre_ENQ_PktCntr:指计算去往Egr_Port_i的数据包的数目的数据包水平计数器,数据包已经决定去往SAF并且由此SPO从分级缓冲器1308出队,但是,数据包尚未入队至入口瓦片。
Port_Counter:指用于跟踪去往Egr_Port_i的在入口瓦片中进行缓冲的数据包的数目的每端口计数器。
Port_Empty_Timer:该定时器用于覆盖下列时间窗口:
·SAF数据包从入口至IFI的传播延迟
·更新对应的FDR_Empty_Bitmap并且将其传播至出口瓦片的延迟。
针对上述时间窗口的安全措施有助于防止来自同一源端口和去往同一目的地端口的数据包之间的重新排序。
如果用于Egr_Port_i的Port_Counter(保持后入队SAF数据包的计数)大于零,定时器则保持设置为可编程的值。一旦Port_Counter减少至0并且被视为过期时,当其值到达0时,即,当Port_Counter在固定的时钟数内保持0时,Port_Counter开始向下计数每个时钟。
对于每个系统出口端口,每个入口瓦片均监测定时器的状态(是否过期)并且以TDM方式将该状态传送至出口瓦片(使用CT端口状态控制路径)。
CT_Req_Cntr:指对Egr_Port_i的未完成CT请求的次数的计数器。
CT_Src_Port:该字段储存等待对其CT请求的响应或注定地直通Egr_Port_i的数据包的源端口id。
CT_Active:该字段指示目前是否存在直通Egr_Port_i的数据包。
出口侧资格检验的另一实施例如下:允许SoP信元发送CT请求,如果:
(Egr_Port_i.CT_Eligible AND
Egr_Port_i.Staging_FIFO_PktCntr==0AND
Egr_Port_i.Pre_ENQ_PktCntr==0AND
Egr_Port_i.Port_Empty_Timer==0AND
((Egr_Port_i.CT_Req_Cntr==0)OR(Egr_Port_i.CT_src_port==Cell’s srcport)))
对MoP/EoP信元的资格检验如下:
(Egr_Port_i.CT_Active==1AND
Egr_Port_i.CT_Src_Port==Cell’s src port).
结构CT管理器状态
结构CT管理器1316可保持下列状态信息:
Port_Cntr:指计算在出口端口的FDR处进行缓冲的SAF数据包的数目的数据包水平计数器。
结构CT管理器1316在每个时钟将K位位图(FDR_Empty_Bitmap)发送至其耦接的出口瓦片,其中,K是局部出口端口的数目,从而指示该端口的Port_Cntr是否大于或等于零。
初始状态:
Egr_Port_i.Port_Cntr=0.
出口瓦片CT管理器状态
出口瓦片CT管理器1312可在每个局部出口端口保持下列状态信息:
Ingress_Tiles_Empty_Bitmap:指储存每个入口瓦片对于Egr_Port_i是否为信令空的N位位图(且N个入口瓦片中的每个为一位),例如,各个入口瓦片处用于该端口的Port_Empty_Timer是否过期。对于Egr_Port_i,位图中的1’b值表示对应的入口瓦片不具有任何SAF流量。否则,该入口瓦片处的位图中的值为0’b。
FDR_Empty:指1位值,指示与该出口瓦片耦接的FDR对于Egr_Port_i是否为空(1’b默认为空;0’b默认为非空)。
Egress_PktCntr:指数据包水平计数器,计算局部出口瓦片处用于Egr_Port_i的SAF数据包的数目。
CT_FIFO_CellCntr:指计算Egr_Port_i的CT FIFO中的信元的数目的计数器。
CT_State:该字段包含Egr_Port_i的CT状态。不同可能的CT状态如下:
CT_INELIGIBLE–Port对CT不合格
CT_PREP–Port指SAF空并且等待变为可获得CT
CT_AVAILABLE–Port可获得CT
CT_CLAIMED_ACTIVE–Port通过入口瓦片之一要求CT并且等待End_of_CT_Packet消息,即,端口在直通数据包的中间(middle)。
CT_CLAIMED_SLEEPING–Port通过入口瓦片之一要求CT并且已经收到End_of_CT_Packet消息,即,端口不在直通数据包的中间。
CT_COMPLETING–Port不是空,但是,在CT数据包的中间(目前直通数据包的EOP尚未到达)。
Owner_Ingress_Tile:如果Egr_Port_i处于CT_CLAIMED_ACTIVE或CT_CLAIMED_SLEEPING或CT_COMPLETING状态,该字段指示拥有该端口的入口瓦片。
Middle_of_CT_Packet:该字段指示Egr_Port_i目前是否处于直通数据包的中间。
CT_Drain_Timer:当Egr_Port_i从CT模式转变成SAF模式时,定时器用于实现绝限时间。如果Egr_Port_i处于CT_CLAIMED_ACTIVE或CT_CLAIMED_SLEEPING状态并且变为SAF非空或从非所有者入口瓦片收到CT请求,该定时器确保在开始传输任何SAF数据包之前,端口将完成传输所有的飞行中CT数据包。
最初,将定时器的值设置为MAX值,这是最坏的时间,需要最大可能的数据包大小(例如,句型数据包)的EPO根据端口速度到达出口。当出口收到关于该端口的End_of_CT_Packet消息时,现确保CT数据包的EOP在入口处进入分级缓冲器1308。然后,将定时器的值减少至MIN值,即,最坏的时间,需要数据包的EPO到达分级缓冲器1308的开头、横越互连、并且获得被调度出的出口瓦片。
当端口从SAF(CT_INELIGIBLE)模式转变成CT(CT_AVAILABLE)模式时,该定时器用于实现绝限时间,覆盖了CT端口状态消息从入口至出口的传播延迟并且防止来自同一源端口的对接数据包之间的重新排序情况并且防止对接数据包去往同一目的地端口。
当端口在变为SAF空进入CT_PREP状态时,将定时器设置为可编程的值,其中:
出口端口在下列情况被视为空:
(Egr_Port_i.Egress_PktCntr==0AND
Egr_Port_i.FDR_Empty==1AND
And of all bits in Egr_Port_i.Ingress_Tiles_Empty_Bitmap==1)
而在CT_PREP状态下,定时器在每个时钟开始向下计数至0。在窗口期间对端口的任何新的CT请求会被拒绝(当定时器值>0时)。当定时器值变为0时,端口变得可为CT之用并且其状态改变至CT_AVAILABLE。
出口侧CT资格检验可实现如下:当出现下列情况时,授权CT请求:
Egr_Port_i.CT_FIFO_Cntr<Threshold AND
(Egr_Port_i.CT_State==CT_AVAILABLE OR
((Egr_Port_i.CT_State==CT_CLAIMED_SLEEPING)AND(Egr_Port_i.Owner_Ingress_Tile==Requestor’s Ingress Tile)))
可以执行第一次检验,以确保该端口的CT FIFO并未在特定值以外堆积。由于出口信购超额而可能发生堆积。可以执行第二次检验,以确保端口处于安全授权CT的状态。如果这两次检验失败,则拒绝CT请求。
通过多种不同方式并且通过硬件与软件的多种不同组合可以实现上述所述方法、设备、处理、以及逻辑。例如,实现方式的全部或部分可以是包括指令处理器(诸如,中央处理单元(CPU)、微控制器、或微处理器)的电路、专用集成电路(ASIC)、可编程逻辑设备(PLD)、或场可编程门阵列(FPGA)、或包括离散逻辑或其他电路部件的电路(包括模拟电路部件、数字电路部件或两者)、或其任意组合。例如,电路可包括离散的互连硬件部件和/或可以是在单个集成电路晶片上组合、分布在多个集成电路晶片上、或实现为共同封装中的多个集成电路晶片的多芯片模块(MCM)。
电路可进一步包括或访问由该电路执行的指令。可以将指令储存在与易失性信号不通的实际储存介质中,诸如,闪速存储器、随机访问存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM);或可以将指令储存在磁盘或光盘上,诸如,紧凑盘只读存储器(CDROM)、硬盘驱动(HDD)、或其他磁盘或光盘上;或者可以将指令储存在另一机器可读的介质中。诸如计算机程序产品等产品可包括储存介质或储存在介质中或上的指令,并且当由设备中的电路执行指令时,指令可致使设备实现上述所述或附图中示出的任何处理。
实现方式可以分布为多个系统部件之间的电路,诸如,多个处理器和存储器之间,可选地,包括多个分布式处理系统。参数、数据库、以及其他数据结构可被单独储存和管理、可被整合到单个存储器或数据库中、可通过多种不同方式进行逻辑和物理组织、并且可通过多种不同方式实现,其中包括诸如链接列表、哈希表、阵列、记录、对象、或默示储存介质等数据结构。程序可以是单个程序的部分(例如,子例程)、独立程序、分布在若干个存储器和处理器上、或荣国多种不同方式实现,诸如,库,诸如共享库(例如,动态链接库(DLL))。例如,DLL可储存指令,当电路执行指令时,指令执行上述所述或附图中示出的任何处理。
已经具体描述了各种实现方式。然而,许多其他实现方式也是可能的。

Claims (8)

1.一种网络通信的方法,包括:
建立包括以下的分布式缓冲架构:
入口瓦片中的输入数据包缓冲器;
出口瓦片中的输出数据包缓冲器,所述输入数据包缓冲器和所述输出数据包缓冲器不位于共享存储器上;和
交换结构中的至少一个缓冲器,所述交换结构中的所述至少一个缓冲器与所述输入数据包缓冲器和所述输出数据包缓冲器分离且位于所述交换结构的入口和出口之间;
利用所述交换结构连接所述入口瓦片和所述出口瓦片;并且
通过所述交换结构在所述入口瓦片与所述出口瓦片之间执行分布式带宽授权机制,
其中:
所述分布式带宽授权机制包括储存并转发带宽信用授权机制,
所述方法进一步包括利用入口队列调度器跟踪在所述输入数据包缓冲器中定义的主动虚拟输出队列(VoQ),
所述分布式带宽授权机制进一步包括直通授权机制,在所述直通授权机制中,数据包信元立即开始流通经过所述交换结构至所述出口瓦片,并且
所述方法进一步包括:
在所述入口瓦片的分级缓冲器中接收数据包信元;并且
做出关于所述数据包信元是否在入口侧有资格直通至所述出口瓦片的入口侧决定。
2.根据权利要求1所述的方法,进一步包括:
针对所述主动虚拟输出队列之中的选择的主动虚拟输出队列,发布带宽信用请求消息至所述出口瓦片。
3.根据权利要求2所述的方法,进一步包括:
响应于所述带宽信用请求消息,利用出口信用调度器确定授权用于所述选择的主动虚拟输出队列的带宽;并且
通过所述交换结构将信用授权消息传送至所述入口瓦片。
4.根据权利要求3所述的方法,进一步包括:
在所述入口队列调度器处接收所述信用授权消息;并且
将出队命令从所述入口队列调度器传输至入口上下文管理器。
5.根据权利要求4所述的方法,进一步包括:
响应于所述出队命令,由所述入口上下文管理器对所述选择的主动虚拟输出队列添加出队上下文;
发布被配置为引起字节从所述选择的主动虚拟输出队列出队的缓冲器读取命令;并且
通过所述交换结构将所述字节转移至所述出口瓦片。
6.根据权利要求1所述的方法,进一步包括:
当所述数据包信元是在入口侧有资格的时,则通过所述交换结构将直通请求消息传输至所述出口瓦片。
7.一种用于网络通信的机器,包括:
入口瓦片,包括:
输入数据包缓冲器,被配置为储存整个接收的数据包和针对到达数据包的个别的数据包信元有效载荷;和
分级缓冲器,被配置为在对与所述个别的数据包信元有效载荷对应的所述到达数据包做出直通决定时,储存所述数据包信元有效载荷的数据包信元指针;
出口瓦片,包括
输出数据包缓冲器,被配置为定义端口特定的直通缓冲器;
交换结构,其包括与所述输入数据包缓冲器和所述输出数据包缓冲器分离的至少一个缓冲器,所述至少一个缓冲器位于所述交换结构的入口和出口之间,所述交换结构经配置以将所述入口瓦片连接至所述出口瓦片;以及
带宽分配电路,分布在所述入口瓦片与所述出口瓦片之间,所述带宽分配电路被配置为:
决定用于将所述整个接收的数据包从所述输入数据包缓冲器转移至所述输出数据包缓冲器的储存并转发带宽信用分配;并且
决定用于将所述数据包信元有效载荷从所述输入数据包缓冲器转移至所述端口特定的直通缓冲器的直通带宽分配,
其中所述输入数据包缓冲器和所述输出数据包缓冲器不位于共享存储器上,
其中直通指示数据包信元立即开始流通经过所述交换结构至所述出口瓦片。
8.一种用于网络通信的机器,包括:
入口瓦片,包括:
输入数据包缓冲器,被配置为储存整个接收的数据包和针对到达数据包的个别的数据包信元有效载荷;和
分级缓冲器,被配置为在对与所述个别的数据包信元有效载荷对应的所述到达数据包做出直通决定时,储存所述数据包信元有效载荷的数据包信元指针;
出口瓦片,包括:
输出数据包缓冲器,被配置为定义端口特定的直通缓冲器;
交换结构,将所述入口瓦片连接至所述出口瓦片,所述交换结构包括:
每入口瓦片储存并转发缓冲器,其位于所述交换结构的入口和出口之间;
每入口瓦片直通缓冲器,其位于所述交换结构的所述入口和所述出口之间;
第一调度电路,被配置为在所述每入口瓦片储存并转发缓冲器与所述每入口瓦片直通缓冲器之间进行选择,以驱动至所述出口瓦片的第一输出通道;以及
第二调度电路,被配置为在所述每入口瓦片直通缓冲器之间而非所述每入口瓦片储存并转发缓冲器之间进行选择,以驱动用于直通信元至所述出口瓦片的第二输出通道,
其中所述输入数据包缓冲器和所述输出数据包缓冲器不位于共享存储器上,
其中直通指示数据包信元立即开始流通经过所述交换结构至所述出口瓦片。
CN201510746693.3A 2014-11-05 2015-11-05 分布式交换机架构 Active CN105577576B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201462075621P 2014-11-05 2014-11-05
US62/075,621 2014-11-05
US201562247673P 2015-10-28 2015-10-28
US62/247,673 2015-10-28
US14/927,103 2015-10-29
US14/927,103 US10257117B2 (en) 2014-11-05 2015-10-29 Distributed switch architecture

Publications (2)

Publication Number Publication Date
CN105577576A CN105577576A (zh) 2016-05-11
CN105577576B true CN105577576B (zh) 2019-11-01

Family

ID=55853959

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510746693.3A Active CN105577576B (zh) 2014-11-05 2015-11-05 分布式交换机架构

Country Status (3)

Country Link
US (2) US10257117B2 (zh)
CN (1) CN105577576B (zh)
HK (1) HK1218476A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9698791B2 (en) * 2013-11-15 2017-07-04 Scientific Concepts International Corporation Programmable forwarding plane
US10326448B2 (en) * 2013-11-15 2019-06-18 Scientific Concepts International Corporation Code partitioning for the array of devices
CN107003982B (zh) * 2014-12-24 2021-07-20 英特尔公司 用于使用多个多点总线的装置和方法
US10015699B2 (en) * 2016-03-28 2018-07-03 Cisco Technology, Inc. Methods and devices for policing traffic flows in a network
US10182017B2 (en) 2016-06-30 2019-01-15 Mellanox Technologies Tlv Ltd. Estimating multiple distinct-flow counts in parallel
US10437616B2 (en) * 2016-12-31 2019-10-08 Intel Corporation Method, apparatus, system for optimized work submission to an accelerator work queue
US10218642B2 (en) * 2017-03-27 2019-02-26 Mellanox Technologies Tlv Ltd. Switch arbitration based on distinct-flow counts
US10567307B2 (en) * 2018-04-27 2020-02-18 Avago Technologies International Sales Pte. Limited Traffic management for high-bandwidth switching
US10686714B2 (en) * 2018-04-27 2020-06-16 Avago Technologies International Sales Pte. Limited Traffic management for high-bandwidth switching
US11489789B2 (en) * 2018-06-29 2022-11-01 Intel Corporation Technologies for adaptive network packet egress scheduling
US10700998B2 (en) * 2018-08-03 2020-06-30 Cavium International VOQ-based network switch architecture using multi-stage arbitration fabric scheduler
CN111092829B (zh) * 2019-12-09 2022-04-01 昆高新芯微电子(江苏)有限公司 一种基于交换架构的多核交换芯片及其数据传输方法
US11240151B2 (en) * 2019-12-10 2022-02-01 Juniper Networks, Inc. Combined input and output queue for packet forwarding in network devices
US11762718B2 (en) * 2020-08-26 2023-09-19 Hewlett Packard Enterprise Development Lp Automatically optimized credit pool mechanism based on number of virtual channels and round trip path delay

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7292580B2 (en) * 2002-06-10 2007-11-06 Lsi Corporation Method and system for guaranteeing quality of service in a multi-plane cell switch
US8274887B2 (en) * 2006-04-24 2012-09-25 Broadcom Corporation Distributed congestion avoidance in a network switching system
CN103516814A (zh) * 2013-10-23 2014-01-15 浪潮齐鲁软件产业有限公司 一种大数据量的数据交换方法
CN103534998A (zh) * 2011-05-14 2014-01-22 国际商业机器公司 分布式结构协议(dfp)交换网络架构
US8797877B1 (en) * 2012-08-09 2014-08-05 Juniper Networks, Inc. Virtual output queue allocation using dynamic drain bandwidth

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW513635B (en) * 2000-11-24 2002-12-11 Ibm Method and structure for variable-length frame support in a shared memory switch
US20030048792A1 (en) * 2001-09-04 2003-03-13 Qq Technology, Inc. Forwarding device for communication networks
US20040151197A1 (en) * 2002-10-21 2004-08-05 Hui Ronald Chi-Chun Priority queue architecture for supporting per flow queuing and multiple ports
US7274701B2 (en) 2002-11-04 2007-09-25 Tellabs Operations, Inc. Cell based wrapped wave front arbiter (WWFA) with bandwidth reservation
US8345701B1 (en) * 2003-08-26 2013-01-01 F5 Networks, Inc. Memory system for controlling distribution of packet data across a switch
US20050243716A1 (en) * 2004-05-03 2005-11-03 Bitar Nabil N Systems and methods implementing 1‘and N:1 line card redundancy
US7564869B2 (en) * 2004-10-22 2009-07-21 Cisco Technology, Inc. Fibre channel over ethernet
US7969971B2 (en) * 2004-10-22 2011-06-28 Cisco Technology, Inc. Ethernet extension for the data center
US20060114907A1 (en) * 2004-11-30 2006-06-01 Broadcom Corporation Cut-through switching in a network device
US8149710B2 (en) * 2007-07-05 2012-04-03 Cisco Technology, Inc. Flexible and hierarchical dynamic buffer allocation
EP2134037B1 (en) 2008-06-12 2011-05-11 Alcatel Lucent Method and apparatus for scheduling data packet flows
US8503440B2 (en) * 2008-10-20 2013-08-06 Tadeusz H. Szymanski Crossbar switch and recursive scheduling
US9008113B2 (en) * 2010-12-20 2015-04-14 Solarflare Communications, Inc. Mapped FIFO buffering
US9106428B2 (en) * 2012-10-04 2015-08-11 Broadcom Corporation Multicast switching for distributed devices
US9083655B2 (en) 2012-10-05 2015-07-14 Broadcom Corporation Internal cut-through for distributed switches
US9100313B1 (en) * 2012-12-10 2015-08-04 Cisco Technology, Inc. Shared egress buffer in a multi-stage switch
US9894013B2 (en) * 2015-02-03 2018-02-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Early queueing network device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7292580B2 (en) * 2002-06-10 2007-11-06 Lsi Corporation Method and system for guaranteeing quality of service in a multi-plane cell switch
US8274887B2 (en) * 2006-04-24 2012-09-25 Broadcom Corporation Distributed congestion avoidance in a network switching system
CN103534998A (zh) * 2011-05-14 2014-01-22 国际商业机器公司 分布式结构协议(dfp)交换网络架构
US8797877B1 (en) * 2012-08-09 2014-08-05 Juniper Networks, Inc. Virtual output queue allocation using dynamic drain bandwidth
CN103516814A (zh) * 2013-10-23 2014-01-15 浪潮齐鲁软件产业有限公司 一种大数据量的数据交换方法

Also Published As

Publication number Publication date
CN105577576A (zh) 2016-05-11
US20160127267A1 (en) 2016-05-05
US10257117B2 (en) 2019-04-09
US20190190849A1 (en) 2019-06-20
US10764208B2 (en) 2020-09-01
HK1218476A1 (zh) 2017-02-17

Similar Documents

Publication Publication Date Title
CN105577576B (zh) 分布式交换机架构
US10341260B2 (en) Early queueing network device
US9083655B2 (en) Internal cut-through for distributed switches
JP5036920B1 (ja) 中継装置、中継装置の制御方法、およびプログラム
Feliciian et al. An asynchronous on-chip network router with quality-of-service (QoS) support
TWI477109B (zh) 訊務管理器及用於訊務管理器之方法
US7039058B2 (en) Switched interconnection network with increased bandwidth and port count
US6947433B2 (en) System and method for implementing source based and egress based virtual networks in an interconnection network
US8897292B2 (en) Low pass filter for hierarchical pipelined distributed scheduling traffic manager
CN110417670B (zh) 网络交换机
US20070268903A1 (en) System and Method for Assigning Packets to Output Queues
US8817619B2 (en) Network system with quality of service management and associated management method
US10735335B2 (en) Interface virtualization and fast path for network on chip
JP2008536391A (ja) 待ち時間の削減のためのネットワークオンチップ環境及び方法
JPWO2013014851A1 (ja) 中継装置
CN102404213B (zh) 报文缓存管理方法及系统
US20080273546A1 (en) Data switch and a method of switching
US8879578B2 (en) Reducing store and forward delay in distributed systems
US20050063308A1 (en) Method of transmitter oriented link flow control
US10700998B2 (en) VOQ-based network switch architecture using multi-stage arbitration fabric scheduler
JP4164771B2 (ja) ロードバランス型スイッチ装置、及びロードバランス型スイッチ方法
US8670454B2 (en) Dynamic assignment of data to switch-ingress buffers
US11855913B2 (en) Hierarchical switching device with deadlockable storage and storage partitions
US20050063305A1 (en) Method of updating flow control while reverse link is idle
US9148377B2 (en) Method and system for transmitting data packets in a network

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1218476

Country of ref document: HK

TA01 Transfer of patent application right

Effective date of registration: 20170306

Address after: Singapore Singapore

Applicant after: Avago Technologies Fiber IP Singapore Pte. Ltd.

Address before: American California

Applicant before: Zyray Wireless Inc.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20181029

Address after: Singapore Singapore

Applicant after: Annwa high tech Limited by Share Ltd

Address before: Singapore Singapore

Applicant before: Avago Technologies Fiber IP Singapore Pte. Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1218476

Country of ref document: HK