一种用于数据库排序和连接的硬件卸载加速系统技术方案

技术编号:33631006 阅读:26 留言:0更新日期:2022-06-02 01:34
本发明专利技术提供了一种用于数据库排序和连接的硬件卸载加速系统,包括控制单元和一组串联连接的运算单元,控制单元,用于识别数据库应用程序发起的算法请求,并根据请求类型运行不同的状态机;运算单元,由一串逻辑相同的运算小单元串联而成,第一个和最后一个运算小单元由所述的控制单元进行控制。本发明专利技术中,运算单元采用流水线的设计机制,可以无阻塞地进行运算。本发明专利技术将两种不同操作合并到同一个FPGA逻辑模块,达到了提升运算速率同时降低FPGA资源占用的目的。占用的目的。占用的目的。

【技术实现步骤摘要】
一种用于数据库排序和连接的硬件卸载加速系统


[0001]本专利技术属于数据库技术和FPGA
,具体涉及一种用于将数据库的排序和连接运算卸载至FPGA进行硬件加速的系统,名称为一种用于数据库排序和连接的硬件卸载加速系统。

技术介绍

[0002]数据库技术是计算机领域最重要的技术之一,应用于小到个人手机,大到国防科技等领域的方方面面。为提升数据库系统运行的效率,研究人员一直在不断探索,近年来,使用FPGA技术为数据库应用软件进行硬件加速成为了研究的重要方向。FPGA是可编程门阵列,具有低功耗、低延时的特点,将数据库应用程序中的复杂算法卸载至FPGA,可以大大减轻CPU负载,提升数据库查询效率。
[0003]排序算法和连接算法是数据库软件中常用的查询算法,同时也是最消耗CPU资源的算法。数据库排序算法是对数据库表按某一项属性进行升序或降序排列,得到有序的数据库表。数据库连接算法是对数据库的两个或多个表按某一项属性进行连接,将具有相同属性值的行连接起来形成一张新的数据库表。国内外已经有许多研究实现了将排序算法和连接算法卸载到FPGA硬件,但是目前这些研究均是对单一排序算法或连接算法的研究,在FPGA逻辑中需分别部署排序算法逻辑模块和连接算法逻辑模块,无论模块在运行时是否被调用,这些算法模块都会一直占用逻辑资源,从而造成了很大的资源浪费。因此,为进一步降低FPGA资源占用,提升数据库查询效率,需要研究具有一定通用性的硬件加速技术方案。

技术实现思路

