一种基于共享存储的以太网终端发送实现方法及终端装置制造方法

文档序号:6521520阅读:181来源:国知局
一种基于共享存储的以太网终端发送实现方法及终端装置制造方法
【专利摘要】本发明公开了一种基于共享存储的以太网终端发送实现方法,包括将待发送数据写入共享存储区,将存储的地址及数据长度写入写指针缓冲区、通过查询写指针缓冲区的内容来实现终端数据的发送。本发明根据协议规定的发送数据包的过程,设计了基于共享存储的终端发送实现方法。在保证ARINC664协议规定的终端发送的性能的同时,通过存储资源的共享,可以大大缩小存储空间的利用,减少设计面积,降低功耗,节省资源。
【专利说明】—种基于共享存储的以太网终端发送实现方法及终端装置【技术领域】
[0001]本发明涉及以太网终端设备发送的方法,特别涉及一种基于共享存储的以太网终端发送实现方法。
【背景技术】
[0002]AFDXCAvionics Full Duplex Switched Ethernet)网络作为新兴的航空电子总线标准,以太网终端设备在航电系统中的已被广泛应用,并应用于交换机中以维护交换机。如图1所示,ARINC664协议交换引擎的核心是一个N*N的交换结构,它可以支持N个10M/100M输入端口和N个10M/100M输出端口。数据可以从任意输入端口进入交换引擎,经过交换引擎转发后从任意端口输出。终端用来维护和监测端口数据,如加载交换机配置表,上报交换机状态信息等。如图2所示ARINC664的终端发送流程。终端发送端如果支持n条虚拟链路(VL),且每条VL队列由最多4条子虚拟链路(SubVL)队列组成,那么终端需要有4*n个发送队列和I个发送队列。如果按照常规的发送机制进行设计,每条SubVL需要用一个队列缓冲区来存储发送队列,那么上述发送流程中共需要4*n+l个队列缓冲区,对存储器的资源要求非常大,因此不能支持太多的发送VL。

【发明内容】

