CN101958824B - 一种数据交换方法及数据交换结构 - Google Patents

一种数据交换方法及数据交换结构 Download PDF

Info

Publication number
CN101958824B
CN101958824B CN2009101087529A CN200910108752A CN101958824B CN 101958824 B CN101958824 B CN 101958824B CN 2009101087529 A CN2009101087529 A CN 2009101087529A CN 200910108752 A CN200910108752 A CN 200910108752A CN 101958824 B CN101958824 B CN 101958824B
Authority
CN
China
Prior art keywords
output port
input port
buffer memory
output
scheduler
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
CN2009101087529A
Other languages
English (en)
Other versions
CN101958824A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN2009101087529A priority Critical patent/CN101958824B/zh
Priority to PCT/CN2010/073246 priority patent/WO2011006398A1/zh
Priority to EP10799396.6A priority patent/EP2442499B1/en
Publication of CN101958824A publication Critical patent/CN101958824A/zh
Priority to US13/348,106 priority patent/US8750323B2/en
Application granted granted Critical
Publication of CN101958824B publication Critical patent/CN101958824B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3045Virtual queuing
    • 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/101Packet switching elements characterised by the switching fabric construction using crossbar or matrix
    • 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/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3027Output queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • H04L49/505Corrective measures
    • H04L49/508Head of Line Blocking Avoidance

Abstract

本发明提供一种数据交换方法,包括:输出端口调度器获取虚拟输出队列的状态信息,输入端口数据通道、输出端口缓存的可用状态信息;输出端口调度器向指向所述输出端口的非空虚拟输出队列所对应的输入端口中输入端口数据通道空闲的一个输入端口的FIC发送调度请求信息;所述选择的输入端口的FIC接收到所述输出端口调度器发送的调度请求信息后,选择响应一个输出端口调度器的调度请求,并将所述选择的输入端口内指向所述输出端口的虚拟输出队列发往所述输出端口缓存;所述输出端口调度器将所述输出端口缓存接收的虚拟输出队列调度出交换芯片。本发明还提供一种数据交换结构。通过本发明实施例,可以节省交换芯片的缓存资源并提高系统交换性能。

Description

