CN110233805A - 可变信元的交换装置、***及方法 - Google Patents
可变信元的交换装置、***及方法 Download PDFInfo
- Publication number
- CN110233805A CN110233805A CN201910589070.8A CN201910589070A CN110233805A CN 110233805 A CN110233805 A CN 110233805A CN 201910589070 A CN201910589070 A CN 201910589070A CN 110233805 A CN110233805 A CN 110233805A
- Authority
- CN
- China
- Prior art keywords
- cell
- tail
- standard
- buffer
- header
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/101—Packet switching elements characterised by the switching fabric construction using crossbar or matrix
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3018—Input queuing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3027—Output queuing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3072—Packet splitting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种可变信元的交换装置、***及方法;其中,该装置中的切分模块与输入设备连接;重组模块与输出设备连接;切分模块按照预设的信元长度对输入设备发送的待处理数据包进行切分,生成待处理信元;待处理信元包括标准信元及尾信元;交换模块根据待处理信元的标准信元头或尾信元头,确定调度周期;根据调度周期及预设的仲裁逻辑,对待处理信元进行缓存及传输;重组模块接收交换模块发送的待处理信元,并根据标准信元头及尾信元头,对待处理信元进行重组,得到重组数据包,将重组数据包发送至输出设备。本发明以变长信元进行传输,在传输过程中根据不同长度的信元调整调度周期,提高了传输效率,降低了缓存管理难度。
Description
技术领域
本发明涉及网络通信技术领域,尤其是涉及一种可变信元的交换装置、***及方法。
背景技术
交换结构是路由器、交换机等通信设备的核心部件,基本功用就是完成设备输入端口与特定输出出端口的数据转发。当前,基于交叉节点带缓存的CrossBar交换结构应用于以太网、FC等数据帧长度变化较大的交换设备时,通常采用定长信元结构对数据帧进行切分;以较短的信元作为传输管理的最小单位,较小的存储单位可降低对CrossBar各节点缓存的大小需求,并提高缓存的使用效率;另外,信元传输还具有调度均衡等优点。
在实际操作中,定长切分会在数据帧待切分长度不足信元长度时,对信元进行填充,而填充数据的传输占用总线带宽,降低传输效率;或者对特征相同(例如满足目的端口和优先级一致等条件)的数据帧先进行整合再进行切分,这样在数据帧待切分长度不足信元长度时,用下个帧的数据进行填充,导致单个信元中存在多个数据帧的数据,帧头的位置未定,增加了缓存的管理难度。
发明内容
有鉴于此,本发明的目的在于提供一种可变信元的交换装置、***及方法,以提高传输效率,并降低缓存管理难度。
第一方面,本发明实施例提供了一种可变信元的交换装置,该装置包括依次连接的切分模块、交换模块及重组模块;切分模块与输入设备连接;重组模块与输出设备连接;切分模块用于按照预设的信元长度对输入设备发送的待处理数据包进行切分,生成待处理信元;待处理信元包括标准信元及尾信元;标准信元包括标准信元载荷及标准信元头;尾信元包括尾信元载荷及尾信元头;尾信元载荷的长度小于或等于标准信元的长度;交换模块用于根据待处理信元的标准信元头或尾信元头,确定调度周期;根据调度周期及预设的仲裁逻辑,对待处理信元进行缓存及传输;重组模块用于接收交换模块发送的待处理信元,并根据标准信元头及尾信元头,对待处理信元进行重组,得到重组数据包,将重组数据包发送至输出设备。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,上述切分模块包括依次连接的切分模块、信元头生成单元及封装单元;切分模块用于根据预设的信元长度对待处理数据包进行切分,得到标准信元载荷及尾信元载荷;信元头生成单元用于获取标准信元载荷及尾信元载荷的参数,生成标准信元头及尾信元头;标准信元头包括标准信元载荷的优先级、目的端口及信元长度;尾信元头包括尾信元的优先级、目的端口、信元长度及尾信元指示;封装单元用于对标准信元头及标准信元载荷进行封装,得到标准信元;对尾信元头及尾信元载荷进行封装,得到尾信元。
结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,上述交换模块基于交叉开关矩阵(Crossbar)的结构建立;交换模块包括第一数量的输入缓存器及第二数量的交叉点缓存器;第二数量的数值等于第一数量的数值的平方;输入缓存器及交叉点缓存器按照交叉开关矩阵的结构连接;输入缓存器与切分模块连接;交叉点缓存器与重组模块连接。
结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,上述输入缓存器包括输入缓存管理单元、输入缓存单元与控制单元;输入缓存单元包括设定数量及设定大小的输入缓存子空间;输入缓存管理单元、输入缓存单元与控制单元两两连接;输入缓存管理单元用于为标准信元载荷或尾信元载荷分配缓存地址编号;输入缓存单元用于将标准信元载荷或尾信元载荷存储在缓存地址编号对应的输入缓存子空间中;控制单元用于根据当前的待处理信元对应的标准信元头或尾信元头,确定待处理信元的信元长度;根据信元长度,确定调度周期;根据调度周期、虚拟输出队列(VoQ,Virtual Output Queue)机制及交叉点缓存器反馈的***信元传输状态,生成第一仲裁结果;根据仲裁结果及缓存地址编号,读取标准信元载荷或尾信元载荷,并将待处理信元传输至交叉点缓存器中。
结合第一方面的第三种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,上述重组模块包括重组缓存管理单元、重组缓存单元及控制重组单元;重组缓存单元包含设定数量及设定大小的重组缓存子空间;一个重组缓存子空间对应一个缓存地址编号;重组缓存管理单元用于为标准信元载荷或尾信元载荷分配缓存地址编号;重组缓存单元用于将标准信元载荷或尾信元载荷存储在缓存地址编号对应的重组缓存子空间中;控制重组单元用于根据预设的重组控制规则、标准信元头及尾信元头,读取缓存地址编号对应的重组缓存子空间中的标准信元载荷及尾信元载荷,对标准信元载荷及尾信元载荷进行重组,得到重组数据包。
第二方面,本发明实施例还提供一种可变信元的交换***,包括输入设备、输出设备及上述可变信元的交换装置。
第三方面,本发明实施例还提供一种可变信元的交换方法,该方法应用于上述可变信元的交换装置;该方法包括:切分模块按照预设的信元长度对输入设备发送的待处理数据包进行切分,生成待处理信元;待处理信元包括标准信元及尾信元;标准信元包括标准信元载荷及标准信元头;尾信元包括尾信元载荷及尾信元头;尾信元载荷的长度小于或等于标准信元的长度;交换模块根据待处理信元的标准信元头或尾信元头,确定调度周期;根据调度周期及预设的仲裁逻辑,对待处理信元进行缓存及传输;重组模块接收交换模块发送的待处理信元,并根据标准信元头及尾信元头,对待处理信元进行重组,得到重组数据包,将重组数据包发送至输出设备。
结合第三方面,本发明实施例提供了第三方面的第一种可能的实施方式,其中,上述切分模块包括依次连接的切分模块、信元头生成单元及封装单元;按照预设的信元长度对输入设备发送的待处理数据包进行切分,生成待处理信元,包括:切分模块根据预设的信元长度对待处理数据包进行切分,得到标准信元载荷及尾信元载荷;信元头生成单元获取标准信元载荷及尾信元载荷的参数,生成标准信元头及尾信元头;标准信元头包括标准信元载荷的优先级、目的端口及信元长度;尾信元头包括尾信元的优先级、目的端口、信元长度及尾信元指示;封装单元对标准信元头及标准信元载荷进行封装,得到标准信元;对尾信元头及尾信元载荷进行封装,得到尾信元。
结合第三方面第一种可能的实施方式,本发明实施例提供了第三方面的第二种可能的实施方式,其中,上述交换模块基于交叉开关矩阵的结构建立;交换模块包括第一数量的输入缓存器及第二数量的交叉点缓存器;第二数量的数值等于第一数量的数值的平方;输入缓存器及交叉点缓存器按照交叉开关矩阵的结构连接;输入缓存器与切分模块连接;交叉点缓存器与重组模块连接。
结合第三方面第二种可能的实施方式,本发明实施例提供了第三方面的第三种可能的实施方式,其中,上述输入缓存器包括输入缓存管理单元、输入缓存单元与控制单元;输入缓存单元包括设定数量的输入缓存子空间;一个输入缓存子空间对应一个缓存地址编号;输入缓存管理单元、输入缓存单元与控制单元两两连接;上述方法还包括:输入缓存管理单元为标准信元载荷或尾信元载荷分配缓存地址编号;输入缓存单元将标准信元载荷或尾信元载荷存储在缓存地址编号对应的输入缓存子空间中;控制单元根据当前的待处理信元对应的标准信元头或尾信元头,确定待处理信元的信元长度;根据信元长度,确定调度周期;根据调度周期、虚拟输出队列机制及交叉点缓存器反馈的***信元传输状态,生成第一仲裁结果;根据仲裁结果及缓存地址编号,读取标准信元载荷或尾信元载荷,并将待处理信元传输至交叉点缓存器中。
本发明实施例带来了以下有益效果:本发明实施例提供了一种可变信元的交换装置、***及方法;切分模块按照预设的信元长度对输入设备发送的待处理数据包进行切分,生成待处理信元;待处理信元包括标准信元及尾信元;交换模块根据待处理信元的标准信元头或尾信元头,确定调度周期;根据调度周期及预设的仲裁逻辑,对待处理信元进行缓存及传输;重组模块接收交换模块发送的待处理信元,并根据标准信元头及尾信元头,对待处理信元进行重组,得到重组数据包,将重组数据包发送至输出设备。该方式以变长信元进行传输,并在传输过程中根据不同长度的信元调整调度周期,提高了传输效率,并降低了缓存管理难度。
本发明的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本发明的上述技术即可得知。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施方式,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种可变信元的交换装置的结构示意图;
图2为本发明实施例提供的一种切分模块的结构示意图;
图3为本发明实施例提供的一种重组模块的结构示意图;
图4为本发明实施例提供的一种长度可变信元的分组交换结构的数据流向示意图;
图5为本发明实施例提供的一种长度可变信元的分组交换结构的结构示意图;
图6为本发明实施例提供的Input Buffer模块在工作过程中的信号流向示意图;
图7为本发明实施例提供的CrossPoint Buffer节点(交叉点缓存器)的结构示意图;
图8为本发明实施例提供的Packet Assemble模块的结构示意图;
图9为本发明实施例提供的一种可变信元的交换***的结构示意图;
图10为本发明实施例提供的一种可变信元的交换方法的流程示意图。
具体实施方式
下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有的交换结构大多基于交叉节点带缓存的CrossBar而建立;交叉节点带缓存的CrossBar是20世80年代提出一种交换结构,它通过在输入一侧创建虚拟输出队列(VirtualOutput Queueing,VOQ)的机制消除了头阻塞(Head of Line Blocking)现象,并通过在CrossBar交叉交叉节点上放置少量缓存,实现了输入和输出调度的隔离,降低了调度的复杂度,可实现高速的流水作业。当前在很多成熟的商业芯片中即是采用这种交换结构。
当交叉节点带缓存的CrossBar交换结构应用于以太网、FC等数据帧长度变化较大的交换设备时,通常将数据帧拆分为信元,以较短的信元作为传输管理的最小单位,较小的存储单位可降低对CrossBar各节点缓存的大小需求,并提高缓存的使用效率;另外,信元传输还具有调度均衡等方面的优点。
现有的基于信元的CrossBar交换结构通常采用定长信元结构,存在以下的问题:
1、定长切分会在数据帧待切分长度不足信元长度时,对信元进行填充,而填充数据的传输占用总线带宽,降低传输效率。
2、信元的信息通常会作为信元头添加到信元中,增加了信元传输损耗,并且增加了缓存容量需求。
为解决信元填充的问题,有设计人员提出了优化方案,即对特征相同(例如满足目的端口和优先级一致等条件)的数据帧先进行整合再进行切分,这样在数据帧待切分长度不足信元长度时,用下个帧的数据进行填充,避免了总线带宽的无意义损耗。但这种解决方案也存在一定的问题,例如单个信元中存在多个数据帧的数据,帧头的位置未定,增加了缓存的管理难度;同时由于组包时无法避免将下一个帧的部分数据读出,处理不好会影响调度的灵活性。
基于此,本发明实施例提供了一种可变信元的交换装置、***及方法,可以应用于路由器、交换机等通信设备中。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种可变信元的交换装置进行详细介绍。
参见图1所示的一种可变信元的交换装置的结构示意图,该结构包括依次连接的切分模块10、交换模块20及重组模块30;切分模块与输入设备连接;重组模块与输出设备连接。切分模块用于按照预设的信元长度对输入设备发送的待处理数据包进行切分,生成待处理信元;待处理信元包括标准信元及尾信元;标准信元包括标准信元载荷及标准信元头;尾信元包括尾信元载荷及尾信元头;尾信元载荷的长度小于或等于标准信元的长度;交换模块用于根据根据待处理信元的标准信元头或尾信元头,确定调度周期;根据调度周期及预设的仲裁逻辑,对待处理信元进行缓存及传输;重组模块用于接收交换模块发送的待处理信元,并根据标准信元头及尾信元头,对待处理信元进行重组,得到重组数据包,将重组数据包发送至输出设备。
上述切分模块可以由依次连接的切分单元11、信元头生成单元12及封装单元13组成,其结构示意图如图2所示;其中,切分单元用于根据预设的信元长度对待处理数据包进行切分,得到标准信元载荷及尾信元载荷;标准信元载荷的长度与预设的信元长度相同;当待处理数据包的剩余数据帧长度小于预设的信元长度时,将剩余数据帧作为尾信元载荷;信元头生成单元用于获取标准信元载荷及尾信元载荷的参数,生成标准信元头及尾信元头;标准信元头包括标准信元载荷的优先级、目的端口及信元长度;尾信元头包括尾信元的优先级、目的端口、信元长度及尾信元指示;封装单元用于对标准信元头及标准信元载荷进行封装,得到标准信元;对尾信元头及尾信元载荷进行封装,得到尾信元。
上述交换模块可以基于交叉开关矩阵(Crossbar)的结构建立;交换模块通常由第一数量的输入缓存器及第二数量的交叉点缓存器构成;第二数量的数值等于第一数量的数值的平方;即输入缓存器为N个(输入缓存器1,输入缓存器2…输入缓存器N),交叉点缓存器为N2个(交叉点缓存器1,交叉点缓存器2…交叉点缓存器N);输入缓存器及交叉点缓存器按照交叉开关矩阵的结构连接;一个输入缓存器与一个切分模块连接;交叉点缓存器与重组模块连接;交叉点缓存器按照行列矩阵的形式排列,每个输入缓存器对应一个交叉点缓存器行,每个重组模块对应一个交叉点缓存器列;在工作过程中,交换模块接收到待处理信元后,会根据信元头确定该信元的长度,并根据信元长度及传输速率,确定调度周期;在该调度周期中,该信元可以被传输至重组模块;在调度周期过后,根据预设的仲裁逻辑及交换模块中的传输情况,对下一个信元生成仲裁结果;当仲裁结果显示可以进行传输后,对下一个信元进行传输。通常情况下,当标准信元的调度周期比尾信元的调度周期长;与现有技术中基本采用同样的调度周期相比,提高了传输效率。
上述重组模块包括重组缓存管理单元31、重组缓存单元32及控制重组单元33,其结构示意图如图3所示;重组缓存单元包含设定数量的重组缓存地址;重组缓存管理单元用于为标准信元载荷或尾信元载荷分配缓存地址编号;重组缓存单元用于将标准信元载荷或尾信元载荷存储在缓存地址编号对应的重组缓存地址中;控制重组单元用于根据预设的重组控制规则、标准信元头及尾信元头,读取缓存地址编号对应的重组缓存地址中的标准信元载荷及尾信元载荷,对标准信元载荷及尾信元载荷进行重组,得到重组数据包。
本发明实施例提供了一种可变信元的交换装置;切分模块按照预设的信元长度对输入设备发送的待处理数据包进行切分,生成待处理信元;待处理信元包括标准信元及尾信元;交换模块根据待处理信元的标准信元头或尾信元头,确定调度周期;根据调度周期及预设的仲裁逻辑,对待处理信元进行缓存及传输;重组模块接收交换模块发送的待处理信元,并根据标准信元头及尾信元头,对待处理信元进行重组,得到重组数据包,将重组数据包发送至输出设备。该方式以变长信元进行传输,并在传输过程中根据不同长度的信元调整调度周期,提高了传输效率,并降低了缓存管理难度。
本发明实施例还提供了一种长度可变信元的分组交换结构,该分组交换结构基于图1所示的交换结构实现,该结构的数据流向示意图如图4所示;该结构包括交换接入(Switch Access)和交换网络(Switch Fabric)两个部分,交换接入又分为切分(PacketSegment)和重组(Packet Assemble)两个功能模块,切分模块接收完整的数据帧,基于单个数据帧进行切割,当待切割长度不足信元长度时,不进行填充,按照真实的长度进行转发;并针对每个信元生成包含优先级、目的端口、信元长度、尾信元指示等信息的信元头,作为随路信号进行传输;交换网络根据信元中携带的转发信息将其转发对特定的目的端口,重组模块在信元接收完整后根据重组信息恢复出完整的数据帧;交换网络的调度间隔根据所调出信元的真实长度进行自适应,保证信元进行背靠背传输;各节点缓存以信元为单位进行管理,降低缓存管理难度。
本文提出的交换结构示意图如图5所示,Packet Segment模块完成数据帧的切割,切割完成信元和信元头信息的封装,信元头作为随路数据随信元的第一拍发送给SwitchFabric(交换结构)的Input Buffer(输入缓冲器)中;Packet Assemble(重组)模块接收从CrossPoint Buffer(交叉点缓存)发送过来的信元,并根据信元头中携带的组装信息完成数据帧的重组。Packet Segment(切分)和Packet Assemble模块共同构成了交换接入模块;Switch Fabric模块由N个Input Buffer和N2个CrossPoint Buffer构成,Input Buffer引入VOQ机制防止在拥塞的情况下发生头阻塞,CrossPoint Buffer按照行列矩阵的形式排列,每个Input Buffer模块对应一个CrossPoint Buffer行,每个Packet Assemble模块对应一个CrossPoint Buffer列。
上述Input Buffer模块(相当于输入缓存器)包括输入缓存管理单元、输入缓存单元与控制单元,将待处理信元拆分成信元载荷数据和信元头,进行数据和控制两路通道处理;输入缓存单元包括设定数量的输入缓存地址;输入缓存管理单元、输入缓存单元与控制单元两两连接;输入缓存管理单元用于为标准信元载荷或尾信元载荷分配缓存地址编号;输入缓存单元用于将标准信元载荷或尾信元载荷存储在缓存地址编号对应的输入缓存地址中;控制单元用于根据标准信元载荷的标准信元头或尾信元载荷的尾信元头、虚拟输出队列(VoQ,Virtual Output Queue)机制及交叉点缓存器反馈的***信元传输状态,生成第一仲裁结果;根据仲裁结果及缓存地址编号,读取标准信元载荷或尾信元载荷,并将待处理信元传输至交叉点缓存器中。
Input Buffer模块在工作过程中的信号流向示意图如图6所示,在图6所示的输入缓存器中,控制单元由VOQ、Arbiter(仲裁器)及传输控制组成;具体通过以下方式实现:
(1)控制通道的输入为信元头相关信息,信元头指示脉冲首先会进入缓存管理模块申请得到空闲的地址块编号。
(2)地址块编号连同信元头里面的目的端口、长度和优先级等信息进入对应的VOQ队列,VOQ队列可以使用FIFO或者链表来实现。
(3)与目的端口对应的VOQ信息会进入Arbiter仲裁模块,仲裁器会根据VOQ有效指示和后级CrossPoint Buffer的空闲指示,实时生成仲裁结果。
(4)传输控制模块会在满足后级缓存空闲且当前传输即将结束这两个条件的情况下锁存仲裁结果,仲裁结果锁存的时刻由当前传输信元长度和缓存RAM读出时延共同决定,锁存的仲裁结果会反馈到VOQ中,触发被仲裁信元出队和仲裁结果更新动作,进而传输控制模块能够尽可能快的得到更新后的仲裁结果,从而实现变长信元的背靠背传输。
(5)由于缓存的读出需要时延,所以信元头信息可以提前进入下级的CrossPointBuffer,进而提前启动调度,减少传输时延;
(6)数据通道的输入为信元载荷数据,主要是缓存RAM的写入和读取,写入地址根据缓存管理模块输出的缓存块标号产生,读取地址由传输控制锁存的仲裁信息中的缓存块编号产生;
(7)缓存模块读出的信元载荷数据和传输管理模块锁存的信元头信息会在调度端口指示下进入下级对应的CrossPoint Buffer。
这个模块的处理有几个关键点:a地址管理模块和缓存的读写以地址块为管理单位,地址块容量与标准信元大小一致;并且单个信元内仅存在一个数据帧的数据,不存在帧的拼接,减少缓存管理难度;b仲裁模块无论采用哪种仲裁方案,仲裁结果要跟随VOQ的变化及时的更新,使得传输管理模块在长度不定的尾信元传输完毕前能够得到最新的仲裁结果,实现载荷数据以流水形式不间断输出;c传输管理模块从仲裁结果中获取的信元头信息提前于信元载荷信息进入选定的CrossPoint Buffer,进而可以提前启动控制通道的仲裁,减少传输延时,最优情况下可以做到载荷数据不存入CrossPoint Buffer而直接向下级传送。
如图7所示为CrossPoint Buffer节点(交叉点缓存器)的结构示意图,与InputBuffer结构类似,只是仲裁和传输管理模块转移到模块外部,由交叉矩阵每个CrossPointBuffer共用。
CrossPoint Buffer的处理流程也与Input Buffer类似:
(1)控制通道:由Input Buffer模块输出信元头指示脉冲会从缓存管理中申请得到空闲的缓存地址块编号,连同信元头中协议的信元长度、信元优先级和尾信元指示等信息一同进入VOQ;VOQ可由链表或者FIFO实现,VOQ队列头部的待仲裁信息会和同列的CrossPoint Buffer输出的待仲裁信息一同进入输出仲裁模块进行仲裁;仲裁结果会实时根据VOQ的变化而更新,传输控制模块会在后级缓存空闲且当前信元即将传输结束的情况下,锁存仲裁结果,准备启动下一信元的传输;锁存的仲裁结果会反馈到对应CrossPointBuffer的VOQ中,触发被仲裁信元出队、VOQ头更新和仲裁结果更新动作,进而传输控制模块能够尽可能快的得到更新后的仲裁结果,从而实现变长信元的背靠背传输;锁存的仲裁结果还是同时输出信元信息给后级的数据帧组装模块。
(2)数据通道:同Input Buffer实现类似,从上级发送过来的信元载荷信息会存储到申请得到的地址块中,待仲裁结果锁定后,开始在传输管理模块控制下向外读出数据;与Input Buffer不同的是,CrossPoint Buffer列中存在多个缓存,需要一个总线Mux根据仲裁结果中的选择,选择仲裁选中的缓存所读出数据,输送给后级的数据帧组装模块。
如图8所示为Packet Assemble模块的结构示意图,与前两级Buffer工作流程类似。控制层面,来自CrossPoint Buffer的信元头指示会首先从缓存管理模块申请得到空闲的缓存地址块编号;缓存地址编号与信元头中携带的组装信息会进入组包队列中,组包队列会根据来源端口信息、优先级信息和尾EOP信息判断来自某源端口某优先级数据帧的所有信元是否收集完毕,如若收集完毕则会将信元信息按照组包顺序依次送到组包控制模块中;组包控制模块会根据组包队列输出的信元信息中的缓存地址编号,从缓存中将信元载荷读出,并根据信元信息中携带的尾信元指示,在合适的时刻生成数据帧EOP指示。
本发明实施例提供的一种长度可变信元的分组交换结构具有以下优点:采用在单个数据帧内用变长信元的方式进行切割,避免了因定长信元方案引入的数据填充导致的带宽浪费和数据帧拼接后切割导致的缓存管理困难;信元相关信息,如信元长读、信元优先级和尾信元标志等,作为信元载荷的随路数据进行传输,避免了总线带宽的浪费;采用仲裁结果实时更新的机制,根据在传信元长度自适应调整调度间隔,锁定实时更新的仲裁结果,实现变长信元的背靠背传输;采用信元头早于信元载荷输出的机制,使得调度结果可在信元载荷到达缓存前更新,可实现信元载荷不进入缓存直接发送,优化了交换时延。
本发明实施例还提供一种可变信元的交换***,其结构示意图如图9所示;该***包括输入设备91、输出设备92及上述可变信元的交换装置90。
本发明实施例提供的可变信元的交换***,与上述实施例提供的可变信元的交换结构具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
对应于上述实施例,本发明实施例还提供一种可变信元的交换方法,该方法应用于上述可变信元的交换装置,其流程示意图如图10所示;该方法包括以下步骤:
步骤S100:切分模块按照预设的信元长度对输入设备发送的待处理数据包进行切分,生成待处理信元;待处理信元包括标准信元及尾信元;标准信元包括标准信元载荷及标准信元头;尾信元包括尾信元载荷及尾信元头;尾信元载荷的长度小于或等于标准信元的长度。
步骤S102:交换模块根据待处理信元的标准信元头或尾信元头,确定调度周期;根据调度周期及预设的仲裁逻辑,对待处理信元进行缓存及传输。
步骤S104:重组模块接收交换模块发送的待处理信元,并根据标准信元头及尾信元头,对待处理信元进行重组,得到重组数据包,将重组数据包发送至输出设备。
具体地,上述切分模块包括依次连接的切分模块、信元头生成单元及封装单元;上述步骤S100可以具体通过以下方式实现:
(1)切分模块根据预设的信元长度对待处理数据包进行切分,得到标准信元载荷及尾信元载荷。
(2)信元头生成单元获取标准信元载荷及尾信元载荷的参数,生成标准信元头及尾信元头;标准信元头包括标准信元载荷的优先级、目的端口及信元长度;尾信元头包括尾信元的优先级、目的端口、信元长度及尾信元指示。
(3)封装单元对标准信元头及标准信元载荷进行封装,得到标准信元;对尾信元头及尾信元载荷进行封装,得到尾信元。
具体地,上述交换模块基于交叉开关矩阵(Crossbar)的结构建立;交换模块包括第一数量的输入缓存器及第二数量的交叉点缓存器;第二数量的数值等于第一数量的数值的平方;输入缓存器及交叉点缓存器按照交叉开关矩阵的结构连接;输入缓存器与切分模块连接;交叉点缓存器与重组模块连接。
具体地,上述输入缓存器包括输入缓存管理单元、输入缓存单元与控制单元;输入缓存单元包括设定数量的输入缓存子空间;输入缓存管理单元、输入缓存单元与控制单元两两连接;上述方法还包括:
(1)输入缓存管理单元为标准信元载荷或尾信元载荷分配缓存地址编号。
(2)输入缓存单元将标准信元载荷或尾信元载荷存储在缓存地址编号对应的输入缓存子空间中。
(3)控制单元根据标准信元载荷的标准信元头或尾信元载荷的尾信元头、虚拟输出队列(VoQ,Virtual Output Queue)机制及交叉点缓存器反馈的***信元传输状态,生成第一仲裁结果。
(4)根据仲裁结果及缓存地址编号,读取标准信元载荷或尾信元载荷,并将待处理信元传输至交叉点缓存器中。
本发明实施例所提供的可变信元的交换结构、***及方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***和/或装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种可变信元的交换装置,其特征在于,所述装置包括依次连接的切分模块、交换模块及重组模块;所述切分模块与输入设备连接;所述重组模块与输出设备连接;
所述切分模块用于按照预设的信元长度对所述输入设备发送的待处理数据包进行切分,生成待处理信元;所述待处理信元包括标准信元及尾信元;所述标准信元包括标准信元载荷及标准信元头;所述尾信元包括尾信元载荷及尾信元头;所述尾信元载荷的长度小于或等于所述标准信元的长度;
所述交换模块用于根据所述待处理信元的标准信元头或尾信元头,确定调度周期;根据所述调度周期及预设的仲裁逻辑,对所述待处理信元进行缓存及传输;
所述重组模块用于接收所述交换模块发送的待处理信元,并根据所述标准信元头及所述尾信元头,对所述待处理信元进行重组,得到重组数据包,将所述重组数据包发送至所述输出设备。
2.根据权利要求1所述的装置,其特征在于,所述切分模块包括依次连接的切分模块、信元头生成单元及封装单元;
所述切分模块用于根据预设的信元长度对所述待处理数据包进行切分,得到所述标准信元载荷及所述尾信元载荷;
所述信元头生成单元用于获取所述标准信元载荷及所述尾信元载荷的参数,生成所述标准信元头及所述尾信元头;所述标准信元头包括所述标准信元载荷的优先级、目的端口及信元长度;所述尾信元头包括所述尾信元的优先级、目的端口、信元长度及尾信元指示;
所述封装单元用于对所述标准信元头及所述标准信元载荷进行封装,得到所述标准信元;对所述尾信元头及所述尾信元载荷进行封装,得到所述尾信元。
3.根据权利要求2所述的装置,其特征在于,所述交换模块基于交叉开关矩阵的结构建立;所述交换模块包括第一数量的输入缓存器及第二数量的交叉点缓存器;所述第二数量的数值等于所述第一数量的数值的平方;所述输入缓存器及所述交叉点缓存器按照所述交叉开关矩阵的结构连接;所述输入缓存器与所述切分模块连接;所述交叉点缓存器与所述重组模块连接。
4.根据权利要求3所述的装置,其特征在于,所述输入缓存器包括输入缓存管理单元、输入缓存单元与控制单元;所述输入缓存单元包括设定数量及设定大小的输入缓存子空间;一个所述输入缓存子空间对应一个缓存地址编号;所述输入缓存管理单元、所述输入缓存单元与所述控制单元两两连接;
所述输入缓存管理单元用于为所述标准信元载荷或所述尾信元载荷分配缓存地址编号;
所述输入缓存单元用于将所述标准信元载荷或所述尾信元载荷存储在所述缓存地址编号对应的所述输入缓存子空间中;
所述控制单元用于根据当前的待处理信元对应的标准信元头或尾信元头,确定所述待处理信元的信元长度;根据所述信元长度,确定调度周期;根据所述调度周期、虚拟输出队列机制及所述交叉点缓存器反馈的***信元传输状态,生成仲裁结果;根据所述仲裁结果及所述缓存地址编号,读取所述标准信元载荷或所述尾信元载荷,并将所述待处理信元传输至所述交叉点缓存器中。
5.根据权利要求4所述的装置,其特征在于,所述重组模块包括重组缓存管理单元、重组缓存单元及控制重组单元;所述重组缓存单元包含设定数量及设定大小的重组缓存子空间;一个所述重组缓存子空间对应一个缓存地址编号;
所述重组缓存管理单元用于为所述标准信元载荷或所述尾信元载荷分配缓存地址编号;
所述重组缓存单元用于将所述标准信元载荷或所述尾信元载荷存储在所述缓存地址编号对应的所述重组缓存子空间中;
所述控制重组单元用于根据预设的重组控制规则、所述标准信元头及所述尾信元头,读取所述缓存地址编号对应的所述重组缓存子空间中的所述标准信元载荷及所述尾信元载荷,对所述标准信元载荷及所述尾信元载荷进行重组,得到重组数据包。
6.一种可变信元的交换***,其特征在于,包括输入设备、输出设备及如权利要求1-5任一项所述的可变信元的交换装置。
7.一种可变信元的交换方法,其特征在于,所述方法应用于如权利要求1所述的可变信元的交换装置;所述方法包括:
所述切分模块按照预设的信元长度对所述输入设备发送的待处理数据包进行切分,生成待处理信元;所述待处理信元包括标准信元及尾信元;所述标准信元包括标准信元载荷及标准信元头;所述尾信元包括尾信元载荷及尾信元头;所述尾信元载荷的长度小于或等于所述标准信元的长度;
所述交换模块根据所述待处理信元的标准信元头或尾信元头,确定调度周期;根据所述调度周期及预设的仲裁逻辑,对所述待处理信元进行缓存及传输;
所述重组模块接收所述交换模块发送的待处理信元,并根据所述标准信元头及所述尾信元头,对所述待处理信元进行重组,得到重组数据包,将所述重组数据包发送至所述输出设备。
8.根据权利要求7所述的方法,其特征在于,所述切分模块包括依次连接的切分模块、信元头生成单元及封装单元;所述按照预设的信元长度对所述输入设备发送的待处理数据包进行切分,生成待处理信元,包括:
所述切分模块根据预设的信元长度对所述待处理数据包进行切分,得到所述标准信元载荷及所述尾信元载荷;
所述信元头生成单元获取所述标准信元载荷及所述尾信元载荷的参数,生成所述标准信元头及所述尾信元头;所述标准信元头包括所述标准信元载荷的优先级、目的端口及信元长度;所述尾信元头包括所述尾信元的优先级、目的端口、信元长度及尾信元指示;
所述封装单元对所述标准信元头及所述标准信元载荷进行封装,得到所述标准信元;对所述尾信元头及所述尾信元载荷进行封装,得到所述尾信元。
9.根据权利要求8所述的方法,其特征在于,所述交换模块基于交叉开关矩阵(Crossbar)的结构建立;所述交换模块包括第一数量的输入缓存器及第二数量的交叉点缓存器;所述第二数量的数值等于所述第一数量的数值的平方;所述输入缓存器及所述交叉点缓存器按照所述交叉开关矩阵的结构连接;所述输入缓存器与所述切分模块连接;所述交叉点缓存器与所述重组模块连接。
10.根据权利要求9所述的方法,其特征在于,所述输入缓存器包括输入缓存管理单元、输入缓存单元与控制单元;所述输入缓存单元包括设定数量的输入缓存子空间;一个所述输入缓存子空间对应一个缓存地址编号;所述输入缓存管理单元、所述输入缓存单元与所述控制单元两两连接;所述方法还包括:
所述输入缓存管理单元为所述标准信元载荷或所述尾信元载荷分配缓存地址编号;
所述输入缓存单元将所述标准信元载荷或所述尾信元载荷存储在所述缓存地址编号对应的所述输入缓存子空间中;
所述控制单元根据当前的所述待处理信元对应的标准信元载荷的标准信元头或所述尾信元载荷的尾信元头,确定所述待处理信元的信元长度;根据所述信元长度,确定调度周期;根据所述调度周期、虚拟输出队列机制及所述交叉点缓存器反馈的***信元传输状态,生成仲裁结果;根据所述仲裁结果及所述缓存地址编号,读取所述标准信元载荷或所述尾信元载荷,并将所述待处理信元传输至所述交叉点缓存器中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910589070.8A CN110233805B (zh) | 2019-07-02 | 2019-07-02 | 可变信元的交换装置、***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910589070.8A CN110233805B (zh) | 2019-07-02 | 2019-07-02 | 可变信元的交换装置、***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110233805A true CN110233805A (zh) | 2019-09-13 |
CN110233805B CN110233805B (zh) | 2021-09-03 |
Family
ID=67856635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910589070.8A Active CN110233805B (zh) | 2019-07-02 | 2019-07-02 | 可变信元的交换装置、***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110233805B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111654454A (zh) * | 2020-06-23 | 2020-09-11 | 天津芯海创科技有限公司 | 基于Crossbar的双模混合交换结构和方法 |
Citations (5)
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 |
JP3405800B2 (ja) * | 1994-03-16 | 2003-05-12 | 富士通株式会社 | Atmによる可変長セルの転送方式,atmによる可変長セルのスイッチ及びatmによる可変長セルの交換機 |
CN101631070A (zh) * | 2008-07-16 | 2010-01-20 | 中国人民解放军信息工程大学 | 三级交换***及其调度方法 |
CN105897621A (zh) * | 2016-07-01 | 2016-08-24 | 中国航空无线电电子研究所 | 基于cioq结构的千兆afdx交换机及其交换方法 |
CN104954292B (zh) * | 2015-05-18 | 2018-04-20 | 烽火通信科技股份有限公司 | 基于clos交换网络的数据包切分和重组的***及方法 |
-
2019
- 2019-07-02 CN CN201910589070.8A patent/CN110233805B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3405800B2 (ja) * | 1994-03-16 | 2003-05-12 | 富士通株式会社 | Atmによる可変長セルの転送方式,atmによる可変長セルのスイッチ及びatmによる可変長セルの交換機 |
US20020196778A1 (en) * | 2000-11-14 | 2002-12-26 | Michel Colmant | Method and structure for variable-length frame support in a shared memory switch |
TW513635B (en) * | 2000-11-24 | 2002-12-11 | Ibm | Method and structure for variable-length frame support in a shared memory switch |
CN101631070A (zh) * | 2008-07-16 | 2010-01-20 | 中国人民解放军信息工程大学 | 三级交换***及其调度方法 |
CN104954292B (zh) * | 2015-05-18 | 2018-04-20 | 烽火通信科技股份有限公司 | 基于clos交换网络的数据包切分和重组的***及方法 |
CN105897621A (zh) * | 2016-07-01 | 2016-08-24 | 中国航空无线电电子研究所 | 基于cioq结构的千兆afdx交换机及其交换方法 |
Non-Patent Citations (2)
Title |
---|
STEPHENS D等: "Implementing distributed packet fair queueing in a scalable switch architecture", 《IEEE INFOCOM’98 CONFERENCE》 * |
王晓婷等: "一种高效自适应的CICQ交换机数据包切分机制", 《电子技术应用》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111654454A (zh) * | 2020-06-23 | 2020-09-11 | 天津芯海创科技有限公司 | 基于Crossbar的双模混合交换结构和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110233805B (zh) | 2021-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107615690B (zh) | 混合光子电子交换的***及方法 | |
CN103916326B (zh) | 用于数据中心的***、方法以及设备 | |
DE60111457T2 (de) | Vermittlungsanordnung mit redundanten Wegen | |
DE69817328T2 (de) | Warteschlangenstruktur und -verfahren zur prioritätszuteilung von rahmen in einem netzwerkkoppelfeld | |
CN106899503B (zh) | 一种数据中心网络的路由选择方法及网络管理器 | |
CN107819695A (zh) | 一种基于sdn的分布式控制负载均衡***与方法 | |
CN108833299A (zh) | 一种基于可重构交换芯片架构的大规模网络数据处理方法 | |
CN102111327B (zh) | 信元调度方法和*** | |
CN102387076B (zh) | 一种结合整形的分级式队列调度方法 | |
CN107948103A (zh) | 一种基于预测的交换机pfc控制方法及控制*** | |
CN106656822A (zh) | 一种软件定义网络流表更新的方法及装置 | |
CN105978762A (zh) | 冗余以太网数据传输设备、***及方法 | |
CN100417136C (zh) | 一种基于三级交换网的下行队列快速反压传送装置及方法 | |
CN104583991A (zh) | 用于二维无缓冲器互连的防饥饿及回弹减少机制 | |
CN109639596A (zh) | 一种用于车载can-canfd混合网络的网关调度方法 | |
CN110290074A (zh) | FPGA片间互连的Crossbar交换单元设计方法 | |
CN100490383C (zh) | 一种支持多优先级的高速Crossbar调度方法 | |
CN101621719B (zh) | 混合光交换网络核心节点配套用交换处理器 | |
CN110086731A (zh) | 一种云架构下网络数据稳定采集方法 | |
CN110233805A (zh) | 可变信元的交换装置、***及方法 | |
CN104699649B (zh) | 一种多分支串行总线接口及数据交换方法 | |
US20020097719A1 (en) | Method and apparatus for traffic shaping for IP router queues/egress | |
CN104333516A (zh) | 用于组合输入交叉点缓存交换结构的旋转轮训调度方法 | |
CN111352657A (zh) | FPGA高速高效流水读取x86数据的方法 | |
CN108616569B (zh) | 一种面向分布式计算应用的光多播请求调度方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |