[发明专利]基于FPGA的并行哈希连接加速方法及系统有效
申请号: | 202110792999.8 | 申请日: | 2021-07-14 |
公开(公告)号: | CN113468181B | 公开(公告)日: | 2022-10-11 |
发明(设计)人: | 方健;徐实;张拥军;张光达;王会权;黄安文;温家辉;张鸿云 | 申请(专利权)人: | 中国人民解放军军事科学院国防科技创新研究院 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/27;G06F16/23 |
代理公司: | 北京奥文知识产权代理事务所(普通合伙) 11534 | 代理人: | 张文 |
地址: | 100071*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 fpga 并行 连接 加速 方法 系统 | ||
1.一种基于FPGA的并行哈希连接加速方法,其特征在于,包括:
在哈希连接的构建阶段的每个设定周期,从第一数据表中读取多个元组数据,利用预设的预划分函数计算每个元组数据对应的分区号,将每个元组数据引导到分区号对应的分区中,从每个分区中读取一个元组数据构建哈希表和链表,直至处理完第一数据表的所有元组数据;
在哈希连接的探测阶段的每个设定周期,从第二数据表中读取多个元组数据,利用预设的预划分函数计算每个元组数据对应的分区号,将每个元组数据引导到分区号对应的分区中,从每个分区中读取一个元组数据探测匹配构建阶段构建的哈希表和链表,若存在匹配,则进行连接操作并输出连接结果,直至处理完第二数据表的所有元组数据;
其中,第一数据表和第二数据表为待进行哈希连接的两个数据表,一个分区号对应一个分区,分区数不小于同时处理的元组数据数,哈希表和链表采用分区的形式组织,哈希表包括多个不同的哈希表分区,链表包括多个不同的链表分区,不同的哈希表分区和不同的链表分区存储在FPGA内部设置的不同的存储体中,不同的存储体具有独立的读写端口,哈希连接的构建阶段和探测阶段均在FPGA内部完成。
2.根据权利要求1所述的基于FPGA的并行哈希连接加速方法,其特征在于,预划分函数采用哈希函数实现,哈希函数用于将元组数据映射到分区对应的分区号。
3.根据权利要求1或2所述的基于FPGA的并行哈希连接加速方法,其特征在于,每个分区设置有分区队列,根据元组数据对应的分区号,每个元组数据被引导到对应分区的分区队列中,分区队列用于对元组数据进行缓存。
4.根据权利要求3所述的基于FPGA的并行哈希连接加速方法,其特征在于,从分区中读取一个元组数据构建哈希表和链表,包括:
从分区队列中读取一个元组数据,利用哈希函数计算当前读取的元组数据的哈希值,使用哈希值和分区号确定当前读取的元组数据需要访问的哈希表的哈希入口地址,读出哈希入口地址对应的项,根据当前读取的元组数据生成一个新的项,将新的项写入哈希入口地址的位置,以覆盖哈希入口地址对应的项,其中,哈希表的每一项是一个链表的首节点,包括元组和下一元组指针,下一元组指针表示指向链表中下一个具有相同哈希值的元组存储的位置,新的项中的元组为当前读取的元组数据,新的项中的下一元组指针通过预设的地址分配方式生成;
将读出的哈希入口地址对应的项写入链表中,其中,写入链表地址为新的项中的下一元组指针指向的地址,链表中的元组对应该哈希入口地址对应的项中的元组,链表中的下一元组指针对应该哈希入口地址对应的项中的下一元组指针,其中,链表的每一项是一个链表的中间节点或尾节点,包括元组和下一元组指针,下一元组指针表示指向下一个具有相同哈希值的元组存储的位置,若一个节点为尾节点,则当前节点中的元组位置存储的数据无效。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军军事科学院国防科技创新研究院,未经中国人民解放军军事科学院国防科技创新研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110792999.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:铬酸钡纳米材料的制备方法
- 下一篇:一种连续式均匀烘干式谷物干燥机