一种千兆afdx交换机及其交换方法

文档序号:7806334阅读:414来源:国知局
一种千兆afdx交换机及其交换方法
【专利摘要】本发明公开了一种千兆AFDX交换机,包含基于共享存储器的交换结构、交换端口、存储器访问接口、交换机终端接口、全局计数器、局部计数器,所述交换结构包含共享存储器,该共享存储器为双端口存储器,单个端口的位宽为512bits。通过采用共享存储结构实现了24口千兆AFDX数据交换,总收发带宽可达到48G,可满足下一代航电带宽需求。
【专利说明】—种千兆AFDX交换机及其交换方法
【技术领域】
[0001]本发明涉及航空电子【技术领域】,特别涉及一种千兆AFDX交换机及其交换方法。
【背景技术】:
[0002]根据ARINC664规范,AFDX交换机与商用以太网交换机主要有以下几点不同:
[0003]I)支持基于虚拟链路(Virtual Link,简称VL)的单播和组播;
[0004]2)支持基于虚拟链路的流量控制策略;
[0005]3)支持基于虚拟链路的两种优先级设置;
[0006]4)支持基于端口的数据缓冲空间大小配置;
[0007]5)交换机的交换过程具有确定的可预计延迟时间;
[0008]6)拥有一个符合AFDX规范的终端接口。
[0009]这些不同之处决定了 AFDX交换芯片的交换结构与商用交换芯片的交换结构不完全相同。首先商用交换芯片的路由表变成了固定的虚拟链路配置表,路径选择要根据虚拟链路信息实现单播和多播功能,其次AFDX交换芯片添加了基于虚拟链路的流量策略控制和优先级机制。同时AFDX交换芯片交换结构的设计要保证帧在传递过程中具有可确定的延时。
[0010]交换机交换芯片内部结构设计可分为基于输入队列和基于输出队列(共享存储)两种结构。基于输入队列的交换机结构为每个输入端口都设置有缓冲区。输入端口进入的数据帧先缓存于输入端口缓冲区中,形成通信输入队列。交换机的交换控制逻辑根据输出端口的状态,异步地从输入队列中取出数据帧,从交换机的交换实体中,转发输出;基于输出队列的交换机结构为每个输出端口都设置有输出缓冲区。输入端口进入的数据帧,直接通过交换控制逻辑,进入输出端口的输出缓冲区中,形成通信输出队列。交换机的输出端口异步地从输出队列中取出数据帧,从通信端口中输出,实现数据交换。输出队列交换机结构通常采用共享存储方式来实现。
[0011]目前AFDX交换引擎主要支持10M/100M速率,由于交换数据量增大,提高AFDX交换引擎的交换速率变得更为重要,基于这个需求,迫切需要一种千兆AFDX交换机。

【发明内容】

