基于国产化SoC工业计算机的边端协同数据流调度方法和系统与流程

摘要: 本发明涉及轨道交通车载数据处理,具体涉及一种基于国产化soc工业计算机的边端协同数据流调度方法和系统,尤其涉及在列车编组重构引起逻辑地址变化时,使车载采集队列、...
基于国产化SoC工业计算机的边端协同数据流调度方法和系统与流程

本发明涉及轨道交通车载数据处理,具体涉及一种基于国产化soc工业计算机的边端协同数据流调度方法和系统,尤其涉及在列车编组重构引起逻辑地址变化时,使车载采集队列、边缘计算状态和数据处理流程保持连续承接的调度技术。

背景技术:

1、随着轨道交通装备数字化程度的提高,车载网络中通常设置工业计算机,用于采集不同车厢内设备产生的运行数据、状态数据和诊断数据,并将所采集的数据传输至车载边缘计算节点进行连续处理。为满足自主可控要求,国产化soc工业计算机逐渐应用于车载数据采集、协议转换和边缘计算场景。车载端工业计算机一般按照列车编组关系获得逻辑地址,边缘端则根据所述逻辑地址为相应数据流分配处理任务和计算资源。

2、列车在重联、解编、车厢替换或者网络故障恢复过程中,车载网络的物理拓扑和逻辑编组关系会发生变化。现有技术通常通过重新发现网络节点、重新分配逻辑地址、更新通信路由以及缓存重构期间产生的数据帧完成网络恢复。对于重构期间未完成处理的数据,通常采用重新发送缓存数据、重新启动处理任务或者将任务状态复制至新的执行位置等方式,使边缘端继续执行相应的数据处理任务。

3、但是,列车网络重构前后的逻辑地址和计算任务之间并不必然保持稳定对应关系。重构前已经进入采集队列但尚未处理的数据仍与原逻辑地址及原执行位置关联,而重构后产生的数据则可能按照新的逻辑地址进入另一采集队列或者执行位置。单纯重新分配地址或者重传缓存数据,只能恢复数据传输,难以同时保持重构前后数据的处理次序、计算状态归属和处理位置连续性;采用任务重启或者完整状态复制方式,还可能造成重复处理、未处理数据遗漏或者状态覆盖,并增加国产化soc工业计算机的存储访问和状态搬移开销。

4、因此,需要解决的技术问题是:如何在列车网络编组重构并引起逻辑地址变化时,使重构前尚未处理的数据、重构后继续写入的数据以及边缘端已有计算状态保持连续承接,从而实现数据流处理过程的有序续接。

技术实现思路

1、本发明的目的在于提供一种基于国产化soc工业计算机的边端协同数据流调度方法和系统,用于解决列车编组重构引起逻辑地址变化时,重构前后数据流、计算状态和处理位置的连续承接问题。

2、为实现上述目的,本发明采用如下技术方案:

3、一种基于国产化soc工业计算机的边端协同数据流调度方法,包括:

4、通过车载端的国产化soc工业计算机建立采集队列,将车载数据帧写入所述采集队列;

5、在列车网络启动编组重构时,封结当前队列节点,在所述当前队列节点后插入切换标记,并从所述切换标记后继续写入,形成重构前段和重构后段;

6、按照物理联挂次序逐级传递地址承接令牌,将重构前逻辑地址至重构后逻辑地址的承接关系写入对应的所述切换标记;

7、从所述物理联挂次序的末端反向传递所述地址承接令牌,将回传指针写入对应的所述切换标记,形成承接链;

8、依据所述承接链,在边缘端将所述重构前逻辑地址索引的计算状态页从旧执行槽转挂至所述重构后逻辑地址索引的新执行槽;

9、将所述计算状态页的处理游标定位至所述重构前段的未处理位置,通过所述切换标记的队列后继指针续接所述重构后段,沿续接后的所述采集队列处理所述车载数据帧,并释放所述旧执行槽。

10、优选地,按照物理联挂次序逐级传递地址承接令牌,将重构前逻辑地址至重构后逻辑地址的承接关系写入对应的所述切换标记,并从所述物理联挂次序的末端反向传递所述地址承接令牌,将回传指针写入对应的所述切换标记,形成承接链,包括:

11、在各国产化soc工业计算机中读取对应的所述重构前逻辑地址和所述重构后逻辑地址,将所述重构前逻辑地址和所述重构后逻辑地址分别写入对应的所述切换标记的前址项和后址项,形成地址承接项;

12、根据位于所述物理联挂次序首端的国产化soc工业计算机对应的所述切换标记生成首级地址承接令牌,将对应的所述切换标记的存储地址写入所述首级地址承接令牌的标记引用项,并将所述首级地址承接令牌传递至后继国产化soc工业计算机;

13、在所述后继国产化soc工业计算机接收前级地址承接令牌后,根据对应的所述切换标记生成后级地址承接令牌,将对应的所述切换标记的存储地址写入所述后级地址承接令牌的标记引用项,将所述后级地址承接令牌的令牌前驱指针指向所述前级地址承接令牌,并将所述前级地址承接令牌的令牌后继指针指向所述后级地址承接令牌;

