一种基于FPGA的FAST协议解码方法、装置及设备制造方法及图纸

技术编号:26419545 阅读:34 留言:0更新日期:2020-11-20 14:15
本申请公开了一种基于FPGA的FAST协议解码方法,通过即时获取实际的XML模板并对其进行解析,生成FAST协议中间表示,并根据预先设置的解码参数确定单次读取的最大字段数,进而生成字段匹配状态机,因此该方法能够支持动态更新的XML模板,且允许根据实际网络带宽灵活设置最大字段数,适用于不同网络带宽的应用场景。在解码过程中,该方法通过字段移位寄存器和字段匹配状态机实现每次并行读取并解码多个字段的功能,显著提升了解码效率。此外,本申请还提供了一种基于FPGA的FAST协议解码装置、设备及可读存储介质,其技术效果与上述方法的技术效果相对应。

【技术实现步骤摘要】
一种基于FPGA的FAST协议解码方法、装置及设备
本申请涉及计算机
,特别涉及一种基于FPGA的FAST协议解码方法、装置、设备及可读存储介质。
技术介绍
国内沪深LEVEL-2行情采用面向流的金融信息交换协议(FIXAdaptedForStreaming,FAST)协议进行传输。FAST是一种面向消息数据流的、具有高的压缩率和处理效率的编码方法,FAST编码包含了利用XML信息模板编码和变长编码字节压缩等过程。现有技术中,一种FAST协议解码方案包括读数据,字段解码以及解码结果输出三个部分,并通过缓存器进行中间结果缓存。读数据部件负责从FAST行情数据输入流缓存器中读取字段的编码值,字段解码部件依据字段操作符的规则负责具体的解码,结果输出部件负责输出解码的字段值至FIX消息缓存器。但是,其核心的FAST字段解码每次操作至多读取一个字段的编码值,性能受到限制,解码效率较低。而且,在实际应用中,XML模板可能需要动态修改,这种情况下需要修改控制逻辑,该方案无法适用于修改后的XML模板。可见,如何提供一种FAST协议的解码方案,避免每次只能解码一个字段以及不支持动态变化的XML模板的缺陷,是亟待本领域技术人员解决的问题。
技术实现思路
本申请的目的是提供一种基于FPGA的FAST协议解码方法、装置、设备及可读存储介质,用以解决当前的FAST协议解码方案每次只能解码一个字段以及不支持动态变化的XML模板,因此解码效率低下,场景适应能力较差的问题。其具体方案如下:第一方面,本申请提供了一种基于FPGA的FAST协议解码方法,包括:获取FAST协议的XML模板;根据所述XML模板的结构确定字段的存在条件,并根据所述XML模板中字段的分布情况,生成包括所述存在条件的FAST协议中间表示;根据所述FAST协议中间表示和预先设置的解码参数,生成字段匹配状态机,其中所述解码参数包括每时钟周期处理的最大字段数,所述字段匹配状态机用于描述解码过程中每次读取的字段,单次读取的字段数小于等于所述最大字段数,且同一次读取的字段的存在条件相互独立;利用FPGA接收FAST协议的字节数据流,将所述字节数据流分割为字段数据流,并缓存至字段移位寄存器中;根据所述字段匹配状态机,从所述字段移位寄存器中并行读取相应的字段,并进行解码。优选的,所述根据所述XML模板的结构确定字段的存在条件,包括:若目标字段在所述XML模板中处于循环结构中,则确定所述目标字段与在所述XML模板中位于所述目标字段之前的字段之间的存在关系,以作为所述目标字段的存在条件;若目标字段在所述XML模板中未处于循环结构中,则确定在存在位图字段中与所述目标字段对应的目标比特位,以作为所述目标字段的存在条件。优选的,所述根据所述XML模板中字段的分布情况,生成包括所述存在条件的FAST协议中间表示,包括:根据所述XML模板确定字段的解码属性;根据所述XML模板中字段的分布情况,生成包括所述存在条件和所述解码属性的FAST协议中间表示。优选的,所述将所述字节数据流分割为字段数据流,并缓存至字段移位寄存器中,包括:将所述字节数据流分割为字段数据流,在每次缓存时,将所述最大字段数的字段并行缓存至字段移位寄存器中。优选的,所述根据所述字段匹配状态机,从所述字段移位寄存器中并行读取相应的字段,包括:根据存在位图字段进行字段匹配,确定各个字段是否存在;根据所述字段匹配状态机,从所述字段移位寄存器中并行读取相应的字段。优选的,所述利用FPGA接收FAST协议的字节数据流,将所述字节数据流分割为字段数据流,包括:利用FPGA接收FAST协议的字节数据流,根据停止位,将所述字节数据流分割为字段数据流。优选的,在所述根据所述FAST协议中间表示和预先设置的解码参数,生成字段匹配状态机之前,还包括:根据当前网络带宽,确定相应的解码参数。第二方面,本申请提供了一种基于FPGA的FAST协议解码装置,包括:模板解析模块:用于获取FAST协议的XML模板;根据所述XML模板的结构确定字段的存在条件,并根据所述XML模板中字段的分布情况,生成包括所述存在条件的FAST协议中间表示;状态机生成模块:用于根据所述FAST协议中间表示和预先设置的解码参数,生成字段匹配状态机,其中所述解码参数包括每时钟周期处理的最大字段数,所述字段匹配状态机用于描述解码过程中每次读取的字段,单次读取的字段数小于等于所述最大字段数,且同一次读取的字段的存在条件相互独立;数据流分割模块:用于利用FPGA接收FAST协议的字节数据流,将所述字节数据流分割为字段数据流,并缓存至字段移位寄存器中;解码模块:用于根据所述字段匹配状态机,从所述字段移位寄存器中并行读取相应的字段,并进行解码。第三方面,本申请提供了一种基于FPGA的FAST协议解码设备,包括:存储器:用于存储计算机程序;处理器:用于执行所述计算机程序,以实现如上所述的基于FPGA的FAST协议解码方法的步骤。第四方面,本申请提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如上所述的基于FPGA的FAST协议解码方法的步骤。本申请所提供的一种基于FPGA的FAST协议解码方法,包括:获取FAST协议的XML模板;根据XML模板的结构确定字段的存在条件,并根据XML模板中字段的分布情况,生成包括存在条件的FAST协议中间表示;根据FAST协议中间表示和预先设置的解码参数,生成字段匹配状态机,其中解码参数包括每时钟周期处理的最大字段数,字段匹配状态机用于描述解码过程中每次读取的字段,单次读取的字段数小于等于最大字段数,且同一次读取的字段的存在条件相互独立;利用FPGA接收FAST协议的字节数据流,将字节数据流分割为字段数据流,并缓存至字段移位寄存器中;根据字段匹配状态机,从字段移位寄存器中并行读取相应的字段,并进行解码。综上,针对目前对动态更新的XML模板支持较差且无法适应不同网络带宽的问题,该方法通过即时获取实际的XML模板并对其进行解析,生成FAST协议中间表示,并根据预先设置的解码参数确定单次读取的最大字段数,进而生成字段匹配状态机,因此该方法能够支持动态更新的XML模板,且允许根据实际网络带宽灵活设置最大字段数。在解码过程中,该方法通过字段移位寄存器和字段匹配状态机实现单次解码多个字段的功能,具体的,输入字节流经过分割成为字段之后,存储在字段移位寄存器之中,通过字段匹配状态机每次并行读取小于等于最大字段数的字段,并解码,显著提升了解码效率。此外,本申请还提供了一种基于FPGA的FAST协议解码装置、设备及可读存储介质,其技术效果与上述方法的技术效果相对应,这里不再赘述。附图说明为了更清楚的说明本申请实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用本文档来自技高网...