[0004]针对现有技术存在的上述问题,本专利技术提供了一种用于数据库排序和连接的硬件卸载加速系统,以解决如何充分发挥FPGA器件流水线与并行处理优势,在同一个FPGA模块中同时实现数据库技术中排序与连接,降低了FPGA资源占用率,实现了数据库卸载技术性能提升的目的。
[0005]为达到上述目的,本专利技术采取以下技术方案:
[0006]一种用于数据库排序和连接的硬件卸载加速系统,包括一个控制单元和一组运算单元,两者相连接,控制单元用于识别数据库应用程序发起的算法请求,并根据请求类型运行不同的状态机;运算单元由一串逻辑相同的运算小单元串联组成,设计成流水线结构,第一个和最后一个运算小单元都由控制单元进行控制。
[0007]优选的,上述系统通过FPGA执行如下:
[0008]控制单元,识别数据库应用程序发起的算法请求类型;
[0009]如果算法请求类型为排序,则控制单元接收数据库表的元组,同时发送给运算单元进行排序运算;
[0010]如果算法请求类型为连接,则控制单元先接收小表的元组,同时发送给运算单元进行排序,再接收大表的数据,发送给运算单元与小表数据进行比较,判断是否匹配。控制
单元输出算法得到的排序后的数据,或连接后的结果。
[0011]优选的,所述接收数据库表的元组具体如下:每个时钟周期接收一个数据库表元组,该元组至少包括一个行索引和一个属性值。
[0012]优选的,在排序请求实例中,所述属性值为排序算法中的排序依据。在连接请求实例中,所述属性值为两个表进行连接时的连接属性。
[0013]优选的,所述控制单元在收到不同的算法请求后执行不同的状态机,其状态包括:“IDLE”、“SORT”、“PUSH”、“JOIN”等。
[0014]优选的,所述排序运算执行时,控制单元具体执行如下步骤:
[0015]在“IDLE”状态识别到排序运算请求,则进入“SORT”状态;
[0016]在“SORT”状态,每时钟周期获取一个数据库表元组,并每时钟周期将其输出给运算单元,同时输出一个“SORT”信号给运算单元;直到输出完全部的元组,则进入“PUSH”状态;
[0017]在“PUSH”状态发送一个“PUSH”信号到运算单元;
[0018]回到“IDLE”状态,等待运算单元输出排序好的元组。
[0019]优选的,所述排序运算执行时,运算单元具体执行如下步骤:
[0020]收到“SORT”信号后,每一个运算小单元将收到的第一个元组数据存储在小单元内部;收到“SORT”信号后,每一个运算小单元将收到的非第一个元组数据与内部存储的数据进行比较,将较大的数据保留,较小的数据输出给后一个小单元,同时将“SORT”信号也输出给后一个小单元;
[0021]收到“PUSH”信号后,每一个运算小单元将内部保存的元组输出给后一个小单元,同时将“PUSH”信号也输出给后一个小单元;
[0022]直到最后一个运算小单元将元组和“PUSH”信号输出到控制单元后,对数据库表的排序完成。
[0023]优选的,所述连接运算执行时,控制单元具体执行如下步骤:
[0024]在“IDLE”状态识别到连接请求,则进入“SORT”状态;
[0025]在“SORT”状态,每时钟周期获取一个小表元组,并每时钟周期将其输出给运算单元,同时输出一个“SORT”信号给运算单元;直到输出完所有的小表元组,则进入“JOIN”状态;
[0026]在“JOIN”状态,每时钟周期获取一个大表元组,并每时钟周期将其输出给运算单元,同时输出一个“JION”信号给运算单元;直到输出完所有的大表元组,则回到“IDLE”状态;
[0027]在“IDLE”状态等待运算单元输出连接好的元组。
[0028]优选的,所述连接运算执行时,运算单元具体执行如下步骤:
[0029]收到“SORT”信号后,每一个运算小单元将收到的第一个元组数据存储在小单元内部,这一步与排序操作相同;收到“SORT”信号后,每一个运算小单元将收到的非第一个元组数据与内部存储的数据进行比较,将较大的数据保留,较小的数据输出给后一个小单元,同时将“SORT”信号也输出给后一个小单元,这一步与排序操作相同;
[0030]收到“JOIN”信号后,每一个运算小单元将内部保存的元组与输入的元组进行比较,得到匹配的结果,将“JOIN”信号和匹配结果输出给后一个小单元;
[0031]直到最后一个运算小单元将匹配结果和“JOIN”信号输出到控制单元后,对数据库表的连接完成。
[0032]与现有技术相比,本专利技术提出的一种用于数据库排序和连接的硬件卸载加速系统具有以下特征和优点:
[0033](一)本专利技术充分发挥FPGA器件流水线、并行处理的特性,设计FPGA逻辑实现对数据库的排序和连接,将数据库的排序和连接运算卸载到硬件,减轻了CPU运算压力。
[0034](二)本专利技术将连接和排序这两种操作合并到同一个FPGA模块中,具有灵活性和通用性,节约了片上资源,降低了FPGA资源闲置的概率。
[0035](三)在本专利技术优选实施例中,运算小单元的个数可根据具体需求而定,排序和连接运算的延迟与运算小单元的个数成正比,从而在具体实施时,算法延时可精准预测,不会出现阻塞或超时。
[0036](四)在本专利技术优选实施例中,由于采用了流水线设计,算法模块可以接受连续输入的排序或连接请求,不需要等待本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于数据库排序和连接的硬件卸载加速系统,其特征在于,包括控制单元和运算单元;控制单元,用于识别数据库应用程序发起的算法请求,并根据请求类型运行不同的状态机;运算单元,由一串逻辑相同的运算小单元串联而成,第一个和最后一个运算小单元由所述的控制单元进行控制。2.根据权利要求1所述的硬件卸载加速系统,其特征在于,若所述的算法请求类型为排序,则控制单元接收数据库表的元组,同时发送给运算单元进行排序运算;若所述的算法请求类型为连接,则控制单元先接收小表的元组,同时发送给运算单元进行排序,再接收大表的数据,发送给运算单元与小表数据进行比较,判断是否匹配。3.根据权利要求2所述的硬件卸载加速系统,其特征在于,所述接收数据库表的元组具体如下:每个时钟周期接收一个数据库表元组,该元组至少包括一个行索引和一个属性值。4.根据权利要求2所述的硬件卸载加速系统,其特征在于,排序请求中,属性值为排序算法中的排序依据。5.根据权利要求2所述的硬件卸载加速系统,其特征在于,连接请求中,属性值为两个表进行连接时的连接属性。6.根据权利要求1

5任一项所述的硬件卸载加速系统,其特征在于,所述控制单元在收到不同的算法请求后执行不同的状态机,状态包括:“IDLE”、“SORT”、“PUSH”、“JOIN”;排序运算执行时,控制单元具体执行如下步骤:“IDLE”状态识别到排序运算请求,则进入“SORT”状态;在“SORT”状态,每时钟周期获取一个数据库表元组,每时钟周期将其输出给运算单元,同时输出一个“SORT”信号给运算单元;直到输出完全部的元组,则进入“PUSH”状态;在“PUSH”状态发送一个“PUSH”信号到运算单元;回到“IDLE”状态,等待运算单元输出排序好的元组。7.根据权利要求6所述的硬件卸载加速系统,其特征在于,排序运算执行时,运算单元具体执行如下...

【专利技术属性】
技术研发人员:张欢滕旭阳薛梅婷李琛璞苏明坤乔磊
申请(专利权)人:杭州电子科技大学
类型:发明
国别省市:

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

1