一种基于FPGA的数据处理方法、装置、设备及介质与流程

文档序号:17078966发布日期:2019-03-09 00:01阅读:263来源:国知局
一种基于FPGA的数据处理方法、装置、设备及介质与流程

本发明涉及数据处理领域,特别是涉及一种基于fpga的数据处理方法、装置、设备及介质。



背景技术:

随着互联网技术的不断发展,利用网络资源实现的业务种类不断丰富,当前为实现云计算、大数据处理以及资产交易等纯数据逻辑运算业务而搭建的服务器也越来越多。

由于服务器并不擅长进行纯数据运算的业务,而通过增加业务服务器数量的方式提高运算能力,不但会产生较高的成本,而且对于运算能力的提高程度相对有限,性价比较低,因此当前通常采用将fpga(field-programmablegatearray,现场可编程门阵列)板卡接入服务器,以此增加服务器的数据运算资源,进而服务器利用fpga进行纯数据运算,由于fpga具有门电路的特性,因此能够相对较大幅度的提高服务器的数据运算能力。服务器在使用pfga板卡时,会根据当前的数据运算需求,将相应的固件加载至fpga中,进而固件的运算逻辑基于fpga的运算资源执行,以此对数据进行运算处理。但是在当前情况下,fpga通常被作为整体的资源加载固件,即在同一时刻下,fpga完全被用于执行某一类型固件以对相应类型的数据进行运算处理,但是由于在实际应用中,待处理数据的类型以及数量往往是多样的,因此当前fpga在同一时刻仅能完全用于处理单一类型的数据无疑会导致fpga的使用灵活性较差,并且极易造成对于资源的浪费。

由此可见,提供一种基于fpga的数据处理方法,以相对提高fpga的使用灵活性,并相对避免对fpga资源的浪费,是本领域技术人员亟待解决的问题。



技术实现要素:

本发明的目的是提供一种基于fpga的数据处理方法、装置、设备及介质,以相对提高fpga的使用灵活性,并相对避免对fpga资源的浪费。

为解决上述技术问题,本发明提供一种基于fpga的数据处理方法,包括:

依照预设空间阈值将fpga的电路运算资源划分为n个dpr空间;其中,n为大于1的正整数;

当获取到目标类型数据时,选取相应数量的dpr空间并加载与目标类型对应的目标固件;

运行目标固件以对目标类型数据进行处理。

优选的,在运行目标固件以对目标类型数据进行处理后,该方法进一步包括:

当获取到新目标类型数据时,选取并释放预设数量的目标dpr空间中的目标固件;

在目标dpr空间中加载与新目标类型数据对应的新目标固件,并运行新目标固件以对新目标类型数据进行处理。

优选的,当fpga仅获取到目标类型数据时,选取相应数量的dpr空间并加载与目标类型对应的目标固件具体为:

选取n个dpr空间并加载目标固件。

优选的,当新目标类型数据的优先级高于目标类型数据时,预设数量的值大于n/2。

优选的,选取相应数量的dpr空间并加载与目标类型对应的目标固件具体为:

根据目标类型数据的总量选取相应数量的dpr空间并加载与目标类型对应的目标固件;其中,目标类型数据的总量与相应数量呈正相关。

优选的,目标固件预存于fpga的flash存储器。

此外,本发明还提供一种基于fpga的数据处理装置,包括:

空间划分模块,用于依照预设空间阈值将fpga的电路运算资源划分为n个dpr空间;其中,n为大于1的正整数;

固件加载模块,用于当获取到目标类型数据时,选取相应数量的dpr空间并加载与目标类型对应的目标固件;

数据处理模块,用于运行目标固件以对目标类型数据进行处理。

优选的,该装置进一步包括:

空间释放模块,用于当获取到新目标类型数据时,选取并释放预设数量的目标dpr空间中的目标固件;

新数据处理模块,用于在目标dpr空间中加载与新目标类型数据对应的新目标固件,并运行新目标固件以对新目标类型数据进行处理。

此外,本发明还提供一种基于fpga的数据处理设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序时实现如上述的基于fpga的数据处理方法的步骤。

此外,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的基于fpga的数据处理方法的步骤。

