用于变长包交换的交换系统的制作方法
【专利摘要】本发明提出一种用于变长包交换的交换系统,包括:多个包处理模块,用于分别对数据包进行解析获得端口号和长度信息;多个交叉点队列,每个交叉点队列包括多个交叉点队列模块,用于分别根据端口号和长度信息将数据包存储到对应的交叉点队列模块中;队列长度计数模块,用于记录每个交叉点队列模块中的剩余容量信息;多个调度模块,调度模块根据各个交叉点队列模块中的数据包的长度信息、选择相应的交叉点队列模块并将其中的数据包输出至输出端口。根据本发明实施例的系统,通过端口号和长度信息将数据包进行存储,并由调度模块将该数据包输出到对应的端口,从而提高了数据的交换效率和数据吞吐量,同时该系统结构简单,实现方便具有较强的实用性。
【专利说明】用于变长包交换的交换系统
【技术领域】
[0001]本发明涉及通信【技术领域】,特别涉及一种用于变长包交换的交换系统。
【背景技术】
[0002]随着视频流、音频流和文件共享等互联网的飞速发展大大提高了人们对网络带宽的需求,由此也对路由器/交换机的交换容量以及端口速度提出了更高的要求。
[0003]传统的交换结构多数采用定长交换的方式。具体而言,将IP数据包切割成固定长度的分片(cell),再以cell为数据交换单位进行数据交换。关于定长交换结构及调度算法的研究已经非常成熟,但随着链路速度的增长,定长交换的调度与分片效率极大地影响到了交换结构的发展。定长交换结构存在如下缺陷:(1)由于定长交换结构的分片大小通常设置在64字节左右,对于IOOGbps的链路每个分片只有5.12ns的时间用于调度,且对交换芯片及调度算法的要求极高。(2)由于定长交换需要在每个分片中加入包含源、目的端口等信息的交换头部,因此增加了数据量造成了额外开销。(3)通常数据包的长度不是分片大小的整数倍,因此最后一个分片中往往只传输部分有效数据,所以对带宽造成了浪费。
[0004]另外,还有部分变长交换方式,例如交叉点不带缓存的交叉开关(UnbufferedCrossbar)的变长交换调度机制、组合输入交叉点缓存的交叉开关(Combined-1nput_and-Crosspoint-Queued, CICQ)的变长调度机制等。但是存在各种缺陷。(I)不带缓存的交叉开关需要仔细考虑每一个周期Crossbar中各交叉点的连接情况,调度极其复杂,因此在实际中很少应用。(2) CICQ交换结构在交叉点上的缓存小,只可以存储少量数据。因此对于大量缓存为了防止交叉点缓存溢出,在每次调度之前需要交叉点反馈队列长度信息。随着链路速度的增长,反馈延时将降低调度效率。
【发明内容】
[0005]本发明的目的旨在至少解决上述的技术缺陷之一。
[0006]为此,本发明需要提供一种用于变长包交换的交换系统。该交换结构可以解决交换效率低且交换结构复杂的问题。
[0007]有鉴于此,本发明的实施例提出一种用于变长包交换的交换系统,包括:多个包处理模块,用于分别对所接收的数据包进行解析,以获得与所述数据包相对应的端口号和所述数据包的长度信息;多个交叉点队列,所述多个交叉点队列分别与所述包处理模块相对应,且每个所述交叉点队列包括多个交叉点队列模块,用于分别根据所述数据包的所述端口号和所述长度信息将所述数据包存储到对应的交叉点队列模块中;队列长度计数模块,用于记录每个所述交叉点队列模块中的剩余容量信息;以及多个调度模块,所述调度模块根据所述队列长度计数模块中各个所述交叉点队列模块中的所述数据包的所述长度信息、选择所述交叉点队列模块中的一个并将其中的数据包输出至所需的输出端口,且更新所述队列长度计数模块中的对应的所述剩余容量信息。
[0008]根据本发明实施例的交换系统,通过端口号和长度信息将数据包存储至对应的交叉点队列,并由调度模块将该数据包输出到对应的端口,从而提高了数据的交换效率和数据吞吐量,同时该系统结构简单,实现方便具有较强的实用性。
[0009]在本发明的一个实施例中,每个所述交叉点队列的所述交叉点队列模块的数目与所述调度模块的数目相同,且每个所述调度模块i分别与所述每个交叉点队列的第i个交叉点队列模块进行数据交互。
[0010]在本发明的一个实施例中,还包括:多个输入端口,所述输入端口与所述包处理模块分别相对应,以将所述数据包输入与所述输入端口相对应的所述包处理模块;以及多个输出端口,所述输出端口分别与所述调度模块相对应,以输出被所述调度模块调度的所述数据包。
[0011]在本发明的一个实施例中,所述交叉点队列模块通过交换芯片的片上SRAM执行存储。
[0012]在本发明的一个实施例中,所述多个交叉点队列采用先进先出的方式将所述数据包存储到所述对应的交叉点队列模块中。
[0013]在本发明的一个实施例中,在所述包处理模块接收的所述数据包的长度信息大于所述对应的交叉点队列模块的所述剩余容量时,所述对应的交叉点队列模块丢弃所述数据包。
[0014]在本发明的一个实施例中,在所述对应的交叉点队列模块的所述剩余容量信息不小于所述数据包的长度信息时,所述对应的交叉点队列模块将所述数据包存储到该交叉点队列模块中,且所述队列长度计数模块更新所述对应交叉点队列模块的所述剩余容量信
肩、O
[0015]在本发明的一个实施例中,所述多个调度模块通过轮询或最长队列优先方式调度存储于所述多个交叉点队列模块中的数据包,并将所述数据包发送至所需的所述输出端□。
[0016]本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
【专利附图】
【附图说明】
[0017]本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0018]图1为根据本发明一个实施例的用于变长包交换的交换系统的结构框图;
[0019]图2为根据本发明一个实施例的输入接口的结构图;
[0020]图3为根据本发明一个实施例的包处理模块PPl与相关模块的关系示意图;
[0021]图4为根据本发明一个实施例的调度模块SCDl与其它多个模块的关系示意图;
[0022]图5为根据本发明一个实施例的队列长度计数模块V0Q_Len与其它模块的关系示意图;以及
[0023]图6为根据本发明一个实施例的交换系统的结构图。
【具体实施方式】
[0024]下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
[0025]在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0026]在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0027]图1为根据本发明一个实施例的用于变长包交换的交换系统的结构框图。如图1所示,根据本发明实施例的用于变长包交换的交换系统包括多个包处理模块100、多个交叉点队列300、队列长度计数模块500和多个调度模块700。
[0028]具体地,多个包处理模块100用于分别对所接收的数据包进行解析,以获得与数据包相对应的端口号和数据包的长度信息。多个交叉点队列300分别与包处理模块相对应,且每个交叉点队列包括多个交叉点队列模块,用于分别根据数据包的端口号和长度信息将数据包存储到对应的交叉点队列模块中。队列长度计数模块500用于记录每个交叉点队列模块中的剩余容量信息。多个调度模块700根据队列长度计数模块中各个交叉点队列模块中的数据包的长度信息、选择交叉点队列模块中的一个并将其中的数据包输出至所需的输出端口,且更新队列长度计数模块500中的对应的剩余容量信息。
[0029]根据本发明实施例的交换系统,通过端口号和长度信息将数据包存储至对应的交叉点队列,并由调度模块将该数据包输出到对应的端口,从而提高了数据的交换效率和数据吞吐量,同时该系统结构简单,实现方便具有较强的实用性。
[0030]在本发明的一个实施例中,包处理模块分别与对应的输入端口相连通过对应的输入端口包处理模块获得相应的数据包。调度模块分别于对应的输出端口相连,以将对应的数据包调度到对应的输出端口。
[0031]在本发明的一个实施例中,在对应的包处理模块接收的数据包的长度信息大于对应的交叉点队列模块的剩余容量时,对应的交叉点队列模块丢弃数据包。通过调度使得对应的交叉点队列模块的剩余容量信息不小于数据包的长度信息时,对应的交叉点队列模块将数据包存储到该交叉点队列模块中,且队列长度计数模块更新对应交叉点队列模块的剩
余容量信息。
[0032]在本发明的一个实施例中,每个交叉点队列的交叉点队列模块的数目与调度模块的数目相同,且每个调度模块i分别与每个交叉点队列的第i个交叉点队列模块进行数据交互。
[0033]在本发明的一个实施例中,交叉点队列模块通过交换芯片的片上SRAM执行存储,且每个交叉点队列模块采用先进先出的方式将数据包存储到对应的交叉点队列模块中。调度模块可通过轮询或最长队列优先方式调度存储于多个交叉点队列模块中的数据包,并将数据包发送至所需的输出端口。
[0034]下面将结合附图2至图6对本发明进行详细说明。
[0035]在本发明的实施例中,交叉点队列模块采用Altera公司提供的DCFIFO (可同时读写的双端口 FIFO) FPGA IP core。该实施例中有256个交叉点队列模块即V0Q(1,I)至VOQ (16, 16),且每个交叉点队列模块的宽度为72位,深度为2000,共需消耗约37M bits片上的SRAM资源。
[0036]在本发明的一个不例中,每个输入端口的宽度为72位,其中[71:64]位传输控制信号,此处称之为带外数据;[63:0]位传输数据负载,其输入端口的结构如图2所示。对于图2的各个域的含义如表1所示。
[0037]
【权利要求】
1.一种用于变长包交换的交换系统,其特征在于,包括: 多个包处理模块,用于分别对所接收的数据包进行解析,以获得与所述数据包相对应的端口号和所述数据包的长度信息; 多个交叉点队列,所述多个交叉点队列分别与所述包处理模块相对应,且每个所述交叉点队列包括多个交叉点队列模块,用于分别根据所述数据包的所述端口号和所述长度信息将所述数据包存储到对应的交叉点队列模块中; 队列长度计数模块,用于记录每个所述交叉点队列模块中的剩余容量信息;以及 多个调度模块,所述调度模块根据所述队列长度计数模块中各个所述交叉点队列模块中的所述数据包的所述长度信息、选择所述交叉点队列模块中的一个并将其中的数据包输出至所需的输出端口,且更新所述队列长度计数模块中的对应的所述剩余容量信息。
2.如权利要求1所述的交换系统,其特征在于,每个所述交叉点队列的所述交叉点队列模块的数目与所述调度模块的数目相同,且每个所述调度模块i分别与所述每个交叉点队列的第i个交叉点队列模块进行数据交互。
3.如权利要求1所述的交换系统,其特征在于,还包括: 多个输入端口,所述输入端口与所述包处理模块分别相对应,以将所述数据包输入与所述输入端口相对应的所述包处理模块;以及 多个输出端口,所述输出端口分别与所述调度模块相对应,以输出被所述调度模块调度的所述数据包。
4.如权利要求1所述的交换系统,其特征在于,所述交叉点队列模块通过交换芯片的片上SRAM执行存储。
5.如权利要求1所述的交换系统,其特征在于,所述多个交叉点队列采用先进先出的方式将所述数据包存储到所述对应的交叉点队列模块中。
6.如权利要求1所述的交换系统,其特征在于,在所述包处理模块接收的所述数据包的长度信息大于所述对应的交叉点队列模块的所述剩余容量时,所述对应的交叉点队列模块丢弃所述数据包。
7.如权利要求6所述的交换系统,其特征在于,在所述对应的交叉点队列模块的所述剩余容量信息不小于所述数据包的长度信息时,所述对应的交叉点队列模块将所述数据包存储到该交叉点队列模块中,且所述队列长度计数模块更新所述对应交叉点队列模块的所述剩余容量信息。
8.如权利要求1所述的交换系统,其特征在于,所述多个调度模块通过轮询或最长队列优先方式调度存储于所述多个交叉点队列模块中的数据包,并将所述数据包发送至所需的所述输出端口。
【文档编号】H04L12/863GK103581054SQ201310528826
【公开日】2014年2月12日 申请日期:2013年10月30日 优先权日:2013年10月30日
【发明者】赵有健, 陈果, 全程斌 申请人:清华大学