一种数据交换方法及数据交换结构
技术领域
本发明涉及通信领域,尤其涉及一种数据交换方法及数据交换结构。
背景技术
变长交换技术是在数据交换结构中直接处理变长分组,而不将变长分组切割为信元再来传输的分组交换技术。变长交换技术的特点是:在数据交换结构的数据通道上,当某个输入端口开始交换一个分组到输出端口时,输入端口到输出端口的数据通道一直保持畅通,直到整个变长分组被传送到输出端口才释放该通道。为了提高变长交换的效率,解决分组切割和重组带来的缺陷,通常在变长分组到达输入端口时,并不采取真正的物理上的切割分组,而是逻辑地切割分组为定长信元,对定长信元背靠背传输,因此在传输的过程中以及到达输出端口处收到的分组仍然是完整的,从而避免了重组信元的操作。
变长交换技术的实现需要合理的数据交换结构以及合理的数据交换方法。现有技术中常用的数据交换结构有:
一、Arbiter Crossbar交换结构(ArbiterXB,带缓存的仲裁交叉开关结构)。
如图1所示的是一种输入端口个数和输出端口个数均为N的N×N交换结构。ArbiterXB采用空分结构,使用集中式仲裁器确定各个交叉点的连接状态,确定交换网内每条输入端口数据通道应该和哪条输出端口数据通道连接,实现将数据从交换网入口传送到交换网出口的功能。此架构的问题在于:交换容量受限于集中式仲裁器的复杂度。集中式仲裁需要根据所有输入端口的发送请求和所有输出端口的发送状态来确定每个交叉点的连接状态,计算复杂度与端口数量的平方成正比,当需要支持的端口数量巨大时,这样的集中式仲裁器很难实现。
二、CICQ交换结构(Combined Input and Crossbar Queued,联合输入交叉点排队,也称为缓冲交叉开关交换结构)。
如图2所示的是一种输入端口个数和输出端口个数均为N的N×N交换结构。CICQ交换结构(Buffered Crossbar,交叉点带缓存)在每个交叉点都有一个FIFO(First-In-First-Out,先入先出)缓存。总共有N2(N的平方,N为大于或等于2的自然数,下同)个FIFO。它无需集中式仲裁器,每个输出端口用简单的输出端口调度器调度N个FIFO输出端口缓存。每个FIFO输出端口缓存根据队列深度向相应输入端口发送反压信息,每个输入端口可以根据反压信息决定是否向此FIFO输出端口缓存发送数据。
该数据交换结构的问题在于,尽管避免了集中式仲裁器的缺陷,但由于CICQ的每个交叉点都有缓存,实现N×N交换结构总共需要N2个缓存,在输入端口和输出端口数较多时对片内RAM(Random Access Memory,随机存取存储器)容量资源的需求会激增,实现代价过高。
三、一种结合了CICQ和Arbiter XB优点的交换结构。
如图3所示的是一种输入端口个数和输出端口个数均为N的N×N交换结构。CICQ的每一竖列(对应一条输出端口数据通道)共有N个交叉点缓存,这里用数量确定、与输入端口数量无关的k个FIFO缓存代替(k为大于或等于1的自然数)。所述k个FIFO缓存动态共享给N个交叉点。一般情况下,取k=4。
该结构与ArbiterXB类似,使用集中式仲裁器,处理各个线卡的调度请求。相对于传统ArbiterXB,它的仲裁算法较简单:传统ArbiterXB的每个输出端口一次只能接收一个输入端口的数据,一次迭代的通过率平均只有60%左右,要达到较高通过率需要迭代3-4次;新的结构中,每个输出端口可以同时接收k个输入端口的数据。可以计算出当k=4时,一次迭代的通过率达到99.7%。
同时,由于每个输出端口可以同时接收k个入口的数据,各个输入端口之间碰撞冲突概率大大降低,因此各个输入端口不必为了降低冲突概率而保持严格的接收同步。从而,有利于实现变长交换。
该结构虽然节省了缓存资源的使用,但仍然使用了集中式仲裁器,变长交换性能的提高仍然受到一定的限制。
综上,现有数据交换结构的问题在于:难以在节省缓存资源的同时,提高变长交换性能。
发明内容
本发明实施例的目的在于提供一种数据交换方法及数据交换结构,在节省数据交换结构的缓存资源的同时,提高变长交换性能。
为解决上述技术问题,本发明实施例提供了一种数据交换方法,该方法基于一种数据交换结构,所述数据交换结构包括输入端口、输出端口和交换芯片,所述输入端口、输出端口分别与所述交换芯片相连;所述输入端口包括交换接口控制器FIC;所述输出端口包括输出端口调度器,所述输出端口调度器与所述输出端口对应;所述交换芯片包括输入端口数据通道和输出端口数据通道,所述输入端口数据通道和所述输出端口数据通道通过交叉点纵横连接,所述输入端口数据通道与所述输入端口一一对应,所述输出端口数据通道与所述输出端口对应;所述交换芯片还包括输出端口缓存,所述输出端口缓存与所述输出端口对应,所述输出端口调度器负责对所述输出端口对应的所述输出端口缓存进行数据调度;所述数据交换方法包括:
所述输出端口调度器获取所述输入端口的虚拟输出队列的空或非空的状态信息、所述输入端口数据通道忙碌或空闲的可用状态信息、所述输出端口缓存忙碌或空闲的可用状态信息;
若所述输入端口中存在指向所述输出端口的非空虚拟输出队列,同时,所述输入端口所对应的输入端口数据通道空闲,且所述输出端口对应的输出端口缓存中存在空闲输出端口缓存,则所述输出端口调度器选择所述输入端口的一个,并向该输入端口的FIC发送调度请求信息,所述调度请求信息包括将所述非空虚拟输出队列调度入所述空闲的输出端口缓存;
所述选择的输入端口的FIC接收到所述输出端口调度器发送的调度请求信息后,选择响应一个输出端口调度器的调度请求,并将所述选择的输入端口内指向所述输出端口的虚拟输出队列发往所述输出端口缓存;
若所述调度请求信息未被所述选择的输入端口的FIC选中,则所述输出端口调度器继续向指向所述输出端口的非空虚拟输出队列所对应的输入端口中输入端口数据通道空闲的另一个输入端口的FIC发送调度请求信息;
所述输出端口调度器将所述输出端口缓存接收的虚拟输出队列调度出交换芯片。
本发明还提供一种数据交换结构,包括输入端口、输出端口和交换芯片,所述输入端口、输出端口分别与所述交换芯片相连;所述输入端口包括交换接口控制器FIC;所述输出端口包括输出端口调度器,所述输出端口调度器与所述输出端口对应;所述交换芯片包括输入端口数据通道和输出端口数据通道,所述输入端口数据通道和所述输出端口数据通道通过交叉点纵横连接,所述输入端口数据通道与所述输入端口一一对应,所述输出端口数据通道与所述输出端口对应;所述交换芯片还包括输出端口缓存,所述输出端口缓存与所述输出端口对应,所述输出端口调度器负责对所述输出端口对应的所述输出端口缓存进行数据调度;
所述输出端口调度器用于获取所述输入端口的虚拟输出队列的空或非空的状态信息、所述输入端口数据通道忙碌或空闲的可用状态信息、所述输出端口缓存忙碌或空闲的可用状态信息;
所述输出端口调度器还用于:当所述输入端口中存在指向所述输出端口的非空虚拟输出队列,同时,所述输入端口所对应的输入端口数据通道空闲,且所述输出端口对应的输出端口缓存中存在空闲输出端口缓存时,选择所述输入端口的一个,并向该输入端口的FIC发送调度请求信息,所述调度请求信息包括将所述非空虚拟输出队列调度入所述空闲的输出端口缓存;
所述选择的输入端口的FIC用于接收所述输出端口调度器发送的调度请求信息,并选择响应一个输出端口调度器的调度请求,并将所述选择的输入端口内指向所述输出端口的虚拟输出队列发往所述输出端口缓存;
所述输出端口调度器还用于:当所述调度请求信息未被所述选择的输入端口的FIC选中时,继续向指向所述输出端口的非空虚拟输出队列所对应的输入端口中输入端口数据通道空闲的另一个输入端口的FIC发送调度请求信息;
所述输出端口调度器还用于将所述输出端口缓存接收的虚拟输出队列调度出交换芯片。
本实施例提供的数据交换方法和数据交换结构,通过各输出端口调度器的分布式调度,取代现有技术的集中式仲裁,在节省缓存资源的同时,提高了交换性能。
附图说明
图1是现有Arbiter Crossbar交换结构示意图;
图2是现有CICQ交换结构示意图;
图3是现有的一种结合了CICQ和Arbiter XB优点的交换结构示意图;
图4是本发明实施例一提供的一种数据交换结构示意图;
图5是本发明实施例一提供的一种数据交换方法的流程示意图;
图6是本发明实施例二提供的一种数据交换方法的应用场景示意图;
图7是本发明实施例二提供的一种数据交换方法的流程示意图。
具体实施方式
以下结合附图对本发明实施例进行详细描述。
实施例一:
如图4所示,本实施例提供一种数据交换结构。所述数据交换结构包括输入端口、输出端口和交换芯片。输入端口、输出端口分别与交换芯片相连。每个输入端口包括一个交换接口控制器FIC,即输入端口1至输入端口n分别对应FIC1至FICn。每个输入端口包括缓存401,用于存放虚拟输出队列VOQ(VirtualOutput Queue)。每个输出端口包括输出端口调度器402,所述输出端口调度器与所述输出端口对应。所述交换芯片与输出端口调度器402相连接,该输出端口调度器402也可以集成在交换芯片上。所述交换芯片包括输入端口数据通道和输出端口数据通道,所述输入端口数据通道和所述输出端口数据通道通过交叉点纵横连接,所述输入端口数据通道与所述输入端口一一对应,所述输出端口数据通道与所述输出端口对应。所述交换芯片还包括输出端口缓存403,该处可以是FIF0输出端口缓存,所述输出端口缓存可放置在各输出端口处,为实现将交换数据的仲裁调度工作转换为片内处理,以使芯片的集成度更高一些,本实施例将该FIF0输出端口缓存置于交换芯片内。每个输出端口对应N个FIF0输出端口缓存,N为大于或等于1的自然数,优选地,本实施例中取N的值为4。各输出端口调度器负责调度所在输出端口的4个FIF0输出端口缓存。图4中,输入端口数据通道用横线表示;输出端口数据通道则用竖线表示。对于每个输入端口,用1条横线表示其输入端口数据通道;对于每个输出端口,用4条横线表示其输出端口数据通道,分别对应4个FIF0输出端口缓存,即每条输出端口数据通道对应一个FIF0输出端口缓存。该数据交换结构为n×n结构,即输入端口与输出端口的个数均n。传统的CICQ交换结构的每一输出端口数据通道上共有n个交叉点缓存,若是类似本实施例所述的n×n结构,则共需要n2个缓存。本实施例每一输出端口数据通道上仅有4个FIF0输出端口缓存。如此,当交换结构为n×n结构时,缓存个数仅为4n。
所述输出端口调度器用于获取所述输入端口的虚拟输出队列的空或非空的状态信息、所述输入端口数据通道忙碌或空闲的可用状态信息、所述输出端口缓存忙碌或空闲的可用状态信息;
所述输出端口调度器还用于:当所述输入端口中存在指向所述输出端口的非空虚拟输出队列,同时,所述输入端口所对应的输入端口数据通道空闲,且所述输出端口对应的输出端口缓存中存在空闲输出端口缓存时,选择所述输入端口的一个,并向该输入端口的FIC发送调度请求信息,所述调度请求信息包括将所述非空虚拟输出队列调度入所述空闲的输出端口缓存;
所述选择的输入端口的FIC用于接收所述输出端口调度器发送的调度请求信息,并选择响应一个输出端口调度器的调度请求,并将所述选择的输入端口内指向所述输出端口的虚拟输出队列发往所述输出端口缓存;
所述输出端口调度器还用于:当所述调度请求信息未被所述选择的输入端口的FIC选中时,继续向指向所述输出端口的非空虚拟输出队列所对应的输入端口中输入端口数据通道空闲的另一个输入端口的FIC发送调度请求信息;
所述输出端口调度器还用于将所述输出端口缓存接收的虚拟输出队列调度出交换芯片。
该结构相对于现有技术,可以节省缓存资源,可以用于端口数量巨大的大规模变长交换,突破集中式仲裁的交换性能瓶颈。
本实施例提供的一种数据交换方法的应用场景基于如图4所示的数据交换结构。如图5所示,本实施例提供的数据交换方法,包括:
步骤501:输出端口调度器获取输入端口虚拟输出队列VOQ的状态信息(空或非空)。
在步骤501中,输入端口采用VOQ技术,每个输入端口内指向同一输出端口的队列排列成同一虚拟队列,每个输入端口内指向相应输出端口的VOQ状态可用一个比特(bit)位来表示,n个(n为大于或等于1的自然数)输出端口则有n个bit位。即虚拟输出队列VOQ的状态信息表可用n个bit位来维护。
在步骤501中,可以由输入端口的FIC向输出端口调度器发送虚拟输出队列VOQ的状态信息(空或者非空)。所述输出端口调度器接收所述虚拟输出队列VOQ的状态信息,实时更新虚拟输出队列VOQ的状态信息表。若某输入端口无指向某输出端口的变长分组,则所述某输入端口中指向所述某输出端口的虚拟输出队列的状态信息为空。反之,若某输入端口存在指向某输出端口的变长分组,则所述某输入端口中指向所述某输出端口的虚拟输出队列的状态信息为非空。
步骤502:输出端口调度器获取输入端口数据通道的可用状态信息(忙碌或空闲)。
在步骤502中,输入端口数据通道的可用状态的具体判断方法如下:
1.输入端口的FIC发往交换芯片的每个数据包的包头中带有数据包的长度信息。若数据包头出现在所述输入端口数据通道上,则将所述输入端口数据通道置为Busy(忙碌)。
2.每条输入端口数据通道上设置计数器,对当前数据包传输的字节数进行统计:若所述数据包的包长与已传输的字节数的差值小于某个预设值,则将此输入端口数据通道标为Ready(空闲)。所述预设值的设置根据输入端口的FIC和输出端口调度器的交互时间来设定。如将预设值设定为在一个交互时间单元内可能传输的数据包的字节数。
步骤503:输出端口调度器获取FIF0输出端口缓存的可用状态信息(忙碌或空闲)。
在步骤503中,FIF0输出端口缓存的可用状态的具体判断方法如下:
1.若FIF0输出端口缓存通过对应的输出端口调度器发出调度请求信息,将该FIF0输出端口缓存的可用状态信息置为busy(忙碌);
2.若满足下列条件,则将此FIF0输出端口缓存的可用状态信息置为ready(空闲):
与FIF0输出端口缓存对应的输出端口数据通道相连的输入端口数据通道的下一个数据包不是到本FIF0输出端口缓存;或所述输入端口数据通道的下一个数据包是到本FIF0输出端口缓存,且数据包传输结束;且此FIF0输出端口缓存未满。
对于每个输出端口调度器,分别调度4个FIF0输出端口缓存,对应4条输出端口数据通道,故可用4个bit位来标志FIF0输出端口缓存的可用状态。
步骤504:若所述输入端口中存在指向所述输出端口的非空虚拟输出队列VOQ,并且,所述输入端口所对应的输入端口数据通道空闲,且所述输出端口对应的输出端口缓存中存在空闲FIF0输出端口缓存,则所述输出端口调度器选择所述输入端口的一个,并向该选择的输入端口的FIC发送调度请求信息,所述调度请求信息包括将所述非空虚拟输出队列VOQ调度入所述空闲的FIF0输出端口缓存。
在步骤504中,可能存在多个输入端口都有指向某个输出端口的虚拟输出队列,且又有多个所述输入端口数据通道空闲的情形。此时,所述输出端口调度器为FIF0输出端口缓存选择所述输入端口中的一个,并向被选中的输入端口对应的FIC发送调度请求信息。对所述输入端口的选择可采用不同的方法。优选地,本实施例采用带权重的轮询调度方法(Weighted Round Robin,简称WRR调度方法),即根据不同输入端口虚拟输出队列VOQ的权重大小进行轮询调度,优先选择指向该输出端口的虚拟输出队列VOQ权重较大的输入端口的FIC发送调度请求信息。权重设置可采用多种方案,优选地,本实施例根据输入端口虚拟输出队列VOQ对应的数据业务的流量多少来设置其权重。
步骤504中,所述输出端口调度器可以同时选择多个空闲的FIF0输出端口缓存,向指向所述输出端口调度器对应的输出端口的非空虚拟输出队列VOQ所对应的输入端口中输入端口数据通道空闲的一个端口的FIC发送调度请求信息。也可以给每个输出端口调度器所负责调度的4个FIF0输出端口缓存分配4个时间片,每个时间片服务一个FIF0输出端口缓存。
步骤505:所述选择的输入端口的FIC接收到所述输出端口调度器发送的调度请求信息后,选择响应一个输出端口调度器的调度请求,并将所述选择的输入端口内指向相应输出端口的虚拟输出队列VOQ发往所述FIF0输出端口缓存。
在步骤505中,所述选择的输入端口的FIC对来自不同的输出端口调度器发来的调度请求信息的选择可采用多种不同的方法。优选地,本实施例采用不带权重的简单轮询方法(Round Robin,简称RR调度方法)。例如,所述选择的输入端口的FIC对每个发来调度请求的输出端口调度器编号排序,并均衡分配时间片,按所述编号顺序响应所述输出端口调度器的调度请求信息。若有多个输出端口调度器同时向一个FIC发送调度请求信息,可将调度请求信息合并后发送给所述选择的输入端口的FIC。
步骤506:若所述输出端口调度器发送的调度请求信息未被所述选择的输入端口的FIC选中,则所述输出端口调度器继续向指向所述输出端口的非空虚拟输出队列VOQ所对应的输入端口中输入端口数据通道空闲的另一个输入端口的FIC发送调度请求信息。
在步骤506中,所述调度请求信息未被所述选择的输入端口的FIC选中,包括:
(1)若所述FIF0输出端口缓存在规定的时间内未接收到任何数据包或
(2)在规定时间内接收到数据包,但所述数据包的目的FIF0输出端口缓存不是所述FIF0输出端口缓存。
若满足上述条件(1)或(2),则所述FIF0输出端口缓存释放,设置FIF0输出端口缓存可用状态信息为空闲。
步骤507:若所述输出端口调度器发送的调度请求信息被所述选择的输入端口的FIC选中,即所述FIF0输出端口缓存在规定的时间内接收到数据包,且所述数据包的目的输出端口是所述FIF0输出端口缓存对应的输出端口,则所述FIF0输出端口缓存接收输入端口发送的指向所述输出端口的非空虚拟输出队列VOQ;在发送过程中,所述输入端口数据通道和所述FIF0输出端口缓存对应的数据通道始终保持连接;传送完成后,所述连接释放。
在步骤507中的所述连接释放的规则具体如下:
输出端口调度器不断检查输入端口数据通道上发来的数据包头信息,若发生如下两种情形之一,则所述连接释放:
1.与FIF0输出端口缓存对应的输出端口数据通道相连的输入端口数据通道的下一个数据包不是到所述FIF0输出端口缓存。
2.与FIF0输出端口缓存对应的输出端口数据通道相连的输入端口数据通道的下一个数据包是到所述FIF0输出端口缓存,且数据包传输结束。
在步骤506,507中,所述的规定时间是一个超时计数值,其具体数值可以根据输入端口的FIC对输出端口调度器的调度请求信息的响应时间来设定。所述的规定时间还可用于及时感知故障。如某输出端口缓存已选中了某输入端口,而所述输入端口对应的FIC发生了故障,如所述输入端口的FIC被拔出而无法发送数据包,则输入端口缓存等待时间超过所述规定时间后可以自动放弃对所述输入端口的调度请求,选择其它输入端口数据通道空闲的输入端口。
步骤508:输出端口调度器将FIF0输出端口缓存接收的虚拟输出队列VOQ调度出交换芯片,完成数据交换。
所述步骤501,502与503无先后执行顺序,只要在步骤504前执行即可。
实施例二:
本实施例提供的一种数据交换方法的应用场景基于如图4所示的数据交换结构。所述数据交换结构包括输入端口、输出端口和交换芯片。输入端口、输出端口分别与交换芯片相连。每个输入端口包括一个交换接口控制器FIC,即输入端口1至输入端口n分别对应FIC1至FICn。每个输入端口包括缓存401,用于存放虚拟输出队列VOQ(Virtual Output Queue)。每个输出端口包括输出端口调度器402,所述输出端口调度器与所述输出端口对应。所述交换芯片与输出端口调度器402相连接,该输出端口调度器402也可以集成在交换芯片上。所述交换芯片包括输入端口数据通道和输出端口数据通道,所述输入端口数据通道和所述输出端口数据通道通过交叉点纵横连接,所述输入端口数据通道与所述输入端口一一对应,所述输出端口数据通道与所述输出端口对应。所述交换芯片还包括输出端口缓存403,该处可以是FIF0输出端口缓存,所述输出端口缓存可放置在各输出端口处,为实现将交换数据的仲裁调度工作转换为片内处理,以使芯片的集成度更高一些,本实施例将该FIF0输出端口缓存置于交换芯片内。每个输出端口对应N个FIF0输出端口缓存,N为大于或等于1的自然数,优选地,本实施例中取N的值为4。各输出端口调度器负责调度所在输出端口的4个FIF0输出端口缓存。图4中,输入端口数据通道用横线表示;输出端口数据通道则用竖线表示。对于1个输入端口,用1条横线表示其输入端口数据通道;对于1个输出端口,用4条横线表示其输出端口数据通道,分别对应4个FIF0输出端口缓存,即每条输出端口数据通道对应一个FIF0输出端口缓存。该数据交换结构为n×n结构,即输入端口与输出端口的个数均n。传统的CICQ交换结构的每一输出端口数据通道上共有n个交叉点缓存,若是类似本实施例所述的n×n结构,则共需要n2个缓存。本实施例每一输出端口数据通道上仅有4个FIF0输出端口缓存。如此,当交换结构为n×n结构时,缓存个数仅为4n。
该结构相对于现有技术,可以节省缓存资源,同时通过本实施例提供的数据交换方法,可以同时用于大规模的变长交换,突破集中式仲裁的交换性能瓶颈。
如图6所示,本实施例中,每个输出端口处存在输出子端口,可以对输出子端口进行调度。优选地,本实施例中每个输出端口处存在4个输出子端口SP1,SP2,SP3,SP4。输出端口n对应的输出端口调度器n维护4个输出子端口漏桶计数器,分别计算4个输出子端口的已发送流量。
如图7所示,本实施例提供的数据交换方法包括:
步骤701:输出端口调度器选择一个输出子端口。
在步骤701中,若所述输出子端口的漏桶计数器溢出,则所述输出子端口不参与调度。所述输出端口调度器对所述输出子端口的选择可采用多种方法,优选地,可使用权重轮询调度方法。权重设置可采用多种方案,优选地,本实施例根据所述输出子端口对应的数据业务的流量多少来设置其权重。
步骤702:输出端口调度器获取输入端口虚拟输出队列VOQ的状态信息(空或非空)。
在步骤702中,输入端口采用VOQ技术,每个输入端口内指向同一输出子端口的队列排列成同一虚拟队列,每个输入端口内指向相应输出子端口的VOQ状态可用一个bit位来表示,m个(m为大于或等于1的自然数)输出子端口则有m个bit位。即指向一个输出子端口的虚拟输出队列VOQ的状态信息表可用m个bit位来维护。若有n个输出端口(n为大于或等于1的自然数),每个n个端口中有m个输出子端口,则需n×m个bit位来维护虚拟输出队列VOQ的状态信息表。
在步骤702中,输入端口的FIC向输出端口调度器发送指向输出子端口的虚拟输出队列VOQ的状态信息(空或者非空)。所述输出端口调度器接收虚拟输出队列VOQ的状态信息,实时更新虚拟输出队列VOQ的状态信息表。若某输入端口中指向某输出子端口的虚拟输出队列的状态信息为空,则表明所述某输入端口无指向所述某输出子端口的变长分组。反之,若某输入端口中指向某输出子端口的虚拟输出队列的状态信息为非空,则表明所述某输入端口存在指向所述某输出子端口的变长分组。
步骤703:输出端口调度器获取输入端口数据通道的可用状态信息(忙碌或空闲)。
在步骤703中,所述输入端口数据通道的可用状态的具体判断方法如下:
1.输入端口的FIC发向交换芯片的每个数据包的包头中带有数据包的长度信息。若数据包头出现在输入端口数据通道上,则将此输入端口数据通道置为Busy(忙碌)。
2.每条输入端口数据通道上设置计数器,对当前数据包传输的字节数进行统计:若所述数据包的包长与已传输的字节数的差值小于某个预设值,则将此输入端口数据通道置为Ready(空闲)。所述预设值的设置根据输入端口的FIC和输出端口调度器的交互时间来设定,即在一个交互时间单元内可能传输的数据包的字节数。
步骤704:输出端口调度器获取FIF0输出端口缓存的可用状态信息(忙碌或空闲)。
在步骤704中,所述FIF0输出端口缓存的可用状态的具体判断方法如下:
1.若FIF0输出端口缓存通过对应的输出端口调度器发出调度请求信息,将该FIF0输出端口缓存置为busy(忙碌);
2.若满足下列条件,则将此FIF0输出端口缓存置为ready(空闲):
a)与FIF0输出端口缓存对应的输出端口数据通道相连的输入端口数据通道的下一个数据包不是到本FIF0输出端口缓存;或所述输入端口数据通道的下一个数据包是到本FIF0输出端口缓存,且数据包传输结束;
b)且此FIF0输出端口缓存未满。
对于每个输出端口调度器,分别调度4个FIF0输出端口缓存,对应4条输出端口数据通道,故可用4个bit位来标志FIF0输出端口缓存的可用状态。
步骤705:若所述输入端口中存在指向所述输出子端口的非空虚拟输出队列VOQ,同时,所述输入端口所对应的输入端口数据通道空闲,且所述输出子端口所在的输出端口对应的FIF0输出端口缓存中存在空闲的FIF0输出端口缓存,则所述输出端口调度器选择所述输入端口的一个,并向该输入端口的FIC发送调度请求信息,所述调度请求信息包括将所述非空虚拟输出队列VOQ调度入所述空闲的FIF0输出端口缓存。
在步骤705中,可能存在多个输入端口都有指向某个输出子端口的虚拟输出队列,且又有多个所述输入端口的数据通道空闲。此时,输出端口调度器对输入端口的选择可采用多种不同的方法。优选地,本实施例采用带权重的轮询调度方法(Weighted Round Robin,简称WRR调度方法),即根据不同输入端口虚拟输出队列VOQ的权重大小进行轮询调度,优先选择指向该输出子端口的虚拟输出队列VOQ权重较大的输入端口的FIC发送调度请求信息。权重设置可采用多种方案,优选地,本实施例根据所述输入端口对应的数据业务的流量多少来设置其权重。
步骤706:所述选择的输入端口的FIC接收到所述输出端口调度器发送的调度请求信息后,选择响应一个输出端口调度器的调度请求,将所述选择的输入端口内指向相应输出子端口的虚拟输出队列VOQ发往所述FIF0输出端口缓存。
在步骤706中,所述选择的输入端口的FIC对来自不同的输出端口调度器发来的调度请求信息的选择可采用多种不同的方法。优选地,本实施例采用不带权重的简单轮询方法(Round Robin,简称RR调度方法)。例如,所述选择的输入端口的FIC对每个发来调度请求的输出端口调度器编号排序,并均衡分配时间片,按所述编号顺序响应输出端口调度器的调度请求信息。若有多个输出端口调度器同时向一个FIC发送调度请求信息,可将调度请求信息合并后发送给所述选择的输入端口的FIC。
步骤707:若所述调度请求信息未被所述选择的输入端口的FIC选中,则所述输出端口调度器继续向指向所述输出子端口的非空虚拟输出队列VOQ所对应的输入端口中输入端口数据通道空闲的另一个输入端口的FIC发送调度请求信息。
在步骤707中,所述调度请求信息未被所述选择的输入端口的FIC选中,包括:
(1)若所述FIF0输出端口缓存在规定的时间内未接收到任何数据包或
(2)在规定时间内接收到数据包,但所述数据包的目的FIF0输出端口缓存不是所述FIF0输出端口缓存。
若满足上述条件(1)或(2),则所述FIF0输出端口缓存释放,设置FIF0输出端口缓存可用状态信息为空闲。
步骤708:若所述调度请求信息被所述选择的输入端口的FIC选中,即所述FIF0输出端口缓存在规定的时间内接收到数据包,且所述数据包的目的输出子端口是所述输出子端口,则所述FIF0输出端口缓存接收指向所述输出子端口的非空虚拟输出队列VOQ;在发送过程中,所述输入端口数据通道和所述FIF0输出端口缓存对应的数据通道始终保持连接;传送完成后,所述连接释放。
在步骤708中的所述连接释放的规则具体如下:
所述FIF0输出端口缓存对应的输出端口调度器不断检查输入端口数据通道上发来的数据包头信息,若发生如下两种情形之一,则所述连接释放:
1.与FIF0输出端口缓存对应的数据通道相连的输入端口数据通道的下一个数据包不是到所述FIF0输出端口缓存。
2.与FIF0输出端口缓存对应的数据通道相连的输入端口数据通道的下一个数据包是到所述FIF0输出端口缓存,且数据包传输结束。
在步骤707,708中,所述的规定时间是一个超时计数,其具体数值可以根据输入端口的FIC对输出端口调度器发送的调度请求信息的响应时间来设定。所述的规定时间还可用于防止故障。如某输出端口缓存已选中了某输入端口,而所述输入端口对应的FIC发生了故障,如所述选择的输入端口的FIC被拔出而无法发送数据包,则输入端口缓存等待时间超过所述规定时间后应该自动放弃对所述输入端口的调度请求,选择其它输入端口数据通道空闲的输入端口。
步骤709:输出端口调度器将FIF0输出端口缓存内接收的虚拟输出队列VOQ调度入输出子端口,完成数据交换。
在步骤709中,假设所述输出端口调度器在服务某输出端口缓存时,选中了某个输出子端口和某输入端口数据通道进行服务。那么当服务下一输出端口缓存时,仍然可以选择这个输出子端口,但不需选择已经选过的输入端口数据通道。依此方案,可提高交换网效率。
所述步骤702,703与704无先后执行顺序,只要在步骤705前执行即可。
通过上述两个实施例的介绍,可知本发明实施例提供的数据交换结构和数据交换方法通过分布式调度,省去了传统数据交换结构中的集中式仲裁器,在节省交叉点缓存资源的同时,提高了数据交换结构的交换性能。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (14)

