CN118075217A - 共享队列缓存纵向拆分的Crossbar交换系统、实现及拆分方法 - Google Patents
共享队列缓存纵向拆分的Crossbar交换系统、实现及拆分方法 Download PDFInfo
- Publication number
- CN118075217A CN118075217A CN202410131494.0A CN202410131494A CN118075217A CN 118075217 A CN118075217 A CN 118075217A CN 202410131494 A CN202410131494 A CN 202410131494A CN 118075217 A CN118075217 A CN 118075217A
- Authority
- CN
- China
- Prior art keywords
- cross
- data
- slice
- data frame
- queue
- 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
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000005540 biological transmission Effects 0.000 claims abstract description 113
- 238000012545 processing Methods 0.000 claims description 41
- 238000000926 separation method Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 9
- 239000005441 aurora Substances 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 238000003672 processing method Methods 0.000 claims description 6
- 230000003139 buffering effect Effects 0.000 claims 1
- 238000004088 simulation Methods 0.000 description 8
- 230000007547 defect Effects 0.000 description 6
- 230000003993 interaction Effects 0.000 description 6
- 230000000903 blocking effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 239000002699 waste material Substances 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000009432 framing Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- 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/3036—Shared queuing
-
- 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/103—Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
-
- 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/109—Integrated on microchip, e.g. switch-on-chip
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/12—Protocol engines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种共享队列缓存纵向拆分的Crossbar交换系统、实现方法及拆分方法,其装置包括分组处理模块、出端口解耦合模块、队列管理模块、跨片发送模块、共享队列管理模块。本发明实现方法的步骤为:解析数据帧查表获得数据帧出端口,数据帧分流,跨片数据传输,跨片数据接收,队列管理缓存数据帧,Crossbar交叉节点缓存数据帧,交叉节点轮询,数据帧发送。本发明采用了纵向拆分的方法和跨片传输的方案,利用多片FPGA实现Crossbar交换系统架构,同时通过共享队列缓存,和总线共享跨片传输通道,减缓了系统的缓存资源压力,扩大了系统的承载容量,提高了系统的传输效率。
Description
技术领域
本发明属于通信技术领域,更进一步涉及以太网通信技术领域中的一种共享队列缓存纵向拆分的交叉开关矩阵(Crossbar)交换系统、实现方法以及拆分方法。本发明按照Crossbar交换系统架构实现多条共享总线之间的信息交互,并且通过纵向拆分的方式在多片现场可编程逻辑门阵列FPGA(Field Programmable Gate Array)上实现Crossbar架构,使得硬件的存储资源压力得以改善,提高了Crossbar交换系统的承载容量和信息交换效率。
背景技术
目前,随着以太网技术的快速发展,现代工业对交换系统容量的要求越来越高。由于现有的硬件资源存在一定上限,实现大容量、高可靠性、低成本的交换系统受到广泛关注。Crossbar交换架构是一种基于共享总线型交换系统为多条共享总线之间实现信息交互的一种实现方案,其功能为通过横向的交叉节点缓存和数据帧的转发信息对数据帧进行区分,通过纵向的交叉节点的仲裁来实现多条共享总线向单条总线的数据交互,通过交叉节点矩阵能够实现多条共享总线的数据帧的转发,并且结构实现简单,输入输出效率高。不过随着业务数据数量的增多和系统容量需求的增大,基于Crossbar架构实现的共享总线型交换系统面临着存储资源的压力和布线难以实现的困境。特别是为了解决队头阻塞问题和满足N倍加速比的需求,大部分的交换系统采用了输入和交叉节点联合排队CICQ(CombinedInput and Crossbar Queueing)结构,该结构在交叉节点引入了缓存,进一步加剧了板卡的缓存资源压力。
西安电子科技大学在其申请的专利文献“高速大容量聚合式交叉节点输出联合排队的交换系统”(申请号:202310308728.X,申请公布号:CN 116389390 A)中公开了一种时高速大容量交换系统。该交换系统包括输入处理模块、大容量交换处理单元和输出处理模块。所述输入模块,用于对输入的所有以太网帧数据进行聚合轮询,并查找和学习与以太网帧数据匹配的帧信息,从而将以太网帧数据写入大容量交换处理单元中对应的交叉节点;所述大容量交换处理单元,用于对写入的以太网帧数据按照优先级进行仲裁以及调度,以产生入队请求;所述输出处理模块,用于根据入队请求决定调度出的以太网帧数据是否入队还是丢弃,并且当自身队列有以太网帧数据时进行出队。该交换系统存在的不足之处是,只在单片FPGA上实现交换系统,并且采用了流水线的方式来实现交换速率的提升,需要更多的资源,随着交换系统容量需求的提高,片上的存储资源不足,逻辑布线也难以实现。
西安电子科技大学大学在其申请的专利文献“基于共享交叉节点的横向拆分Crossbar交换网络系统”(申请号:202310389689.0,申请公布号:CN 116455839 A)中公开了一种基于共享交叉节点的横向拆分Crossbar交换系统。该交换系统包括:设置在每片FPGA上的若干输入队列管理模块、普通交叉节点缓存模块、共享交叉节点缓存模块、公平轮询调度RR(Round Robin)列仲裁模块、高速串行传输协议Aurora接口模块、加权循环调度算法WRR(Weighted Round Robin)独立列仲裁模块和若干配置接口。使用共享交叉节点缓存避免了片间仲裁带来的时延导致调度效率降低的问题,理论上只要共享交叉节点缓存足够大,横向拆分的WRR独立列仲裁调度与不拆分时的调度有一样的效率,提高了整个交换系统的调度效率,进而提高链路传输效率。但是,该交换系统的实现方法仍然存在两点不足之处是:其一,将Crossbar的纵向结构进行了拆分,并且跨片的数据传输采用了单一的共享交叉节点的方案,使得跨片共享总线与本地共享总线之间无法实现公平轮询,浪费了交换系统的传输效率。其二,跨片传输的数据无法进行优先级调度,对于组播数据帧无法解决对头阻塞问题。
西安电子科技大学在其申请的专利文献“FPGA片间互连的Crossbar交换单元设计方法”(申请号:201910584573.6,申请公布号:CN 110290074 A)中公开了一种F P G A片间互连的Crossbar交换单元设计方法。该方法主要解决现有专用大容量Crossbar交换单元受PFGA芯片资源受限制的问题。该方法的实现方案是:确定数据帧要去往的交叉节点位置;再根据交叉节点位置搬移数据帧:若交叉节点位于本芯片,直接将数据帧搬移至本芯片的交叉节点,若交叉节点位于另一个芯片,先将其送至内帧成帧模块添加必要帧信息,再通过Aurora协议的高速串行收发器GTH传输至另一个芯片的内帧拆帧模块;内帧拆帧模块解析帧信息后将数据帧搬移至另一个芯片中的交叉节点。该方法虽然能够支持FPGA片间互连,减小芯片资源对交换容量的限制,降低单片FPGA资源的占用比例,可用于专用大容量交换机。但是,该方法仍然存在以下三点不足之处,其一,将Crossbar架构数据的分离点简单的设置在了Crossbar交叉节点之间,跨片的数据帧在单边板卡上调度过之后,重新进入另一片板卡的Crossbar交叉节点中,不仅增加的调度的复杂度,还增大了跨片数据帧的调度时延。其二,跨片的共享交叉节点也难以容纳跨片的数据量,由此导致交换系统效率的浪费。其三,由于跨片数据帧和本片数据帧的优先级调度分离,直接将数据传输至交叉节点之间还会导致优先级调度机制的失效,难以保障高优先级数据帧的传输质量。
发明内容
本发明目的在于针对上述已有技术的不足,提供一种共享队列缓存纵向拆分的Crossbar交换系统、实现方法以及拆分方法。旨在解决已有技术的片上的存储资源不足,逻辑布线也难以实现;浪费交换系统的传输效率;组播数据帧无法解决对头阻塞以及难以保障高优先级数据帧的传输质量问题。
为了实现上述目的,本发明的技术思路为:由于本发明Crossbar交换系统中的跨片传输模块,两路共享总线共用一组跨片传输接口,通过片间的GTH接口来传输总线数据。以4条共享总线的系统为例,单片FPGA板卡上仅添加了两组跨片传输模块就节省了一半的数据接口的输入输出处理单元、流分类和分组处理单元和Crossbar交叉节点。解决了现有技术总线条数增多时系统存储资源压力大的问题。由于本发明Crossbar的实现方法中采用了纵向拆分的方法,保留了Crossbar架构的纵向结构,在数据帧的输出轮询当中,能够保障多条共享总线的公平轮询,并且数据帧的纵向输出不存在分离点,不必采用额外的存储资源满足跨片总线传输的需求,以此解决了横向拆分共享总线的轮询权重不同,以及需要资源来满足跨片传输接口的缓存容量的问题。由于本发明的实现方法将跨片传输的分离点从Crossbar的交叉节点之间,改为了队列管理模块之前,通过出端口解耦合模块对数据进行分流,使得跨片传输数据帧直接进入队列管理模块,方便单片FPGA上对输出数据进行统一调度,解决了现有技术方案中对交叉节点进行拆分引入了传输时延的问题,以及输出调度分离导致组播数据帧仍具有对头阻塞问题,高优先级数据帧难以保障传输质量的问题。由于本发明的拆分方法,对跨片数据的传输采用了片间直连的GTH接口,采用Aurora协议全双工模式,两条共享总线共用一组跨片传输接口,四条共享总线仅需要两组跨片传输处理模块就可以完成跨片数据的传输,而且片间Aurora IP核采用四路绑定的方式,可以较好的适配256位宽的系统,能够完成100G容量的总线数据的跨片传输。
实现本发明目的的技术方案如下:
本发明的系统包括:分组处理模块、出端口解耦合模块、队列管理模块、跨片发送模块、共享队列管理模块;其中:
所述分组处理模块,用于解析数据帧,根据数据帧的目的IP地址和传输类型信息,查找转发表获得数据帧的出端口号,根据需要对数据帧的头部信息进行修改,并且将修改后的数据帧的信息传输给后级模块,丢弃不满足传输要求的数据帧;
所述出端口解耦合模块,用于根据数据帧的是跨片数据还是非跨片数据,在队列管理模块空闲时,将非跨片数据传输至队列管理模块,在跨片发送模块空闲时,将跨片数据传输至跨片发送模块;
所述队列管理模块,用于对非跨片数据帧进行缓存和调度,根据数据帧的出端口号和优先级信息选择入队队列,根据入队条件判断数据帧是否入队,缓存的数据帧根据绝对优先的调度策略选择出队队列,再根据队列的链路信息读取数据帧传输给Crossbar交叉节点当中;
所述跨片发送模块,用于对跨片数据进行传输,将数据帧的格式从局部总线(Local bus)格式转换为高速总线协议(Axi,Advanced eXtensible Interface)格式,同时对数据进行跨时钟域处理,将数据时钟转换为Aurora IP核的用户时钟,通过跨片传输接口将数据帧从本片FPGA传输至另一片FPGA上;
所述共享队列管理模块,用于跨片数据帧进行缓存和调度,其具体处理方法与队列管理模块相同。
本发明基于共享队列缓存纵向拆分的Crossbar实现方法的具体步骤包括如下:
步骤1,根据物理板卡的连接方式,数据帧的转发通道跟出端口号相对应,分组处理模块根据数据帧的目的IP地址信息和数据帧的转发类型,查表获得数据帧的出端口号,根据端口在FPGA板卡上的划分来区分跨片数据和非跨片数据;
步骤2,出端口解耦合模块接收本片队列管理模块和跨片发送模块的反馈,根据分组处理模块的划分结果,待本片队列管理模块或跨片发送模块准备接收数据之后,将数据传输给本片队列管理模块或跨片发送模块,实现跨片数据和非跨片数据的分离,将跨片传输引起的传输时延和调度时延同化到了队列管理模块的调度时延当中;
步骤3,本片的队列管理模块只接收出端口为本片物理通道的数据帧,队列管理模块采用了虚拟输出队列(VOQ,Virtual Output Queue)的方式缓存管理数据帧;根据数据帧的出端口号和优先级信息,为其分配队列;根据数据帧的长度和当队列数据帧长度和当前节点数据帧长度来判断数据帧是否满足入队条件;通过对不同优先级的数据帧设置不同的队列门限和节点门限,以及在出队轮询时采用绝对有限的轮询策略来保障高优先级的传输质量;跨片的队列管理模块仅接收跨片接收模块收到的数据帧,该数据帧的出端口号跟该片的物理通道相对应,该模块的处理方法跟本片的队列管理模块相同;
步骤4,Crossbar的横向交叉节点的个数与本片的物理通道数相对应,将Crossbar的横向交叉节点进行分离,出端口对应本片物理通道的交叉节点称为本片交叉节点,出端口对应跨片物理通道的交叉节点称为跨片交叉节点,两类交叉节点的处理方式相同,每个交叉节点存在十个最长帧的缓存空间,缓存空间足以满足数据帧的传输时,向前级反馈,从队列管理模块或者共享队列管理模块读取数据帧,根据其数据帧的出端口号,写入到对应的交叉节点之中;交叉节点中存在数据帧时,纵向的交叉节点轮询模块根据RR公平轮询的算法,依次读取交叉节点中的数据帧,发送到对应的出队总线模块当中。
本发明基于共享队列缓存纵向拆分方法的步骤如下:
步骤1,跨片发送模块在没有收到跨片的反压信号时,向前级反馈,接收出端口解耦合模块的数据帧,将数据缓存到普通先入先出队列(FIFO,First Input First Output)模块当中,在缓存的过程中根据Local bus格式的数据帧信息,将其转换为对应Axi格式的数据帧信息,然后再缓存到异步FIFO当中,写入时钟为系统时钟,读出时钟为Aurora IP核的用户时钟,完成时钟域的转换,将数据传输到Aurora IP核的发送端口;
步骤2,接收缓存模块对跨片数据帧的数据进行接收校验和缓存,预留十个最长帧的缓存余量来应对跨数据传输处理过片程中产生的数据帧的突发,在数据帧缓存空间超过八个最长帧之后通过跨片的通用输入输出口(GPIO,General-purpose input/output)接口进行跨片的反压,最终反压到出端口解耦合模块,超出系统处理能力的数据帧由分组处理模块的统一丢弃;
步骤3,跨片接收模块时跨片发送模块的逆过程,将数据帧进行格式和时钟域转换之后传输给共享队列缓存模块,如果数据帧不满足入队要求,将数据帧进行丢弃。
本发明与现有技术相比具有以下优点:
第一,由于本发明Crossbar交换系统中的跨片传输模块,对跨片数据的传输采用了片间直连的GTH接口,采用Aurora协议全双工模式,单条总线的跨片数据的传输仅需要单向的数据传输操作,可以两条共享总线共用一组跨片传输接口,克服了现有技术总线条数增多时系统存储资源压力大的问题,较好的节省了片上资源的压力,避免了浪费,同时四路绑定的Aurora IP核模式可以较好的适配256总线位宽的系统,使得本发明的Crossbar交换系统具有缓存资源压力小,布线布局容易实现,多片FPGA板卡实现业务数据容量大的优点。
第一,由于本发明的实现方法采用了纵向拆分的方法,保留了Crossbar架构的纵向结构,在数据帧的输出轮询当中,能够保障多条共享总线的公平轮询,并且数据帧的纵向输出不存在分离点,不必采用额外的存储资源满足跨片总线传输的需求。克服了现有技术存在的横向拆分共享总线的轮询权重不同,以及需要资源来满足跨片传输接口的缓存容量的缺陷,使采用本发明的实现方法具有系统传输效率利用率高的优点。
第二,由于本发明的拆分方法将跨片传输的分离点从Crossbar的交叉节点之间,改为了队列管理模块之前,通过出端口解耦合模块对数据进行分流,使得跨片传输数据帧直接进入队列管理模块,方便单片FPGA上对输出数据进行统一调度。克服了现有技术方案中对交叉节点进行拆分引入了传输时延,输出调度分离导致组播数据帧仍具有对头阻塞,以及高优先级数据帧难以保障传输质量的不足。使本发明具有数据传输时延小,高优先级数据帧服务质量可以保障的优点。
附图说明
图1为本发明系统的方框图;
图2为本发明系统中模块功能实现方法的流程图;
图3为本发明拆分方法的流程图;
图4为本发明跨片传输与非跨片传输时延对比图;
图5为本发明纵向拆分Crossbar多片级联实现方案图;
图6为本发明跨片传输仿真波形图。
具体实施方式
下面结合附图和实施例对本发明做进一步的描述。
参照图1,对本发明的系统做进一步的描述。
本发明的系统包括:分组处理模块、出端口解耦合模块、队列管理模块、跨片发送模块、共享队列管理模块;其中:
所述分组处理模块,用于解析数据帧,根据数据帧的目的IP地址和传输类型信息,实际案例中,有面向连接和非面向连接两种数据帧转发方式,面向连接数据帧查找入栈表,非面向连接数据帧查找IP到出端口转发表,获得数据帧的出端口号,同时面向连接数据帧需要对数据帧的头部信息进行修改添加目的卫星号字段,并且将修改后的数据帧的信息传输给出端口解耦合模块,对于不满足入队要求或者存在跨片反压状态的数据帧进行丢弃操作。
所述出端口解耦合模块,用于接收跨片发送模块和队列管理模块的反馈信息,根据数据帧的是跨片数据还是非跨片数据,在队列管理模块空闲时将非跨片数据传输至队列管理模块,在跨片发送模块空闲时将跨片数据传输至跨片发送模块。
所述队列管理模块,用于对非跨片数据帧进行缓存和调度,根据数据帧的出端口号和优先级信息选择入队队列,根据入队条件判断数据帧是否入队,缓存的数据帧根据绝对优先的调度策略选择出队队列,再根据队列的链路信息读取数据帧传输给Crossbar交叉节点当中。
所述跨片发送模块,用于对跨片数据进行传输,将数据帧的格式从Local bus格式转换为Axi格式,同时对数据进行跨时钟域处理,将数据时钟转换为Aurora IP核的用户时钟,通过跨片传输接口将数据帧从本片FPGA传输至另一片FPGA上。
所述共享队列管理模块,用于跨片数据帧进行缓存和调度,其具体处理方法与队列管理模块相同。
参照图2,对本发明的Crossbar实现方法实施例的具体实现步骤作进一步的描述。
步骤1,根据物理板卡的连接方式,星地物理端口连接在本片FPGA上,星间物理端口连接在跨片FPGA上,数据帧的转发通道跟出端口号相对应,分组处理模块根据数据帧的目的IP地址信息和数据帧的转发类型,查表获得数据帧的出端口号,根据端口在FPGA板卡上的划分,发往星间端口的数据帧为跨片数据和发往星地端口的数据帧为非跨片数据。
所述的跨片数据和非跨片数据指的是,传输到不同物理端口的两类数据帧,根据物理端口在实际板卡上的连接方式,将传输到本片物理端口的数据帧称为非跨片数据,传输到非本片物理端口的数据帧称为跨片数据。
步骤2,出端口解耦合模块接收本片队列管理模块和跨片发送模块的反馈,根据分组处理模块的划分结果,待本片队列管理模块或跨片发送模块准备接收数据之后,将数据传输给本片队列管理模块或跨片发送模块,实现跨片数据和非跨片数据的分离,将跨片传输引起的传输时延和调度时延同化到了队列管理模块的调度时延当中,从而避免了因为引入了跨片传输时延导致的系统传输效率的浪费,提高了系统传输效率的利用率。
步骤3,本片的队列管理模块只接收出端口为本片物理通道的数据帧,队列管理模块采用了VOQ虚拟队列的方式缓存管理数据帧;根据数据帧的出端口号和优先级信息,为其分配队列。根据数据帧的长度和当队列数据帧长度和当前节点数据帧长度来判断数据帧是否满足入队条件。通过对不同优先级的数据帧设置不同的队列门限和节点门限,以及在出队轮询时采用绝对有限的轮询策略来保障高优先级的传输质量。跨片的队列管理模块仅接收跨片接收模块收到的数据帧,该数据帧的出端口号与该片的物理通道相对应,该模块的处理方法跟本片的队列管理模块相同。
所述的VOQ虚拟队列的方式是将物理RAM缓存,按照链路的方式,划分为64个队列,队列数等于端口数乘以优先级数,共计8个端口,每个端口划分8个优先级,根据数据帧的出端口号和优先级信息,为其缓存到对应的队列当中,数据帧的队列号等于端口号*8+优先级,根据数据帧的长度大小为其分配相匹配的缓存空间,将相同出端口相同优先级的数据帧的缓存单元连接起来。
所述的入队条件是指每个物理端口称为一个节点,根据物理端口的业务帧需求,每个节点划分了8个优先级队列,数据帧的长度加上现有的队列长度或者节点长度不大于队列门限或者节点门限时,该数据帧满足入队条件;通过不同的队列门限和节点门限的设置,可以为不同优先级不同节点划分不同的服务质量,门限越高的队列或者节点,其服务质量越高,队列门限之和不能超过节点门限,节点门限之和不能超过总缓存空间。
所述的队列门限是队列所能使用的缓存空间的最大值,当新的数据帧的缓存空间需求加上当前队列中已有的缓存空间大于了队列门限时,数据帧入队失败;不同优先级拥有不同的队列门限,高优先级队列拥有更高的门限来保障其传输质量。
所述的节点门限是节点所能使用的缓存空间的最大值,当新的数据帧的缓存空间需求加上当前节点中已有的缓存空间大于了队列门限时,数据帧入队失败;不同的节点拥有不同的节点门限,节点与实际物理接口相对应,传输质量要求更高的物理接口对应的节点拥有更高的节点门限。
所述的绝对有限的轮询策略在多个优先级队列同时有数据帧需要传输时,会优先轮询高优先级的队列,待高优先级队列中的所有数据帧都传输完成之后,再继续往低优先级轮询,以此类推,通过将分离点设置在队列管理模块之前,方便对跨片数据和本片数据进行统一的优先级管理,避免了因数据的跨片传输导致的低优先级抢占高优先级传输资源的情况,保障了高优先级数据帧的传输质量。
步骤4,Crossbar的横向交叉节点的个数与本片的物理通道数相对应,将Crossbar的横向交叉节点进行分离,出端口对应本片物理通道的交叉节点称为本片交叉节点,出端口对应跨片物理通道的交叉节点称为跨片交叉节点,两类交叉节点的处理方式相同,每个交叉节点存在十个最长帧的缓存空间,缓存空间足以满足数据帧的传输时,向前级反馈,从队列管理模块或者共享队列管理模块读取数据帧,根据其数据帧的出端口号,写入到对应的交叉节点之中;交叉节点中存在数据帧时,纵向的交叉节点轮询模块根据RR公平轮询的算法,依次读取交叉节点中的数据帧,发送到对应的出队总线模块当中。
所述的RR公平轮询的算法在多个交叉节点有数据帧需要传输时,会按照就近原则,根据上次轮询的交叉节点向最近的下一个交叉节点轮询,传输完一个完整的数据帧之后,继续向下一个交叉节点轮询,以此类推,因为纵向拆分保留了Crossbar交换架构的纵向结构,所以能够保障各个共享总线的公平轮询,提高了系统的利用率。
参照图3,对本发明的拆分方法实施例的具体实现步骤作进一步的描述。
本发明Crossbar交换系统的一种基于共享队列缓存纵向拆分方法,跨片数据的传输采用了片间直连的GTH接口,采用Aurora协议全双工模式,两条共享总线共用一组跨片传输接口。该拆分方法的步骤如下:
步骤1,跨片发送模块在没有收到跨片的反压信号时,向前级反馈,接收出端口解耦合模块的数据帧,将数据缓存到普通FIFO当中,在缓存的过程中根据Local bus格式的数据帧信息,将其转换为对应Axi格式的数据帧信息,然后再缓存到异步FIFO当中,写入时钟为系统时钟,读出时钟为Aurora IP核的用户时钟,完成时钟域的转换,将数据传输到Aurora IP核的发送端口。
步骤2,接收缓存模块对跨片数据帧的数据进行接收校验和缓存,预留十个最长帧的缓存余量来应对跨数据传输处理过片程中产生的数据帧的突发,在数据帧缓存空间超过八个最长帧之后通过跨片的GPIO接口进行跨片的反压,最终反压到出端口解耦合模块,超出系统处理能力的数据帧由分组处理模块统一丢弃。
步骤3,跨片接收模块时跨片发送模块的逆过程,将数据帧进行格式和时钟域转换之后传输给共享队列缓存模块,如果数据帧不满足入队要求,将该数据帧进行丢弃。
参照图4,对本发明的避免传输时延的影响作进一步的描述。
如图4所示,非跨片传输的数据帧的分组传输周期仅包含调度时间和分组传输时间,而跨片数据帧的分组传输周期还额外增加了跨片时延和分组传输时延,并且由于跨片传输中设计多个模块的处理。这部分的时延会远大于非跨片传输的分组传输周期,传输引入了调度时延和分组传输时延。由于输入端口和交叉节点之间的交互关系,这些时延会导致分组传输周期的大大增加,从而浪费总线的处理能力。为了解决这一问题,本发明采用CICQ的架构方式,由于数据不在发送总线单元中存储,本发明采用纵向拆分的方式,将交叉节点与接收总线分离,其次采用的共享队列缓存的方式,将数据传输的分离点设为了输入总线的分组处理单元与队列缓存之间。由于共享队列缓存的存在,跨片的输入总线存在缓存能力,可以容纳由跨片传输带来的数据延迟导致的数据累积的问题,同时由于分组处理和共享队列管理单元之间不存在直接交互,所以分组的传输周期不再受传输时延的制约,从而避免了分组传输速率的浪费。
参照图5,对本发明的级联特性作进一步的描述。
由于本发明采用了纵向拆分的方式,并且多片的系统架构具有很好的对称性,所以在多片FPGA上级联实现也十分方便。如图5所示,在三片FPGA上实现Crossbar纵向拆分架构的实现方案,每个FPGA上的本片数据传输操作与上述系统相同,跨片数据传输由一组跨片传输接口增加为了两组跨片传输接口。以三条总线的交换系统为例,每片FPGA仅需要承载一条总线的缓存和三分之一个Crossbar的交叉节点数量,增加了两组跨片传输接口。由于每片FPGA之间是两两之间传输,新增的FPGA并不会对数据帧的跨片传输引入新的时延,可以大大节省FPGA的存储资源。并且在多片的FPGA交互中,并未因为FPGA数量的增加而增大数据传输的时延,可以保障数据的传输效率。
下面结合仿真实验对本发明的效果做进一步的说明。
1.仿真实验条件。
本发明仿真实验的硬件平台为:处理器为Intel i7 5930k CPU,主频为3.5GHz,内存16GB。
本发明仿真实验的软件平台采用:Windows 11操作系统和vivado 2019.2和Questasim 16.3。
2.仿真内容及其结果分析。
本发明的仿真实验是采用本发明的方法在工程文件中建立本片的硬件程序,然后在仿真文件中镜像一个本片硬件程序作为跨片硬件程序。两组程序的跨片传输接口采用直连的方式,在本片的硬件程序中新增了发帧模块作为数据帧的源头,通过设置发送数据帧的目的IP地址和本片硬件程序的静态表项,来完成跨片数据的传输,如图6所示.
图6中的跨片发送单元分组下的信号是本片硬件程序中产生的发送数据帧,其中pkt_tx_data是数据帧的数据,pkt_ta_dval是数据帧的有效标识,pkt_tx_sop是数据帧的起始标识,pkt_tx_eop是数据帧的结束标识,pkt_tx_mod是数据帧的有效字节数,pkt_tx_rdy是跨片反压信号。跨片接收单元分组下的信号是跨片硬件程序中接收到的数据帧,具体信号与跨片发送单元类似。
从仿真结果可以看出,跨片总线数据的传输时延远远大于数据分组传输时间,而数据的跨片时延并未对数据的分组传输周期产生影响,跨片发送单元发送的数据帧的频率与跨片接收单元接收数据帧的频率相同。从而可以验证跨片传输接口可以满足总线跨片传输的需求,并且跨片传输时延并未对数据的传输产生影响,保障了数据的有效传输效率。
Claims (10)
1.共享队列缓存纵向拆分的Crossbar交换系统,其特征在于,该系统包括:分组处理模块、出端口解耦合模块、队列管理模块、跨片发送模块、共享队列管理模块;其中:
所述分组处理模块,用于解析数据帧,根据数据帧的目的IP地址和传输类型信息,查找转发表获得数据帧的出端口号,同时根据需要对数据帧的头部信息进行修改,并且将修改后的数据帧的信息传输给后级模块,丢弃不满足传输要求的数据帧;
所述出端口解耦合模块,用于根据数据帧是跨片数据还是非跨片数据,在队列管理模块空闲时,将非跨片数据传输至队列管理模块,在跨片发送模块空闲时,将跨片数据传输至跨片发送模块;
所述队列管理模块,用于对非跨片数据帧进行缓存和调度,根据数据帧的出端口号和优先级信息选择入队队列,根据入队条件判断数据帧是否入队,缓存的数据帧根据绝对优先的调度策略选择出队队列,再根据队列的链路信息读取数据帧传输给Crossbar交叉节点当中;
所述跨片发送模块,用于对跨片数据进行传输,将数据帧的格式从Local bus格式转换为Axi格式,同时对数据进行跨时钟域处理,将数据时钟转换为Aurora IP核的用户时钟,通过跨片传输接口将数据帧从本片FPGA传输至另一片FPGA上;
所述共享队列管理模块,用于跨片数据帧进行缓存和调度,其具体处理方法与队列管理模块相同。
2.根据权利要求1所述Crossbar交换系统的一种共享队列缓存纵向拆分的Crossbar实现方法,其特征在于,Crossbar的横向交叉节点分离,Crossbar架构包括本地交叉节点和跨片交叉节点,分组处理模块和队列管理模块之间设置数据的分离点;该方法的具体步骤包括如下:
步骤1,根据物理板卡的连接方式,数据帧的转发通道跟出端口号相对应,分组处理模块根据数据帧的目的IP地址信息和数据帧的转发类型,查表获得数据帧的出端口号,根据端口在FPGA板卡上的划分来区分跨片数据和非跨片数据;
步骤2,出端口解耦合模块接收本片队列管理模块和跨片发送模块的反馈,根据分组处理模块的划分结果,待本片队列管理模块或跨片发送模块准备接收数据之后,将数据传输给本片队列管理模块或跨片发送模块,实现跨片数据和非跨片数据的分离,将跨片传输引起的传输时延和调度时延同化到队列管理模块的调度时延当中;
步骤3,本片的队列管理模块只接收出端口为本片物理通道的数据帧,队列管理模块采用了VOQ虚拟队列的方式缓存管理数据帧;根据数据帧的出端口号和优先级信息,为其分配队列;根据数据帧的长度和当队列数据帧长度和当前节点数据帧长度判断数据帧是否满足入队条件;通过对不同优先级的数据帧设置不同的队列门限和节点门限,以及在出队轮询时采用绝对有限的轮询策略来保障高优先级的传输质量;跨片的队列管理模块仅接收跨片接收模块收到的数据帧,该数据帧的出端口号跟该片的物理通道相对应,跨片的队列管理模块的处理方法与本片的队列管理模块相同;
步骤4,Crossbar的横向交叉节点的个数与本片的物理通道数相对应,将Crossbar的横向交叉节点进行分离,出端口对应本片物理通道的交叉节点称为本片交叉节点,出端口对应跨片物理通道的交叉节点称为跨片交叉节点,两类交叉节点的处理方式相同,每个交叉节点存在十个最长帧的缓存空间,缓存空间足以满足数据帧的传输时向前级反馈,从队列管理模块或者共享队列管理模块读取数据帧,根据其数据帧的出端口号,写入到对应的交叉节点之中;交叉节点中存在数据帧时,纵向的交叉节点轮询模块根据RR公平轮询的算法,依次读取交叉节点中的数据帧,发送到对应的出队总线模块当中。
3.根据权利要求2所述的基于共享队列缓存纵向拆分的Crossbar实现方法,其特征在于,步骤1中所述的跨片数据和非跨片数据指的是,传输到不同物理端口的两类数据帧,根据物理端口在实际板卡上的连接方式,将传输到本片物理端口的数据帧称为非跨片数据,传输到非本片物理端口的数据帧称为跨片数据。
4.根据权利要求2所述的基于共享队列缓存纵向拆分的Crossbar实现方法,其特征在于,步骤3中所述的VOQ虚拟队列的方式是将物理RAM缓存,按照链路的方式,划分为n个队列,n的取值等于端口数乘以优先级数,根据数据帧的出端口号和优先级信息,为其缓存到对应的队列当中,根据数据帧的长度大小为其分配相匹配的缓存空间,将连接相同出端口并且是相同优先级的数据帧的缓存单元连接起来。
5.根据权利要求2所述的基于共享队列缓存纵向拆分的Crossbar实现方法,其特征在于,步骤3中所述的入队条件是指每个物理端口称为一个节点,每个节点划分了c个优先级队列,c的取值根据所需要的优先级数量而定;当数据帧的长度加上现有的队列长度或者节点长度不大于队列门限或者节点门限时,该数据帧满足入队条件;通过不同的队列门限和节点门限的设置,可以为不同优先级不同节点划分不同的服务质量,门限越高的队列或者节点,其服务质量越高,队列门限之和不能超过节点门限,节点门限之和不能超过总缓存空间。
6.根据权利要求2所述的基于共享队列缓存纵向拆分的Crossbar实现方法,其特征在于,步骤3中所述的队列门限是队列所能使用的缓存空间的最大值,当新的数据帧的缓存空间需求加上当前队列中已有的缓存空间大于或等于队列门限时,数据帧入队失败;不同优先级拥有不同的队列门限,高优先级队列拥有更高的门限来保障其传输质量。
7.根据权利要求2所述的基于共享队列缓存纵向拆分的Crossbar实现方法,其特征在于,步骤3中所述的节点门限是节点所能使用的缓存空间的最大值,当新的数据帧的缓存空间需求加上当前节点中已有的缓存空间大于或等于队列门限时,数据帧入队失败;不同的节点拥有不同的节点门限,节点与实际物理接口相对应,传输质量要求更高的物理接口对应的节点拥有更高的节点门限。
8.根据权利要求2所述的基于共享队列缓存纵向拆分的Crossbar实现方法,其特征在于,步骤3中所述绝对有限的轮询策略指的是,在多个优先级队列同时有数据帧需要传输时,优先轮询高优先级的队列,待高优先级队列中的所有数据帧均传输完成之后,再继续往低优先级轮询,以此类推。
9.根据权利要求2所述的基于共享队列缓存纵向拆分的Crossbar实现方法,其特征在于,步骤4中所述的RR公平轮询的算法是指,在多个交叉节点有数据帧需要传输时,按照就近原则,根据上次轮询的交叉节点向最近的下一个交叉节点轮询,传输完一个完整的数据帧之后,继续向下一个交叉节点轮询,以此类推。
10.根据权利要求1所述Crossbar交换系统的一种基于共享队列缓存纵向拆分方法,其特征在于,跨片数据的传输采用了片间直连的GTH接口,采用Aurora协议全双工模式,两条共享总线共用一组跨片传输接口;该拆分方法的步骤包括:
步骤1,跨片发送模块在没有收到跨片的反压信号时向前级反馈,接收出端口解耦合模块的数据帧,将数据缓存到普通FIFO当中,在缓存的过程中根据Local bus格式的数据帧信息,将其转换为对应Axi格式的数据帧信息,然后再缓存到异步FIFO当中,写入时钟为系统时钟,读出时钟为Aurora IP核的用户时钟,完成时钟域的转换,将数据传输到Aurora IP核的发送端口;
步骤2,接收缓存模块对跨片数据帧的数据进行接收校验和缓存,预留十个最长帧的缓存余量,以应对跨数据传输处理过片程中产生的数据帧的突发,在数据帧缓存空间超过八个最长帧之后,通过跨片的GPIO接口进行跨片的反压,最终反压到出端口解耦合模块,超出系统处理能力的数据帧由分组处理模块的统一丢弃;
步骤3,跨片接收模块时跨片发送模块的逆过程,将数据帧进行格式和时钟域转换之后,传输给共享队列缓存模块,如果数据帧不满足入队要求,将数据帧进行丢弃。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410131494.0A CN118075217A (zh) | 2024-01-31 | 2024-01-31 | 共享队列缓存纵向拆分的Crossbar交换系统、实现及拆分方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410131494.0A CN118075217A (zh) | 2024-01-31 | 2024-01-31 | 共享队列缓存纵向拆分的Crossbar交换系统、实现及拆分方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118075217A true CN118075217A (zh) | 2024-05-24 |
Family
ID=91106662
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410131494.0A Pending CN118075217A (zh) | 2024-01-31 | 2024-01-31 | 共享队列缓存纵向拆分的Crossbar交换系统、实现及拆分方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118075217A (zh) |
-
2024
- 2024-01-31 CN CN202410131494.0A patent/CN118075217A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110620731B (zh) | 一种片上网络的路由装置及路由方法 | |
EP1949622B1 (en) | Method and system to reduce interconnect latency | |
US7227841B2 (en) | Packet input thresholding for resource distribution in a network switch | |
US7352694B1 (en) | System and method for tolerating data link faults in a packet communications switch fabric | |
US7502378B2 (en) | Flexible wrapper architecture for tiled networks on a chip | |
US7221652B1 (en) | System and method for tolerating data link faults in communications with a switch fabric | |
KR100653087B1 (ko) | AXI가 적용된 NoC 시스템 및 그 인터리빙 방법 | |
US7406041B2 (en) | System and method for late-dropping packets in a network switch | |
US6754222B1 (en) | Packet switching apparatus and method in data network | |
US8014401B2 (en) | Electronic device and method of communication resource allocation | |
US6768717B1 (en) | Apparatus and method for traffic shaping in a network switch | |
JP3322195B2 (ja) | Lanスイッチ | |
JP2009253422A (ja) | セル分散型スイッチファブリック | |
CN111597141A (zh) | 一种面向超高阶互连芯片的分级交换结构及死锁避免方法 | |
EP1322079A2 (en) | System and method for providing gaps between data elements at ingress to a network element | |
CN118075217A (zh) | 共享队列缓存纵向拆分的Crossbar交换系统、实现及拆分方法 | |
US5748917A (en) | Line data architecture and bus interface circuits and methods for dual-edge clocking of data to bus-linked limited capacity devices | |
CN109450823B (zh) | 一种基于聚合式交叉节点的网络大容量交换装置 | |
Latif et al. | Performance evaluation of modern network-on-chip router architectures | |
Mutter | A novel hybrid memory architecture with parallel DRAM for fast packet buffers | |
CN118509395A (zh) | 一种48通道48端口PCIE 5.0 Switch非阻塞交换架构 | |
US20040131065A1 (en) | Distributed switch fabric network and method | |
EP1432179B1 (en) | Multi-channel network node and method for routing/switching data | |
US7092404B1 (en) | Interposer chip for protocol conversion | |
CN116455839A (zh) | 基于共享交叉节点的横向拆分Crossbar交换网络系统 |
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 |