当前位置: 首页 > 专利查询>东北大学专利>正文

一种基于高并行场景下的FPGA数据加速方法技术

技术编号:38990063 阅读:17 留言:0更新日期:2023-10-07 10:20
本发明专利技术公开了一种基于高并行场景下的FPGA数据加速方法,包括:建立用于比较的二叉树,假设所述树的叶子节点数量为N,对所述二叉树设置一个全局标志位,对二叉树的每个非叶子节点设置一个标志位;将待处理数据依次插入二叉树的空叶子节点,并在非叶子节点进行比较,将比较中较小的数据传入父节点继续参与比较,最后输出二叉树中最小的数据,清空最小数据所在的叶子节点。根据输出数据的标志位,对全局标志位进行更新;插入新数据,设置新数据的标志位,对树内数据互相比较,输出本次比较后的最小数据;直到所有数据全部插入,输出排序后的数据集,在单位时间内排序数据量提高,缩短连接阶段运行时间,减少资源消耗,提高看数据的处理速度。的处理速度。的处理速度。

【技术实现步骤摘要】
一种基于高并行场景下的FPGA数据加速方法


[0001]本专利技术涉及数据处理
,尤其涉及一种基于高并行场景下的FPGA数据加速方法。

技术介绍

[0002]长期以来,数据库系统作为容纳、管理和维护数据的重要角色,在各个领域都发挥着不可替代的作用。随着数据量的爆发式增长,数据库系统日益面临着更普遍的高负载、高并发场景的挑战。然而,CPU主频的提升则较为平缓,无法及时满足以上需求,导致在这些场景下数据库操作时间开销巨大,影响用户体验。
[0003]在这种大前提下,世界上许多大型IT企业、大学以及研究机构开始尝试利用不同硬件平台加速数据库的基本操作,以期缩短其执行时间。被使用的硬件平台包括但不限于ASIC(Application Specific Integrated Circuit,ASIC)、GPU、FPGA、多核CPU等。其中,FPGA由于其能耗较低、可重新配置、性能好等优势,近年来在加速数据库操作方面得到了广泛的研究和应用。
[0004]在FPGA平台,归并排序操作通常被分为排序阶段、归并阶段、连接阶段共三个阶段。在排序阶段,待排序数据通过硬件排序模块,被排序成若干个内部有序小型表,小型表间不有序。在归并阶段,小型表们输入进归并模块,归并成表长度更长的小型表。经过多次输入进归并模块,最终归并成一张完全有序的大型表。在连接阶段,两个有序的大型表通过连接模块,输出连接结果。使用FPGA加速归并连接操作,需要面临以下挑战:一,部署合适的排序算法。由于待排序表表中数据的负载大小不同,适合的排序算法也会有所不同。想要选取合适的排序算法,除了根据负载大小,还要综合性能高低、资源消耗大小、排序出的序列长度等多方面需求。二,如何在FPGA上实现多种功能的加速。使用FPGA去加速具体功能时,数据通常会直接输入进对应模块,如何实现对多种功能的加速,是一大难点,所以,现有的技术无法满足用户的需求。
[0005]在数据库系统中,当数据表里的每个数据携带的负载较小,以至于在FPGA内部宽度为p的数据流上一次可以传输多个数据进入模块中。例如,数据表中每个数据的长度都为8字节,在宽度为32的数据流上每次会有4个数据进入硬件模块。在这种场景下,硬件模块可以实现多个处理单元并行地处理多个新数据,提高吞吐量,称这种场景为高并行场景。在高并行场景下,FPGA需要适用于这种场景的排序模块,来提高排序模块的吞吐量,缩短排序阶段的执行时间。在现有的技术中,被用在FPGA上高并行场景下解决排序问题的排序算法的硬件实现(例如双调排序网络),往往会实现大量的比较器,并且消耗大量的硬件资源。

技术实现思路