[0012]针对现有技术的不足,本发明的发明目的在于提供一种千兆AFDX交换机,支持24口千兆速率的AFDX交换引擎。
[0013]本发明的发明目的通过以下技术方案实现:
[0014]一种千兆AFDX交换机,包含基于共享存储器的交换结构、交换端口、存储器访问接口、交换机终端接口、全局计数器、局部计数器,所述交换结构包含共享存储器,所述共享存储器为双端口存储器,单个端口的位宽为512bits ;
[0015]所述交换端口用于将输入端口的SGMII以太网数据转换为512bit并行数据输入到共享存储器;将共享存储器中的512bit并行数据转换为SGMII以太网数据输出;[0016]所述存储器访问接口用于读取外部存储器存储的配置信息;
[0017]所述交换机终端接口用于与处理器的通信,完成MIB与处理器的信息交互;
[0018]全局计数器用于计算全局时钟,完成信用量的计算;
[0019]局部计数器用于计算单独帧的处理时间,配合全局技数器完成信用量等信息的计算。[0020]优选地,所述共享存储器采用FPGA芯片,由64个BRAM拼成一个深度为2K,位宽为1024bits的双端口存储器。
[0021]依据上述特征,所述交换结构还包含时钟分片单元、存储控制器、空闲地址指针队列、输出队列调度、多播计数单元;
[0022]所述时钟分片单元用于提供供共享存储控制器对N个输入端口和N个输出端口进行时间片轮询访问的定时周期;
[0023]所述存储控制器用于对输入端发出请求以时钟片轮询的方式做出仲裁,从空闲地址指针队列中取出一个空地址,将数据写入这个空地址所指向的共享存储器空间,并将这个空地址和其他相关信息写入对应输出端口的输出队列中;
[0024]所述共享存储控制器用于按时钟片对共享存储器进行轮询访问;
[0025]所述空地址指针队列用于共享存储器中空地址的管理;
[0026]所述输出队列调度器用于以时钟片轮询的方式从每一个输出端口非空的输出队列中读出被缓存的帧的存储地址和其他信息,根据存储地址从共享存储器空间中读出帧数据并向输出端口发送;
[0027]所述多播计数单元用于多路转发时的计数控制。
[0028]本发明的另一目的在于提供一种千兆AFDX交换机交换方法,包含如下步骤:
[0029]a)、当输入端有数据帧到来时,输入端口将SGMII数据转换为512bits数据格式;在交换结构中根据从存储器访问接口读入的虚拟链路表中预先配置的虚拟链路BAG和Jitter进行信用量过滤统计、根据AFDX数据包格式进行错误帧的过滤统计;然后输入端发出请求,存储控制器以时钟片轮询的方式做出仲裁;
[0030]b)、获得控制权的输入端从空指针队列中取出一个空地址,将未过滤的正确数据帧以512bits位宽写入这个空地址所指向的共享存储器空间,并将这个空地址和其他相关信息写入对应输出端口的输出队列中;其中其他相关信息包括输出端口、多播端口数信息,这些信息同样由存储器访问接口读入的虚拟链路表信息中获得。为保证数据的完整性,写入共享存储器结束时间应以单个完整数据包完全写入为止。
[0031]c)、在输出端,输出队列调度器以时钟轮询的方式从每一个端口非空的输出队列中读出被缓存的帧的存储地址和其他信息,根据存储地址从共享存储器中读出帧数据,并向输出端口发送;
[0032]d)、输出端口将512bits位宽数据转换为SGMII以太网数据发送出交换机。
[0033]依据上述特征,所述信用量过滤统计具体包含如下步骤:
[0034]e)、系统启动时,全局计数器开始计数,VL表项中的帧局部计数器清0,AC赋最大允许值 Acmax = BAG^Jij switch ;
[0035]f)、当一帧到来时,由全局计数器减去每一个VL的局部计数器值再加上该VL的AC余量,得到帧的当前信用量ACi;[0036]g)、如果当前信用量ACi小于相关链路最大帧长,则该帧丢弃,该VL项的所有字段保持不变;
[0037]如果当前信用量大3、小于ACmax,转发当前帧,回写该VL的局部计数器值为当前全局计数器的计数值,回写AC余量为当前信用量ACi减去;
[0038]如果当前信用量ACi大于ACmax ,赋当前信用量为Acmax ,转发当前巾贞,回写该VL的局部计数器值为当前全局计数器的计数值,回写AC余量为当前信用量减去、
[0039]依据上述特征,所述错误帧的错误类型包括CRC错误、帧长错误、字节不对齐错误、常数域错误、虚拟链路(VL) ID错误、信用量错误。
[0040]与现有技术相比,本发明可以满足以下要求:
[0041]a) 24 个 1000Mbps AFDX 交换端口,100%全线速;
[0042]b)整个交换机带宽48Gbps ;
[0043]c)交换机总缓存128 ;
[0044]d)支持2级优先级;
[0045]e) AFDX交换机至少支持4096个VL,每个VL的ID都应在O?65535范围内;
[0046]f)技术延时小于IOus ;
[0047]g)逻辑工作频率:20ns。
[0048]在本发明中,依据对AFDX交换机的特性分析和仿真,并考虑到带宽的限制,千兆AFDX协议交换引擎采用了基于共享内存的结构。采用基于共享存储的结构具有以下优势:
[0049]I)共享存储器结构可以保证确定性的延时;
[0050]2)共享存储器结构支持变长包的转发;
[0051]3)共享存储器结构可对超带宽数据进行无损过滤。
[0052]通过采用共享存储结构实现千兆AFDX数据交换。
【专利附图】