1.一种数据交换方法,其特征在于,该方法基于一种数据交换结构,所述数据交换结构包括输入端口、输出端口和交换芯片,所述输入端口、输出端口分别与所述交换芯片相连;所述输入端口包括交换接口控制器FIC;所述输出端口包括输出端口调度器,所述输出端口调度器与所述输出端口对应;所述交换芯片包括输入端口数据通道和输出端口数据通道,所述输入端口数据通道和所述输出端口数据通道通过交叉点纵横连接,所述输入端口数据通道与所述输入端口一一对应,所述输出端口数据通道与所述输出端口对应;所述交换芯片还包括输出端口缓存,所述输出端口缓存与所述输出端口对应,所述输出端口调度器负责对所述输出端口对应的所述输出端口缓存进行数据调度;所述数据交换方法包括:
所述输出端口调度器获取所述输入端口的虚拟输出队列的空或非空的状态信息、所述输入端口数据通道忙碌或空闲的可用状态信息、所述输出端口缓存忙碌或空闲的可用状态信息;
若所述输入端口中存在指向所述输出端口的非空虚拟输出队列,同时,所述输入端口所对应的输入端口数据通道空闲,且所述输出端口对应的输出端口缓存中存在空闲输出端口缓存,则所述输出端口调度器选择所述输入端口的一个,并向该输入端口的FIC发送调度请求信息,所述调度请求信息包括将所述非空虚拟输出队列调度入所述空闲的输出端口缓存;
所述选择的输入端口的FIC接收到所述输出端口调度器发送的调度请求信息后,选择响应一个输出端口调度器的调度请求,并将所述选择的输入端口内指向所述输出端口的虚拟输出队列发往所述输出端口缓存;
若所述调度请求信息未被所述选择的输入端口的FIC选中,则所述输出端口调度器继续向指向所述输出端口的非空虚拟输出队列所对应的输入端口中输入端口数据通道空闲的另一个输入端口的FIC发送调度请求信息;
所述输出端口调度器将所述输出端口缓存接收的虚拟输出队列调度出交换芯片。
2.根据权利要求1所述的方法,其特征在于:
所述虚拟输出队列空或非空的状态信息由所述输入端口的FIC发送给所述输出端口调度器。
3.根据权利要求1所述的方法,其特征在于:所述输入端口数据通道的可用状态包括忙碌和空闲,所述输入端口数据通道的可用状态的判断,包括:
(1)所述输入端口的FIC发往交换芯片的每个数据包的包头中带有数据包的长度信息,若所述数据包头出现在所述输入端口数据通道上,则将所述输入端口数据通道置为忙碌;
(2)所述输入端口数据通道上设置有计数器,对数据包传输的字节数进行统计:若所述数据包的包长与已传输的字节数的差值小于预设值,则将所述输入端口数据通道置为空闲,所述预设值的设置根据输入端口的FIC和输出端口调度器的交互时间来设定。
4.根据权利要求1所述的方法,其特征在于:所述输出端口缓存的可用状态包括忙碌和空闲,所述输出端口缓存的可用状态的判断,包括:
(1)若所述输出端口缓存通过所述输出端口调度器发出调度请求信息,则将所述输出端口缓存置为忙碌;
(2)若满足下列条件,则将所述输出端口缓存置为空闲:
与所述输出端口缓存对应的输出端口数据通道相连的输入端口数据通道的下一个数据包不是到所述输出端口缓存;或所述输入端口数据通道的下一个数据包是到所述输出端口缓存,且所述数据包传输结束,且所述输出端口缓存未满。
5.根据权利要求1所述的方法,所述调度请求信息未被所述选择的输入端口的FIC选中,包括:
(1)若所述输出端口缓存在规定时间内未接收到任何数据包;或
(2)在规定时间内接收到数据包,但所述数据包的目的输出端口缓存不是所述输出端口缓存;
所述规定时间根据所述选择的输入端口的FIC对所述输出端口缓存的调度请求信息的响应时间来设定。
6.根据权利要求1所述的方法,其特征在于,还包括:若所述调度请求信息被所述选择的输入端口的FIC选中,则所述输出端口缓存接收指向所述输出端口的非空虚拟输出队列;在发送过程中,所述输入端口数据通道和所述输出端口缓存对应的数据通道始终保持连接;传送完成后,所述连接释放。
7.根据权利要求6所述的方法,其特征在于:所述传送完成后,所述连接释放具体包括:
所述输出端口调度器不断检查所述输入端口数据通道上发来的数据包头信息,若发生如下两种情形之一,则所述连接释放:
(1)与所述输出端口缓存对应的输出端口数据通道相连的输入端口数据通道的下一个数据包不是到所述输出端口缓存;
(2)与所述输出端口缓存对应的输出端口数据通道相连的输入端口数据通道的下一个数据包是到所述输出端口缓存,且所述数据包传输结束。
8.根据权利要求1所述的方法,其特征在于:所述输出端口调度器对所述指向该输出端口的非空虚拟输出队列所对应的输入端口中输入端口数据通道空闲的输入端口的选择采用带权重的轮询调度方法。
9.根据权利要求1所述的方法,其特征在于:所述选择的输入端口的FIC对来自不同的输出端口调度器发来的调度请求信息的选择采用简单轮询调度方法。
10.根据权利要求1所述的方法,其特征在于,所述数据交换结构的输出端口包括输出子端口,所述数据交换方法还包括:所述输出端口调度器将输出端口缓存内接收的虚拟输出队列调度出交换芯片时,对输出子端口进行调度。
11.根据权利要求10所述的方法,其特征在于,所述对输出子端口进行调度,具体包括:
为每个输出子端口设置漏桶计数器,由所述输出端口调度器分别计算所述输出子端口的已发送流量;
在所述输入端口中建立指向所述输出子端口的虚拟输出队列,针对n个输入端口、m个输出子端口,所述输出端口调度器用n*m个bit位来维护所述虚拟输出队列的状态信息,m、n为大于或等于1的自然数;
输出端口调度器优先选择一个输出子端口;
所述输出端口调度器获取所述输入端口的虚拟输出队列的空或非空的状态信息,所述输入端口数据通道的忙碌或空闲的可用状态信息、所述输出端口缓存忙碌或空闲的可用状态信息;
若所述输入端口中存在指向所述输出子端口的非空虚拟输出队列,同时,所述输入端口所对应的输入端口数据通道空闲,且所述输出子端口所在的输出端口对应的输出端口缓存中存在空闲输出端口缓存,则所述输出端口调度器选择所述输入端口的一个,并向该输入端口的FIC发送调度请求信息,所述调度请求信息包括将所述非空虚拟输出队列调度入所述空闲的输出端口缓存;
所述选择的输入端口的FIC接收到所述输出端口调度器发送的调度请求信息后,选择响应一个输出端口调度器的调度请求,并将所述选择的输入端口内指向所述输出端口的虚拟输出队列发往所述输出端口缓存;
若所述调度请求信息未被所述选择的输入端口的FIC选中,则所述输出端口调度器继续向指向所述输出子端口的非空虚拟输出队列所对应的输入端口中输入端口数据通道空闲的另一个输入端口的FIC发送调度请求信息;
所述输出端口调度器将所述输出端口缓存接收的虚拟输出队列调度入所述输出子端口。
12.根据权利要求11所述的方法,其特征在于,所述输出端口调度器优先选择一个输出子端口,包括:采用带权重的轮询调度方法选择所述输出子端口。
13.一种数据交换结构,包括输入端口、输出端口和交换芯片,所述输入端口、输出端口分别与所述交换芯片相连;所述输入端口包括交换接口控制器FIC;所述输出端口包括输出端口调度器,所述输出端口调度器与所述输出端口对应;所述交换芯片包括输入端口数据通道和输出端口数据通道,所述输入端口数据通道和所述输出端口数据通道通过交叉点纵横连接,所述输入端口数据通道与所述输入端口一一对应,所述输出端口数据通道与所述输出端口对应;所述交换芯片还包括输出端口缓存,所述输出端口缓存与所述输出端口对应,所述输出端口调度器负责对所述输出端口对应的所述输出端口缓存进行数据调度;其中:
所述输出端口调度器用于获取所述输入端口的虚拟输出队列的空或非空的状态信息、所述输入端口数据通道忙碌或空闲的可用状态信息、所述输出端口缓存忙碌或空闲的可用状态信息;
所述输出端口调度器还用于:当所述输入端口中存在指向所述输出端口的非空虚拟输出队列,同时,所述输入端口所对应的输入端口数据通道空闲,且所述输出端口对应的输出端口缓存中存在空闲输出端口缓存时,选择所述输入端口的一个,并向该输入端口的FIC发送调度请求信息,所述调度请求信息包括将所述非空虚拟输出队列调度入所述空闲的输出端口缓存;
所述选择的输入端口的FIC用于接收所述输出端口调度器发送的调度请求信息,并选择响应一个输出端口调度器的调度请求,并将所述选择的输入端口内指向所述输出端口的虚拟输出队列发往所述输出端口缓存;
所述输出端口调度器还用于:当所述调度请求信息未被所述选择的输入端口的FIC选中时,继续向指向所述输出端口的非空虚拟输出队列所对应的输入端口中输入端口数据通道空闲的另一个输入端口的FIC发送调度请求信息;
所述输出端口调度器还用于将所述输出端口缓存接收的虚拟输出队列调度出交换芯片。
14.根据权利要求13所述的数据交换结构,其特征在于,所述输出端口包括输出子端口,所述输出端口调度器还用于当输出端口缓存内接收的虚拟输出队列被调度出交换芯片时,对输出子端口进行调度。
CN2009101087529A 2009-07-14 2009-07-14 一种数据交换方法及数据交换结构 Active CN101958824B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN2009101087529A CN101958824B (zh) 2009-07-14 2009-07-14 一种数据交换方法及数据交换结构
PCT/CN2010/073246 WO2011006398A1 (zh) 2009-07-14 2010-05-26 一种数据交换方法及数据交换结构
EP10799396.6A EP2442499B1 (en) 2009-07-14 2010-05-26 Data exchange method and data exchange structure
US13/348,106 US8750323B2 (en) 2009-07-14 2012-01-11 Method for switching data and structure for switching data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009101087529A CN101958824B (zh) 2009-07-14 2009-07-14 一种数据交换方法及数据交换结构

