报文乱序重排方法及单板

文档序号:291248 发布日期:2021-11-23 浏览:34次 >En<

阅读说明:本技术 报文乱序重排方法及单板 (Message out-of-order rearrangement method and single board ) 是由 金亦锋 林晖 王彬 于 2021-07-27 设计创作,主要内容包括:本申请提供了报文乱序重排方法及单板,其中,方法包括,应用于第一单板,其特征在于,接收第二单板发送的报文;对所述报文进行分片和存储,记录报文分片的首地址和存储分片个数;判断所述报文是否需要进行排序,若需要进行排序,则将所述报文分片取出排序,并拼包成报文外发。本申请实施例通过判断报文是否需要排序,对需要排序的报文进行排序发送,避免报文乱序的问题。(The application provides a message out-of-order rearrangement method and a single board, wherein the method comprises the steps of applying to a first single board and being characterized in that a message sent by a second single board is received; fragmenting and storing the message, and recording the first address of message fragmentation and the number of storage fragments; and judging whether the messages need to be sorted or not, if so, taking out the message fragments for sorting, and splicing and packaging the message fragments into a message for outgoing. The message to be sequenced is sequenced and sent by judging whether the message needs to be sequenced or not, so that the problem of message disorder is avoided.)

报文乱序重排方法及单板

技术领域

本申请涉及通讯设备技术领域,尤其涉及报文乱序重排方法及单板。

背景技术

单板与交换网进行上行或下行报文处理,每个单板包括n块网板和FPGA,FPGA连接内网穿透代理服务器(简称NPS)。作为举例,网板可以是4块(网板0~网板3)通过四根HIG链路连接FPGA。这里需要说明的是,NPS将报文数据通过FPGA发送到交换网称为上行报文处理。反过来,交换网报文数据通过FPGA发送到NPS称为下行报文处理。在上述方案中,由于不同的网板时钟存在的误差,以及连接的HIG链路的不同,会导致下行报文顺序不同,造成报文乱序。

发明内容

为了克服相关技术中存在的问题,本申请提供了报文乱序重排方法。

根据本申请实施例提供了报文乱序重排的方法,应用于第一单板,接收第二单板发送的报文;对报文进行分片和存储,记录报文分片的首地址和存储分片个数;判断报文是否需要进行排序,若需要进行排序,则将报文分片取出排序,并拼包成报文外发。

优选的,接收第二单板通过多条HIG链路连接所发送的报文并进行合并,并映射到多路信号通道,将报文分片并存储至共享存储器中。

进一步地,判断报文是否需要进行排序,包括判断报文的报文序列号SN是否在SN~SN+M的范围内;

若在范围内,则将存储的报文分片取出排序,然后拼包成报文外发;

若小于SN,则直接发送该报文;

其中M表示报文最大延迟时间T微秒*1000/单板时钟的倒数得到,单板为源板或目的板。

优选的,将报文进行分片和存储,记录报文的首地址和存储分片个数,包括:

将共享存储器中的RAM划分成S个小存储单元;

将报文分片并按地址存储在RAM中,通过地址链表记录每个报文分片的相连地址信息;

通过共享存储器的第二FIFO存放未使用的RAM地址和被取出后释放的RAM地址。

优选的,报文从一块或多块第二单板发出,根据接收到的第二单板编码判断报文来源。

优选的,拼包成报文并外发中的报文至少包括报文起始标签、报文序列号SN、报文的首地址和存储分片个数。

优选的,第二单板的报文进入多路信号通道,接收的报文信息以报文序列号SN为地址存入RAM中,用valid标志位表明该地址有效;当检测到接收报文携带的报文起始标签,启动调度状态机;

从报文携带的报文起始标签对应的报文序列号SN开始自累加搜寻,搜寻到有效报文后,判断是否为超时报文,若为超时报文,则调出该报文;若不是超时报文,则判断是否为顺序报文,若为顺序报文,则调出该报文,若不是顺序报文,不做任何操作;

当有报文调出后,判断该报文是否为最后一个报文,若为最后一个报文,则停止搜索,若不是最后一个报文,则从调度出的报文序列号SN开始下一次搜索。

优选的,第一单板通过多条HIG链路向第二单板发送报文,每个HIG链路对应一个第一FIFO存储器,在报文经第一FIFO存储器,对应链路的第一FIFO存储器计数加1,通过HIG链路向第二单板完成一次报文发送,对应链路的第一FIFO存储器计数器减1,最终得到第一FIFO存储器的计数值,设置第一FIFO存储器的计数阈值;

若所有的第一FIFO存储器的计数值都未达到设置的计数阈值,每条HIG链路的后续报文都逐包发送到第一单板;

