一种基于FPGA的数据过滤方法及装置与流程

文档序号:12887309阅读:540来源:国知局
一种基于FPGA的数据过滤方法及装置与流程

本发明涉及fpga开发领域,特别是涉及一种基于fpga的数据过滤方法及装置。



背景技术:

随着大数据的发展,与大数据相关的深度学习成为当下的热门,而深度学习往往需要使用到过滤算法对大数据进行筛选以获得符合条件的数据。为了加速深度学习的发展,可以通过fpga(现场可编程门阵列)进行深度学习的实现,由于fpga采用硬件电路的执行方式对数据进行处理,所以执行速度高于传统cpu对数据进行处理的速度,因此使用fpga能够提高数据处理效率。

在执行过滤算法时,需要将不符合要求的数据舍弃,并将符合要求的数据按照过滤前相对位置的顺序写入数组的存储单元内。

然而,由于fpga采用的是异步计算机制,所以当fpga执行过滤算法时,往往会因为并行处理多个数据,而导致无法得知其余并行过滤的数据是否通过过滤,因此无法按照符合过滤前数据的相对位置确定每一个过滤后的数据应写入数组的具体存储单元,进而可能造成输出的数据同时写入数组的同一个存储单元中而出现数据因被覆盖而丢失或发生错误等情况,降低了数据的安全性和可用性。

由此可见,提供一种基于fpga的数据过滤方法以提高在fpga下进行数据过滤时,数据的安全性和可用性,是本领域技术人员亟待解决的问题。



技术实现要素:

本发明的目的是提供一种基于fpga的数据过滤方法及装置,提高了数据的安全性和可用性。

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

接收规定数量的原始数据,根据各原始数据之间的相对位置关系进行编号,并通过过滤算法对原始数据进行过滤处理,得到过滤数据;

依据过滤数据对应的编号确定过滤数据之间的相对位置关系;

创建输出数组,并按照过滤数据之间的相对位置关系将过滤数据写入输出数组。

优选的,在依据过滤数据对应的编号确定过滤数据之间的相对位置关系后,该方法进一步包括:

记录过滤数据的数量;

则对应的,输出数组中的存储单元的数量与过滤数据的数量相同。

优选的,在依据过滤数据对应的编号确定过滤数据之间的相对位置关系之前,该方法进一步包括:

创建二维数组;

则对应的,通过二维数组的第一维度记录过滤数据之间的相对位置关系,通过二维数组的第二维度记录过滤数据的数量。

优选的,接收规定数量的原始数据具体为:

接收由ddr缓存传入的规定数量的原始数据。

优选的,原始数据具体为浮点数类型的原始数据。

优选的,规定数量具体为8个。

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

过滤模块,用于接收规定数量的原始数据,根据各原始数据之间的相对位置关系进行编号,并通过过滤算法对原始数据进行过滤处理,得到过滤数据;

相对位置记录模块,用于依据过滤数据对应的编号确定过滤数据之间的相对位置关系;

输出模块,用于创建输出数组,并按照过滤数据之间的相对位置关系将过滤数据写入输出数组。

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

数量记录模块,用于记录过滤数据的数量;

则对应的,输出数组中的存储单元的数量与过滤数据的数量相同。

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

二维数组创建模块,用于创建二维数组;

则对应的,通过二维数组的第一维度记录过滤数据之间的相对位置关系,通过二维数组的第二维度记录过滤数据的数量。

优选的,原始数据具体为浮点数类型的原始数据。

本发明所提供的基于fpga的数据过滤方法,通过对原始数据进行编号,确定了每一个目标原始数据在所有原始数据中所在的相对位置。而在原始数据经过并行执行的过滤算法得到过滤数据后,根据过滤数据对应的原始数据所在的编号确定过滤数据之间的相对位置。在本方法中,根据过滤数据对应的原始数据所在的编号确定过滤数据之间的相对位置,相当于确定每一个过滤数据作为原始数据时在数据队列里的相对位置,对所有的过滤数据进行整体上的位置确定,从而保证每一个过滤数据输出时与其他过滤数据的位置关系相比于原始数据不发生改变。可见,本方法避免了在获得过滤数据后无法确定每一个过滤数据与存储单元的对应关系,而将多个过滤数据存储至同一个存储单元的问题,保证了过滤数据的整体顺序符合在原始数据中的相对位置。另外,也保证了将过滤数据写入输出数组时不会出现数据之间的覆盖或丢失,提高了数据的安全性和可用性。此外,本发明还提供一种基于fpga的数据过滤装置,与上述的方法对应,有益效果如上所述。