【附图说明】
[0053]图1为一般的基于共享存储器的交换结构逻辑框图;
[0054]图2为本发明千兆AFDX交换机的结构图。
[0055]具体实施方法
[0056]对于24端口千兆AFDX交换机,它的总的收发带宽为24*1G*2 = 48G。这就要求交换机的存储带宽也为48G,采用FPGA内部的存储资源。
[0057]本发明中使用双端口的共享存储器,这样对于单个存储端口只需要24G的存储带宽,交换机内部工作频率为50M和内部存储单元的大小,设计存储器的位宽为512bits,单个端口的存储带宽可达到512*50M = 25.6G,整个双端口存储器的带宽为51.2G,可以满足交换机的传输带宽要求。
[0058]由于FPGA内部的存储块BRAM都是以一个36K为单元,将一个36K的BRAM变形为1K*32使用,需要32个BRAM拼成一个IK (深度)*1024 (位宽)的双端口存储器使用。为了扩充缓冲区大小,可以采用64个BRAM拼成一个2Κ (深度)*1024 (位宽)的双端口存储器。128个缓冲区在交换机内部是全局的,被所有端口共享。[0059]图1给出了一般的基于共享存储器的交换结构逻辑框图。它主要由空闲地址指针队列、存储控制器、共享存储器、输出队列和输出队列调度器等组成。
[0060]基于共享存储器的交换结构工作方式如下所述。在输入端,当输入端有数据帧到来时,输入端发出请求,调度器以时钟片轮询的方式做出仲裁。获得控制权的输入端从空指针队列中取出一个空地址,将帧数据写入这个空地址所指向的共享存储器空间,并将这个空地址和其他相关信息写入对应输出端口的输出队列中。在输出端,调度器同样以时钟轮询的方式从每一个端口非空的输出队列中读出被缓存的帧的存储地址和其他信息,根据存储地址从共享存储器中读出帧数据并向输出端口发送。
[0061]根据以上的讨论,图2给出了采用共享存储器实现千兆AFDX交换机的框图。包含基于共享存储器的交换结构、交换端口、存储器访问接口、交换机终端接口、全局计数器、局部计数器,所述交换结构包含共享存储器,所述共享存储器为双端口存储器,单个端口的位宽为 512bits。
[0062]所述交换端口用于将输入端口的SGMII以太网数据转换为512bit并行数据输入到共享存储器;将共享存储器中的512bit并行数据转换为SGMII以太网数据输出。
[0063]所述存储器访问接口用于读取外部存储器存储的配置信息。
[0064]所述交换机终端接口用于与处理器的通信,完成MIB与处理器的信息交互。
[0065]全局计数器用于计算全局时钟,完成信用量的计算。
[0066]局部计数器用于计算单独帧的处理时间,配合全局技数器完成信用量等信息的计

