[发明专利]一种基于FPGA的Join算法实现方法、系统、装置和介质在审
申请号: | 202010983491.1 | 申请日: | 2020-09-18 |
公开(公告)号: | CN112069216A | 公开(公告)日: | 2020-12-11 |
发明(设计)人: | 牛晓威;张明瑞;王培培;王文盛 | 申请(专利权)人: | 山东超越数控电子股份有限公司 |
主分类号: | G06F16/2455 | 分类号: | G06F16/2455;G06F16/22;G06F16/2453 |
代理公司: | 北京连和连知识产权代理有限公司 11278 | 代理人: | 刘小峰;宋薇薇 |
地址: | 250104 山东省*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 fpga join 算法 实现 方法 系统 装置 介质 | ||
本发明提供了一种基于FPGA的Join算法实现方法、系统、装置和介质,方法包括以下步骤:接收小表数据并存储;接收大表数据并暂存;将大表数据分为多路,对所有的各路大表数据并行进行FIFO处理;依次判断各路大表数据与小表数据是否匹配;输出互相匹配的所述各路大表数据和所述小表数据。通过将大表数据分为多路,可以将大表数据合理分配,有效管理数据,这有利于数据库处理数据的效率提高;通过对所有的每路大表数据并行进行FIFO处理,能够缩短数据处理过程中的响应时间,相比于单进程处理数据方式,可以减少任务等待时间,提高数据读取吞吐率,实现快速有效的数据处理,提升数据匹配的效率。
技术领域
本发明涉及FPGA数据处理技术领域,尤其涉及一种基于FPGA的Join算法实现方法、系统、装置和介质。
背景技术
在目前的半导体工艺中,系统功耗已经成为了进一步提高CPU主频的主要障碍,同时由于CPU的指令集特点,大型数据库的数据处理能力遇到了瓶颈。当数据库发送数据量大的情况下,需要将数据搬迁到FPGA进行处理。FPGA是在PAL、GAL等可编程器件的基础上进一步发展的产物,是作为专用集成电路领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点,被广泛应用于通信、计算机等行业。
在数据处理技术领域,多线程编程使得一个进程可以有多个并发操作,例如当一个线程由于数据读写等因素处于等待中时,其他线程仍然可以执行操作,使得读取数据的吞吐率大幅度提高,而FPGA可以提供强大的线程级并行能力。数据库核心操作的优化问题也是当前研究的热点之一,而连接操作则是数据库查询过程中的核心问题,Join算法的性能直接影响着数据库的查询速度。所以,需要在FPGA底层做好存储框架与Join运算的设计,才能充分发挥FPGA并行化处理数据的特点,大幅提升数据库数据处理的速度。
发明内容
有鉴于此,本发明实施例的目的在于提出一种基于FPGA的Join算法实现方法、系统、装置和介质,用以解决现有技术中数据库处理数据效率低的问题。
基于上述目的,本发明实施例的一方面提供了一种基于FPGA的Join算法实现方法,包括通过FPGA执行如下步骤:
接收小表数据并存储;
接收大表数据并暂存;
将所述大表数据分为多路,对所有的各路大表数据并行进行FIFO处理;
依次判断所述各路大表数据与所述小表数据是否匹配;
输出互相匹配的所述各路大表数据和所述小表数据。
在一些实施例中,接收所述小表数据并存储包括:将所述小表数据存入其对应的第一hash值所映射的第一hash空间。
在一些实施例中,所述FIFO处理包括:将所述各路大表数据存入各自对应的第二hash值所映射的各自的第二hash空间,并按FIFO方式运行。
在一些实施例中,依次判断所述各路大表数据与所述小表数据是否匹配包括:若是检测到FIFO队列非空,读取所述各路大表数据,并读取所述小表数据,判断所述各路大表数据与所述小表数据是否匹配。
在一些实施例中,所述方法还包括:
对匹配后输出的所述各路大表数据和所述小表数据进行打包并上传。
在一些实施例中,所述方法还包括:将打包后的数据通过XDMA上传到上位机,上位机接收到所述数据后进行显示。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东超越数控电子股份有限公司,未经山东超越数控电子股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010983491.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种矿山爆破用劈裂机防护机构的集尘装置
- 下一篇:一种配网工程监管抢修系统