CN112069772A - 基于fpga的数据处理方法、装置、电子设备及存储介质 - Google Patents
基于fpga的数据处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112069772A CN112069772A CN202010712111.0A CN202010712111A CN112069772A CN 112069772 A CN112069772 A CN 112069772A CN 202010712111 A CN202010712111 A CN 202010712111A CN 112069772 A CN112069772 A CN 112069772A
- Authority
- CN
- China
- Prior art keywords
- encoder
- field
- source data
- data
- type information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
Abstract
本发明实施例提供了一种基于FPGA的数据处理方法、装置、电子设备及存储介质,应用于FPGA,所述方法包括:在接收到多条源数据的情况下,对于每条所述源数据从预设编码器组中确定对应的编码器;利用每个所述编码器获取对应的所述源数据的类型信息,并根据所述类型信息对对应的所述源数据执行对应的编码操作,生成字段数据;利用每个所述编码器为对应所述字段数据添加对应的字段标签与字段标志位生成STEP字段,并存储至与该编码器对应的存储设备;提取所述存储设备中的STEP字段进行合并生成STEP数据。如此通过多个编码器可以并行完成STEP字段的编码,对于STEP字段编码进行提速,可以满足用户的需求。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种基于FPGA的数据处理方法、装置、电子设备及存储介质。
背景技术
金融市场,包括货币市场和资本市场,是资金融通市场。所谓资金融通,是指在经济运行过程中,资金供求双方运用各种金融工具调节资金盈余的活动,是所有金融交易活动的总称,在金融市场上进行交易的是各种金融工具,比如股票、债券、储蓄存单等。随着科技的进步与资本的发展,金融市场不断扩大,对于交易系统延时性能要求越来越高,投资者不仅希望能够快速的获得行情数据,还希望能够快速的将自己的决策发生至交易所,因此极速交易将是新一代交易系统的发展趋势。
目前交易系统对申报订单的处理大致可以分为三个阶段:订单接收、订单处理和订单协议转发,其中,交易所交易系统与市场参与者系统之间的数据交换协议为STEP(SecuritiesTradingExchangeProtocol),交易系统的订单协议转发其实质就是要完成STEP协议的编码。交易所交易系统大部分基于传统通用CPU架构,为了实现对编码提速,采用软件加速技术或者以软件为核心的加速技术。但是随着用户对交易系统延时性能的要求越来越高,传统的软件加速技术或者以软件为核心的加速技术存在瓶颈,满足不了用户的需求。
发明内容
为了解决上述传统的软件加速技术或者以软件为核心的加速技术存在瓶颈,满足不了用户的需求的技术问题,本发明实施例提供了一种基于FPGA的数据处理方法、装置、电子设备及存储介质。
在本发明实施例的第一方面,首先提供了一种基于FPGA的数据处理方法,应用于FPGA,所述方法包括:
在接收到多条源数据的情况下,对于每条所述源数据从预设编码器组中确定对应的编码器;
利用每个所述编码器获取对应的所述源数据的类型信息,并根据所述类型信息对对应的所述源数据执行对应的编码操作,生成字段数据;
利用每个所述编码器为对应所述字段数据添加对应的字段标签与字段标志位生成STEP字段,并存储至与该编码器对应的存储设备;
提取所述存储设备中的STEP字段进行合并生成STEP数据。
在一个可选的实施方式中,所述在接收到多条源数据的情况下,对于每条所述源数据从预设编码器组中确定对应的编码器,包括:
在接收到多条源数据的情况下,获取预设编码器组中每个编码器各自对应的预设配置表,其中,所述预设配置表中存储源数据对应的标识;
对于每条所述源数据,根据所述预设配置表中存储的源数据对应的标识,从所述预设配置表中查找该条源数据对应的预设目标配置表;
对于每条所述源数据,确定所述预设目标配置表对应的编码器为该条源数据对应的编码器。
在一个可选的实施方式中,所述预设配置表中存储源数据对应的类型信息;所述利用每个所述编码器获取对应的所述源数据的类型信息,包括:
利用每个所述编码器读取对应所述预设目标配置表中存储的源数据对应的类型信息,获取对应的所述源数据的类型信息。
在一个可选的实施方式中,所述根据所述类型信息对对应的所述源数据执行对应的编码操作,生成字段数据,包括:
若所述类型信息包括字符型,从对应的所述源数据中提取字符数据,生成字段数据;
若所述类型信息包括数值型,对对应的所述源数据进行进制转换,生成字段数据。
在一个可选的实施方式中,所述预设配置表中存储源数据对应的字段标签与字段标志位;所述利用每个所述编码器为对应所述字段数据添加对应的字段标签与字段标志位生成STEP字段,包括:
利用每个所述编码器读取对应所述预设目标配置表中存储的源数据对应的字段标签与字段标志位;
利用每个所述编码器为对应所述字段数据添加对应的字段标签与字段标志位生成STEP字段。
在一个可选的实施方式中,所述利用每个所述编码器获取对应的所述源数据的类型信息之前,所述方法还包括:
判断所有所述编码器中是否存在目标编码器对应的所述源数据的数量大于1;
若所有所述编码器中未存在目标编码器对应的所述源数据的数量大于1,则执行利用每个所述编码器获取对应的所述源数据的类型信息的步骤。
在一个可选的实施方式中,所述方法还包括:
若所有所述编码器中存在目标编码器对应的所述源数据的数量大于1,根据所述目标编码器对应的所述源数据的顺序,从所述目标编码器对应的所述源数据中选取目标源数据;
利用所述目标编码器获取所述目标源数据对应的类型信息,并根据所述类型信息对所述目标源数据执行对应的编码操作,生成字段数据,存储至所述目标编码器对应的存储设备中。
在一个可选的实施方式中,所述方法还包括:
根据编码器的排名顺序,从预设编码器组剩余编码器中确定空闲编码器;
利用所述空闲编码器获取所述目标编码器对应的剩余源数据的类型信息,并根据所述剩余源数据的类型信息对所述剩余源数据执行对应的编码操作,生成其余字段数据;
利用所述空闲编码器为所述其余字段数据添加对应的字段标签与字段标志位生成STEP字段,并存储至与所述空闲编码器对应的存储设备。
在一个可选的实施方式中,所述提取所述存储设备中的STEP字段进行合并生成STEP数据,包括:
基于STEP字段的排名顺序从所述存储设备中提取STEP字段,并剔除STEP字段中无效字节;
基于STEP字段的提取顺序合并经过无效字节剔除的STEP字段,生成STEP数据。
在本发明实施例的第二方面,还提供了一种基于FPGA的数据处理装置,应用于FPGA,所述装置包括:
编码器确定模块,用于在接收到多条源数据的情况下,对于每条所述源数据从预设编码器组中确定对应的编码器;
信息获取模块,用于利用每个所述编码器获取对应的所述源数据的类型信息;
数据生成模块,用于根据所述类型信息对对应的所述源数据执行对应的编码操作,生成字段数据;
字段生成模块,用于利用每个所述编码器为对应所述字段数据添加对应的字段标签与字段标志位生成STEP字段;
字段存储模块,用于将所述STEP字段存储至与每个所述编码器对应的存储设备;
字段合并模块,用于提取所述存储设备中的STEP字段进行合并生成STEP数据。
在本发明实施例的第三方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第一方面中任一所述的基于FPGA的数据处理方法。
在本发明实施例的第四方面,还提供了一种存储介质,所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面中任一所述的基于FPGA的数据处理方法。
在本发明实施例的第五方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的基于FPGA的数据处理方法。
本发明实施例提供的技术方案,在接收到多条源数据的情况下,对于每条源数据从预设编码器组中确定对应的编码器,利用每个编码器获取对应的源数据的类型信息,并根据类型信息对对应的源数据执行对应的编码操作,生成字段数据,利用每个编码器为对应字段数据添加对应的字段标签与字段标志位生成STEP字段,并存储至与编码器对应的存储设备,提取存储设备中的STEP字段进行合并生成STEP数据。如此通过多个编码器可以并行完成STEP字段的编码,对于STEP字段编码进行提速,可以满足用户的需求。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中示出的一种基于FPGA的数据处理方法的实施流程示意图;
图2为本发明实施例中示出的一种STEP字段存储的示意图;
图3为本发明实施例中示出的一种STEP字段生成的示意图;
图4为本发明实施例中示出的一种寄存器中存储STEP字段的示意图;
图5为本发明实施例中示出的另一种基于FPGA的数据处理方法的实施流程示意图;
图6为本发明实施例中示出的一种解码编码冲突的示意图;
图7为本发明实施例中示出的一种基于FPGA的数据处理装置的结构示意图;
图8为本发明实施例中示出的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
如图1所示,为本发明实施例提供的一种基于FPGA的数据处理方法的实施流程示意图,应用于FPGA,该方法具体可以包括以下步骤:
S101,在接收到多条源数据的情况下,对于每条所述源数据从预设编码器组中确定对应的编码器。
STEP编码,就是把binary(二进制)格式的源数据编码成STEP格式的数据(即STEP数据),故本发明实施例中源数据可以为binary格式的源数据。
为了能够快速的进行STEP编码,本发明实施例设计了多个功能相同的编码器,组成编码器组,每个编码器存在一个独立的配置表与其对应,配置表中存储编码器进行STEP编码所需的信息。
在接收到多条源数据的情况下,对于每条源数据,本发明实施例从预设编码器组中确定与该条源数据对应的编码器。例如,如下表1所示,对于源数据1、源数据2、……,均存在对应的编码器。
源数据 | 编码器 |
1 | A |
2 | B |
…… | …… |
表1
对于源数据,如果其对应的STEP字段过长,可能需要两个或者多个编码器共同完成STEP字段编码,因此一条源数据至少对应一个编码器,也可以对应两个或多个编码器,本发明实施例对此不作限定。
其中,在接收到多条源数据的情况下,获取预设编码器组中每个编码器各自对应的预设配置表,其中,该预设配置表中存储源数据对应的标识,用以表明每个编码器各自需要处理的源数据。
例如,在接收到源数据1、源数据2、……的情况下,获取预设编码器组中每个编码器各自对应的预设配置表,其中,该预设配置表中存储源数据对应的标识,如下表2所示。
编码器 | 配置表 | 源数据对应的标识 |
A | 1 | 1 |
B | 2 | 2 |
…… | …… | …… |
表2
对于每条源数据,根据预设配置表中存储的源数据对应的标识,从预设配置表中查找该条源数据对应的预设目标配置表。
例如,对于源数据1,根据预设配置表中存储的源数据对应的标识,从预设配置表中查找该条源数据1对应的预设目标配置表,即配置表1。
又例如,对于源数据2,根据预设配置表中存储的源数据对应的标识,从预设配置表中查找该条源数据2对应的预设目标配置表,即配置表2。
对于每条源数据,确定预设目标配置表对应的编码器为该条源数据对应的编码器。
例如,对于源数据1,确定预设目标配置表,即配置表1对应的编码器A为该条源数据1对应的编码器,意味着由编码器A负责处理源数据1。
又例如,对于源数据2,确定预设目标配置表,即配置表2对应的编码器B为该条源数据2对应的编码器,意味着由编码器B负责处理源数据2。
如此对于每条源数据而言,均存在与其对应的编码器,进而由该编码器对其进行处理,即进行STEP字段编码,生成STEP字段。
需要说明的是,对于配置表,可以根据实际STEP协议内字段的增加与更改进行调整,以适应不同的STEP数据,方便交易系统的维护。
S102,利用每个所述编码器获取对应的所述源数据的类型信息,并根据所述类型信息对对应的所述源数据执行对应的编码操作,生成字段数据。
对于每个编码器而言,可以利用该编码器获取对应的源数据的类型信息,并利用该编码器根据该类型信息对对应的源数据执行对应的编码操作,生成字段数据。
例如,对于编码器A而言,可以利用该编码器A获取对应的源数据1的类型信息,并利用编码器A根据该类型信息对对应的源数据1执行相应的编码操作,生成字段数据。其中,编码器A与源数据1一一对应。
又例如,对于编码器B而言,可以利用该编码器B获取对应的源数据1的类型信息,并根据该编码器B根据该类型信息对对应的源数据2执行相应的编码操作,生成字段数据。其中,编码器B与源数据2一一对应。
STEP结构均采用依次排列“标签=字段取值<SOH>”的方式组织,标签为数字字符,前后无空格,除非特别声明外,字段取值均为可打印ASCII码字符串表示,不得采用全角字母字符,<SOH>为字段界定符,值为不可打印字符ASCII码:十六进制的0x01。本发明中将“标签=字段取值<SOH>”称作为STEP字段,STEP数据就是由多个STEP字段组成,则上述字段数据即STEP字段中的“字段取值”。
对于预设配置表中存储有源数据对应的类型信息,则可以利用每个编码器读取对应预设目标配置表中存储的源数据对应的类型信息,获取对应的源数据对应的类型信息。
例如,利用编码器A读取对应预设目标配置表(即配置表1)中存储的源数据1对应的类型信息,获取对应的源数据1对应的类型信息。
又例如,利用编码器B读取对应预设目标配置表(即配置表2)中存储的源数据2对应的类型信息,获取对应的源数据2对应的类型信息。
如此对于每个编码器而言,均可以获取自身对应的源数据的类型信息,以便于后续根据类型信息对自身对应的源数据进行STEP编码,生成STEP字段。
对于类型信息,在本发明实施例中可以包括:字符型以及数值型。如果类型信息包括字符型,则利用编码器对对应的源数据进行字符型编码,即从对应的源数据中提取字符数据,生成字段数据;如果类型信息包括数值型,则利用编码器对对应的源数据进行数值型编码,即对对应的源数据进行进制转换(二进制转换为十进制),生成字段数据。
例如,源数据1的类型信息包括数值型,利用编码器A对源数据1进行进制转换,生成字段数据;源数据2的类型信息包括字符型,利用编码器B从源数据2中提取字符数据,生成字段数据。如此对于每条源数据而言,因其类型信息的不同,相应的编码器需要执行不同的编码操作。
S103,利用每个所述编码器为对应所述字段数据添加对应的字段标签与字段标志位生成STEP字段,并存储至与该编码器对应的存储设备。
对于每个编码器而言,对相应的源数据执行编码操作生成字段数据,然后可以利用该编码器为该字段数据添加对应的字段标签与字段标志位生成STEP字段,并存储至与该编码器对应的存储设备。
例如,对于编码器A而言,对相应的源数据1执行编码操作生成字段数据1,利用编码器A为该字段数据1添加对应的字段标签与字段标志位生成STEP字段1,并存储至与该编码器A对应的寄存器a;对于编码器B而言,对相应的源数据2执行编码操作生成字段数据2,利用编码器B为该字段数据2添加对应的字段标签与字段标志位生成STEP字段2,并存储至与该编码器B对应的寄存器b,如图3所示。
如此对于每个编码器而言,对于与自身对应的源数据进行一系列的编码、添加等操作,可以生成相应的STEP字段,在此期间各个编码器相互独立,并行运行,互不影响,可以对STEP编码进行提速。
对于STEP字段,可以如上述所示的“标签=字段取值<SOH>”,“标签”为字段标签,“<SOH>”为字段标志位。
需要说明的是,对于存储设备,可以是寄存器,可以是内存,可以是磁盘,本发明实施例对此不作限定。
其中,对于源数据,如果其对应的STEP字段过长,可能需要两个或者多个编码器共同完成STEP字段编码,因此一条源数据至少对应一个编码器,也可以对应两个或多个编码器,则相应的可以利用两个或者多个编码器为相应的字段数据添加对应的字段标签与字段标志位生成STEP字段。
例如,对于源数据3,对应编码器C与编码器D,源数据3进行拆分,分为两部分,由编码器C获取源数据3对应的类型信息,由编码器C根据该类型信息对一部分源数据3执行相应的编码操作,生成字段数据1,由编码器D获取源数据3对应的类型信息,由编码器D根据该类型信息对另一部分源数据3执行相应的编码操作,生成字段数据2,由编码器C为字段数据1添加字段标签,由编码器D为字段数据2添加字段标志位,两者结合,如图3所示,即得到最后的STEP字段,如此通过编码器C和编码器D共同完成对源数据3的STEP编码。
对于预设配置表中存储有源数据对应的字段标签与字段标志位,则相应利用每个编码器读取对应预设目标配置表中存储的源数据对应的字段标签与字段标志位,利用每个编码器为对应字段数据添加对应的字段标签与字段标志位生成STEP字段。
例如,对于编码器A,读取对应预设目标配置表(即配置表1)中存储的源数据1对应的字段标签与字段标志位,利用编码器A为对应字段数据添加对应的字段标签与字段标志位生成STEP字段1;对于编码器B,读取对应预设目标配置表(即配置表2)中存储的源数据2对应的字段标签与字段标志位,利用编码器B为对应字段数据添加对应的字段标签与字段标志位生成STEP字段2,对于其它编码器类似,本发明实施例在此不再一一赘述。
S104,提取所述存储设备中的STEP字段进行合并生成STEP数据。
对于存储设备中的STEP字段进行提取、合并,可以生成STEP数据,即STEP数据包括多个STEP字段。其中,在提取存储设备中的STEP字段进行合并之前,需要确定STEP数据中各个STEP字段已生成并存储。
例如,对于STEP数据包括13个STEP字段,在寄存器中存储的STEP字段的数量等于13之后,从寄存器中提取这13个STEP字段进行合并生成STEP数据。
其中,编码器可以处理的字节数是固定的(例如8字节,表示编码器一次能编码的结果的最大字节数为8),所以每次编码完成后可能会有一些无效的字节随着字段数据一起输出并存储到存储设备中,为此可以基于STEP字段的排名顺序从所述存储设备中提取STEP字段,并剔除STEP字段中无效字节,基于STEP字段的提取顺序合并经过无效字节剔除的STEP字段,生成STEP数据。
对于STEP数据中各个STEP字段的排名顺序已预先规划好,例如对于tag0~tag13,是某种STEP数据的所有STEP字段,其排列的顺序如图4所示,由此就可以知道每个编码器要对哪一个STEP字段进行编码,如tag0落在了memory0内,说明编码器0(encoder0)需要完成对tag0的编码,至于encoder0什么时候开始编码,取决于源数据(binary数据)到来的时刻;因为编码前后的数据格式是已知的,所以encoder0开始工作的时刻也是已知的,这些信息都存放在配置表中。同理,其它所有编码器的工作时刻都是可知的,因此可以通过控制编码器的工作时刻和编码内容来调整STEP字段的顺序。此外,若某些STEP字段过长,则可以用多个编码器完成编码,如tag1需要encoder1和encoder2共同完成编码。
如图4所示,可以从memory0~memory15中,按照STEP字段的排名顺序提取tag0~tag13,并剔除tag0~tag13中无效字节,基于STEP字段的提取顺序合并经过无效字节剔除的tag0~tag13,生成STEP数据。
需要说明的是,在大多数情况下,binary数据中的字段顺序和STEP结构中对应的字段顺序是不一样的。例如,binary数据中的订单价格出现在数据流的头部而订单数量出现在中间,但STEP中的价格字段则可能在数据流的中间而数量字段在头部;这就意味着编码器先收到价格数据并完成价格字段的STEP编码,当完成价格和数量的编码后需要将两个编码结果的顺序调换,字段调换功能通过编码器组与编码结果寄存器组配合实现。
如果把结果寄存器组看作是一片连续的内存,则编码结果在内存中的位置是固定的,这个位置由对应的STEP数据格式决定。结果寄存器组和数据的存储形式如图4所示,每个编码器(encoder)对应一个寄存器(memory),一个寄存器内部又细分为8小块,每一小块存储一个编码结果(如tag0),所以一个寄存器最多可以存储8个编码结果(可以根据实际去适当调整)。
通过上述对本发明实施例提供的技术方案的描述,在接收到多条源数据的情况下,对于每条源数据从预设编码器组中确定对应的编码器,利用每个编码器获取对应的源数据的类型信息,并根据类型信息对对应的源数据执行对应的编码操作,生成字段数据,利用每个编码器为对应字段数据添加对应的字段标签与字段标志位生成STEP字段,并存储至与编码器对应的存储设备,提取存储设备中的STEP字段进行合并生成STEP数据。如此通过多个编码器可以并行完成STEP字段的编码,对于STEP字段编码进行提速,可以满足用户的需求。
如图5所示,为本发明实施例提供的另一种基于FPGA的数据处理方法的实施流程示意图,应用于FPGA,该方法具体可以包括以下步骤:
S501,在接收到多条源数据的情况下,对于每条所述源数据从预设编码器组中确定对应的编码器;
在本发明实施例中,本步骤与上述步骤S101类似,本发明实施例在此不再一一赘述。
S502,判断所有所述编码器中是否存在目标编码器对应的所述源数据的数量大于1。
在本发明实施例中,对于编码器而言,在同一时刻对一条源数据进行STEP编码。由于在同一时刻,有可能多条源数据同时到来,如图4所示,若tag0和tag12的源数据在同一时刻到来,但是编码器一次只能对一条源数据进行STEP编码,所以此时encoder0只能完成tag0或者tag12的编码,并不能同时完成tag0和tag12的编码,存在编码冲突。
为此,为了避免编码冲突,本发明实施例判断所有编码器(即上述所确定的所有编码器)中是否存在目标编码器对应的源数据的数量大于1,如果所有编码器中未存在目标编码器对应的源数据的数量大于1,则表明无编码冲突,如果所有编码器中存在目标编码器对应的源数据的数量大于1,则表明存在编码冲突。
例如,对于编码器A、编码器B、……,判断编码器A、编码器B、……中是否存在目标编码器对应的源数据的数量大于1。
S503,若所有所述编码器中未存在目标编码器对应的所述源数据的数量大于1,利用每个所述编码器获取对应的所述源数据的类型信息。
S504,根据所述类型信息对对应的所述源数据执行对应的编码操作,生成字段数据。
S505,利用每个所述编码器为对应所述字段数据添加对应的字段标签与字段标志位生成STEP字段,并存储至与该编码器对应的存储设备。
如果所有编码器中未存在目标编码器对应的源数据的数量大于1,则利用每个编码器执行以下步骤:获取对应的源数据对应的类型信息,根据类型信息对相应的源数据执行对应的编码操作,生成字段数据,为相应的字段数据添加对应的字段标签与字段标志位生成STEP字段,并存储至与该编码器对应的存储设备。其中,具体执行流程可以参考上述实施例,本发明实施例在此不再一一赘述。
如果所有编码器中存在目标编码器对应的源数据的数量大于1,根据目标编码器对应的源数据的顺序,从目标编码器对应的源数据中选取目标源数据,利用目标编码器获取目标源数据对应的类型信息,并根据类型信息对目标源数据执行对应的编码操作,生成字段数据,存储至该目标编码器对应的存储设备中。
另外,根据编码器的排名顺序,从预设编码器组剩余编码器中确定空闲编码器,利用所述空闲编码器获取所述目标编码器对应的剩余源数据的类型信息,并根据所述剩余源数据的类型信息对所述剩余源数据执行对应的编码操作,生成其余字段数据,利用所述空闲编码器为所述其余字段数据添加对应的字段标签与字段标志位生成STEP字段,并存储至与所述空闲编码器对应的存储设备。
例如,在所有编码器中存在目标编码器(即encoder0)对应的源数据的数量大于1,即tag0和tag12的源数据在同一时刻到来,根据encoder0对应的tag0和tag12的源数据的顺序,从encoder0对应的tag0和tag12的源数据中选取目标源数据(即tag0的源数据),利用encoder0获取tag0的源数据的类型信息,利用encoder0根据类型信息对tag0的源数据执行对应的编码操作,生成字段数据,存储至encoder0对应的寄存器中。
与此同时,根据编码器的排名,从预设编码器组剩余编码器中确定空闲编码器,即encoder1,此时tag12及其后面的字段向后顺移,如图6所示。其中,tag1和tag12的源数据并未在同一时刻到来,若此时tag1和tag12的源数据还是在同一个时刻到来,则继续向后顺移,以此类推。同理,对于其它STEP字段,都可以采用此方法解决编码冲突,目的是为了协调各个编码器的工作情况,来避免同一编码器需要同时编码两个或多个STEP字段的情况。
利用encoder1获取encoder0对应的剩余源数据(即tag12的源数据)的类型信息,利用encoder1根据tag12的源数据的类型信息对tag12的源数据执行对应的编码操作,生成其余字段数据,利用encoder1为该其余字段数据添加对应的字段标签与字段标志位生成STEP字段,并存储至与encoder1对应的寄存器中。
另外,对于所有编码器(即上述所确定的所有编码器)中除上述目标编码器之外的每个编码器,执行以下步骤:获取对应的源数据对应的类型信息,根据类型信息对相应的源数据执行对应的编码操作,生成字段数据,为相应的字段数据添加对应的字段标签与字段标志位生成STEP字段,并存储至与该编码器对应的存储设备。其中,具体执行流程可以参考上述实施例,本发明实施例在此不再一一赘述。
需要说明的是,对于编码冲突,如果编码器的数量足够多,则编码冲突发生的可能性很小,则可以无需考虑编码冲突。
S506,提取所述存储设备中的STEP字段进行合并生成STEP数据。
在本发明实施例中,本步骤与上述步骤S104类似,本发明实施例在此不再一一赘述。
与上述方法实施例相对应,本发明实施例还提供了一种基于FPGA的数据处理装置,如图7所示,应用于FPGA,该装置可以包括:编码器确定模块710、信息获取模块720、数据生成模块730、字段生成模块740、字段存储模块750、字段合并模块760。
编码器确定模块710,用于在接收到多条源数据的情况下,对于每条所述源数据从预设编码器组中确定对应的编码器;
信息获取模块720,用于利用每个所述编码器获取对应的所述源数据的类型信息;
数据生成模块730,用于根据所述类型信息对对应的所述源数据执行对应的编码操作,生成字段数据;
字段生成模块740,用于利用每个所述编码器为对应所述字段数据添加对应的字段标签与字段标志位生成STEP字段;
字段存储模块750,用于将所述STEP字段存储至与每个所述编码器对应的存储设备;
字段合并模块760,用于提取所述存储设备中的STEP字段进行合并生成STEP数据。
本发明实施例还提供了一种电子设备,如图8所示,包括处理器81、通信接口82、存储器83和通信总线84,其中,处理器81,通信接口82,存储器83通过通信总线84完成相互间的通信,
存储器83,用于存放计算机程序;
处理器81,用于执行存储器83上所存放的程序时,实现如下步骤:
在接收到多条源数据的情况下,对于每条所述源数据从预设编码器组中确定对应的编码器;利用每个所述编码器获取对应的所述源数据的类型信息,并根据所述类型信息对对应的所述源数据执行对应的编码操作,生成字段数据;利用每个所述编码器为对应所述字段数据添加对应的字段标签与字段标志位生成STEP字段,并存储至与该编码器对应的存储设备;提取所述存储设备中的STEP字段进行合并生成STEP数据。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种存储介质,该存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的基于FPGA的数据处理方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的基于FPGA的数据处理方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在存储介质中,或者从一个存储介质向另一个存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (12)
1.一种基于FPGA的数据处理方法,其特征在于,应用于FPGA,所述方法包括:
在接收到多条源数据的情况下,对于每条所述源数据从预设编码器组中确定对应的编码器;
利用每个所述编码器获取对应的所述源数据的类型信息,并根据所述类型信息对对应的所述源数据执行对应的编码操作,生成字段数据;
利用每个所述编码器为对应所述字段数据添加对应的字段标签与字段标志位生成STEP字段,并存储至与该编码器对应的存储设备;
提取所述存储设备中的STEP字段进行合并生成STEP数据。
2.根据权利要求1所述的方法,其特征在于,所述在接收到多条源数据的情况下,对于每条所述源数据从预设编码器组中确定对应的编码器,包括:
在接收到多条源数据的情况下,获取预设编码器组中每个编码器各自对应的预设配置表,其中,所述预设配置表中存储源数据对应的标识;
对于每条所述源数据,根据所述预设配置表中存储的源数据对应的标识,从所述预设配置表中查找该条源数据对应的预设目标配置表;
对于每条所述源数据,确定所述预设目标配置表对应的编码器为该条源数据对应的编码器。
3.根据权利要求2所述的方法,其特征在于,所述预设配置表中存储源数据对应的类型信息;所述利用每个所述编码器获取对应的所述源数据的类型信息,包括:
利用每个所述编码器读取对应所述预设目标配置表中存储的源数据对应的类型信息,获取对应的所述源数据的类型信息。
4.根据权利要求1所述的方法,其特征在于,所述根据所述类型信息对对应的所述源数据执行对应的编码操作,生成字段数据,包括:
若所述类型信息包括字符型,从对应的所述源数据中提取字符数据,生成字段数据;
若所述类型信息包括数值型,对对应的所述源数据进行进制转换,生成字段数据。
5.根据权利要求2所述的方法,其特征在于,所述预设配置表中存储源数据对应的字段标签与字段标志位;所述利用每个所述编码器为对应所述字段数据添加对应的字段标签与字段标志位生成STEP字段,包括:
利用每个所述编码器读取对应所述预设目标配置表中存储的源数据对应的字段标签与字段标志位;
利用每个所述编码器为对应所述字段数据添加对应的字段标签与字段标志位生成STEP字段。
6.根据权利要求1所述的方法,其特征在于,所述利用每个所述编码器获取对应的所述源数据的类型信息之前,所述方法还包括:
判断所有所述编码器中是否存在目标编码器对应的所述源数据的数量大于1;
若所有所述编码器中未存在目标编码器对应的所述源数据的数量大于1,则执行利用每个所述编码器获取对应的所述源数据的类型信息的步骤。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若所有所述编码器中存在目标编码器对应的所述源数据的数量大于1,根据所述目标编码器对应的所述源数据的顺序,从所述目标编码器对应的所述源数据中选取目标源数据;
利用所述目标编码器获取所述目标源数据对应的类型信息,并根据所述类型信息对所述目标源数据执行对应的编码操作,生成字段数据,存储至所述目标编码器对应的存储设备中。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
根据编码器的排名顺序,从预设编码器组剩余编码器中确定空闲编码器;
利用所述空闲编码器获取所述目标编码器对应的剩余源数据的类型信息,并根据所述剩余源数据的类型信息对所述剩余源数据执行对应的编码操作,生成其余字段数据;
利用所述空闲编码器为所述其余字段数据添加对应的字段标签与字段标志位生成STEP字段,并存储至与所述空闲编码器对应的存储设备。
9.根据权利要求1所述的方法,其特征在于,所述提取所述存储设备中的STEP字段进行合并生成STEP数据,包括:
基于STEP字段的排名顺序从所述存储设备中提取STEP字段,并剔除STEP字段中无效字节;
基于STEP字段的提取顺序合并经过无效字节剔除的STEP字段,生成STEP数据。
10.一种基于FPGA的数据处理装置,其特征在于,应用于FPGA,所述装置包括:
编码器确定模块,用于在接收到多条源数据的情况下,对于每条所述源数据从预设编码器组中确定对应的编码器;
信息获取模块,用于利用每个所述编码器获取对应的所述源数据的类型信息;
数据生成模块,用于根据所述类型信息对对应的所述源数据执行对应的编码操作,生成字段数据;
字段生成模块,用于利用每个所述编码器为对应所述字段数据添加对应的字段标签与字段标志位生成STEP字段;
字段存储模块,用于将所述STEP字段存储至与每个所述编码器对应的存储设备;
字段合并模块,用于提取所述存储设备中的STEP字段进行合并生成STEP数据。
11.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-9中任一所述的方法步骤。
12.一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-9中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010712111.0A CN112069772A (zh) | 2020-07-22 | 2020-07-22 | 基于fpga的数据处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010712111.0A CN112069772A (zh) | 2020-07-22 | 2020-07-22 | 基于fpga的数据处理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112069772A true CN112069772A (zh) | 2020-12-11 |
Family
ID=73656646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010712111.0A Pending CN112069772A (zh) | 2020-07-22 | 2020-07-22 | 基于fpga的数据处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112069772A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113067581A (zh) * | 2021-03-11 | 2021-07-02 | 深圳华云信息系统有限公司 | 解码系统、解码方法、电子设备及存储介质 |
-
2020
- 2020-07-22 CN CN202010712111.0A patent/CN112069772A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113067581A (zh) * | 2021-03-11 | 2021-07-02 | 深圳华云信息系统有限公司 | 解码系统、解码方法、电子设备及存储介质 |
CN113067581B (zh) * | 2021-03-11 | 2023-02-10 | 深圳华云信息系统有限公司 | 解码系统、解码方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106852185A (zh) | 基于字典的并行压缩编码器 | |
CN104516921A (zh) | 自动回复方法及装置 | |
CN110377268A (zh) | 流水号生成方法、装置及存储介质 | |
WO2022041834A1 (zh) | 一种交易数据处理方法与装置 | |
CN111475532B (zh) | 数据处理的优化方法及装置、存储介质、终端 | |
US8560698B2 (en) | Allocating unique identifiers using metadata | |
CN112069772A (zh) | 基于fpga的数据处理方法、装置、电子设备及存储介质 | |
CN112184321A (zh) | 一种客户数据快速筛选方法、装置及系统 | |
CN114595795B (zh) | 一种nfc标签的溯源数据处理方法 | |
CN116629423A (zh) | 用户行为预测方法、装置、设备及存储介质 | |
CN108804561A (zh) | 数据同步方法及装置 | |
CN110309235B (zh) | 一种数据处理方法、装置、设备及介质 | |
CN114780039A (zh) | 存储方法、计算方法、存储装置、众核系统、介质 | |
CN114564501A (zh) | 一种数据库数据存储、查询方法、装置、设备及介质 | |
CN115276889A (zh) | 解码处理方法、装置、计算机设备及存储介质 | |
CN112530522A (zh) | 序列纠错方法、装置、设备和存储介质 | |
CN112966038A (zh) | 从非结构化数据中提取结构化数据方法及装置 | |
CN115118527B (zh) | 超高频模组与pda的双向认证方法及相关设备 | |
CN113836906B (zh) | 标书生成方法、装置及服务器 | |
JP7260380B2 (ja) | 情報処理装置及び顧客情報解析方法 | |
CN113761938B (zh) | 用于训练nlp模型的方法及装置、电子设备、存储介质 | |
US10693494B2 (en) | Reducing a size of multiple data sets | |
CN113505192A (zh) | 数据标签库构建方法、装置、电子设备及计算机存储介质 | |
CN117312306A (zh) | 金融业务数据表转换方法、装置、设备、介质和程序产品 | |
CN113590581A (zh) | 数据传输方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 9th Floor, Block A, Shenzhen National Engineering Laboratory Building, No. 20, Gaoxin South 7th Road, High-tech Zone Community, Yuehai Street, Nanshan District, Shenzhen, Guangdong 518000 Applicant after: Shenzhen Huayun Information System Technology Co.,Ltd. Address before: No. 904, block a, national engineering laboratory building, Gaoxin South 7th road digital technology park, Yuehai street, Nanshan District, Shenzhen, Guangdong 518000 Applicant before: Shenzhen Huayun Information System Co.,Ltd. |
|
CB02 | Change of applicant information |