一种1394总线多通道流数据并行组包方法

文档序号:9750760阅读:303来源:国知局
一种1394总线多通道流数据并行组包方法
【技术领域】
[0001]本发明属于计算机硬件技术,涉及一种1394总线多通道流数据并行组包方法。
【背景技术】
[0002 ]标准的IEEE1394总线协议对消息的最大负载有限制,不能满足军事航空领域对大数据量网络传输的要求,在标准协议的基础上,定义了流数据用于传输大数据量的网络消息,即在发送方将大数据包拆分为若干个小包(满足1394总线最大负载要求)通过1394总线传输,接受法收到这些小包后再组合成一条完整的消息传递给应用软件。同时为了满足消息的处理效率,要求流数据接收方的组包操作由硬件电路完成,在目前技术中,没有支持此类问题的解决方法和电路,本设计就此现状,提出了 1394总线流数据组包方法,可以解决这类问题。

【发明内容】

[0003]本发明目的是提供一种1394总线多通道流数据并行组包方法,其解决了1394总线大数据量网络传输中发送方拆包方法及实现问题,不额外占用处理器资源。
[0004]本发明的技术解决方案是:
[0005]—种1394总线多通道流数据并行组包方法,包括步骤如下:
[0006]步骤1:根据系统应用,驱动层在节点初始化时,将期望接收由哪些节点发送至本通道的流数据信息填入接收流数据配置表区;
[0007]步骤2:驱动层为期望接收到的该节点的流数据在主存中申请A、B两个接收缓冲区,用于网络层设备的流数据接收控制;
[0008]步骤3:硬件逻辑接收到数据包后,提取接收到消息的通道号;
[0009]步骤4:判断接收到消息的通道号与当前调度配置表得到的期望接收消息通道号是否相同:如果都不相同,则直接丢弃并返回步骤3;如果相同,则转入步骤5;
[0010]步骤5:将分包消息存入硬件逻辑内部对应数据接收缓存区;
[0011]步骤6:提取流数据分包负载中的心跳值,如果心跳值与上次接收到相同通道的流数据分包的心跳值不同,则转入步骤7 ;否则,转入步骤8;所述流数据分包负载中的心跳值用于标示同一通道号的同一条流数据;
[0012]步骤7:切换本条流数据在主存中的目标接收缓冲区,将该条流数据分包接收计数器清“O”,然后转入步骤8;
[0013]步骤8:根据本条流数据分包负载中携带的分包序号信息(0、...、η、…、N),将其保存至主存当前消息“目标接收缓冲区Α/Β区起始地址+η*分包负载包长”中对应的位置;
[0014]步骤9:将该条流数据分包接收计数器增“I”;
[0015]步骤10:判断该流数据分包接收计数器是否计满,如不满则继续等待后续消息接收,如该计数器计满则表示该条流数据已接收完成,完成标识置位。
[0016]上述步骤I中的接收流数据配置表区可填入多个不同的节点;上述步骤2中驱动层为期望接收到的不同节点的流数据在主存中均申请A、B两个接收缓冲区;上述步骤3至步骤10可对不同节点的流数据进行并行处理。
[0017]本发明具有的有益效果:
[0018]1、本发明在流数据分包负载中设置心跳值,可用于标示同一通道号的同一条数据。如一条流数据在组包成功前,收到心跳值不同的新一条流数据,可直接切换保存缓冲区,直接丢弃组包失败的流数据。
[0019]2、本发明由于采用上述1394总线流数据组包方法,流数据可由硬件逻辑完成组包操作,不额外占用处理器资源,可实现大数据量包通过1394总线传输。
【附图说明】
[0020]图1为本发明的方法流程图。
【具体实施方式】
[0021]本发明1394总线多通道流数据并行组包方法,参照图1示例,处理步骤如下:
[0022]步骤1:根据系统应用,驱动层在节点初始化时,将期望接收由哪些节点发送至本通道的流数据(由通道号标识)等信息填入接收流数据配置表区;
[0023]步骤2:驱动层为期望接收到的每条流数据在主存中申请A、B两个接收缓冲区,用于网络层设备的流数据接收控制;
[0024]步骤3:硬件逻辑接收到数据包后,提取接收到消息的通道号;
[0025]步骤4:判断与当前调度配置表得到的期望接收消息通道号是否相同:如果都不相同,则直接丢弃并返回步骤3;如果相同,则转入下步;
[0026]步骤5:将分包消息存入硬件逻辑内部对应数据接收缓存区;
[0027]步骤6:提取流数据分包负载中的心跳值,如果心跳值与上次接收到相同属性(具有相同的通道号)分包的心跳值不同,表示此为同一通道的新一条流数据分包,转入步骤7处理;否则,此为同一条流数据分包,转入步骤8处理;
[0028]步骤7:切换本条流数据在主存中的目标接收缓冲区(第一条消息保存至缓冲区A,后续流数据在A/B缓冲区间切换),将该条流数据分包接收计数器清“O”,转入步骤8处理;
[0029]步骤8:根据本条流数据分包负载中携带的分包序号信息(0、...、η、…、N),将其保存至主存当前消息“目标接收缓冲区Α/Β区起始地址+η*分包负载包长”中对应的位置;
[0030]步骤9:将该条流数据分包接收计数器增“I” ;
[0031]步骤10:判断该流数据分包接收计数器是否计满,如不满则继续等待后续消息接收,如该计数器计满则表示该条流数据已接收完成,完成标识置位。
[0032]对于从不同节点发送至本通道的流数据分包组包操作,可采用上述的步骤3至步骤10并行处理,此时需要步骤I中的接收流数据配置表中填入多个不同的节点;步骤2中驱动层为期望接收到的不同节点的流数据在主存中均申请Α、Β两个接收缓冲区。
【主权项】
1.一种1394总线多通道流数据并行组包方法,其特征在于:包括步骤如下: 步骤1:根据系统应用,驱动层在节点初始化时,将期望接收由哪些节点发送至本通道的流数据信息填入接收流数据配置表区; 步骤2:驱动层为期望接收到的该节点的流数据在主存中申请A、B两个接收缓冲区,用于网络层设备的流数据接收控制; 步骤3:硬件逻辑接收到数据包后,提取接收到消息的通道号; 步骤4:判断接收到消息的通道号与当前调度配置表得到的期望接收消息通道号是否相同:如果都不相同,则直接丢弃并返回步骤3;如果相同,则转入步骤5; 步骤5:将分包消息存入硬件逻辑内部对应数据接收缓存区; 步骤6:提取流数据分包负载中的心跳值,如果心跳值与上次接收到相同通道的流数据分包的心跳值不同,则转入步骤7;否则,转入步骤8;所述流数据分包负载中的心跳值用于标示同一通道号的同一条流数据; 步骤7:切换本条流数据在主存中的目标接收缓冲区,将该条流数据分包接收计数器清“O”,然后转入步骤8; 步骤8:根据本条流数据分包负载中携带的分包序号信息(O、...、n、…、N),将其保存至主存当前消息“目标接收缓冲区A/B区起始地址+η*分包负载包长”中对应的位置; 步骤9:将该条流数据分包接收计数器增“I” ; 步骤10:判断该流数据分包接收计数器是否计满,如不满则继续等待后续消息接收,如该计数器计满则表示该条流数据已接收完成,完成标识置位。2.根据权利要求1所述的1394总线多通道流数据并行组包方法,其特征在于:所述步骤I中的接收流数据配置表区可填入多个不同的节点;所述步骤2中驱动层为期望接收到的不同节点的流数据在主存中均申请Α、Β两个接收缓冲区;所述步骤3至步骤10可对不同节点的流数据进行并行处理。
【专利摘要】本发明涉及一种1394总线多通道流数据并行组包方法,由多个节点并行发送至本节点的多路流数据可由硬件逻辑并行完成组包操作,不额外占用处理器资源,可实现多路流数据包并行接收。另外,本发明在流数据分包负载中设置心跳值,可用于标示同一通道号的同一条数据。如一条流数据在组包成功前,收到心跳值不同的新一条流数据,可直接切换保存缓冲区,直接丢弃组包失败的流数据。
【IPC分类】G06F13/42
【公开号】CN105512079
【申请号】CN201510931308
【发明人】王宣明, 田泽, 杨峰, 王绮卉, 赵彬
【申请人】中国航空工业集团公司西安航空计算技术研究所
【公开日】2016年4月20日
【申请日】2015年12月12日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1