[0003]本发明的发明目的在于提供一种基于共享存储的以太网终端发送实现方法,在保证ARINC664协议规定的终端发送的性能的同时,通过存储资源的共享,可以大大缩小存储空间的利用,减少设计面积,降低功耗,节省资源。
[0004]本发明的发明目的通过以下技术方案实现:
[0005]一种基于共享存储的以太网终端发送实现方法,包括以下步骤:
[0006]A、ES CPU将各SubVL的发送的包打包后写入共享存储区中对应的SubVL的帧缓冲区,并将该帧的起始地址和长度写入缓冲区写指针RING BUFFER的对应SubVL的写指针缓存区,同时计数单元中对应的VL缓冲帧数的计数同时累加I ;
[0007]B、轮询模块先依次轮询缓冲区写指针RING BUFFER的计数单元,查看各写指针缓存区是否有数据要发送,如果有数据,查询发送时间和subVL序号寄存器组中该VL上一帧发送的时间和帧间隔设置以及当前的定时器地时间来判断是否满足帧间隔,如果不满足则跳到下一条VL ;如果满足帧间隔,则从上一次发送的SubVL序号开始轮询判断该VL中哪一条SubVL有数据发送;
[0008]C、轮询模块将有数据发送的SubVL序号和当前的定时器时间纪录在对应的发送时间和SubVL序号寄存器中,并读出该SubVL的写指针缓存区中的数据写入发送指针FIFO中,读的同时将计数单元中对应的VL缓冲帧数的计数同时减I ;
[0009]D、发送模块读出发送指针FIFO的数据,根据起始地址和长度将共享存储区中对应的数据帧发送出去。
[0010]依据上述特征,所述查看各写指针缓存区是否有数据要发送具体为:如果计数单元中对应的VL缓冲巾贞数的计数为0,表示无待发数据;计数大于0小于该VL对应的subVL的个数,表示有数据要发;计数等于该VL对应的subVL的个数时表示对应的VL缓冲巾贞数达到缓冲的最大值,则通知ES CPU终止向该VL的发送数据。
[0011]本发明的另一目的在于提供一种基于共享存储的以太网终端发送实现方法的终端装置,包含共享存储区、缓冲区写指针RING BUFFER、发送时间和subVL序号寄存器组、轮询模块、发送指针FIFO、发送模块:
[0012]所述共享存储区用于存储发送队列,提供一条以上的VL缓冲区,每条VL缓存区包含一条以上的SubVL帧缓冲区;
[0013]所述缓冲区写指针RING BUFFER包含一个以上的写指针缓冲区和计数单元,每个写指针缓冲区对应一条SubVL,记录该SubVL的存储发送队列的起始位置及长度,计数单元分别对各个VL缓冲帧数的个数进行统计;
[0014]所述发送时间和SubVL序号寄存器组用于在轮询模块向发送指针FIFO写入SubVL的写指针缓冲区的数据时记录该SubVL序号和当前的定时器时间纪录;
[0015]所述轮询模块用于先依次轮询计数单元查看各VL是否有数据要发送,如果有数据,查询发送时间和subVL序号寄存器组中该VL上一帧发送的时间和帧间隔设置以及当前的定时器地时间来判断是否满足帧间隔,如果满足帧间隔,则从上一次发送的SubVL序号开始轮询判断该VL中哪一条SubVL有数据发送,将有数据发送的SubVL序号和当前的定时器时间纪录送至发送时间和subVL序号寄存器组,以及读出SubVL的写指针缓冲区的数据写入发送指针FIFO中;
[0016]所述发送指针FIFO按照先入先出的规则将写指针缓冲区中的数据进行排队;
[0017]所述发送模块依次读取发送指针FIFO中的数据,并根据该数据读取共享存储器中数据进行发送。
[0018]与现有技术相比,本发明设计了一种基于共享存储的终端发送机制,在保证满足ARINC664协议要求的前提下,该设计大大缩小存储空间的利用,减少设计得面积,降低功耗,节省资源。同时该专利的应用独立于硬件平台,适用范围广,具有显著的市场前景和经济效益。
【专利附图】