若某一第一FIFO存储器的计数值超过设置计数阈值,则向其他几条的HIG链路进行报文逐包发送;

若所有的第一FIFO存储器的计数值都达到设置的计数阈值,则向第一FIFO存储器的计数值最小的HIG链路发送后续报文;

若某一第一FIFO存储器的存储地址全部被占用,则发往对应HIG链路的后续报文丢弃。

本申请实施例第二方面提供了单板,包括逻辑控制芯片,逻辑控制芯片应用上述报文乱序重排方法。

本申请实施例提供的技术方案可以包括以下有益效果:

本申请实施例通过判断报文是否需要排序,对需要排序的报文进行排序发送,避免了报文乱序的问题。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入申请中并构成本申请的一部分,示出了符合本申请的实施例,并与申请一起用于解释本申请的原理。

图1是本申请实施例硬件逻辑框图;

图2是本申请实施例流程示意图;

图3是本申请图1的FIP下行报文功能框图;

图4是本申请实施例共享存储器逻辑框图;

图5是本申请实施例RAM分片存储流程示意图;

图6是本申请实施例调度状态机流程示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

本申请提供了报文乱序重排方法,应用于源板和目的板之间。在这里源板可以有多块,并行与目的板相连进行报文交互传输。如背景技术中所介绍,NPS将报文数据通过逻辑控制芯片发送到交换网称为上行报文处理。反过来,交换网报文数据通过逻辑控制芯片发送到NPS称为下行报文处理。本申请中的逻辑控制芯片可以是FPGA。本申请中的方法应用于第一单板和第二单板之间的交互过程,如图3所示,第二单板到第一单板的交互报文为下行报文,第一单板到第二单板的交互报文为上行报文。本申请方法在上行报文和下行报文中均适用。本申请实施例中的硬件逻辑框图如图1所示。以图1为例进行说明,这里首先对各个模块的功能做一个简单的解释说明。第二单板通过四个HIG链路(HIG0~HIG3)进行报文交互传输。RSCH模块用于将下行报文汇合。FIP模块对应下行报文部分的处理,且有报文排序功能。TSCH为信息头,信息由TSCH信息头接入,经由第一FIFO,通过HIG链路(HIG0~HIG3)上传,用于上行报文。ILKN为综合接口。本申请实施例报文乱序重排方法,先以在下行报文说明,如图2所示流程图。下行报文主要位于图1的FIP部分。

0001:第二单板向第一单板发送报文。

报文至少包括报文起始标签和报文序列号SN,报文起始标签用来标记该报文是否是该条报文流的起始报文。如果是则通过报文起始标签进行标记。为了避免当报文乱序大而造成需要太长的等待报文起始标签到来的时间,报文还可包括时间戳,即本地携带发送该报文的时间,与报文序列号SN结合使用。

0003:第一单板接收第二单板通过多条HIG链路连接所发送的报文并进行合并,并映射到多路信号通道。

结合图1和图3,第二单板通过多条HIG链路将报文发送至第一单板并进行合并,如果第二单板有多块,因为每块第二单板都有编码,因此在进行合并时,第一单板通过报文中的SMOD标签可以很容易的分辨是哪块第二单板发送的报文。由于不同的第二单板之间是相互独立的,因此这里以一块第二单板所发送的报文流为例进行说明,映射到多路信号通道。多路信号通道连接数据选择器,当报文通过多路信号通道到数据选择器则可以判断出是哪几路多路信号通道进行了报文发送。考虑成本和性能,本申请实施例中,多路信号通路选择64路通道,CHANNEL0~CHANNEL63。

0005:对接收的报文进行分片和存储,记录报文分片的首地址和存储分片个数。

本申请实施例将报文进行分片,并存储在共享存储器中,记录报文的首地址和存储分片个数,如图5,包括:

将共享存储器中的RAM划分成S个小存储单元;

将报文分片按地址存储在所述RAM中,通过链表记录每个报文分片的相连地址信息;

通过共享存储器的第二FIFO存放未使用的RAM地址和被取出后释放的RAM地址。

如果给每个多路信号通道都配置一块报文存储,RAM的资源是不够的,需要使用高宽带内存HBM。为了降低成本,在满足报文最大延迟时间T微秒,本申请以4微秒情况举例,则只要报文在4微秒内从存储内取出,需要的RAM资源大小为4*1000/2.5*2048/1024/8=400KB。因此只要预留的RAM大于400KB,以共享RAM的方式则不需要使用高宽带存储HBM。