ο
[0067]其交换结构还包含时钟分片单元、存储控制器、空闲地址指针队列、输出队列调度、多播计数单元。
[0068]所述时钟分片单元用于提供供共享存储控制器对N个输入端口和N个输出端口进行时间片轮询访问的定时周期。
[0069]所述存储控制器用于对输入端发出请求以时钟片轮询的方式做出仲裁,从空闲地址指针队列中取出一个空地址,将数据写入这个空地址所指向的共享存储器空间,并将这个空地址和其他相关信息写入对应输出端口的输出队列中。
[0070]所述共享存储控制器用于按时钟片对共享存储器进行轮询访问。
[0071]所述空地址指针队列用于共享存储器中空地址的管理。
[0072]所述输出队列调度器用于以时钟片轮询的方式从每一个输出端口非空的输出队列中读出被缓存的帧的存储地址和其他信息,根据存储地址从共享存储器空间中读出帧数据并向输出端口发送。
[0073]所述多播计数单元用于多路转发时的计数控制。
[0074]当输入端有数据帧到来时,输入端口将SGMII数据转换为512bits数据格式;在交换结构中根据从存储器访问接口读入的虚拟链路表中预先配置的虚拟链路BAG和Jitter进行信用量过滤统计、根据AFDX数据包格式进行错误帧的过滤统计;然后输入端发出请求,存储控制器以时钟片轮询的方式做出仲裁;
[0075]b)、获得控制权的输入端从空指针队列中取出一个空地址,将未过滤的正确数据帧以512bits位宽写入这个空地址所指向的共享存储器空间,并将这个空地址和其他相关信息写入对应输出端口的输出队列中;其中其他相关信息包括输出端口、多播端口数信息,这些信息同样由存储器访问接口读入的虚拟链路表信息中获得。为保证数据的完整性,写入共享存储器结束时间应以单个完整数据包完全写入为止。
[0076]c)、在输出端,输出队列调度器以时钟轮询的方式从每一个端口非空的输出队列中读出被缓存的帧的存储地址和其他信息,根据存储地址从共享存储器中读出帧数据,并向输出端口发送;
[0077]d)、输出端口将512bits位宽数据转换为SGMII以太网数据发送出交换机。
[0078]本发明实现了正常的AFDX协议交换引擎:符合ARINC664协议并支持24 口千兆数据交换,可完成信用量过滤、错误帧过滤。
[0079]信用量Account过滤:
[0080]一、设信用量ACcount赋初值为:Sr父(!+J^switchZBAGi);第一帧数据收到后,Account 减去 Sinajl ;