14、从所述物理联挂次序的末端沿所述令牌前驱指针反向传递最后生成的所述后级地址承接令牌,并在反向传递过程中,将当前切换标记的回传指针写为相邻后级地址承接令牌的可寻址引用,将末级对应的所述切换标记的回传指针写为空指针,直至所述首级地址承接令牌,形成所述承接链。

15、优选地,依据所述承接链,在边缘端将所述重构前逻辑地址索引的计算状态页从旧执行槽转挂至所述重构后逻辑地址索引的新执行槽,并将所述计算状态页的处理游标定位至所述重构前段的未处理位置,通过所述切换标记的队列后继指针续接所述重构后段,沿续接后的所述采集队列处理所述车载数据帧,并释放所述旧执行槽,包括:

16、沿所述承接链读取与同一切换标记关联的所述重构前逻辑地址和所述重构后逻辑地址,定位所述旧执行槽、所述新执行槽及所述切换标记;

17、读取所述旧执行槽内指向所述计算状态页的页指针,将所述新执行槽的页指针改写为指向所述计算状态页,并将所述旧执行槽的页指针改写为指向所述新执行槽的转接指针;

18、将所述处理游标写为所述重构前段中首个未处理位置对应的队列节点引用及节点内偏移,并确认所述切换标记的队列后继指针指向所述重构后段的首节点地址;

19、驱动所述处理游标依次遍历所述重构前段和所述重构后段,在所述处理游标进入所述重构后段后清除所述转接指针并释放所述旧执行槽。

20、优选地,读取所述旧执行槽内指向所述计算状态页的页指针,将所述新执行槽的页指针改写为指向所述计算状态页,并将所述旧执行槽的页指针改写为指向所述新执行槽的转接指针,包括:

21、在所述新执行槽中设置活动指针项和备用指针项;

22、读取所述旧执行槽的页指针,并将读取的所述页指针写入所述备用指针项;

23、通过一次不可分割的写操作,将所述活动指针项的指针值改写为所述备用指针项中的页指针;

24、在所述不可分割的写操作完成后,将所述旧执行槽的页指针改写为包含所述新执行槽地址的所述转接指针。

25、优选地,驱动所述处理游标依次遍历所述重构前段和所述重构后段,在所述处理游标进入所述重构后段后清除所述转接指针并释放所述旧执行槽,包括:

26、在所述活动指针项的指针值被改写为所述备用指针项中的页指针之前,将写入所述重构后段的车载数据帧保持在所述采集队列中;

27、在所述活动指针项的指针值被改写为所述备用指针项中的页指针之后,驱动所述计算状态页从所述处理游标指向的未处理位置开始处理;

28、在所述处理游标越过所述切换标记时,将所述切换标记的队列后继指针写入所述处理游标的队列节点引用部分;

29、在所述处理游标进入所述重构后段后,清除所述旧执行槽中的转接指针,释放所述旧执行槽,并回收所述重构前段中已经处理的队列节点。

30、优选地,在列车网络启动编组重构时,封结当前队列节点,在所述当前队列节点后插入切换标记,并从所述切换标记后继续写入,形成重构前段和重构后段,包括:

31、读取所述采集队列的写指针,将所述写指针指向的队列节点作为所述当前队列节点;

32、将所述当前队列节点的当前写入位置固化为节点结束位置,在所述当前队列节点中写入封结标识,并停止向所述当前队列节点写入所述车载数据帧;

33、生成所述切换标记,将所述当前队列节点的队列后继指针指向所述切换标记,并将所述切换标记的队列前驱指针指向所述当前队列节点;

34、分配所述重构后段的首节点,将所述切换标记的队列后继指针指向所述首节点,并将所述首节点的队列前驱指针指向所述切换标记;

35、将所述采集队列的写指针从所述当前队列节点切换至所述首节点。

36、优选地,将所述采集队列的写指针从所述当前队列节点切换至所述首节点,包括:

37、为所述当前队列节点分配前段世代号,将所述前段世代号写入所述当前队列节点和所述切换标记;

38、根据所述前段世代号生成后段世代号,将所述后段世代号写入所述切换标记和所述首节点;

39、将所述写指针切换至所述首节点,并将所述写指针携带的队列世代号更新为所述后段世代号,同时将所述处理游标携带的队列世代号保持为所述前段世代号;

40、在所述处理游标读取所述切换标记后,将所述处理游标携带的队列世代号更新为所述后段世代号,并驱动所述处理游标通过所述队列后继指针进入所述重构后段。

41、优选地,在形成所述承接链之后,将所述承接链迁移至所述边缘端,包括:

42、按照所述承接链由所述首级地址承接令牌至最后生成的所述后级地址承接令牌的排列次序遍历各级地址承接令牌,并为各级地址承接令牌写入对应的链序号;