【技术保护点】
1.一种基于FPGA的FAST协议解码方法,其特征在于,包括:/n获取FAST协议的XML模板;根据所述XML模板的结构确定字段的存在条件,并根据所述XML模板中字段的分布情况,生成包括所述存在条件的FAST协议中间表示;/n根据所述FAST协议中间表示和预先设置的解码参数,生成字段匹配状态机,其中所述解码参数包括每时钟周期处理的最大字段数,所述字段匹配状态机用于描述解码过程中每次读取的字段,单次读取的字段数小于等于所述最大字段数,且同一次读取的字段的存在条件相互独立;/n利用FPGA接收FAST协议的字节数据流,将所述字节数据流分割为字段数据流,并缓存至字段移位寄存器中;/n根据所述字段匹配状态机,从所述字段移位寄存器中并行读取相应的字段,并进行解码。/n

【技术特征摘要】
1.一种基于FPGA的FAST协议解码方法,其特征在于,包括:
获取FAST协议的XML模板;根据所述XML模板的结构确定字段的存在条件,并根据所述XML模板中字段的分布情况,生成包括所述存在条件的FAST协议中间表示;
根据所述FAST协议中间表示和预先设置的解码参数,生成字段匹配状态机,其中所述解码参数包括每时钟周期处理的最大字段数,所述字段匹配状态机用于描述解码过程中每次读取的字段,单次读取的字段数小于等于所述最大字段数,且同一次读取的字段的存在条件相互独立;
利用FPGA接收FAST协议的字节数据流,将所述字节数据流分割为字段数据流,并缓存至字段移位寄存器中;
根据所述字段匹配状态机,从所述字段移位寄存器中并行读取相应的字段,并进行解码。


2.如权利要求1所述的方法,其特征在于,所述根据所述XML模板的结构确定字段的存在条件,包括:
若目标字段在所述XML模板中处于循环结构中,则确定所述目标字段与在所述XML模板中位于所述目标字段之前的字段之间的存在关系,以作为所述目标字段的存在条件;
若目标字段在所述XML模板中未处于循环结构中,则确定在存在位图字段中与所述目标字段对应的目标比特位,以作为所述目标字段的存在条件。


3.如权利要求2所述的方法,其特征在于,所述根据所述XML模板中字段的分布情况,生成包括所述存在条件的FAST协议中间表示,包括:
根据所述XML模板确定字段的解码属性;根据所述XML模板中字段的分布情况,生成包括所述存在条件和所述解码属性的FAST协议中间表示。


4.如权利要求1所述的方法,其特征在于,所述将所述字节数据流分割为字段数据流,并缓存至字段移位寄存器中,包括:
将所述字节数据流分割为字段数据流,在每次缓存时,将所述最大字段数的字段并行缓存至字段移位寄存器中。


5.如权利要求1所述的方法,其特征在于,所述根据所述字段匹配状态机,从所述字段移位寄存器中并行读取相应的字段,包括:
根据存...

【专利技术属性】
技术研发人员:梅国强郝锐郭巍
申请(专利权)人:浪潮北京电子信息产业有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1