Publications (2)

Publication Number Publication Date
CN101958824A CN101958824A (zh) 2011-01-26
CN101958824B true CN101958824B (zh) 2012-06-27

Family

ID=43448923

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009101087529A Active CN101958824B (zh) 2009-07-14 2009-07-14 一种数据交换方法及数据交换结构

Country Status (4)

Country Link
US (1) US8750323B2 (zh)
EP (1) EP2442499B1 (zh)
CN (1) CN101958824B (zh)
WO (1) WO2011006398A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2816788B1 (en) 2012-05-07 2017-11-15 Huawei Technologies Co., Ltd. Line processing unit and switch fabric system
US9197653B2 (en) 2012-06-05 2015-11-24 Empire Technology Development Llc Cross-user correlation for detecting server-side multi-target intrusion
CN103001893B (zh) * 2012-12-12 2016-01-27 华为技术有限公司 多路径透传方法和交换芯片
CN104717160A (zh) * 2013-12-17 2015-06-17 华为技术有限公司 交换机及调度算法
US9648148B2 (en) * 2013-12-24 2017-05-09 Intel Corporation Method, apparatus, and system for QoS within high performance fabrics
KR20150115240A (ko) * 2014-04-03 2015-10-14 한국전자통신연구원 패킷 스위치 시스템 및 이의 트래픽 제어방법
CN105700940B (zh) * 2014-11-25 2019-05-31 深圳市中兴微电子技术有限公司 一种调度器及调度器的动态复用方法
CN106453142B (zh) * 2016-09-20 2019-06-11 盛科网络(苏州)有限公司 降低wrr调度周期抖动的方法及系统
CN107171973B (zh) * 2017-05-04 2020-06-09 内蒙古农业大学 一种基于邻端口调度信息的两级交换结构实现方法
US10721187B1 (en) * 2017-05-18 2020-07-21 Juniper Networks, Inc. Emulating output queued behavior in a virtual output queue switch
CN112491748B (zh) * 2020-11-20 2022-05-27 中国电子科技集团公司第五十四研究所 一种基于信用的支持数据包交换的比例公平调度方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1411211A (zh) * 2002-04-17 2003-04-16 华为技术有限公司 以太网交换芯片输出队列管理调度方法和装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3575688B2 (ja) * 2001-02-16 2004-10-13 日本電気株式会社 パケットスイッチ
US20040260829A1 (en) * 2001-04-13 2004-12-23 Husak David J. Manipulating data streams in data stream processors
US7362751B2 (en) * 2001-10-03 2008-04-22 Topside Research, Llc Variable length switch fabric
CN1184777C (zh) * 2002-04-17 2005-01-12 华为技术有限公司 以太网交换芯片传输数据过程中缓存的管理和分配方法
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
CA2490915C (en) * 2002-06-27 2013-11-19 Tellabs Operations, Inc. Apparatus and method to switch packets using a switch fabric with memory
US7852866B2 (en) * 2006-12-29 2010-12-14 Polytechnic Institute of New York Universiity Low complexity scheduling algorithm for a buffered crossbar switch with 100% throughput
WO2010045732A1 (en) * 2008-10-20 2010-04-29 Tadeusz Szymanski Crossbar switch and recursive scheduling

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1411211A (zh) * 2002-04-17 2003-04-16 华为技术有限公司 以太网交换芯片输出队列管理调度方法和装置