43、根据各级地址承接令牌的所述标记引用项以及对应的所述切换标记中的所述地址承接项、队列后继指针、前段世代号和后段世代号生成队列续接信息,将所述链序号、所述地址承接项、所述队列续接信息、所述令牌前驱指针和所述令牌后继指针封装为迁移记录,所述队列续接信息包括切换标记引用、重构后段首节点引用、前段世代号和后段世代号;

44、根据相邻两个所述迁移记录的链序号之差,将各所述迁移记录中的所述令牌前驱指针和所述令牌后继指针分别改写为前驱序号偏移和后继序号偏移,形成链映像;

45、将所述链映像传输至所述边缘端,在所述边缘端分配由等长记录槽位组成的连续链缓冲区,并按照所述链序号将各所述迁移记录写入对应的记录槽位;

46、根据所述连续链缓冲区的起始地址和各所述迁移记录中的所述前驱序号偏移及所述后继序号偏移,重建各所述迁移记录之间的本地令牌前驱指针和本地令牌后继指针,形成边缘承接链。

47、优选地,根据所述连续链缓冲区的起始地址和各所述迁移记录中的所述前驱序号偏移及所述后继序号偏移,重建各所述迁移记录之间的本地令牌前驱指针和本地令牌后继指针,形成边缘承接链,包括:

48、根据所述连续链缓冲区的起始地址、所述记录槽位的长度和各所述迁移记录的链序号,依次取得各所述迁移记录所在记录槽位的槽位地址;

49、将当前迁移记录的链序号分别与所述前驱序号偏移和所述后继序号偏移相加,取得前驱迁移记录的链序号和后继迁移记录的链序号;

50、将所述前驱迁移记录的链序号和所述后继迁移记录的链序号分别转换为对应的槽位地址,将转换所得的两个槽位地址分别写入所述当前迁移记录的本地令牌前驱指针和本地令牌后继指针;

51、将所述首级地址承接令牌对应的本地令牌前驱指针写为空指针,将最后生成的所述后级地址承接令牌对应的本地令牌后继指针写为空指针,形成所述边缘承接链。

52、本发明还提供一种基于国产化soc工业计算机的边端协同数据流调度系统,包括:

53、车载端和与所述车载端通信连接的边缘端,所述车载端包括至少两个按照物理联挂次序通信连接的国产化soc工业计算机;

54、所述车载端包括数据采集模块、队列分段模块、地址前传模块和地址回传模块,所述边缘端包括状态转挂模块和跨段续接模块;

55、数据采集模块,用于通过车载端的国产化soc工业计算机建立采集队列,将车载数据帧写入所述采集队列;

56、队列分段模块,用于在列车网络启动编组重构时,封结当前队列节点,在所述当前队列节点后插入切换标记,并从所述切换标记后继续写入,形成重构前段和重构后段;

57、地址前传模块,用于按照物理联挂次序逐级传递地址承接令牌,将重构前逻辑地址至重构后逻辑地址的承接关系写入对应的所述切换标记;

58、地址回传模块,用于从所述物理联挂次序的末端反向传递所述地址承接令牌,将回传指针写入对应的所述切换标记,形成承接链;

59、状态转挂模块,用于依据所述承接链,在边缘端将所述重构前逻辑地址索引的计算状态页从旧执行槽转挂至所述重构后逻辑地址索引的新执行槽;

60、跨段续接模块,用于将所述计算状态页的处理游标定位至所述重构前段的未处理位置,通过所述切换标记的队列后继指针续接所述重构后段,沿续接后的所述采集队列处理所述车载数据帧,并释放所述旧执行槽。

61、本发明与现有技术相比,具有如下有益效果:

62、(1)本发明将逻辑地址承接关系和采集队列分段边界结合至同一切换标记,使边缘端能够从该切换标记同时获取重构前后的逻辑地址对应关系、队列前段的未处理数据和队列后段的续接入口,避免地址恢复与数据恢复相互分离导致的处理次序断裂。

63、(2)本发明按照列车物理联挂次序前传和回传地址承接令牌,所形成的承接链保留车辆实际连接顺序,能够支持多个车载端节点在同一次编组重构中按照统一的物理拓扑进行状态转挂。

64、(3)本发明通过改写执行槽的页指针完成计算状态页转挂,无需复制计算状态页本体中的全部状态数据;并通过不可分割写操作确定新执行槽页指针的生效边界,减少状态搬移过程中的中间状态和内存访问开销。

65、(4)本发明在切换标记两侧分别保持前段世代号和后段世代号,使写指针能够先进入重构后段继续接收车载数据帧,而处理游标仍从重构前段的实际未处理位置继续执行,避免数据采集中断和数据遗漏。

66、(5)本发明将车载端本地令牌指针转换为链序号偏移,并在边缘端连续链缓冲区内重建本地指针,避免直接传输车载端绝对地址所造成的跨地址空间指针失效。

67、(6)本发明使旧执行槽在处理游标进入重构后段后才被释放,执行资源释放时点与数据处理边界保持一致,避免尚未处理的重构前数据失去计算状态引用。