本发明所提供的基于fpga的数据处理方法,首先依照预设的空间阈值将fpga的电路运算资源划分为1个以上的dpr空间,进而当获取到目标类型数据时,在fpga中选取相应数量的dpr空间以加载用于处理目标设备所使用的目标固件,进而通过目标固件对目标类型数据进行处理。本方法通过将fpga中的硬件资源进行量化处理,生成相应的dpr空间,进而通过根据所获取到的目标类型数据选取相应数量的dpr空间加载相应的目标固件以对目标类型数据进行处理,以此实现了选择性占用相应规模的fpga资源进行对数据的处理,进而其余fpga资源能够用于处理其它目标类型数据,因此相对提高了对fpga的使用灵活性,并相对避免了对fpga资源的浪费。此外,本发明还提供一种基于fpga的数据处理装置、设备及介质,有益效果同上所述。

附图说明

为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种基于fpga的数据处理方法的流程图;

图2为本发明实施例提供的另一种基于fpga的数据处理方法的流程图;

图3为本发明实施例提供的一种基于fpga的数据处理装置的结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。

本发明的核心是提供一种基于fpga的数据处理方法,以相对提高fpga的使用灵活性,并相对避免对fpga资源的浪费。本发明的另一核心是提供一种基于fpga的数据处理装置、设备及介质。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

实施利一

图1为本发明实施例提供的一种基于fpga的数据处理方法的流程图。请参考图1,基于fpga的数据处理方法的具体步骤包括:

步骤s10:依照预设空间阈值将fpga的电路运算资源划分为n个dpr空间。

其中,n为大于1的正整数。

需要说明的是,本步骤中所指的dpr(动态局补重配置)是基于fpga的模块化设计,目的是将fpga的资源整体划分为若干个运算模块,即本步骤中的dpr空间,每一个dpr空间的本质均为逻辑电路单元,并且都能够独立的进行对数据的逻辑运算处理。另外,本步骤中的预设空间阈值是所划分的dpr空间的空间容量,并且本步骤是将fpga作为完整的电路运算资源进行dpr空间的划分,在划分后,可以将fpga视为n个能够进行数据运算的dpr空间。此外,对于n的取值应至少为大于1的整数,目的是为了将fpga划分为多个量化的数据处理单元,在此基础上n的具体取值应根据实际应用中的具体需求而定,在此不做具体限定。

步骤s11:当获取到目标类型数据时,选取相应数量的dpr空间并加载与目标类型对应的目标固件。

在本步骤中,当获取到待处理的目标类型数据时,则根据目标类型数据选取相应数量的dpr空间,进而在所选取的dpr空间中均加载与目标类型相对应的目标固件,以此有针对性的通过目标固件对目标类型数据进行处理。此处所指的相应数量,是处理目标类型数据所适宜使用的dpr空间数量,具体应根据fpga所处理的数据的类型丰富程度或目标类型数据量等因素决定,在此不做具体限定。

步骤s12:运行目标固件以对目标类型数据进行处理。

本步骤是通过在dpr空间中运行所加载的目标固件,进而通过目标固件基于dpr空间的运算资源对目标类型数据进行处理,具体的处理逻辑遵照目标固件运行时的工作内容,处理不同类型数据所采用的目标固件存在差异,进而目标固件的工作内容也各不相同,由于本方法的重点在于选择性的在一定数量的dpr空间中加载用于处理目标类型数据的目标固件,因此目标类型的划分以及目标固件的数据处理逻辑在此不做赘述。

本发明所提供的基于fpga的数据处理方法,首先依照预设的空间阈值将fpga的电路运算资源划分为1个以上的dpr空间,进而当获取到目标类型数据时,在fpga中选取相应数量的dpr空间以加载用于处理目标设备所使用的目标固件,进而通过目标固件对目标类型数据进行处理。本方法通过将fpga中的硬件资源进行量化处理,生成相应的dpr空间,进而通过根据所获取到的目标类型数据选取相应数量的dpr空间加载相应的目标固件以对目标类型数据进行处理,以此实现了选择性占用相应规模的fpga资源进行对数据的处理,进而其余fpga资源能够用于处理其它目标类型数据,因此相对提高了对fpga的使用灵活性,并相对避免了对fpga资源的浪费。

实施例二

在上述实施例的基础上,本发明还提供以下一系列优选的实施方式。

图2为本发明实施例提供的另一种基于fpga的数据处理方法的流程图。图2中步骤s10-s12与图1相同,在此不再赘述。

如图2所示,作为一种优选的实施方式,在运行目标固件以对目标类型数据进行处理后,该方法进一步包括:

步骤s20:当获取到新目标类型数据时,选取并释放预设数量的目标dpr空间中的目标固件。