Also Published As

Publication number Publication date
US8750323B2 (en) 2014-06-10
US20120106564A1 (en) 2012-05-03
EP2442499B1 (en) 2014-07-09
EP2442499A4 (en) 2012-05-30
EP2442499A1 (en) 2012-04-18
WO2011006398A1 (zh) 2011-01-20
CN101958824A (zh) 2011-01-26

Similar Documents

Publication Publication Date Title
CN101958824B (zh) 一种数据交换方法及数据交换结构
CA2247447C (en) Efficient output-request packet switch and method
CN1981484B (zh) 具有多条调度巷道的流水线调度器及用在其中的调度方法
US10764208B2 (en) Distributed switch architecture
CN101257445B (zh) 用于同步流量整形的方法
US8599870B2 (en) Channel service manager with priority queuing
CN101478483A (zh) 交换设备内实现分组调度的方法及交换设备
CA2451764A1 (en) Method and apparatus for allocating link bandwidth
CN100420241C (zh) 实现信息交换的系统及方法和调度算法
CN101621460A (zh) 一种分组调度方法和装置
CN102387076B (zh) 一种结合整形的分级式队列调度方法
CN102804158A (zh) 总线架构中的请求和数据处理
CN101695051A (zh) 一种用于缓冲Crossbar的队列长度均衡调度方法
CN102971997B (zh) 包括数据分段和数据描述分段的分组缓冲器
CN102835081A (zh) 基于三级互联交换网络的调度方法、装置及系统
CN101902390B (zh) 一种单播和多播集成调度装置、交换系统及方法
CN100421420C (zh) 一种调度纵横式交换矩阵中变长数据包队列的方法
US20040022188A1 (en) Memory sharing mechanism based on priority elevation
CN105656807A (zh) 一种网络芯片多通道数据传输方法及传输装置
CN107332785B (zh) 一种基于动态工作阈值的有效流量控制方法
CN101582854A (zh) 一种数据交换方法、装置和系统
CN101478486B (zh) 一种交换网数据调度方法、设备和系统
CN100456744C (zh) 一种数据调度方法及系统
EP1481317B1 (en) Shared queue for multiple input-streams
CN101931585B (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