基于共享交叉节点的横向拆分Crossbar交换网络系统
未命名
07-23
阅读:112
评论:0
基于共享交叉节点的横向拆分crossbar交换网络系统
技术领域
1.本发明属于通信技术领域,具体涉及一种基于共享交叉节点的横向拆分crossbar交换网络系统。
背景技术:
2.目前,主流的单级交换结构主要分为共享总线,共享缓存以及crossbar三种结构。共享总线结构中所有输入端口的所有数据以时分复用的形式在总线上传输,因此共享总线结构要求总线速率大于所有端口速率之和,才能保证不出现阻塞。因为共享总线结构交换容量受限于总线速率且可扩展性不高,所以一般不使用这种结构。共享缓存结构通过对同一片缓存区域的读写来实现数据帧的接收和发送,相较于共享总线的结构是很容易达到数据的线速处理,但是单一共享缓存的交换容量受限于缓存的写入读取速率,同时也存在无法自由扩充的问题。crossbar交换结构可以很好的解决共享总线结构和共享缓存结构交换容量受限的问题。crossbar交换结构通过使用高速交叉开关矩阵电路实现多输入到多输出的通道通断,任何一个输入到输出的通道开关均不影响其他已连接的通道,可以实现了严格无阻塞。crossbar交换网络按照排队策略区分为输入排队(input queued,iq)、输出排队(out queued,oq)、输入输出联合排队(combined input and output queued,cioq)、交叉节点联合排队(combined input and crosspoint queued,cicq)。其中输入交叉节点联合排队可以有效的隔离输入端和输出端,而且便于扩展交换容量,因此输入交叉节点联合排队结构是目前被广泛采用的一种交换网络结构。在cicq交换结构中输入队列管理模块共享缓存和crossbar交叉节点缓存会消耗大量存储资源。当单片fgpa不足以支持当前交换容量所需求的存储资源时,使用多片fpga就能很好的解决存储资源不足的问题。如果需求中交换所要承载的物理端口数量大于一片fpga所能承载的数量的时候,使用两片fpga共同完成交换的功能是一个可行的解决方案。但是,使用两片fpga实现一个交换系统存在一个天然的问题,就是两片fpga之间的数据或信号交互存在很大的时延。以横向拆分的为例,横向拆分保留了从输入总线到同行交叉节点的逻辑,所以输入队列管理模块与同行交叉节点缓存的交互是在同一片fpga内部完成的,但是对同一列交叉节点缓存进行输出仲裁时,传输的数据和交互信号需要跨片传输。如何缓解跨片传输数据或者信号带来的调度效率的降低成为了一个待解决的问题。
技术实现要素:
3.为了解决现有技术中存在的上述问题,本发明提供了一种基于共享交叉节点的横向拆分crossbar交换网络系统。本发明要解决的技术问题通过以下技术方案实现:
4.本发明实施例提供了一种基于共享交叉节点的横向拆分crossbar交换网络系统,包括:设置在每片fpga上的若干输入队列管理模块、普通交叉节点缓存模块、共享交叉节点缓存模块、rr列仲裁模块、高速aurora接口模块、wrr独立列仲裁模块和若干配置接口,其中,
5.所述若干输入队列管理模块用于接收来自物理端口的数据帧,依据数据帧的目的端口在数据帧头部添加tag头;
6.所述普通交叉节点缓存模块用于接收添加tag头的数据帧,并根据所述目的端口将添加tag头的数据帧暂存到不同的普通交叉节点缓存中;
7.所述共享交叉节点缓存模块用于接收并存储所述片间高速aurora接口模块中来自另一片fpga的数据帧,并与本片pfga上同一列的普通交叉节点缓存中的数据帧参与wrr独立列仲裁模块的仲裁;
8.所述rr列仲裁模块用于根据同一列上普通交叉节点缓存的发送请求给出仲裁结果,并且依据仲裁结果将本片fpga中添加tag头的数据帧从对应的普通交叉节点缓存搬移到所述片间高速aurora接口模块的发送部分,形成待发送数据帧;
9.所述片间高速aurora接口模块用于发送所述待发送数据帧到另一片fpga片间高速aurora接口模块的接收部分,并且接收另一片fpga中片间高速aurora接口模块发送部分输出的数据帧,传输至本片fpga的共享交叉节点缓存模块;
10.所述wrr独立列仲裁模块用于接收普通交叉节点缓存模块和共享交叉节点缓存模块中同一列的交叉节点缓存发送的请求信号并进行加权轮询调度,将轮询调度到的交叉节点缓存中的数据帧搬移到输出端口;
11.所述若干配置接口用于配置所述wrr独立列仲裁模块调度所需权值以及所述若干输入队列管理模块的队列最大最小门限。
12.在本发明的一个实施例中,所述普通交叉节点缓存模块包括若干普通交叉节点缓存,所述共享交叉节点缓存模块包括若干共享交叉节点缓存,所述rr列仲裁模块包括若干rr列仲裁子模块,所述片间高速aurora接口模块包括若干第一片间高速aurora接口和若干第二片间高速aurora接口,所述wrr独立列仲裁模块包括若干wrr独立列仲裁子模块,其中,
13.所述若干普通交叉节点缓存呈阵列分布,且每一行的普通交叉节点缓存均连接所述输入队列管理模块;
14.每个所述共享交叉节点缓存连接同一列的所述普通交叉节点缓存,每个所述rr列仲裁子模块连接同一列的所述普通交叉节点缓存,且所述共享交叉节点缓存和所述rr列仲裁子模块的数量之和与所述普通交叉节点缓存的列数相等;
15.所述第一片间高速aurora接口连接本片fpga的rr列仲裁子模块和另一片fpga片间高速aurora接口模块的接收部分,所述第二片间高速aurora接口连接本片fpga的共享交叉节点缓存和另一片fpga中片间高速aurora接口模块发送部分;
16.每个所述wrr独立列仲裁子模块连接同一列的所述普通交叉节点缓存且与所述共享交叉节点缓存位于同一列。
17.在本发明的一个实施例中,所述第一片间高速aurora接口包括第一aurora ip核、第一跨时钟模块和locallink转axi模块,所述第二片间高速aurora接口包括第二aurora ip核、第二跨时钟模块和axi转locallink模块,其中,
18.所述locallink转axi模块用于将所述待发送数据帧格式转换成axi数据格式,得到格式转换的数据帧;所述第一跨时钟模块用于将所述格式转换的数据帧从系统主时钟域跨到aurora ip核的用户侧时钟域,得到第一跨时钟数据帧;所述第一aurora ip核用于将所述第一跨时钟数据帧发送到另一片fpga片间高速aurora接口模块的接收部分;
19.所述第二aurora ip核用于接收来自另一片fpga片间高速aurora接口模块的发送部分输出的数据帧,得到接收数据帧;所述第二跨时钟模块用于将所述接收数据帧从aurora ip核的用户侧时钟域跨到系统主时钟域,得到第二跨时钟数据帧;所述axi转locallink模块用于将所述第二跨时钟数据帧的格式转换成系统内部使用的locallink数据格式。
20.在本发明的一个实施例中,所述第一aurora ip核和所述第二aurora ip核均采用4路绑定形式,线速率可达40gbps。
21.在本发明的一个实施例中,每片fpga上,所述输入队列管理模块的数量为n/2个,n为总线数量;所述普通交叉节点缓存的数量为n2/2个;所述共享交叉节点缓存的数量为n/2个;所述rr列仲裁子模块的数量为n/2个;所述第一片间高速aurora接口的数量为n/2个,所述第二片间高速aurora接口的数量为n/2个,所述wrr独立列仲裁模块的数量为n/2个。
22.在本发明的一个实施例中,所述普通交叉节点缓存和所述共享交叉节点缓存均包括第一存储区域和第二存储区域,其中,
23.所述第一存储区域用于多播或广播数据,所述第二存储区域用于存储单播数据。
24.在本发明的一个实施例中,所述tag头包括单多播标识、队列号、帧长以及目的端口号。
25.在本发明的一个实施例中,根据所述目的端口将所述添加tag头的数据帧传输路径划分为本片传输路径和跨片传输路径,其中,
26.所述本片传输路径依次为:本片fpga的输入队列管理模块、本片fpga的普通交叉节点缓存模块、本片fpga的wrr独立列仲裁模块、与所述目的端口对应的输出端口;
27.所述跨片传输路径依次为:本片fpga的输入队列管理模块、本片fpga的普通交叉节点缓存模块、本片fpga的rr列仲裁模块、本片fpga的高速aurora接口模块、另一片fpga的高速aurora接口模块、另一片fpga的共享交叉节点缓存模块、另一片fpga的wrr独立列仲裁模块、与所述目的端口对应的输出端口。
28.在本发明的一个实施例中,所述本片传输路径的一个数据帧的调度周期包括调取间隔和数据传输时延,所述跨片传输路径的一个数据帧的调度周期包括调取间隔和数据传输时延。
29.与现有技术相比,本发明的有益效果:
30.1、本发明的基于共享交叉节点的横向拆分crossbar交换网络系统将crossbar交换网络横向拆分,采用包括共享交叉节点缓存模块、rr列仲裁模块、高速aurora接口模块的共享交叉节点的方式,只要共享交叉节点能够存储下一个最长帧即almost信号不拉高,就直接接收下来自另一片fpga的数据,再由共享交叉节点去进行仲裁请求的操作,这样仲裁请求和仲裁响应都是在片内完成,这样做的链路传输效率与同一片内数据调度的效率是相同的,唯一不同之处就是数据帧是从另一片过来的,所以交换时延会比单片fpag实现crossbar时更大;使用共享交叉节点缓存避免了片间仲裁带来的时延导致调度效率降低的问题,理论上只要共享交叉节点缓存足够大,横向拆分的wrr独立列仲裁调度与不拆分时的调度有一样的效率,提高了整个交换系统的调度效率,进而提高链路传输效率。
31.2、本发明依据数据帧的目的端口在数据帧头部添加tag头,可以很好的解决关键信息与数据帧到达另一片fpga不同步带来的调度效率降低的问题。
附图说明
32.图1为本发明实施例提供的一种基于共享交叉节点的横向拆分crossbar交换网络系统的结构示意图;
33.图2为本发明实施例提供的tag头的结构示意图;
34.图3为本发明实施例提供的第一片间高速aurora接口和第二片间高速aurora接口的结构示意图;
35.图4为本发明实施例提供的两种典型数据路径的示意图;
36.图5为本发明实施例提供的本片分组调度周期分析图;
37.图6为本发明实施例提供的跨片分组调度周期分析图;
38.图7为本发明实施例提供的跨片使用共享交叉节点调度周期分析图;
39.图8为本发明实施例提供给的基于共享交叉节点的横向拆分crossbar交换网络的设计与系统的跨片传输路径的仿真图。
具体实施方式
40.下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
41.实施例一
42.为了解决fpga单片能达到的交换容量有限的问题以及多片fpga共同构建交换系统时跨片数据和信号的传输时延问题,除了可以将crossbar交换网络横向拆分也可以将crossbar交换网络纵向拆分。纵向拆分是保留了crossbar一列上的交叉节点缓存和列仲裁的逻辑在同一片fpga上,但是对同一行的交叉节点缓存和输入队列管理模块的数据和控制信号都需要跨片传输。所以不论是横向拆分还是纵向拆分,数据和控制信号的跨片传输时延都是存在的。纵向拆分如果不引入共享交叉节点缓存的话,会存在时延巨大引起的调度速率下降和端口之间调度公平性的问题。如果在纵向拆分的结构上引入共享交叉节点缓存又将引入排头阻塞的问题。所以在此选择基于共享交叉节点的横向拆分crossbar交换网络。
43.本实施例提供了一种基于共享交叉节点的横向拆分crossbar交换网络系统。该基于共享交叉节点的横向拆分crossbar交换网络系统包括输入队列管理模块10、横向拆分的crossbar交换网络模块以及配置接口70。输入队列管理模块用于接收来自流分类和分组处理的数据帧,并依据数据帧的目的端口号以及优先级存储到相对应的虚拟输出队列中,并在crossbar交换网络模块准备好时完成将数据帧从虚拟输出队列搬移到crossabr交换网络模块内部缓存中。横向拆分的crossbar交换网络模块用于根据输入队列管理模块10给到的目的端口号完成两片fpga上各个输入输出端口数据的交换。配置接口70用于配置输入队列管理模块内部所需参数,以及wrr独立列仲裁模块各个节点的轮询权值。
44.请参见图1,图1为本发明实施例提供的一种基于共享交叉节点的横向拆分crossbar交换网络系统的结构示意图。具体的,crossbar交换网络被横向拆分到两片fpga上,每片fpga上设置有若干输入队列管理模块10、普通交叉节点缓存模块20、共享交叉节点缓存模块30、rr列仲裁模块40、高速aurora接口模块50、wrr独立列仲裁模块60和若干配置接口70。其中,普通交叉节点缓存模块20、共享交叉节点缓存模块30、rr列仲裁模块40、高速
aurora接口模块50、wrr独立列仲裁模块60形成横向拆分的crossbar交换网络模块,两片fpga采用片间高速aurora接口50进行通信。
45.具体的,每条总线上设置1个输入队列管理模块10,每个输入队列管理模块10用于接收来自物理端口的数据帧,依据数据帧的目的端口在数据帧头部添加tag头。普通交叉节点缓存模块20用于接收添加tag头的数据帧,并根据目的端口将添加tag头的数据帧暂存到不同的普通交叉节点缓存201中。共享交叉节点缓存模块30用于接收并存储片间高速aurora接口模块50中来自另一片fpga的数据帧,并与本片pfga上同一列的普通交叉节点缓存201中的数据帧参与wrr独立列仲裁模块60的仲裁,即共享交叉节点缓存模块30用于存储来自另一片fpga的同一列普通交叉节点缓存模块经过rr列仲裁输出的数据帧。rr列仲裁模块40用于根据同一列上普通交叉节点缓存201的发送请求给出仲裁结果,并且依据仲裁结果将本片fpga中添加tag头的数据帧从对应的普通交叉节点缓存201搬移到片间高速aurora接口模块50的发送部分,形成待发送数据帧,即rr列仲裁模块采用公平轮询的方式将同一列上需要跨片输出到另一片fpga的数据汇聚成一路输出。片间高速aurora接口模块50用于发送待发送数据帧到另一片fpga片间高速aurora接口模块50的接收部分,并且接收另一片fpga中片间高速aurora接口模块50发送部分输出的数据帧,传输至本片fpga的共享交叉节点缓存模块30。wrr独立列仲裁模块60用于接收普通交叉节点缓存模块20和共享交叉节点缓存模块30中同一列的交叉节点缓存发送的请求信号并进行加权轮询调度,将轮询调度到的交叉节点缓存中的数据帧搬移到输出端口。若干配置接口70用于配置wrr独立列仲裁模块60调度所需权值以及若干输入队列管理模块10的队列最大最小门限等参数。
46.本实施例采用wrr独立列仲裁调度,缓解了多路数据汇聚成到一个共享交叉节点带来的调度的公平性问题。
47.请参见图2,图2为本发明实施例提供的tag头的结构示意图。具体的,tag头包括单多播标识、队列号、帧长以及目的端口号等关键信息。进一步的,采用tag头加原数据的形式在同一fpga上和跨片fpga之间传输数据,并且在wrr列仲裁模块60解析和删除tag头。
48.可以理解的是,上述实施例的系统在每片fpga上设置横向拆分crossbar交换网络,可以适用于两片fpga之间的数据传输,也可以适用于多片fpga之间的数据传输,两片或多片fpga之间通过高速aurora接口模块50传输。
49.在一个具体实施例中,普通交叉节点缓存模块20包括若干普通交叉节点缓存201,共享交叉节点缓存模块30包括若干共享交叉节点缓存301,rr列仲裁模块40包括若干rr列仲裁子模块401,片间高速aurora接口模块50包括若干第一片间高速aurora接口501和若干第二片间高速aurora接口502。
50.其中,若干普通交叉节点缓存201呈阵列分布,且每一行的普通交叉节点缓存201均连接输入队列管理模块10。每个共享交叉节点缓存301连接同一列的普通交叉节点缓存201,每个rr列仲裁子模块401连接同一列的普通交叉节点缓存201,且共享交叉节点缓存301和rr列仲裁子模块401的数量之和与普通交叉节点缓存201的列数相等。第一片间高速aurora接口501连接本片fpga的rr列仲裁子模块401和另一片fpga片间高速aurora接口模块50的接收部分,第二片间高速aurora接口502连接本片fpga的共享交叉节点缓存301和另一片fpga中片间高速aurora接口模块50发送部分;每个wrr独立列仲裁子模块601连接同一列的普通交叉节点缓存201且与共享交叉节点缓存301位于同一列。
51.可以理解的是,共享交叉节点缓存301和rr列仲裁子模块401的数量之和与若干普通交叉节点缓存201形成的列数相等,若干第一片间高速aurora接口501和若干第二片间高速aurora接口502的数量之和与若干普通交叉节点缓存201形成的列数相等,wrr独立列仲裁模块60的数量与共享交叉节点缓存301的数量相等。
52.具体的,当该系统用于两片fpga之间的数据传输时,每片fpga上,输入队列管理模块10的数量为n/2个,n为总线数量;普通交叉节点缓存201的数量为n2/2个;共享交叉节点缓存301的数量为n/2个;rr列仲裁子模块401的数量为n/2个;第一片间高速aurora接口501的数量为n/2个,第二片间高速aurora接口502的数量为n/2个,wrr独立列仲裁模块60的数量为n/2个。
53.需要说明的是,上述实施例的系统适用于两片fpga之间的数据传输,其中fpga的总线数量可以为4
×
4,也可以为6
×
6,也可以为8
×
8,等等。
54.当两片fpga的总线数量为4
×
4时,每片fpga上总线数量为4,输入队列管理模块10的数量为2个,普通交叉节点缓存201的数量为8个,呈2
×
4分布,共享交叉节点缓存301的数量为2个,rr列仲裁子模块401的数量为2个,第一片间高速aurora接口501的数量为2个,第二片间高速aurora接口502的数量为2个,wrr独立列仲裁模块60的数量为2个。
55.当两片fpga的总线数量为6
×
6时,每片fpga上总线数量为6,输入队列管理模块10的数量为3个,普通交叉节点缓存201的数量为18个,呈3
×
6分布,共享交叉节点缓存301的数量为3个,rr列仲裁子模块401的数量为3个,第一片间高速aurora接口501的数量为3个,第二片间高速aurora接口502的数量为3个,wrr独立列仲裁模块60的数量为3个。
56.在一个具体实施例中,普通交叉节点缓存201和共享交叉节点缓存301均包括第一存储区域和第二存储区域,其中,第一存储区域用于多播或广播数据,第二存储区域用于存储单播数据。
57.本实施例在普通交叉节点缓存和共享交叉节点缓存分区存储多播或广播数据以及单播数据,可以使得多播或者广播数据在被调度时拥有更高的优先级,以保证系统的服务质量。
58.请参见图3,图3为本发明实施例提供的第一片间高速aurora接口和第二片间高速aurora接口的结构示意图。第一片间高速aurora接口501包括第一aurora ip核、第一跨时钟模块crossbar2aurora和locallink转axi模块locallink2aix,第二片间高速aurora接口502包括第二aurora ip核、第二跨时钟模块aurora2crossbar和axi转locallink模块axi2loacllink。
59.其中,locallink转axi模块locallink2aix用于将待发送数据帧格式转换成axi数据格式,得到格式转换的数据帧;第一跨时钟模块crossbar2aurora用于将格式转换的数据帧从系统主时钟域跨到aurora ip核的用户侧时钟域,得到第一跨时钟数据帧;第一aurora ip核用于将第一跨时钟数据帧发送到另一片fpga片间高速aurora接口模块50的接收部分。
60.第二aurora ip核用于接收来自另一片fpga片间高速aurora接口模块(50)的发送部分输出的数据帧,得到接收数据帧;第二跨时钟模块aurora2crossbar用于将接收数据帧从aurora ip核的用户侧时钟域跨到系统主时钟域,得到第二跨时钟数据帧;axi转locallink模块axi2loacllink用于将第二跨时钟数据帧的格式转换成系统内部使用的locallink数据格式。
61.具体的,第一aurora ip核和第二aurora ip核均采用4路绑定形式,线速率可达40gbps。
62.请参见图4,图4为本发明实施例提供的两种典型数据路径的示意图。具体的,根据目的端口将添加tag头的数据帧传输路径划分为本片传输路径和跨片传输路径。
63.本片传输路径不需要跨片传输,路径依次为:本片fpga的输入队列管理模块10、本片fpga的普通交叉节点缓存模块20、本片fpga的wrr独立列仲裁模块60、与目的端口对应的输出端口。具体的,数据帧在输入队列管理模块10内依据目的端口号、数据帧的优先级和帧长等关键信息完成数据帧的入队操作,将数据帧暂存在输入队列管理模块10的共享缓存中。在同一行的普通交叉节点缓存201准备好接收数据帧、能够存储下一个最长帧时,将给到输入队列管理模块10的ready信号拉高,输入队列管理模块10内部轮询各个虚拟输出队列,将数据帧的关键信息(单多播标识,帧长,目的端口号等)组成tag头放在数据帧的首部与数据帧一起从输入队列管理模块10的共享缓存搬移到同一行对应的普通交叉节点缓存201中。此时若数据帧的目的端口在本片fpga上,则数据帧直接在本片参与wrr轮询调度,当wrr独立列仲裁模块60给到请求响应grant到普通交叉节点缓存201后,将数据帧从普通交叉节点缓存201输出到wrr独立列仲裁模块60,wrr独立列仲裁模块60解析tag内的关键信息,如目的端口号等,并且使用关键信息将数据帧输出到对应目的端口号的输出端口。
64.跨片传输路径依次为:本片fpga的输入队列管理模块10、本片fpga的普通交叉节点缓存模块20、本片fpga的rr列仲裁模块40、本片fpga的高速aurora接口模块50、另一片fpga的高速aurora接口模块50、另一片fpga的共享交叉节点缓存模块30、另一片fpga的wrr独立列仲裁模块60、与目的端口对应的输出端口。具体的,数据帧在输入队列管理模块10内依据目的端口号、数据帧的优先级和帧长等关键信息完成数据帧的入队操作,将数据帧暂存在输入队列管理模块10的共享缓存中。在同一行的普通交叉节点缓存201准备好接收数据帧时,将给到输入队列管理模块10的ready信号拉高,输入队列管理模块10内部轮询各个虚拟输出队列,将数据帧的关键信息(单多播标识,帧长,目的端口号等)组成tag头放在数据帧的首部与数据帧一起从输入队列管理模块10的共享缓存搬移到同一行对应的普通交叉节点缓存201中。如果数据帧的目的端口在另一片fpga上,那么数据帧在本片的普通交叉节点缓存201暂存时参与同一列上的rr列仲裁,当rr列仲裁模块40给到请求响应grant到普通交叉节点缓存201后,将数据帧从普通交叉节点缓存201输出到rr列仲裁模块40,rr列仲裁模块40直接将数据透传到片间aurora高速接口模块50,片间aurora高速接口模块50对数据帧完成格式转换以及跨时钟域操作后,通过aurora ip核将数据帧发送到另一片fpga。另一片fpga在收到数据帧后,同样对数据帧进行跨时钟域和格式转换操作。下一步,当共享交叉节点缓存301准备好接收数据帧时(almost信号不拉高时),将数据帧从片间aurora高速接口模块50的接收部分缓存搬移到共享交叉节点缓存模块30中。下一步,共享交叉节点缓存301与本片同一列的另外两个普通交叉节点缓存201一同参与本列的wrr轮询调度。当wrr独立列仲裁模块60给到请求响应grant到共享交叉节点缓存模块30后,将数据帧从共享交叉节点缓存模块30输出到wrr独立列仲裁模块60,wrr独立列仲裁模块60解析tag内的关键信息,如目的端口号等,并且使用关键信息将数据帧输出到对应目的端口号的输出端口。
65.请参见图5,图5为本发明实施例提供的本片分组调度周期分析图。如图5所示,在未拆分的crossbar交换网络中,本片fpga的一个数据帧的调度周期由两部分组成,第一部
分普通共享交叉节点模块向产生发送请求到列仲裁模块给出调度结果,另一部分时延是数据帧的传输时延,即包括调取间隔和数据传输时延。
66.请参见图6,图6为本发明实施例提供的跨片分组调度周期分析图。如图6所示,在不引入共享交叉节点的横向拆分的crossbar交换网络中,一个分组的调度周期可以分为4个部分,调度间隔,调度结果跨片给到普通交叉节点模块,分组从交叉节点搬移到片间接口的时延以及数据跨片时延。
67.请参见图7,图7为本发明实施例提供的跨片使用共享交叉节点调度周期分析图。如图7所示,在引入共享交叉节点后,当共享交叉节点一直都能接受数据帧的时候,一个分组的调度周期与未拆分的crossbar交换网络是一样的,都是由调取间隔和数据传输时延两部分组成。引入共享交叉节点后,数据帧先是跨片传输到共享交叉节点后,再参与wrr独立列仲裁,所以其调度周期与不拆分时是一样的。
68.请参见图8,图8为本发明实施例提供给的基于共享交叉节点的横向拆分crossbar交换网络的设计与系统的跨片传输路径的仿真图。可以从仿真图得出以下结论:使用共享交叉节点缓存的横向拆分crossbar交换网络的跨片数据仅仅是延时较大,但是调度效率与不跨片的调度效率是接近的。
69.本实施例中,如果不使用tag以及共享交叉节点缓存,需要跨片传输的控制信号有数据帧的单多播标识、帧长、目的端口号等关键信息,这些信息的跨片传输与数据帧的传输可能是不同步的,所以每一次数据帧的调度都是需要等待所有要使用的关键信息传输都对端fpga,这样就会导致交换的调度时延增大,影响数据帧调度效率,影响端口间的调度公平性;而将单多播标识、帧长、目的端口号等关键信息包含在tag头内可以很好的解决关键信息与数据帧到达另一片fpga不同步带来的调度效率降低的问题。
70.本实施例提出基于共享交叉节点的横向拆分crossbar交换网络的设计与系统,将crossbar交换网络横向拆分,wrr独立列仲裁模块要想调度交叉节点缓存中的数据帧到输出端口,需要有两个信号的交互,分别是普通交叉节点缓存给到wrr独立列仲裁模块请求信号以及wrr独立列仲裁模块给到普通交叉节点缓存的请求响应信号。如果直接采用横向分拆不使用共享交叉节点缓存,需要添加额外的两个gpio信号用来完成请求信号和请求响应信号的交互。两个信号在片间传输的时延会最终影响到链路传输效率。如果采用共享交叉节点的方式,只要共享交叉节点能够存储下一个最长帧即almost信号不拉高,就直接接收下来自另一片的数据,再由共享交叉节点去进行仲裁请求的操作,这样仲裁请求和仲裁响应都是在片内完成,这样做的链路传输效率与同一片内数据调度的效率是相同的,唯一不同之处就是数据帧是从另一片过来的,所以交换时延会比单片fpag实现crossbar时更大;使用共享交叉节点缓存避免了片间仲裁带来的时延导致调度效率降低的问题,理论上只要共享交叉节点缓存足够大,横向拆分的wrr独立列仲裁调度与不拆分时的调度有一样的效率,提高了整个交换系统的调度效率,进而提高链路传输效率。
71.综上所述,本实施例为交换容量要求大、端口数量要求多的需求提供了一个可行的技术方案,使用共享交叉节点很好的避免的跨片传输数据和控制信号时延的问题,既扩展了交换容量和端口数量,又缓解了数据和控制信号跨片传输带来的仲裁公平性问题和调度效率下降的问题,提高了整个交换系统的调度效率,从而提高链路传输效率,进而获得更大的交换容量。
72.以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
技术特征:
1.一种基于共享交叉节点的横向拆分crossbar交换网络系统,其特征在于,包括:设置在每片fpga上的若干输入队列管理模块(10)、普通交叉节点缓存模块(20)、共享交叉节点缓存模块(30)、rr列仲裁模块(40)、高速aurora接口模块(50)、wrr独立列仲裁模块(60)和若干配置接口(70),其中,所述若干输入队列管理模块(10)用于接收来自物理端口的数据帧,依据数据帧的目的端口在数据帧头部添加tag头;所述普通交叉节点缓存模块(20)用于接收添加tag头的数据帧,并根据所述目的端口将添加tag头的数据帧暂存到不同的普通交叉节点缓存(201)中;所述共享交叉节点缓存模块(30)用于接收并存储所述片间高速aurora接口模块(50)中来自另一片fpga的数据帧,并与本片pfga上同一列的普通交叉节点缓存(201)中的数据帧参与wrr独立列仲裁模块(60)的仲裁;所述rr列仲裁模块(40)用于根据同一列上普通交叉节点缓存(201)的发送请求给出仲裁结果,并且依据仲裁结果将本片fpga中添加tag头的数据帧从对应的普通交叉节点缓存(201)搬移到所述片间高速aurora接口模块(50)的发送部分,形成待发送数据帧;所述片间高速aurora接口模块(50)用于发送所述待发送数据帧到另一片fpga片间高速aurora接口模块(50)的接收部分,并且接收另一片fpga中片间高速aurora接口模块(50)发送部分输出的数据帧,传输至本片fpga的共享交叉节点缓存模块(30);所述wrr独立列仲裁模块(60)用于接收普通交叉节点缓存模块(20)和共享交叉节点缓存模块(30)中同一列的交叉节点缓存发送的请求信号并进行加权轮询调度,将轮询调度到的交叉节点缓存中的数据帧搬移到输出端口;所述若干配置接口(70)用于配置所述wrr独立列仲裁模块(60)调度所需权值以及所述若干输入队列管理模块(10)的队列最大最小门限。2.根据权利要求1所述的基于共享交叉节点的横向拆分crossbar交换网络系统,其特征在于,所述普通交叉节点缓存模块(20)包括若干普通交叉节点缓存(201),所述共享交叉节点缓存模块(30)包括若干共享交叉节点缓存(301),所述rr列仲裁模块(40)包括若干rr列仲裁子模块(401),所述片间高速aurora接口模块(50)包括若干第一片间高速aurora接口(501)和若干第二片间高速aurora接口(502),所述wrr独立列仲裁模块(60)包括若干wrr独立列仲裁子模块(601),其中,所述若干普通交叉节点缓存(201)呈阵列分布,且每一行的普通交叉节点缓存(201)均连接所述输入队列管理模块(10);每个所述共享交叉节点缓存(301)连接同一列的所述普通交叉节点缓存(201),每个所述rr列仲裁子模块(401)连接同一列的所述普通交叉节点缓存(201),且所述共享交叉节点缓存(301)和所述rr列仲裁子模块(401)的数量之和与所述普通交叉节点缓存(201)的列数相等;所述第一片间高速aurora接口(501)连接本片fpga的rr列仲裁子模块(401)和另一片fpga片间高速aurora接口模块(50)的接收部分,所述第二片间高速aurora接口(502)连接本片fpga的共享交叉节点缓存(301)和另一片fpga中片间高速aurora接口模块(50)发送部分;每个所述wrr独立列仲裁子模块(601)连接同一列的所述普通交叉节点缓存(201)且与
所述共享交叉节点缓存(301)位于同一列。3.根据权利要求2所述的基于共享交叉节点的横向拆分crossbar交换网络系统,其特征在于,所述第一片间高速aurora接口(501)包括第一aurora ip核、第一跨时钟模块和locallink转axi模块,所述第二片间高速aurora接口(502)包括第二aurora ip核、第二跨时钟模块和axi转locallink模块,其中,所述locallink转axi模块用于将所述待发送数据帧格式转换成axi数据格式,得到格式转换的数据帧;所述第一跨时钟模块用于将所述格式转换的数据帧从系统主时钟域跨到aurora ip核的用户侧时钟域,得到第一跨时钟数据帧;所述第一aurora ip核用于将所述第一跨时钟数据帧发送到另一片fpga片间高速aurora接口模块(50)的接收部分;所述第二aurora ip核用于接收来自另一片fpga片间高速aurora接口模块(50)的发送部分输出的数据帧,得到接收数据帧;所述第二跨时钟模块用于将所述接收数据帧从aurora ip核的用户侧时钟域跨到系统主时钟域,得到第二跨时钟数据帧;所述axi转locallink模块用于将所述第二跨时钟数据帧的格式转换成系统内部使用的locallink数据格式。4.根据权利要求3所述的基于共享交叉节点的横向拆分crossbar交换网络系统,其特征在于,所述第一aurora ip核和所述第二aurora ip核均采用4路绑定形式,线速率可达40gbps。5.根据权利要求2所述的基于共享交叉节点的横向拆分crossbar交换网络系统,其特征在于,每片fpga上,所述输入队列管理模块(10)的数量为n/2个,n为总线数量;所述普通交叉节点缓存(201)的数量为n2/2个;所述共享交叉节点缓存(301)的数量为n/2个;所述rr列仲裁子模块(401)的数量为n/2个;所述第一片间高速aurora接口(501)的数量为n/2个,所述第二片间高速aurora接口(502)的数量为n/2个,所述wrr独立列仲裁模块(60)的数量为n/2个。6.根据权利要求2所述的基于共享交叉节点的横向拆分crossbar交换网络系统,其特征在于,所述普通交叉节点缓存(201)和所述共享交叉节点缓存(301)均包括第一存储区域和第二存储区域,其中,所述第一存储区域用于多播或广播数据,所述第二存储区域用于存储单播数据。7.根据权利要求1所述的基于共享交叉节点的横向拆分crossbar交换网络系统,其特征在于,所述tag头包括单多播标识、队列号、帧长以及目的端口号。8.根据权利要求1所述的基于共享交叉节点的横向拆分crossbar交换网络系统,其特征在于,根据所述目的端口将所述添加tag头的数据帧传输路径划分为本片传输路径和跨片传输路径,其中,所述本片传输路径依次为:本片fpga的输入队列管理模块(10)、本片fpga的普通交叉节点缓存模块(20)、本片fpga的wrr独立列仲裁模块(60)、与所述目的端口对应的输出端口;所述跨片传输路径依次为:本片fpga的输入队列管理模块(10)、本片fpga的普通交叉节点缓存模块(20)、本片fpga的rr列仲裁模块(40)、本片fpga的高速aurora接口模块(50)、另一片fpga的高速aurora接口模块(50)、另一片fpga的共享交叉节点缓存模块(30)、另一片fpga的wrr独立列仲裁模块(60)、与所述目的端口对应的输出端口。
9.根据权利要求1所述的基于共享交叉节点的横向拆分crossbar交换网络系统,其特征在于,所述本片传输路径的一个数据帧的调度周期包括调取间隔和数据传输时延,所述跨片传输路径的一个数据帧的调度周期包括调取间隔和数据传输时延。
技术总结
本发明涉及一种基于共享交叉节点的横向拆分Crossbar交换网络系统,包括:设置在每片FPGA上的若干输入队列管理模块、普通交叉节点缓存模块、共享交叉节点缓存模块、RR列仲裁模块、高速Aurora接口模块、WRR独立列仲裁模块和若干配置接口。本发明使用共享交叉节点缓存避免了片间仲裁带来的时延导致调度效率降低的问题,理论上只要共享交叉节点缓存足够大,横向拆分的WRR独立列仲裁调度与不拆分时的调度有一样的效率,提高了整个交换系统的调度效率,进而提高链路传输效率。进而提高链路传输效率。进而提高链路传输效率。
技术研发人员:邱智亮 张素宏 潘伟涛 高一鸣 李晓旺 李大状
受保护的技术使用者:西安电子科技大学
技术研发日:2023.04.12
技术公布日:2023/7/22
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