max [0081]二、ACcount的值随时间按比例增长,最大不超过
OAU1Si X
(I +Ji,switch/BAGi);其中为相关链路最大帧长,Ji,switc;h为相关链路抖动值,BAGi为相关链路帧间隔;
[0082]三、当每一帧到达交换机时,采用下面两个策略:
[0083]如果ACi大于,帧被允许通过,ACi的值减掉
[0084]如果ACi小于,帧被丢弃,ACi的值保持不变并更新MIB条目;
[0085]Ji;switch 的取值范围从 O 到 10ms,BAGi 从 Ims 到 128ms ;
[0086]经过化简后,ACmax为BAGjji,-随时间比例增长,每次减去。ACmax最大为
138msο用22bit就可以表示(40ns)。用23bit就可以表示(20ns)。
[0087]采用基于帧的信用量计算方式,流量控制计算过程如下:
[0088]系统启动时,全局计数器开始计数。VL表项中的帧局部计数器清0,AC赋最大允许值ACmax。
[0089]当一帧到来时,由全局计数器(64bits)减去每一个VL的局部计数器值(64bits)再加上该VL的AC余量,这样就得到了帧的当前信用量。
[0090]如果当前信用量小于Sr,则该帧丢弃。该VL项的所有字段保持不变。
[0091]如果当前信用量大于<ax小于ACmax,帧可以转发。回写该VL的局部计数器值为当前全局计数器的计数值。回写AC余量为当前信用量减去^max。
[0092]如果当前信用量大于ACmax,赋当前信用量为ACmax。帧可以转发。回写该VL的局部计数器值为当前全局计数器的计数值。回写AC余量为当前信用量减去$ 。
【权利要求】
1.一种千兆AFDX交换机,包含基于共享存储器的交换结构、交换端口、存储器访问接口、交换机终端接口、全局计数器、局部计数器,其特征在于所述交换结构包含共享存储器,所述共享存储器为双端口存储器,单个端口的位宽为512bits ; 所述交换端口用于将输入端口的SGMII以太网数据转换为512bit并行数据输入到共享存储器;将共享存储器中的512bit并行数据转换为SGMII以太网数据输出; 所述存储器访问接口用于读取外部存储器存储的配置信息; 所述交换机终端接口用于与处理器的通信,完成MIB与处理器的信息交互; 全局计数器用于计算全局时钟,完成信用量的计算; 局部计数器用于计算单独帧的处理时间,配合全局计数器完成信用量等信息的计算。
2.根据权利要求1所述的一种千兆AFDX交换机,其特征在于所述共享存储器采用FPGA芯片,由64个BRAM拼成一个深度为2K,位宽为1024bits的双端口存储器。
3.根据权利要求1所述的一种千兆AFDX交换机,其特征在于所述交换结构还包含时钟分片单元、存储控制器、空闲地址指针队列、输出队列调度、多播计数单元; 所述时钟分片单元用于提供供共享存储控制器对N个输入端口和N个输出端口进行时间片轮询访问的定时周期; 所述存储控制器用于对输入端发出请求以时钟片轮询的方式做出仲裁,从空闲地址指针队列中取出一个空地址,将数据写入这个空地址所指向的共享存储器空间,并将这个空地址和其他相关信息写入对应输出端口的输出队列中; 所述共享存储控制器用于按时钟片对共享存储器进行轮询访问; 所述空地址指针队列用于共享存储器中空地址的管理; 所述输出队列调度器用于以时钟片轮询的方式从每一个输出端口非空的输出队列中读出被缓存的帧的存储地址和其他信息,根据存储地址从共享存储器空间中读出帧数据并向输出端口发送; 所述多播计数单元用于多路转发时的计数控制。
4.根据权利要求1所述的一种千兆AFDX交换机,其交换方法包含如下步骤: a)、当输入端有数据帧到来时,输入端口将SGMII数据转换为512bits数据格式;在交换结构中根据从存储器访问接口读入的虚拟链路表中预先配置的虚拟链路BAG和Jitter进行信用量过滤统计、根据AFDX数据包格式进行错误帧的过滤统计;然后输入端发出请求,存储控制器以时钟片轮询的方式做出仲裁; b)、获得控制权的输入端从空指针队列中取出一个空地址,将未过滤的正确数据帧以512bits位宽写入这个空地址所指向的共享存储器空间,并将这个空地址和其他相关信息写入对应输出端口的输出队列中;其中其他相关信息包括输出端口、多播端口数信息,这些信息同样由存储器访问接口读入的虚拟链路表信息中获得; c)、在输出端,输出队列调度器以时钟轮询的方式从每一个端口非空的输出队列中读出被缓存的帧的存储地址和其他信息,根据存储地址从共享存储器中读出帧数据,并向输出端口发送; d)、输出端口将512bits位宽数据转换为SGMII以太网数据发送出交换机。
5.根据权利要求4所述的交换方法,其特征在于所述信用量过滤统计具体包含如下步骤:e)、系统启动时,全局计数器开始计数,虚拟链路表项中的帧局部计数器清O,AC赋最大允许值Acmax = BAGi+J


i, switch ? f)、当一帧到来时,由全局计数器减去每一个VL的局部计数器值再加上该VL的AC余量,得到帧的当前信用量ACi; g)、如果当前信用量ACi小于相关链路最大帧长"Cax,则该帧丢弃,该VL项的所有字段保持不变; 如果当前信用量大于Cax小于ACmax,转发当前帧,回写该VL的局部计数器值为当前全局计数器的计数值,回写AC余量为当前信用量ACi减去Smax.如果当前信用量ACi大于ACmax,赋当前信用量为Acmax,转发当前帧,回写该VL的局部计数器值为当前全局计数器的计数值,回写AC余量为当前信用量减去A.。
6.根据权利要求4所述的交换方法,其特征在于所述错误帧的错误类型包括CRC错误、帧长错误、字节不对齐 错误、常数域错误、虚拟链路VL ID错误、信用量错误。
【文档编号】H04L12/931GK104009942SQ201410268433
【公开日】2014年8月27日 申请日期:2014年6月17日 优先权日:2014年6月17日
【发明者】沈磊 申请人:中国航空无线电电子研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1