【附图说明】
[0019]图1是ARINC664交换引擎示意图
[0020]图2是传统的基于共享存储的终端发送机制的结构
[0021]图3是本发明基于共享存储的终端发送机制的结构;
[0022]图4是缓冲区写指针RING BUFFER的结构框图。
[0023]【专利附图】
附图
【附图说明】
[0024]下面结合附图对本发明作一步的详细描述。
[0025]如图3所述首先ES CPU将各SubVL的发送的包打包后写入对应的SubVL的帧缓冲区,并将该帧的起始地址和长度写入缓冲区写指针RING BUFFER的对应SubVL的写指针缓冲区,同时将计数单元中对应的VL缓冲帧数的计数累加I。轮询模块先依次轮询计数单元查看各VL是否有数据发送,如果有数据,则根据该VL上一帧发送的时间和帧间隔(BAG)设置以及当前的定时器地时间来判断是否满足BAG,如果不满足则跳到下一条VL。如果满足BAG,则从上一次发送的SubVL序号开始轮询判断看那一条SubVL有数据发送。将有数据发送的SubVL序号和当前的定时器时间纪录在对应的发送时间和SubVL序号寄存器中,并读出该SubVL的写指针缓冲的数据写入发送指针FIFO中,读的同时对应计数单元的计数同时减I。发送模块读出发送指针FIFO中的数据,根据起始地址和长度将共享存储区中对应的数据帧发送出去。
[0026]其中,写指针缓冲区的环形缓冲区的结构如图4所示,每一条SubVL拥有一个写指针缓冲区,当写入数据到缓冲区写指针RING BUFFER的对应SUBVL的写指针缓冲区,那么计数单元对应VL的缓冲帧数的计数同时累加I。读出该SubVL的写指针缓冲区的数据时,读的同时计数单元对应的VL缓冲巾贞数的计数同时减I。当计数单元对应的VL缓冲巾贞数的计数为0时,表示VL缓冲区中没有发送包,计数达到缓冲的最大值时,通知ES.CPU终止向该VL发送发送包。
[0027]该方法在帧发送过程中可以实现背靠背发送。
【权利要求】
1.一种基于共享存储的以太网终端发送实现方法,包括以下步骤: A、ESCPU将各SubVL的发送的包打包后写入共享存储区中对应的SubVL的帧缓冲区,并将该帧的起始地址和长度写入缓冲区写指针RING BUFFER的对应SubVL的写指针缓存区,同时计数单元中对应的VL缓冲帧数的计数同时累加I ; B、轮询模块先依次轮询缓冲区写指针RINGBUFFER的计数单元,查看各写指针缓存区是否有数据要发送,如果有数据,查询发送时间和subVL序号寄存器组中该VL上一帧发送的时间和帧间隔设置以及当前的定时器地时间来判断是否满足帧间隔,如果不满足则跳到下一条VL ;如果满足帧间隔,则从上一次发送的SubVL序号开始轮询判断该VL中哪一条SubVL有数据发送; C、轮询模块将查询到的Su b V L序号和当前的定时器时间纪录在对应的发送时间和SubVL序号寄存器中,并读出该SubVL的写指针缓存区中的数据写入发送指针FIFO中,读的同时将计数单元中对应的VL缓冲帧数的计数同时减I ; D、发送模块读出发送指针FIFO的数据,根据起始地址和长度将共享存储区中对应的数据帧发送出去。
2.根据权利要求1所述的一种基于共享存储的以太网终端发送实现方法,其特征在于所述查看各写指针缓存区是否有数据要发送具体为:如果计数单元中对应的VL缓冲帧数的计数为0,表示无待发数据;计数大于0小于该VL对应的SUbVL的个数,表示有数据要发;计数等于该VL对应的subVL的个数时表示对应的VL缓冲帧数达到缓冲的最大值,则通知ES CPU终止向该VL的发送数据。
3.根据权利要求1所述一种基于共享存储的以太网终端发送实现方法的终端装置,包含共享存储区、缓冲区写指针RING BUFFER、发送时间和subVL序号寄存器组、轮询模块、发送指针FIFO、发送模块,其特征在于: 所述共享存储区用于存储发送队列,提供一条以上的VL缓冲区,每条VL缓存区包含一条以上的SubVL帧缓冲区; 所述缓冲区写指针RING BUFFER包含一个以上的写指针缓冲区和计数单元,每个写指针缓冲区对应一条SubVL,记录该SubVL的存储发送队列的起始位置及长度,计数单元分别对各个VL缓冲帧数的个数进行统计; 所述发送时间和SubVL序号寄存器组用于在轮询模块向发送指针FIFO写入SubVL的写指针缓冲区的数据时记录该SubVL序号和当前的定时器时间纪录; 所述轮询模块用于先依次轮询计数单元查看各VL是否有数据要发送,如果有数据,查询发送时间和subVL序号寄存器组中该VL上一帧发送的时间和帧间隔设置以及当前的定时器地时间来判断是否满足帧间隔,如果满足帧间隔,则从上一次发送的SubVL序号开始轮询判断该VL中哪一条SubVL有数据发送,将查询到的SubVL序号和当前的定时器时间纪录送至发送时间和subVL序号寄存器组,以及读出SubVL的写指针缓冲区的数据写入发送指针FIFO中; 所述发送指针FIFO按照先入先出的规则将写指针缓冲区中的数据进行排队; 所述发送模块依次读取发送指针FIFO中的数据,并根据该数据读取共享存储器中数据进行发送。
4.根据权利要求2所述的终端装置,其特征在于所述VL缓存区为I至32条,每条VL缓存区的大小为32KB,所述Sub`VL缓存区为I至4条。
【文档编号】G06F5/10GK103617132SQ201310630065
【公开日】2014年3月5日 申请日期:2013年11月29日 优先权日:2013年11月29日
【发明者】杨爱良, 李修杰 申请人:中国航空无线电电子研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1