一种数据近存储计算方法、装置和存储介质制造方法及图纸

技术编号:38617553 阅读:13 留言:0更新日期:2023-08-26 23:45
本发明专利技术公开了一种数据近存储计算方法、装置和存储介质。计算方法包括:S1、接收用户发起的数据库操作请求任务;S2、CPU端将请求任务进行解析,选择加速单元并进行卸载,通知加速处理器启动加速任务;S3、硬件加速器接受通知后,从硬件加速器中的存储单元中直接取数传输到计算单元,并根据计算任务链表,调用计算单元中的资源池的模块进行组合,搭建完成从主机端卸载计算任务的加速功能单元;S4、计算单元计算完成后将计算结果放入存储单元指定的地址,以中断的方式或查询方式通知CPU读取计算结果。本发明专利技术打破了使用硬件进行加速时根据需求的变化而不断更改硬件底层逻辑的模式,理论上可实现任意形式的数据库近存储加速计算。可实现任意形式的数据库近存储加速计算。可实现任意形式的数据库近存储加速计算。

【技术实现步骤摘要】
一种数据近存储计算方法、装置和存储介质


[0001]本专利技术涉及数据处理
,更具体地说,特别涉及一种数据近存储计算方法、装置和存储介质。

技术介绍

[0002]随着数据库本身的蓬勃发展,数据库技术也同时成为了计算机科学的一个研究领域。数据库技术作为研究数据库的一个领域,其主要的研究方向就是对数据的存储、使用和管理方式。随着数据体量膨胀,中央处理器CPU采用的串行流水的指令执行的形式实现数据处理的性能与其时钟频率等相关联,不能满足大数据的计算性能需求。在不考虑通过集群或分布式的方式实现高性能的情况下,利用异构计算的方式来提高计算性能已经成为技术发展的趋势。由于CPU优点主要在于调度、管理等方面,与协处理器相比,计算能力不是其优势。对于协处理器而言,接受CPU的调度,拥有并行计算的结构基础,利用高并发计算能力可以提高系统的性能。
[0003]近存储技术近年来作为计算机领域效能提升手段而备受关注,其主要思想是通过缩短计算单元和存储单元的距离,从而缓解访存带宽瓶颈,提升数据的互连系数,有效提高受限于带宽的芯片算力。近存计算往往通过在计算芯片内部集成更多的存储单元,或者增加存储单元和计算单元的带宽,来降低数据搬移的开销。
[0004]目前现有的技术中,专利号为201811547889.X的专利技术公开了一种基于FPGA的国产平台数据库加速系统及方法,主机包括CPU、PCIe驱动、HOST程,FPGA板卡通过PCIe接口与CPU连接;PCIe驱动程序,用于建立CPU和FPGA间的数据传输通路;HOST程序,用于负责操作分析和分配,使CPU将计算密集型任务卸载给FPGA去执行;FPGA芯片,用于将CPU卸载给的计算密集型任务进行执行操作。专利号为201911205056.X的专利技术公开了一种数据查询方法、系统、异构计算加速平台及存储介质,该专利技术是通过FPGA进行数据库加速,与前述专利系统架构相似,通信方式采用了异构缓存一致性协议,进一步的提升了数据传输的效率,从而提高数据库整体的执行效率。另外,公开号为CN113312415A的专利技术专利公开了一种用于数据库操作的近存储器加速,这专利阐述的存储器数据库库加速器主要是在存储器中加入计算单元,将数据和计算单元之间的数据传输距离尽可能的缩短,从而提高内存数据库整体的性能。
[0005]现有的解决方案中,前两种类型的方案下,FPGA内的加速功能单元相对固定,只能针对特定数据库特定的应用进行加速,加速功能单元内的加速模块也是固定的,不利于推广以及功能移植,具有一定的局限性;第三种方法更多是讲述数据传输延时降低带来的性能提升,并没有提到关于计算任务如何卸载、整个数据库管理系统的集成、加速单元模块的设计与调度以及针对硬件实现数据库多样化操作的灵活应对的方法,在实际应用中依然存在实操性差,不利于推广的问题。为此,确有必要开发一种数据近存储计算方法、装置和存储介质。

技术实现思路

[0006]本专利技术的目的在于提供一种数据近存储计算方法、装置和存储介质,以克服现有技术所存在的缺陷。
[0007]为了达到上述目的,本专利技术采用的技术方案如下:
[0008]一种数据近存储计算方法,包括以下步骤:
[0009]S1、接收用户发起的数据库操作请求任务;
[0010]S2、CPU端将请求任务进行解析,选择加速单元并进行卸载,通知加速处理器启动加速任务;
[0011]S3、硬件加速器接受通知后,从硬件加速器中的存储单元中直接取数传输到计算单元,并根据计算任务链表,调用计算单元中的资源池的模块进行组合,搭建完成从主机端卸载计算任务的加速功能单元;
[0012]S4、计算单元计算完成后将计算结果放入存储单元指定的地址,以中断的方式或查询方式通知CPU读取计算结果。
[0013]进一步地,所述步骤S2中CPU端将请求任务进行解析具体为:利用资源管理部件根据请求任务进行解析。
[0014]进一步地,所述步骤S4中的计算单元一次计算任务完成,释放资源模块或者传递给其他加速卡计算单元,等待下一次计算任务或者开始其他加速计算单元的计算。
[0015]本专利技术还提供一种数据近存储计算装置,包括:
[0016]Host端,在用户发起的数据库操作请求任务时,利用CPU端将请求任务进行解析,选择加速单元并进行卸载,通知加速处理器启动加速任务;
[0017]硬件加速器,在接受通知后,从硬件加速器中的存储单元中直接取数传输到计算单元,并根据计算任务链表,调用计算单元中的资源池的模块进行组合,搭建完成从主机端卸载计算任务的加速功能单元,在计算单元计算完成后将计算结果放入共享存储单元指定的地址,以中断的方式或查询方式通知CPU读取计算结果。
[0018]进一步地,还包括PostgreSQL数据库、PostgreSQL