需要说明的是,本步骤是在目标类型数据处于处理的过程中,当获取到新目标类型数据时,为了确保fpga中具有足够的逻辑电路资源,因此选取预设数量的目标dpr空间,并释放所选取的目标dpr空间中的目标固件,进而目标dpr空间能够被用于加载新目标固件并对新目标类型数据进行处理。另外,本步骤中的预设数量可以根据新目标类型数据的总量,或新目标类型与目标类型之间的处理的优先级顺序等因素设定,在此不做限定。

步骤s21:在目标dpr空间中加载与新目标类型数据对应的新目标固件,并运行新目标固件以对新目标类型数据进行处理。

在本步骤中,使用在之前步骤中释放目标固件的目标dpr空间加载用于处理新目标类型数据的新目标固件,进而通过运行新目标固件以将目标dpr空间作为新的数据处理资源以对新目标类型数据进行处理。本实施方式在新目标类型数据到来时,通过释放目标dpr空间中的目标固件,以确保dpr空间资源的相对充裕,进而保证对新目标类型数据进行处理时的整体效率。

在上述实施方式的基础上,作为一种优选的实施方式,当fpga仅获取到目标类型数据时,选取相应数量的dpr空间并加载与目标类型对应的目标固件具体为:

选取n个dpr空间并加载目标固件。

需要说明的是,当处于fpga仅获取并处理目标类型数据的场景,即fpga中仅存在一种类型的待处理数据时,为了最大程度的确保对于目标类型数据的处理效率,本实施方式将预先对fpga中的资源进行量化划分的n个dpr空间全部用于加载目标固件,以此实现将fpga的运算资源全部用于对目标类型数据的运算处理,进而最大程度的提高对fpga运算资源的利用率,提高fpga的数据处理效率。

在上述实施方式的基础上,作为一种优选的实施方式,当新目标类型数据的优先级高于目标类型数据时,预设数量的值大于n/2。

需要说明的是,本实施方式是根据fpga所获取的新目标类型与目标类型之间的处理的优先级顺序决定需要释放的目标dpr空间的预设数量,当新目标类型数据的优先级高于目标类型数据时,说明需要优先处理新目标类型数据,因此当预先占用了n个dpr空间对目标类型数据进行数据处理时,应释放半数以上的目标dpr空间,以用于对新目标类型数据进行处理,以此相对确保优先级高的新目标类型数据进行更加高效的运算处理,提高整体的数据处理效率。

此外,作为一种优选的实施方式,选取相应数量的dpr空间并加载与目标类型对应的目标固件具体为:

根据目标类型数据的总量选取相应数量的dpr空间并加载与目标类型对应的目标固件;其中,目标类型数据的总量与相应数量呈正相关。

考虑到目标类型数据的总数据量是决定处理目标类型数据所需时间的关键因素,因此本实施方式根据目标类型数据的总量选取相应数量的dpr空间并加载与目标类型对应的目标固件,更进一步的,目标类型数据的总量与所选取的dpr空间的相应数量成正比,以此保证了根据目标类型数据的总量选取相应数量的dpr空间后,对目标类型数据进行处理时的整体效率。

此外,在上述一系列实施例的基础上,作为一种优选的实施方式,目标固件预存于fpga的flash存储器。

需要说明的是,与传统的eeprom存储器相比,flash存储器在进行数据擦写时效率相对较高,并且结合了rom和ram的长处,不仅具备电子可擦除可编程(eeprom)的性能,而且可以快速读取数据,因此在将固件预存至fpga的flash存储器以及在flash存储器中读取并使用固件时的整体执行效率相对更高。

下面提供一种具体的应用场景实施例:

首先将fpga的硬件资源,进行量化处理,生成相应数量的dpr空间,并且处理响应数据类型的固件可以按照具体的业务类型进行区分(例如图像业务,数据分析业务,加密数据业务等)。

如将1个fpga的运算资源划分为100个dpr空间,当服务器上的执行的业务是图像业务时,可以在fpga上选取20个dpr空间,并在20个dpr空间中分别加载图像业务相应的目标固件,通过执行目标固件以对图像业务的数据进行处理;于此同时,当服务器运行数据分析业务时,可以在fpga上另外选取50个dpr空间,并在50个dpr空间中分别加载数据分析业务相应的新目标固件,通过执行新目标固件以对数据分析业务的数据进行处理;此时fpga还剩30个dpr空间,用于等待后续的业务使用。