本申请以1MB大小的RAM为例,举例说明,将RAM以256B为大小的小存储单元进行划分,可划分为4096个小存储单元,则当报文需要分片时,以256B为一个小分片对报文进行分片存储到RAM中,报文切成几片就取几个RAM的地址,将报文放入对应地址的小存储单元中。为了方便报文取出时查找,通过地址链表记录每个报文分片的相连地址信息。

0007:判断报文是否需要进行排序,若需要进行排序,则将报文分片取出排序。

判断该报文是否需要排序,本申请提供了一实施例包括判断报文的报文序列号SN是否在SN~SN+M的范围内;

若在范围内,则将存储的报文分片取出排序,然后拼包成报文外发;

若小于SN,则直接发送该报文;

其中M表示所述报文最大延迟时间T微秒*1000/单板时钟的倒数得到,

所述单板为源板或目的板。

本申请实施例中,考虑到单板性能以及成本,设置报文最大延迟时间T=4微秒,单板的时钟400兆,则M=4*1000/2.5=1600个,所以报文序列号SN在SN~SN+1600。若在这个范围之间,则需要排序,若小于或大于该范围则直接发送该报文。

报文在进入排序模块可以如下格式,如表1:

Start SN Time Link addr Length

表1

其中Start是报文起始标签,用于判断该报文是否是报文的起始报文,以防乱序。若是1表示是起始标签,若是0表示不是起始标签。

Link addr是当前报文的首地址,Length是当前报文分片的分片个数。

Time是当前报文发送的时间戳。

报文分片信息进入排序模块,排序完成后根据报文分片信息拼成报文往外发送。

在接收到报文起始标签为1时,说明收到了起始报文,启动调度状态机。

接收的报文信息以报文序列号SN为地址存入RAM中,用valid标志位表明该地址有效,如表2所示。

Valid Time Link addr Length

表2

Valid用于标记该条报文是否有效,可以设置为1时有效,为0时无效。

如图6所示,当检测到接收携带报文起始标签,启动调度状态机;

从携带报文起始标签对应的报文序列号SN开始自累加搜寻,搜寻到有效报文后,判断是否为超时报文,若为超时报文,则调出该报文;若不是超时报文,则判断是否为顺序报文,若为顺序报文,则调出该报文,若不是顺序报文,不做任何操作,开始下一次搜索;

当有报文调出后,判断该报文是否为最后一个报文,若为最后一个报文,则停止搜索,若不是最后一个报文,则从调度出的报文序列号SN开始下一次搜索。

0009:取出报文分片拼包外发。

取出拼包外发报文包括根据报文的首地址报文的分片个数,以及地址链表中地址每个报文分片存放的位置,按顺序取出报文分片并拼包,同时将拼包后释放的地址放回到第二FIFO,如图4。这里需要说明的是,当有新的报文需要分片存储时,到第二FIFO中取未使用或被释放的地址进行。

当报文需要取出拼包外发时,从地址链表中根据相连地址取出。如图4所示从地址链表中取出一个报文首地址为0,对应地址3,然后查找地址3对应地址4,若一共有分片3个,则可该报文在RAM中对应地址0-3-4的报文分片取出并拼包。

上行报文部分如图1,信息由TSCH信息头接入,经由第一FIFO,通过HIG链路(HIG0~HIG3)上传。第一单板通过多条HIG链路向第二单板发送报文,每个HIG链路对应一个第一FIFO存储器,,如图1所示,在报文经第一FIFO存储器,对应链路的第一FIFO存储器计数加1,通过所述HIG链路向第二单板完成一次报文发送,所述对应链路的第一FIFO存储器计数器减1,最终得到第一FIFO存储器的计数值,设置所述第一FIFO存储器的计数阈值;

若所有的第一FIFO存储器的计数值都未达到设置的计数阈值,每条HIG链路的后续报文都逐包发送到所述第一单板;

若某一第一FIFO存储器的计数值超过设置计数阈值,则向其他几条的HIG链路进行报文逐包发送;

若所有的第一FIFO存储器的计数值都达到设置的计数阈值,则向第一FIFO存储器的计数值最小的HIG链路发送后续报文;

若某一第一FIFO存储器的存储地址全部被占用,则发往对应HIG链路的后续报文丢弃。

这样可以保证多条HIG链路流量均衡,并且报文延迟时间小。

本申请上述实施例通过判断报文是否需要排序,对需要排序的报文进行排序发送,避免了报文乱序的问题。

本申请实施例还提供了单板,包括逻辑控制芯片,其特征在于,逻辑控制芯片应用上述实施例的报文乱序重排方法,如图1。

本申请实施例中的逻辑控制芯片为FPGA芯片。

其中,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

以上仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于说明RF通信中的多径反射现象的处理信号

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!