附图说明

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

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

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

图3为过滤数据记录在二维数组中的示意图;

图4为本发明实施例提供的一种基于fpga的数据过滤装置结构图。

具体实施方式

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

本发明的核心是提供一种基于fpga的数据过滤方法及装置,提高在fpga下进行数据过滤时,数据的安全性和可用性。

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

实施例一

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

步骤s10:接收规定数量的原始数据,根据各原始数据之间的相对位置关系进行编号,并通过过滤算法对原始数据进行过滤处理,得到过滤数据。

可以理解的是,对原始数据进行过滤处理的目的是将原始数据中不符合要求的数据去除,其他通过了过滤的数据之间应该保持与过滤之前相同的相对位置关系,而对原始数据进行位置上的编号是后续用来判断相对位置的依据。需要说明的是,编号的方式优选的可以采用顺序的数字或字母,因为数字和字母都是有排列顺序的,因此能够更加直接的反应出所编号的原始数据之间的顺序。

步骤s11:依据过滤数据对应的编号确定过滤数据之间的相对位置关系。

本步骤通过过滤数据在原始数据中所在位置的编号可以确定过滤数据之间的位置关系。每一个过滤数据都对应原始数据的编号,虽然过滤导致过滤数据只能对应部分编号,但是编号之间仍然可以体现位置关系,因此根据编号仍然可以确定过滤数据之间的位置关系

步骤s12:创建输出数组,并按照过滤数据之间的相对位置关系将过滤数据写入输出数组。

可以理解的是,对数据进行过滤后要将符合要求的数据按照过滤前相对位置的顺序写入数组的存储单元内。因此,创建输出数组作为输出的数据容器,并且将过滤数据按照之前确定的输出顺序进行输出,以供使用者的后续使用。

本发明所提供的基于fpga的数据过滤方法,通过对原始数据进行编号,确定了每一个目标原始数据在所有原始数据中所在的相对位置。而在原始数据经过并行执行的过滤算法得到过滤数据后,根据过滤数据对应的原始数据所在的编号确定过滤数据之间的相对位置。在本方法中,根据过滤数据对应的原始数据所在的编号确定过滤数据之间的相对位置,相当于确定每一个过滤数据作为原始数据时在数据队列里的相对位置,对所有的过滤数据进行整体上的位置确定,从而保证每一个过滤数据输出时与其他过滤数据的位置关系相比于原始数据不发生改变。可见,本方法避免了在获得过滤数据后无法确定每一个过滤数据与存储单元的对应关系,而将多个过滤数据存储至同一个存储单元的问题,保证了过滤数据的整体顺序符合在原始数据中的相对位置。另外,也保证了将过滤数据写入输出数组时不会出现数据之间的覆盖或丢失,提高了数据的安全性和可用性。

实施例二

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

如图2所示,作为一种优选的实施方式,在依据过滤数据对应的编号确定过滤数据之间的相对位置关系后,该方法进一步包括:

步骤s20:记录过滤数据的数量。

则对应的,输出数组中的存储单元的数量与过滤数据的数量相同。

可以理解的是,记录过滤数据的数量一方面是为了统计数据的过滤情况,在后续对数据的使用或处理时起到了参考作用。另一方面的目的是根据过滤数据的数量确定输出数组的存储单元的数量,即输出数组的大小,这样在保证所有过滤数据在输出数组中都有存储单元的同时,也能相应减少因创建多余存储单给系统带来额外的资源开销。

如图2所示,作为一种优选的实施方式,在依据过滤数据对应的编号确定过滤数据之间的相对位置关系之前,该方法进一步包括:

步骤s21:创建二维数组。

则对应的,通过二维数组的第一维度记录过滤数据之间的相对位置关系,通过二维数组的第二维度记录过滤数据的数量。

