查询数据输出方法、加速器件、系统、存储介质及设备与流程

文档序号:35465026发布日期:2023-09-16 03:58阅读:47来源:国知局
查询数据输出方法、加速器件、系统、存储介质及设备与流程

本发明涉及数据处理,尤其涉及一种查询数据输出方法、加速器件、系统、存储介质及设备。


背景技术:

1、异构加速是目前比较热门的一个研究领域,这项技术可以将消耗cpu(centralprocessing unit,中央处理器)的计算部分卸载到异构加速卡中。异构加速卡核心通常是gpu(graphics processing unit,图形处理器)或者fpga(field programmable gatearray,现场可编程逻辑门阵列)。

2、数据库异构加速是目前数据库的一个重要研究方向。数据库采用物理页(page)的格式存储,采用fpga执行查询加速时,数据被按照物理页轮流分配到加速引擎中进行查询加速,查询结束后每个物理页有多少行数据会命中并不知道,所以给输出结果留多大的ram(random access memory,随机存取存储器)空间不好确定;而且多核并行时,如何保持同一页面的命中数据在输出时保持连续,不会出现不同页面命中结果交叉输出,都是技术难题。


技术实现思路

1、有鉴于此,本发明的目的在于提出一种查询数据输出方法、加速器件、系统、存储介质及设备,用以解决现有技术中采用fpga对数据执行查询加速时,fpga的输出结果存在不同物理页的命中数据交叉混合的情况的问题。

2、基于上述目的,本发明提供了一种查询数据输出方法,包括以下步骤:

3、设置加速器件包含的加速引擎数和对应数量的先进先出队列,并基于每个加速引擎的解析能力和加速引擎数配置先进先出队列的位宽;

4、通过多个加速引擎分别接收当前物理页组中的对应物理页,并依次进行解析和过滤,以查询对应物理页中的命中数据,并将查询到的命中数据传输至对应的先进先出队列;

5、按照各先进先出队列的顺序依次将其中的命中数据输出。

6、在一些实施例中,设置加速器件包含的加速引擎数的步骤包括:

7、分析每个加速引擎解析和过滤物理页所用加速器件资源量,并基于加速器件资源量和加速器件资源总量确定加速引擎数。

8、在一些实施例中,基于每个加速引擎的解析能力和加速引擎数配置先进先出队列的位宽的步骤包括:

9、通过功能仿真确定每个加速引擎对物理页进行解析所用的第一时长;

10、基于加速引擎数以及第一时长确定先进先出队列的位宽,以使多个加速引擎接收到下一物理页组并相应完成解析时,当前物理页组中的命中数据已从对应的先进先出队列输出。

11、在一些实施例中,方法还包括:

12、基于加速引擎数以及先进先出队列的位宽设置比特流文件,并利用比特流文件对加速器件进行配置。

13、在一些实施例中,基于加速引擎数以及第一时长确定先进先出队列的位宽的步骤包括:

14、基于先进先出队列将当前物理页组的全部命中数据输出所用的时间计算第二时长;

15、通过使加速引擎数与第二时长的乘积小于第一时长以确定先进先出队列的位宽。

16、在一些实施例中,进行解析的步骤包括:

17、通过每个加速引擎对对应物理页依次进行帧结构解析以及行结构解析。

18、在一些实施例中,对对应物理页进行帧结构解析的步骤包括:

19、对对应物理页进行帧结构解析,得到若干行数据。

20、在一些实施例中,对对应物理页进行行结构解析的步骤包括:

21、对行数据进行行结构解析,得到行数据中的每个列数据。

22、在一些实施例中,按照各先进先出队列的顺序依次将其中的命中数据输出的步骤包括:

23、将各先进先出队列中输出的命中数据顺序存放至总先进先出队列。

24、在一些实施例中,按照各先进先出队列的顺序依次将其中的命中数据输出的步骤包括:

25、判断总先进先出队列中存放的命中数据所占容量是否达到输出界限容量;

26、响应于达到输出界限容量,将存放的命中数据输出。

27、在一些实施例中,响应于达到输出界限容量,将存放的命中数据输出的步骤包括:

28、响应于达到输出界限容量,激活总线传输模块,并通过总线传输模块驱动总先进先出队列利用总线将存放的命中数据输出。

29、在一些实施例中,方法还包括:

30、响应于所有物理页组的命中数据已通过所有先进先出队列输出并且总先进先出队列中存放的剩余命中数据所占容量未达到输出界限容量,直接将剩余命中数据输出。

31、在一些实施例中,通过总线传输模块驱动总先进先出队列利用总线将存放的命中数据输出的步骤包括:

32、通过总线传输模块驱动总先进先出队列利用总线将存放的命中数据传输至加速器件片外的ddr中。

33、在一些实施例中,物理页中的数据为数据库的原始数据。

34、在一些实施例中,加速器件中的资源至少包括寄存器资源和ram资源。

35、在一些实施例中,加速器件为fpga或gpu。

36、本发明的另一方面,还提供了一种加速器件,包括:

37、多个加速引擎,配置用于分别接收当前物理页组中的对应物理页,并依次进行解析和过滤,以查询对应物理页中的命中数据;以及

38、多个先进先出队列,配置用于分别接收对应的加速引擎输出的查询到的命中数据,并按照各先进先出队列的顺序依次将其中的命中数据输出,

39、其中,先进先出队列具有基于加速引擎的解析能力和加速引擎数量配置的位宽。

40、本发明的又一方面,还提供了一种查询数据输出系统,包括:

41、设置模块,配置用于设置加速器件包含的加速引擎数和对应数量的先进先出队列,并基于每个加速引擎的解析能力和加速引擎数配置先进先出队列的位宽;

42、查询模块,配置用于通过多个加速引擎分别接收当前物理页组中的对应物理页,并依次进行解析和过滤,以查询对应物理页中的命中数据,并将查询到的命中数据传输至对应的先进先出队列;以及

43、输出模块,配置用于按照各先进先出队列的顺序依次将其中的命中数据输出。

44、本发明的又一方面,还提供了一种计算机可读存储介质,存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述方法。

45、本发明的再一方面,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该计算机程序被处理器执行时执行上述方法。

46、本发明至少具有以下有益技术效果:

47、本发明的查询数据输出方法,通过设置加速器件包含的加速引擎数和对应数量的先进先出队列,并基于每个加速引擎的解析能力和加速引擎数配置先进先出队列的位宽,再通过多个加速引擎分别接收当前物理页组中的对应物理页,并依次进行解析和过滤,以查询对应物理页中的命中数据,并将查询到的命中数据传输至对应的先进先出队列,按照各先进先出队列的顺序依次将其中的命中数据输出,从而能够使多个加速引擎接收到下一物理页组并相应完成解析时,当前物理页组中的命中数据已从对应的先进先出队列输出,进而能够使同一物理页、相邻物理页的命中数据在输出时保持连续,不会出现不同物理页的命中数据交叉输出的情况,保证了命中结果高效输出,方式简易,并且相对于现有技术中需要消耗硬件资源对命中数据重新排序的方式而言节省了硬件资源。

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