加速器Hook回调插件和PostgreSQL

加速器中间件,所述PostgreSQL

加速器Hook回调插件cvd用于通过回调函数将查询请求信息进行转换后通过PostgreSQL

加速器中间件发给硬件加速器进行加速处理,计算完成后PostgreSQL

加速器中间件返回满足过滤条件的元组信息返给回调函数,PostgreSQL数据库继续执行;
[0019]所述PostgreSQL

加速器中间件包括一到多个工作者线程,从任务队列中取出任务执行,工作者线程根据任务信息将页面数据、元组描述符、过滤条件写入到加速器的存储单元,完成数据拷贝后,向计算单元提交申请,开始数据块的DMA写入。
[0020]进一步地,所述加速器Hook回调插件的处理流程为:
[0021]对PostgreSQL数据库的任务进行重编码,生成硬件可识别可执行的指令码流,包括计算任务解析信息、表结构信息以及控制信息;
[0022]所述计算任务解析信息的编码中,PostgreSQL数据对用户查询子句进行词法、语法解析后,将运算的过程以链表+树的数据结构进行描述,节点包括算术运算节点、比较运算节点和逻辑运算节点,
[0023]所述算术运算节点位于树结构的最下层,输入为元组中的列字段、常量或其它算
术节点的结果,输出计算结果供上层节点使用;
[0024]所述比较运算节点位于树结构的中间,输入为下层算术运算的结果或SQL语句中的常量,输出计算结果供上层逻辑节点使用;
[0025]所述逻辑运算节点位于树结构的最上层,输入为下一层比较运算的结果,输出为布尔值,根节点的布尔值,用于判断该元组是否满足过滤条件;
[0026]所述表结构信息的编码中仅提取其中长度和对齐信息编码为元组描述符,以用于对硬件加速器解析部件的控制;
[0027]所述控制信息的编码包括需进行加速任务的数据源文件路径、用户操作的类型、操作条件个数、需要解析字段的列索引,用于硬件加速器核函数参数的设置。
[0028]进一步地本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据近存储计算方法,其特征在于,包括以下步骤:S1、接收用户发起的数据库操作请求任务;S2、CPU端将请求任务进行解析,选择加速单元并进行卸载,通知加速处理器启动加速任务;S3、硬件加速器接受通知后,从硬件加速器中的存储单元中直接取数传输到计算单元,并根据计算任务链表,调用计算单元中的资源池的模块进行组合,搭建完成从主机端卸载计算任务的加速功能单元;S4、计算单元计算完成后将计算结果放入存储单元指定的地址,以中断的方式或查询方式通知CPU读取计算结果。2.根据权利要求1所述的数据近存储计算方法,其特征在于,所述步骤S2中CPU端将请求任务进行解析具体为:利用资源管理部件根据请求任务进行解析。3.根据权利要求1所述的数据近存储计算方法,其特征在于,所述步骤S4中的计算单元一次计算任务完成,释放资源模块或者传递给其他加速卡计算单元,等待下一次计算任务或者开始其他加速计算单元的计算。4.一种数据近存储计算装置,其特征在于,包括:Host端,在用户发起的数据库操作请求任务时,利用CPU端将请求任务进行解析,选择加速单元并进行卸载,通知加速处理器启动加速任务;硬件加速器,在接受通知后,从硬件加速器中的存储单元中直接取数传输到计算单元,并根据计算任务链表,调用计算单元中的资源池的模块进行组合,搭建完成从主机端卸载计算任务的加速功能单元,在计算单元计算完成后将计算结果放入共享存储单元指定的地址,以中断的方式或查询方式通知CPU读取计算结果。5.根据权利要求4所述的数据近存储计算装置,其特征在于,还包括PostgreSQL数据库、PostgreSQL

加速器Hook回调插件和PostgreSQL

加速器中间件,所述PostgreSQL

加速器Hook回调插件cvd用于通过回调函数将查询请求信息进行转换后通过PostgreSQL

加速器中间件发给硬件加速器进行加速处理,计算完成后PostgreSQL

加速器中间件返回满足过滤条件的元组信息返给回调函数,PostgreSQL数据库继续执行;所述PostgreSQL

加速器中间件包括一到多个工作者线程,从任务队列中取出任务执行,工作者线程根据任务信息将页面数据、元组描述符、过滤条件写入到加速器的存储单元,完成数据拷贝后,向计算单元提交申请,开始数据块的DMA写入。6.根据权利要求5所述的数据近存储计算装置,其特征在于,所述加速器Hook回调插件的处理流程为:对PostgreSQL数据库的任务进行重编码,生成硬件可识别可执行的指令码流,包括计算任务解析信息、表结构信息以及控制信息;所述计算任务解析信息的编码中,PostgreSQL数据对用户查询子句进行词法、语法解析后,将运算的过程以链表+树的数据结构进行描述,节...

【专利技术属性】
技术研发人员:张闯杨文婧唐学斌李春潮彭元喜
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:

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

1