[0006]针对上述缺陷或不足,本专利技术的目的在于提供一种基于高并行场景下的FPGA数据加速方法。
[0007]为达到以上目的,本专利技术的技术方案为:
[0008]一种基于高并行场景下的FPGA数据加速方法,包括:
[0009]建立用于比较的树,所述树的叶子节点数量为N,对所述树设置全局标志位,对树的非叶子节点设置标志位,并且定义全局标志位以及标志位的初始数值为0;
[0010]将待处理数据插入树的叶子节点进行比较,输出最小的数据,并且根据输出数据的标志位,对全局标志位进行更新;
[0011]插入新数据,设置新数据的标志位,根据标志位,对树内数据互相比较,输出本次比较后的最小数据;其中,每当插入N个数字到树结构之后,全局标志位进行更新改变;
[0012]循环上步骤,直到所有数据全部插入,当待排序数据排序完毕后,输出排序后的数据集。
[0013]其特征在于,所述全局标志位和标志位为1bit,且全局标志位和标志位的数值为0或1。
[0014]所述将待处理数据插入树的叶子节点进行比较,输出最小的数据,并且根据输出数据的标志位,对全局标志位进行更新包括:
[0015]将待处理数据插入树的叶子节点,进入初始插入阶段,初始时全局标志位初始化为0,并且数据添加的标志位为0;
[0016]每个数据在插入叶子节点后,在其父节点进行1次数据比较,将叶子节点相邻数据大的数据,插入其非叶节点,另外小的数据则向上比较,数值大的数据留在根节点,数值输出最小数据;
[0017]根据输出最小数据的标志位,将全局标志位数值设置为与标志位反位的数值。
[0018]所述插入新数据,设置新数据的标志位具体包括:
[0019]插入新数据,并且设置所述插入新数据与此时的全局标志位相同。
[0020]所述根据标志位,对树内数据互相比较,输出本次比较后的最小数据,根据输出的最小数据的标志位,对全局标志位进行更新包括:
[0021]插入新数据后,在树内,将两两相邻的叶子节点数据进行比较,首先比较标志位,当两两相邻的叶子节点标志位不相等,则标志位等于全局标志位,为大数据,标志位与全局标志位不等,为小数据,将大数据插入父节点,小数据则继续向上比较,直到输出数据;当两两相邻的叶子节点标志位相等,则直接比较数据大小,将大数据插入父节点,小数据则继续向上比较,直到输出数据。
[0022]当待排序数据排序完毕后,还包括:
[0023]每过logN个时钟周期输出p个数据,p为并行程度;
[0024]将输出宽度为p个数据流进行流分割,被分割成p个宽度为1的数据流;
[0025]将分割后宽度为1的数据流,归并成一个完整的序列;
[0026]然后将完整的序列放进宽度为p的数据流中。
[0027]与现有技术比较,本专利技术的有益效果为:
[0028]本专利技术提供了一种基于高并行场景下的FPGA数据加速方法,适用于FPGA上大负载场景,通过并行锦标赛排序算法,在排序过程中,数据流不会中断,并且输出的序列长度相等,即等于树的叶节点数量,其在单位时间内排序的数据量会提高数倍,与双调排序网络相比,该算法模块消耗的硬件资源更少,排序出的序列长度更长,缩短连接阶段的运行时间,减少FPGA中的资源消耗,提高看数据的处理速度,提高工作效率。
附图说明
[0029]图1是本专利技术基于高并行场景下的FPGA数据加速方法流程示意图;
[0030]图2是本专利技术并行锦标赛排序算法的初始插入阶段、评估阶段、持续排序阶段示例说明图;
[0031]图3是本专利技术并行锦标赛排序算法的持续排序阶段示例说明图;
[0032]图4是本专利技术4路归并模块框图;
[0033]图5是本专利技术高并行场景下的排序模块整体架构框图。
具体实施方式
[0034]下面将结合附图对本专利技术做详细描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术的保护范围。
[0035]对于待排序数据,有负载很大和负载不大两种情况。对于负载很大的数据,宽度一定的数据流通常需要多个时钟周期才能将一个数据传输进排序模块,本专利技术称这种场景为大负载场景,对于负本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于高并行场景下的FPGA数据加速方法,其特征在于,包括:建立用于比较的树,所述树的叶子节点数量为N,对所述树设置全局标志位,对树的非叶子节点设置标志位,并且定义全局标志位以及标志位的初始数值为0;将待处理数据插入树的叶子节点进行比较,输出最小的数据,并且根据输出数据的标志位,对全局标志位进行更新;插入新数据,设置新数据的标志位,根据标志位,对树内数据互相比较,输出本次比较后的最小数据;其中,每当插入N个数字到树结构之后,全局标志位进行更新改变;循环上步骤,直到所有数据全部插入,当待排序数据排序完毕后,输出排序后的数据集。2.根据权利要求1所述的基于高并行场景下的FPGA数据加速方法,其特征在于,所述全局标志位和标志位为1bit,且全局标志位和标志位的数值为0或1。3.根据权利要求2所述的基于高并行场景下的FPGA数据加速方法,其特征在于,所述将待处理数据插入树的叶子节点进行比较,输出最小的数据,并且根据输出数据的标志位,对全局标志位进行更新包括:将待处理数据插入树的叶子节点,进入初始插入阶段,初始时全局标志位初始化为0,并且数据添加的标志位为0;每个数据在插入叶子节点后,在其父节点进行1次数据比较,将叶子节点相邻数据大的数据,插入其非叶节点,另外小的数据则向上比较,数值大的数据留在根节点,...

【专利技术属性】
技术研发人员:吴刚殷帅博陈永正张澜唐立臣乔百友韩东红刘辉林
申请(专利权)人:东北大学
类型:发明
国别省市:

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

1