基于FPGA的数据处理方法、装置、电子设备及存储介质与流程

文档序号:26278688发布日期:2021-08-13 19:35阅读:87来源:国知局
基于FPGA的数据处理方法、装置、电子设备及存储介质与流程
本发明涉及数据处理
技术领域
,尤其涉及一种基于fpga的数据处理方法、装置、电子设备及存储介质。
背景技术
:金融市场,包括货币市场和资本市场,是资金融通市场。所谓资金融通,是指在经济运行过程中,资金供求双方运用各种金融工具调节资金盈余的活动,是所有金融交易活动的总称,在金融市场上进行交易的是各种金融工具,比如股票、证券、储蓄存单等。通常对于不同用户而言,其关注的金融工具不同,针对每个用户关注的金融工具,获取其对应的金融代码(例如股票代码),需要存储至相应的存储空间中。其中,需要通过哈希算法查找到相应的存储地址,以便于将金融工具对应的金融代码存储至存储地址对应的存储空间中。目前,由于fpga(fieldprogrammablegatearray,现场可编程逻辑门阵列)可编辑的特性,大都采用fpga来存储金融工具对应的金融代码。其中,需要通过哈希算法查找到相应的存储地址,以便于将金融工具对应的金融代码存储至存储地址对应的存储空间中。但是常见的哈希算法通常包含复杂的数学运算,鉴于fpga本身的特性,导致fpga并不适合复杂的数学运算,因此常见的哈希算法并不适合在fpga上实现,从而无法实现在fpga上快速存储金融工具对应的金融代码。技术实现要素:为了解决上述常见的哈希算法并不适合在fpga上实现,从而无法实现在fpga上快速存储金融工具对应的金融代码的技术问题,本发明实施例提供了一种基于fpga的数据处理方法、装置、电子设备及存储介质。在本发明实施例的第一方面,首先提供了一种基于fpga的数据处理方法,应用于fpga,所述方法包括:接收数据存储请求,其中,所述数据存储请求中携带有第一金融工具对应的第一金融代码;基于预设的金融代码选取策略,从所述第一金融代码中选取预设位数的第一关键数据;确定所述第一关键数据为第一存储地址,将所述第一金融代码存储至所述第一存储地址对应的第一存储空间中。在一个可选的实施方式中,所述基于预设的金融代码选取策略,从所述第一金融代码中选取预设位数的第一关键数据,包括:确定所述第一金融工具对应的第一金融类型;根据预设的金融类型与金融代码选取策略的映射关系,查找所述第一金融类型对应的第一金融代码选取策略;根据所述第一金融代码选取策略,从所述第一金融代码中选取预设位数的第一关键数据。在一个可选的实施方式中,所述根据所述第一金融代码选取策略,从所述第一金融代码中选取预设位数的第一关键数据,包括:将所述第一金融代码转换为第一进制数据,根据所述第一金融代码选取策略,从所述第一进制数据中选取预设位数的第一关键数据。在一个可选的实施方式中,所述将所述第一金融代码存储至所述第一存储地址对应的第一存储空间中,包括:确定fpga对应的存储器,其中,所述存储器的数量至少为一个;并行读取所述存储器里所述第一存储地址对应的第一存储空间中存储的第一数据;判断所述第一数据是否与所述第一金融代码一致;若所述第一数据与所述第一金融代码未一致,判断所述存储器里所述第一存储地址对应的第一存储空间中是否存在第一空闲存储空间;若所述存储器里所述第一存储地址对应的第一存储空间中存在所述第一空闲存储空间,将所述第一金融代码存储至所述第一空闲存储空间。在一个可选的实施方式中,所述方法还包括:若所述第一数据与所述第一金融代码一致,则响应于所述数据存储请求,返回所述第一金融代码已存储的提示。在一个可选的实施方式中,所述方法还包括:若所述存储器里所述第一存储地址对应的第一存储空间中未存在所述第一空闲存储空间,则基于预设的线性探查算法,对所述第一存储地址进行处理,并跳转至所述并行读取所述存储器里所述第一存储地址对应的第一存储空间中存储的第一数据的步骤。在一个可选的实施方式中,所述方法还包括:接收数据查询请求,其中,所述数据查询请求中携带有第二金融工具对应的第二金融代码;基于预设的金融代码选取策略,从所述第二金融代码中选取预设位数的第二关键数据;确定所述第二关键数据为第二存储地址,查询所述第二存储地址对应的第二存储空间中存储的第二数据;在所述第二数据与所述第二金融代码一致的情况下,响应于所述数据查询请求返回查询成功的提示。在一个可选的实施方式中,所述基于预设的金融代码选取策略,从所述第二金融代码中选取预设位数的第二关键数据,包括:确定所述第二金融工具对应的第二金融类型;根据预设的金融类型与金融代码选取策略的映射关系,查找所述第二金融类型对应的第二金融代码选取策略;根据所述第二金融代码选取策略,从所述第二金融代码中选取预设位数的第二关键数据。在一个可选的实施方式中,所述根据所述第二金融代码选取策略,从所述第二金融代码中选取预设位数的第二关键数据,包括:将所述第二金融代码转换为第二进制数据,根据所述第二金融代码选取策略,从所述第二进制数据中选取预设位数的第二关键数据。在一个可选的实施方式中,所述查询所述第二存储地址对应的第二存储空间中存储的第二数据,包括:确定fpga对应的存储器,其中,所述存储器的数量至少为一个;并行读取所述存储器里所述第二存储地址对应的第二存储空间中存储的第二数据。在一个可选的实施方式中,所述方法还包括:在所述第二数据与所述第二金融代码未一致的情况下,判断所述存储器里所述第二存储地址对应的第二存储空间中是否存在第二空闲存储空间;若所述存储器里所述第二存储地址对应的第二存储空间中存在所述第二空闲存储空间,响应于所述数据查询请求返回查询无效的提示。在一个可选的实施方式中,所述方法还包括:若所述存储器里所述第二存储地址对应的第二存储空间中未存在所述第二空闲存储空间,基于预设的线性探查算法,对所述第二存储地址进行处理,并跳转至所述并行读取所述存储器里所述第二存储地址对应的第二存储空间中存储的第二数据的步骤。在本发明实施例的第二方面,还提供了一种基于fpga的数据处理装置,应用于fpga,所述装置包括:请求接收模块,用于接收数据存储请求,其中,所述数据存储请求中携带有第一金融工具对应的第一金融代码;数据选取模块,用于基于预设的金融代码选取策略,从所述第一金融代码中选取预设位数的第一关键数据;数据存储模块,用于确定所述第一关键数据为第一存储地址,将所述第一金融代码存储至所述第一存储地址对应的第一存储空间中。在本发明实施例的第三方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述第一方面中任一所述的基于fpga的数据处理方法。在本发明实施例的第四方面,还提供了一种存储介质,所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面中任一所述的基于fpga的数据处理方法。在本发明实施例的第五方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的基于fpga的数据处理方法。本发明实施例提供的技术方案,接收数据存储请求,其中,数据存储请求中携带有第一金融工具对应的第一金融代码,基于预设的金融代码选取策略,从第一金融代码中选取预设位数的第一关键数据,确定第一关键数据为第一存储地址,将第一金融代码存储至第一存储地址对应的第一存储空间中。如此采用直接寻址法,将第一金融代码中的一部分作为散列地址进行金融代码的存储,并未包含复杂的数学运算,因此可以轻易地在fpga上实现,从而实现在fpga上快速存储金融工具对应的金融代码。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例中示出的一种基于fpga的数据处理方法的实施流程示意图;图2为本发明实施例提供的一种预设位数的第一关键数据的选取方法的实施流程示意图;图3为本发明实施例提供的一种第一金融代码的存储方法的实施流程示意图;图4为本发明实施例提供的另一种基于fpga的数据处理方法的实施流程示意图;图5为本发明实施例提供的一种预设位数的第二关键数据的选取方法的实施流程示意图;图6为本发明实施例提供的一种第二数据的查询方法的实施流程示意图;图7为本发明实施例中示出的一种基于fpga的数据处理装置的结构示意图;图8为本发明实施例中示出的一种电子设备的结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。如图1所示,为本发明实施例提供的一种基于fpga的数据处理方法的实施流程示意图,应用于fpga,该方法具体可以包括以下步骤:s101,接收数据存储请求,其中,所述数据存储请求中携带有第一金融工具对应的第一金融代码。通常对于不同用户而言,其关注的金融工具不同,就每个用户而言,用户希望将其关注的金融工具对应的金融代码存储至相应的存储空间中。这里金融工具指的是股票、证券、储蓄存单等,相应的金融代码指的是股票代码、证券代码等,本发明实施例对此不作限定。为了实现将用户关注的金融工具对应的金融代码存储至相应的存储空间中,用户可以在终端侧或者其它设备侧触发数据存储请求,并转发至fpga,由fpga接收数据存储请求,其中,数据存储请求中携带有第一金融工具对应的第一金融代码。例如,以证券为例,为了实现将用户关注的证券对应的证券代码存储至相应的存储空间中,用户可以在终端侧触发数据存储请求,并转发至fpga,由fpga接收数据存储请求,其中,数据存储请求中携带有证券对应的证券代码(例如160091)。s102,基于预设的金融代码选取策略,从所述第一金融代码中选取预设位数的第一关键数据。对于第一金融代码,在本发明实施例中可以基于预设的金融代码选取策略,从该第一金融代码中选取预设位数的第一关键数据。例如,对于证券代码,在本发明实施例中,基于预设的金融代码选取策略,从该证券代码中选取9位数的第一关键数据(101010111),意味着第一关键数据的位数是9。其中,对于不同的金融工具,其对应的金融类型不同,例如股票属于股票类型,证券属于证券类型,相应的随着金融类型的不同,金融代码选取策略也可以存在区别。基于此,本发明实施例预先设置金融类型与金融代码选取策略的映射关系,如下表1所示。金融类型金融代码选取策略股票类型金融代码选取策略1证券类型金融代码选取策略2…………表1基于上述,如图2所示,为本发明实施例提供的一种预设位数的第一关键数据的选取方法的实施流程示意图,应用于fpga,该方法具体可以包括以下步骤:s201,确定所述第一金融工具对应的第一金融类型。在本发明实施例中,对于不同的金融工具,其对应的金融类型不同,由此可以确定第一金融工具对应的第一金融类型。例如,第一金融工具为证券,则可以确定第一金融工具对应的第一金融类型:证券类型。s202,根据预设的金融类型与金融代码选取策略的映射关系,查找所述第一金融类型对应的第一金融代码选取策略。在本发明实施例中,对于第一金融工具对应的第一金融类型,根据预设的金融类型与金融代码选取策略的映射关系,查找该第一金融类型对应的第一金融代码选取策略。例如,第一金融工具对应的第一金融类型为证券类型,根据如上述表1所示的金融类型与金融代码选取策略的映射关系,查找证券类型对应的金融代码选取策略2。s203,根据所述第一金融代码选取策略,从所述第一金融代码中选取预设位数的第一关键数据。在本发明实施例中,对于该第一金融类型对应的第一金融代码选取策略,可以根据该第一金融代码选取策略,从第一金融代码中选取预设位数的第一关键数据。例如,对于证券类型对应的金融代码选取策略2,可以根据该金融代码选取策略2,从该证券代码中选取9位数的第一关键数据,比如第一关键数据101010111。其中,在本发明实施例中,可以将第一金融代码转换为第一进制数据,根据第一金融代码选取策略,从第一进制数据中选取预设位数的第一关键数据。例如,对于证券代码,将该证券代码转换为二进制数据,根据该金融代码选取策略2,从该二进制数据中选取9位数的第一关键数据,其中,选取该二进制数据中低9位作为9位数的第一关键数据。需要说明的是,这里将第一金融代码转换为第一进制数据,具体可以是转换为二进制数据,可以是转换为八进制数据,可以转换为十六进制数据,当然优选的转换为二进制数据,本发明实施例对此不作限定。s103,确定所述第一关键数据为第一存储地址,将所述第一金融代码存储至所述第一存储地址对应的第一存储空间中。在本发明实施例中,对于上述第一关键数据,可以确定该第一关键数据为第一存储地址,从而可以将该第一金融代码存储至第一存储地址对应的第一存储空间中,从而完成第一金融代码的存储。如此采用直接寻址法,将第一金融代码中的一部分作为散列地址进行金融代码的存储,并未包含复杂的数学运算,因此可以轻易地在fpga上实现,从而实现在fpga上快速存储金融工具对应的金融代码。其中,如图3所示,为本发明实施例提供的一种第一金融代码的存储方法的实施流程示意图,应用于fpga,该方法具体可以包括以下步骤:s301,确定fpga对应的存储器,其中,所述存储器的数量至少为一个。对于fpga,可以预先配置对应的存储器,例如对于fpga,采用四个位宽为27、深度为512的blockram,可以存储2048支证券代码,27位存储数据包含了1位占用标志位和26位证券代码的二进制数据,每个ram存在对应的编号,例如00,01,10,11等,则证券代码的存储地址由ram的编号以及26位证券代码的二进制数据的低9位组成。基于此,在本发明实施例中,可以确定fpga对应的存储器,其中,存储器的数量至少为一个。例如,确定fpga对应的四个位宽为27、深度为512的blockram:ram00、ram01、ram10、ram11,每个ram的存储空间均一致。s302,并行读取所述存储器里所述第一存储地址对应的第一存储空间中存储的第一数据。在本发明实施例中,对于fpga对应的存储器,鉴于fpga的并行处理能力,可以并行读取存储器里第一存储地址对应的第一存储空间中存储的第一数据,从而可以得到存储器里第一存储地址对应的第一存储空间中存储的第一数据。例如,以证券代码的二进制数据低9位作为第一存储地址,并行读取4个ram里该第一存储地址对应的第一存储空间中存储的第一数据,意味着,针对每个ram,均读取该第一存储地址对应的第一存储空间中存储的第一数据。s303,判断所述第一数据是否与所述第一金融代码一致。在本发明实施例中,对于存储器里第一存储地址对应的第一存储空间中存储的第一数据,可以判断该第一数据是否与第一金融代码一致,从而确定是否对第一金融代码进行存储。例如,对于4个ram里该第一存储地址对应的第一存储空间中存储的第一数据,判断该第一数据是否与证券代码一致,从而根据判断结果决定是否对证券代码进行存储。s304,若所述第一数据与所述第一金融代码未一致,判断所述存储器里所述第一存储地址对应的第一存储空间中是否存在第一空闲存储空间。在本发明实施例中,对于存储器里第一存储地址对应的第一存储空间中存储的第一数据,若该第一数据与第一金融代码一致,则说明第一金融代码已经存储,无需再次存储,可以响应于数据存储请求,返回第一金融代码已存储的提示。此外,若该第一数据与第一金融代码未一致,说明第一金融代码还未存储,则可以继续判断存储器里第一存储地址对应的第一存储空间中是否存在第一空闲存储空间,从而根据判断结果决定将第一金融代码存储至哪里。例如,对于4个ram里该第一存储地址对应的第一存储空间中存储的第一数据,判断该第一数据是否与证券代码一致,如果一致,则响应于数据存储请求,返回证券代码已存储的提示,如果未一致,则判断4个ram里该第一存储地址对应的第一存储空间中是否存在第一空闲存储空间。s305,若所述存储器里所述第一存储地址对应的第一存储空间中存在所述第一空闲存储空间,将所述第一金融代码存储至所述第一空闲存储空间。在本发明实施例中,如果存储器里第一存储地址对应的第一存储空间中存在第一空闲存储空间,从而可以将第一金融代码存储至第一空闲存储空间,从而完成第一金融代码的存储。例如,4个ram里该第一存储地址对应的第一存储空间中存在第一空闲存储空间,从而可以将证券代码存储至第一空闲存储空间,从而完成证券代码的存储。需要说明的是,对于第一空闲存储空间,可以存在多个第一空闲存储空间。例如,这里4个ram里该第一存储地址对应的第一存储空间,第一存储空间的数量与ram的数量一致,也是4个,则第一空闲存储空间的数量,可以是3个,可以是2个,可以是1个,本发明实施例对此不作限定。从而根据ram的编号从第一空闲存储空间中选取某一个第一空闲存储空间,将第一金融代码进行存储,其中,可以优选选取编号靠前的第一空闲存储空间对第一金融代码存储,例如选取ram10中的第一空闲存储空间,或者选取ram11中的第一空闲存储空间。此外,如果存储器里第一存储地址对应的第一存储空间中未存在第一空闲存储空间,说明发生了存储地址冲突,此时可以基于预设的线性探查算法,对第一存储地址进行处理,并跳转至并行读取存储器里第一存储地址对应的第一存储空间中存储的第一数据的步骤,即s302。需要说明的是,这里线性探查算法,其实质就是让第一存储地址以线上增长的方式增长。例如第一存储地址加1,或者第一存储地址乘以2,然后加1,具体地线上增长的方式,在本发明实施例中不做具体限定,可以是任意形式的线上增长的方式。例如,假设当前第一存储地址101010100,基于预设的线性探查算法,对第一存储地址进行处理,则将当前第一存储地址101010100加1,从而第一存储地址得到了更新,从而可以重新跳转至s302,继续执行第一金融代码的存储流程,直至第一金融代码存储完成。通过上述对本发明实施例提供的技术方案的描述,接收数据存储请求,其中,数据存储请求中携带有第一金融工具对应的第一金融代码,基于预设的金融代码选取策略,从第一金融代码中选取预设位数的第一关键数据,确定第一关键数据为第一存储地址,将第一金融代码存储至第一存储地址对应的第一存储空间中。如此采用直接寻址法,将第一金融代码中的一部分作为散列地址进行金融代码的存储,并未包含复杂的数学运算,因此可以轻易地在fpga上实现,从而实现在fpga上快速存储金融工具对应的金融代码。如图4所示,为本发明实施例提供的另一种基于fpga的数据处理方法的实施流程示意图,应用于fpga,该方法具体可以包括以下步骤:s401,接收数据查询请求,其中,所述数据查询请求中携带有第二金融工具对应的第二金融代码。通常对于不同用户而言,其关注的金融工具不同,就每个用户而言,用户有时候希望查询其关注的金融工具对应的金融代码。这里金融工具指的是股票、证券、储蓄存单等,相应的金融代码指的是股票代码、证券代码等,本发明实施例对此不作限定。为了实现用户可以查询其关注的金融工具对应的金融代码,用户可以在终端测或者其他设备侧触发数据查询请求,并转发至fpga,由fpga接收数据查询请求,其中,数据查询请求中携带有第二金融工具对应的第二金融代码。例如,以证券为例,为了实现用户可以查询其关注的证券对应的证券代码,用户可以在终端测或者其他设备侧触发数据查询请求,并转发至fpga,由fpga接收数据查询请求,其中,数据查询请求中携带有证券对应的证券代码。s402,基于预设的金融代码选取策略,从所述第二金融代码中选取预设位数的第二关键数据。对于第二金融代码,在本发明实施例可以基于预设的金融代码选取策略,从第二金融代码中选取预设位数的第二关键数据。例如,对于证券代码,在本发明实施例中,基于预设的金融代码选取策略,从该证券代码中选取9位数的第二关键数据(101010111),意味着第二关键数据的位数是9。其中,对于不同的金融工具,其对应的金融类型不同,例如股票属于股票类型,证券属于证券类型,相应的随着金融类型的不同,金融代码选取策略也存在区别。基于此,本发明实施例预先设置金融类型与金融代码选取策略的映射关系,如上述表1所示。基于上述所述,如图5所示,为本发明实施例提供的一种预设位数的第二关键数据的选取方法的实施流程示意图,应用于fpga,该方法具体可以包括以下步骤:s501,确定所述第二金融工具对应的第二金融类型。在本发明实施例中,对于不同的金融工具,其对应的金融类型不同,由此可以确定第二金融工具对应的第二金融类型。例如,第二金融工具为证券,则可以确定第二金融工具对应的第二金融类型:证券类型。s502,根据预设的金融类型与金融代码选取策略的映射关系,查找所述第二金融类型对应的第二金融代码选取策略。在本发明实施例中,对于第二金融工具对应的第二金融类型,根据预设的金融类型与金融代码选取策略的映射关系,查找该第二金融类型对应的第二金融代码选取策略。例如,第二金融工具对应的第二金融类型为证券类型,根据如上述表1所示的金融类型与金融代码选取策略的映射关系,查找证券类型对应的金融代码选取策略2。s503,根据所述第二金融代码选取策略,从所述第二金融代码中选取预设位数的第二关键数据。在本发明实施例中,对于该第二金融类型对应的第二金融代码选取策略,可以根据该第二金融代码选取策略,从第二金融代码中选取预设位数的第二关键数据。例如,对于证券类型对应的金融代码选取策略2,可以根据该金融代码选取策略2,从该证券代码中选取9位数的第二关键数据,比如第二关键数据101010111。其中,在本发明实施例中,可以将第二金融代码转换为第二进制数据,根据第二金融代码选取策略,从第二进制数据中选取预设位数的第二关键数据。例如,对于证券代码,将该证券代码转换为二进制数据,根据该金融代码选取策略2,从该二进制数据中选取9位数的第二关键数据,其中,选取该二进制数据中低9位作为9位数的第二关键数据。需要说明的是,这里将第二金融代码转换为第二进制数据,具体可以是转换为二进制数据,可以是转换为八进制数据,可以转换为十六进制数据,当然优选的转换为二进制数据,本发明实施例对此不作限定。s403,确定所述第二关键数据为第二存储地址,查询所述第二存储地址对应的第二存储空间中存储的第二数据。s404,在所述第二数据与所述第二金融代码一致的情况下,响应于所述数据查询请求返回查询成功的提示。在本发明实施例中,对于上述第二关键数据,可以确定该第二关键数据为第二存储地址,从而可以查询该第二存储地址对应的第二存储空间中存储的第二数据。其中,如图6所示,为本发明实施例提供的一种第二数据的查询方法的实施流程示意图,应用于fpga,该方法具体可以包括以下步骤:s601,确定fpga对应的存储器,其中,所述存储器的数量至少为一个。在本发明实施例中,本步骤与上述步骤s301类似,本发明实施例在此不再一一赘述。s602,并行读取所述存储器里所述第二存储地址对应的第二存储空间中存储的第二数据。在本发明实施例中,对于fpga对应的存储器,可以并行读取存储器里第二存储地址对应的第二存储空间中存储的第二数据,从而可以得到存储器里第二存储地址对应的第二存储空间中存储的第二数据。例如,以证券代码的二进制数据低9位作为第二存储地址,并行读取4个ram里该第二存储地址对应的第二存储空间中存储的第二数据,意味着,针对每个ram,均读取该第二存储地址对应的第二存储空间中存储的第二数据。对于上述第二数据,判断该第二数据是否与第二金融代码一致,在第二数据与第二金融代码一致的情况下,响应于数据查询请求返回查询成功的提示。如此采用直接寻址法,将第二金融代码中的一部分作为散列地址进行金融代码的查询,并未包含复杂的数学运算,因此可以轻易地在fpga上实现,从而实现在fpga上快速查询金融工具对应的金融代码。例如,对于4个ram里该第二存储地址对应的第二存储空间中存储的第二数据,在第二数据与证券代码一致的情况下,则响应于数据查询请求返回查询成功的提示。在第二数据与第二金融代码未一致的情况下,判断存储器里第二存储地址对应的第二存储空间中是否存在第二空闲存储空间,若存储器里第二存储地址对应的第二存储空间中存在第二空闲存储空间,响应于数据查询请求返回查询无效的提示,意味着第二金融代码并未存储。例如,对于4个ram里该第二存储地址对应的第二存储空间中存储的第二数据,在第二数据与证券代码未一致的情况下,判断4个ram里该第二存储地址对应的第二存储空间中是否存在第二空闲存储空间,若4个ram里该第二存储地址对应的第二存储空间中存在第二空闲存储空间,说明该证券代码并未存储,则响应于数据查询请求返回查询无效的提示。此外,若存储器里第二存储地址对应的第二存储空间中未存在第二空闲存储空间,说明发生了存储地址冲突,此时可以基于预设的线性探查算法,对第二存储地址进行处理,并跳转至并行读取存储器里第二存储地址对应的第二存储空间中存储的第二数据的步骤,即s602。需要说明的是,这里线性探查算法,其实质就是让第一存储地址以线上增长的方式增长,例如第一存储地址加1,或者第一存储地址乘以2,然后加1,具体地线上增长的方式,在本发明实施例中不做具体限定,可以是任意形式的线上增长的方式。例如,假设当前第二存储地址101010100,基于预设的线性探查算法,对第二存储地址进行处理,则将当前第二存储地址101010100加1,从而第二存储地址得到了更新,从而可以跳转至s602,继续执行第二金融代码的查询流程,直至完成第二金融代码的查询流程。通过上述对本发明实施例提供的技术方案的描述,接收数据查询请求,其中,数据查询请求中携带有第二金融工具对应的第二金融代码,基于预设的金融代码选取策略,从第二金融代码中选取预设位数的第二关键数据,确定第二关键数据为第二存储地址,查询第二存储地址对应的第二存储空间中存储的第二数据,在第二数据与第二金融代码一致的情况下,响应于数据查询请求返回查询成功的提示。如此采用直接寻址法,将第二金融代码中的一部分作为散列地址进行金融代码的查询,并未包含复杂的数学运算,因此可以轻易地在fpga上实现,从而实现在fpga上快速查询金融工具对应的金融代码。需要说明的是,对于金融代码的存储与查询流程可以同时进行,结果同时输出,本发明实施例对此不作限定。与上述方法实施例相对应,本发明实施例还提供了一种基于fpga的数据处理装置,如图7所示,应用于fpga,该装置可以包括:请求接收模块710、数据选取模块720、数据存储模块730。请求接收模块710,用于接收数据存储请求,其中,所述数据存储请求中携带有第一金融工具对应的第一金融代码;数据选取模块720,用于基于预设的金融代码选取策略,从所述第一金融代码中选取预设位数的第一关键数据;数据存储模块730,用于确定所述第一关键数据为第一存储地址,将所述第一金融代码存储至所述第一存储地址对应的第一存储空间中。本发明实施例还提供了一种电子设备,如图8所示,包括处理器81、通信接口82、存储器83和通信总线84,其中,处理器81,通信接口82,存储器83通过通信总线84完成相互间的通信,存储器83,用于存放计算机程序;处理器81,用于执行存储器83上所存放的程序时,实现如下步骤:接收数据存储请求,其中,所述数据存储请求中携带有第一金融工具对应的第一金融代码;基于预设的金融代码选取策略,从所述第一金融代码中选取预设位数的第一关键数据;确定所述第一关键数据为第一存储地址,将所述第一金融代码存储至所述第一存储地址对应的第一存储空间中。上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子设备与其他设备之间的通信。存储器可以包括随机存取存储器(randomaccessmemory,简称ram),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。在本发明提供的又一实施例中,还提供了一种存储介质,该存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的基于fpga的数据处理方法。在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的基于fpga的数据处理方法。在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在存储介质中,或者从一个存储介质向另一个存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1