本步骤中,二维数组相当于一个进行缓存的容器,将分布执行过滤算法所获得的过滤数据整合在二维数组中。在获得过滤数据后,根据每个过滤数据的编号将过滤数据记录在第一维度中与编号对应的位置。另外,由于获取过滤数据的顺序是不确定的,因此在二维数组的第二维度中记录在获得过滤数据时过滤数据的个数,用于对过滤数据的数量进行统计等后续操作。可见,采用二维数组记录过滤数据,是为了方便后续整体且准确的将数据写入输出数组。需要说明的是,本步骤与步骤s10的执行顺序不固定,当然也可以同时执行,在此不做限定。

为了方便对上述步骤的理解,请参考图3。如图3所示的,是过滤数据记录在二维数组中的示意图。图中二维数组中的第一维度(横轴),对应的是经过过滤处理的编号为1-8的8个原始数据,可以理解的是,编号为2、6、8的数据已经在过滤处理后被去除,其余的过滤数据仍然按照原始数据时的位置关系在二维数组中进行排列。图中二维数组中的第二维度(纵轴),对应的是过滤数据的数量,可以理解的是,过滤处理结束后还剩有五个数据,因此二维数组中的每一个点就相应对应着第1-5个数据,而每一个点均代表的是过滤数据。可见,根据二维数组的记录可以准确的确定过滤数据被写入输出数组的位置。

此外,作为一种优选的实施方式,接收规定数量的原始数据具体为:

接收由ddr缓存传入的规定数量的原始数据。

由于ddr在一个时钟周期内可以进行两次读/写操作,因此fpga从ddr中获取数据时,ddr的执行速度更快,具有更高的效率,节省了在时间上的开销。

此外,作为一种优选的实施方式,原始数据具体为浮点数类型的原始数据。

可以理解的是,过滤是为了去除超出规定范围的数据,而在实际情况中规定的范围往往非常小,因此进行过滤的原始数据普遍都在规定范围内或接近规定范围的附近分布,因此原始数据之间相差微小。由于浮点型能够更加精确的体现原始数据的值,因此能适用于实际情况中更加精准的过滤处理。

此外,作为一种优选的实施方式,规定数量具体为8个。

每次处理原始数据的数量可以根据当前fpga的具体性能而定,规定为8个的目的是为了与普遍的fpga性能相适应。可以理解的是,该规定数量并没有严格要求,在其他实施例中,还可以是其它数量。

实施例三

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

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

过滤模块10,用于接收规定数量的原始数据,根据各原始数据之间的相对位置关系进行编号,并通过过滤算法对原始数据进行过滤处理,得到过滤数据。

相对位置记录模块11,用于依据过滤数据对应的编号确定过滤数据之间的相对位置关系。

输出模块12,用于创建输出数组,并按照过滤数据之间的相对位置关系将过滤数据写入输出数组。

本发明所提供的基于fpga的数据过滤装置,通过对原始数据进行编号,确定了每一个目标原始数据在所有原始数据中所在的相对位置。而在原始数据经过并行执行的过滤算法得到过滤数据后,根据过滤数据对应的原始数据所在的编号确定过滤数据之间的相对位置。在本装置中,根据过滤数据对应的原始数据所在的编号确定过滤数据之间的相对位置,相当于确定每一个过滤数据作为原始数据时在数据队列里的相对位置,对所有的过滤数据进行整体上的位置确定,从而保证每一个过滤数据输出时与其他过滤数据的位置关系相比于原始数据不发生改变。可见,本装置避免了在获得过滤数据后无法确定每一个过滤数据与存储单元的对应关系,而将多个过滤数据存储至同一个存储单元的问题,保证了过滤数据的整体顺序符合在原始数据中的相对位置。另外,也保证了将过滤数据写入输出数组时不会出现数据之间的覆盖或丢失,提高了数据的安全性和可用性。

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

数量记录模块,用于记录过滤数据的数量;

则对应的,输出数组中的存储单元的数量与过滤数据的数量相同。

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

二维数组创建模块,用于创建二维数组;

则对应的,通过二维数组的第一维度记录过滤数据之间的相对位置关系,通过二维数组的第二维度记录过滤数据的数量。

在实施例三的基础上,作为一种优选的实施方式,原始数据具体为浮点数类型的原始数据。

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

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

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