上述的模式属于静态分配的模式,但是如果fpga当前执行的业务已经将fpga的硬件资源耗尽,后续有新业务到来时,应根据优先级动态调度,即将服务器上的业务分成若干个优先级。例如,服务器中的第一业务需要fpga进行辅助计算的时候,可以将预先对fpga划分的100个dpr空间全部分配给第一业务使用,在此基础上,当服务器上有一个相对较高优先级的第二业务工作时,较低优先级的第一业务会释放出90个dpr空间,只保留基本的10个dpr空间,此时较高优先级的第二业务就会得到90个计算单元;如果此时服务器需要运行与第二业务同级别的第三业务,则第二个业务会将45个计算单元释放出来,交由第三业务使用,进而三个业务同时执行,并且分别占用10、45、45个dpr空间。如果服务器再有更高级的业务执行,需要使用dpr空间时,第二,第三业务都只保留10个dpr空间。第四个业务获得70个计算单元。分配的模式如下:10、10、10、70。当服务器低级别业务完成的时候,会将自己使用的dpr空间释放,释放出来的dpr空间会被分配到高级的业务中去,当有多个高级别的业务时候,平均分配到各个高级别的业务中。

实施例三

在上文中对于基于fpga的数据处理方法的实施例进行了详细的描述,本发明还提供一种与该方法对应的基于fpga的数据处理装置,由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

图3为本发明实施例提供的一种基于fpga的数据处理装置的结构图。本发明实施例提供的基于fpga的数据处理装置,包括:

空间划分模块10,用于依照预设空间阈值将fpga的电路运算资源划分为n个dpr空间;其中,n为大于1的正整数。

固件加载模块11,用于当获取到目标类型数据时,选取相应数量的dpr空间并加载与目标类型对应的目标固件。

数据处理模块12,用于运行目标固件以对目标类型数据进行处理。

本发明所提供的基于fpga的数据处理装置,首先依照预设的空间阈值将fpga的电路运算资源划分为1个以上的dpr空间,进而当获取到目标类型数据时,在fpga中选取相应数量的dpr空间以加载用于处理目标设备所使用的目标固件,进而通过目标固件对目标类型数据进行处理。本装置通过将fpga中的硬件资源进行量化处理,生成相应的dpr空间,进而通过根据所获取到的目标类型数据选取相应数量的dpr空间加载相应的目标固件以对目标类型数据进行处理,以此实现了选择性占用相应规模的fpga资源进行对数据的处理,进而其余fpga资源能够用于处理其它目标类型数据,因此相对提高了对fpga的使用灵活性,并相对避免了对fpga资源的浪费。

在实施例三的基础上,该装置还包括:

空间释放模块,用于当获取到新目标类型数据时,选取并释放预设数量的目标dpr空间中的目标固件。

新数据处理模块,用于在目标dpr空间中加载与新目标类型数据对应的新目标固件,并运行新目标固件以对新目标类型数据进行处理。

实施例四

本发明还提供一种基于fpga的数据处理设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序时实现如上述的基于fpga的数据处理方法的步骤。

本发明所提供的基于fpga的数据处理设备,首先依照预设的空间阈值将fpga的电路运算资源划分为1个以上的dpr空间,进而当获取到目标类型数据时,在fpga中选取相应数量的dpr空间以加载用于处理目标设备所使用的目标固件,进而通过目标固件对目标类型数据进行处理。本设备通过将fpga中的硬件资源进行量化处理,生成相应的dpr空间,进而通过根据所获取到的目标类型数据选取相应数量的dpr空间加载相应的目标固件以对目标类型数据进行处理,以此实现了选择性占用相应规模的fpga资源进行对数据的处理,进而其余fpga资源能够用于处理其它目标类型数据,因此相对提高了对fpga的使用灵活性,并相对避免了对fpga资源的浪费。

此外,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的基于fpga的数据处理方法的步骤。

本发明所提供的计算机可读存储介质,首先依照预设的空间阈值将fpga的电路运算资源划分为1个以上的dpr空间,进而当获取到目标类型数据时,在fpga中选取相应数量的dpr空间以加载用于处理目标设备所使用的目标固件,进而通过目标固件对目标类型数据进行处理。本计算机可读存储介质通过将fpga中的硬件资源进行量化处理,生成相应的dpr空间,进而通过根据所获取到的目标类型数据选取相应数量的dpr空间加载相应的目标固件以对目标类型数据进行处理,以此实现了选择性占用相应规模的fpga资源进行对数据的处理,进而其余fpga资源能够用于处理其它目标类型数据,因此相对提高了对fpga的使用灵活性,并相对避免了对fpga资源的浪费。

以上对本发明所提供的一种基于fpga的数据处理方法、装置、设备及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备及介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1