基于可计算存储架构的任务卸载方法及可计算存储系统技术方案

技术编号:33427227 阅读:11 留言:0更新日期:2022-05-19 00:18
本发明专利技术公开了一种基于可计算存储架构的任务卸载方法及可计算存储系统,属于计算机存储领域,包括:初始化步骤:在SSD盘内系统的内核地址空间中创建虚拟的字符设备,并将其内核地址空间映射到用户进程的地址空间;在字符设备中维护命令队列和数据队列,分别用于存储命令结构体和任务执行结果;计算步骤:在内核态,接收到计算任务后,将命令结构体存储到命令队列中;在用户态,根据命令结构体在命令队列中的偏移值到命令队列中读取命令结构体,并从中解析出任务类型和参数,以执行计算任务,将执行结果存储到数据队列中;在内核态,将执行结果的长度和在数据队列中的偏移值返回给主机。本发明专利技术能够减少盘内系统数据拷贝,提高PIS任务执行效率。务执行效率。务执行效率。

【技术实现步骤摘要】
基于可计算存储架构的任务卸载方法及可计算存储系统


[0001]本专利技术属于计算机存储领域,更具体地,涉及一种基于可计算存储架构的任务卸载方法及可计算存储系统。

技术介绍

[0002]随着移动通信技术和物联网技术的发展,人类社会的数据总量以指数形式爆炸增长。在旧摩尔定律失效的情况下,图灵奖获得者JimGray提出了“新摩尔定律”:即每18个月全球新增信息量是计算机有史以来全部信息量的总和。根据IDC(互联网络数据中心)的数据,2018年全球的数据总量是33ZB,预计2025年将达到175ZB。如何存储这些数据,以及如何对数据进行处理已经是当今存储系统面对的挑战。
[0003]目前的计算机体系结构主要是基于冯
·
诺依曼结构。在该体系结构下,运算系统和存储系统分离,各自独立发展。在冯诺依玛体系结构提出早期,处理器性能较低,数据需要从存储器中搬迁到处理器中进行处理,处理完毕后再通过总线传输回存储器中。但在过去的20多年,处理器性能以每年约55%的速度提升,内存性能的提升速度只有每年约10%左右,经过长期的积累,处理器的计算速度已经远超内存的存取速度,内存成为了高性能系统的一个瓶颈,这就是冯
·
诺依曼结构的“内存墙”问题。
[0004]针对“内存墙”问题,有研究人员提出将计算任务下发给存储设备,减少数据的搬移,也就是PIS(Processing in Storage),在存储设备内运行一个小型的操作系统对计算任务进行处理。但在现有的任务卸载方法的基本流程如下:主机向SSD(Solid State Disk或Solid State Drive)下发计算任务;由内核态对相关结构体进行存储,用户态通过轮询的方式感知有PIS任务需要处理后,将相关的结构体从内核态空间拷贝至用户进程的地址空间,并利用用户进程进行处理,生成相应的执行结果;内核态通过轮询的方式获取到计算任务的执行结果后,将该执行结果从用户进程的地址空间拷贝至内核态空间,再返回给主机。该过程存在盘内系统数据拷贝次数过多的问题,下发的计算任务执行效率较低,并且存在CPU资源浪费的问题。

技术实现思路

[0005]针对现有技术的缺陷和改进需求,本专利技术提供了一种基于可计算存储架构的任务卸载方法及可计算存储系统,其目的在于,减少盘内系统的数据拷贝,高效地对PIS任务进行下发和回传。
[0006]为实现上述目的,按照本专利技术的一个方面,提供了一种基于可计算存储架构的任务卸载方法,可计算存储架构包括主机和SSD;任务卸载方法包括在SSD的盘内系统中执行的初始化步骤和计算步骤;
[0007]初始化步骤包括:在SSD的盘内系统的内核地址空间中创建一个虚拟的字符设备,并将字符设备占用的内核地址空间映射到用户进程的地址空间;在字符设备中维护命令队列和数据队列;命令队列用于存储来自主机的命令结构体,命令结构体用于描述主机下发
的计算任务,所封装的信息包括任务类型以及执行任务所需的参数;数据队列用于存储主机下发的计算任务的执行结果;
[0008]计算步骤,包括:
[0009](S1)在内核态,接收到主机下发的计算任务后,将描述该计算任务的命令结构体存储到命令队列中;
[0010](S2)在用户态,获取到命令结构体在命令队列中的偏移值kernel_cmd_offset以及相应的命令ID后,根据偏移值kernel_cmd_offset到命令队列中读取命令结构体,并从中解析出计算任务的任务类型和参数,重新封装为对应的命令并执行,将执行结果存储到数据队列中;
[0011](S3)在内核态,获取到命令ID、执行结果的长度length和执行结果在数据队列中的偏移值usr_data_offset后,将长度length和偏移值usr_data_offset返回给主机。
[0012]本专利技术在SSD的盘内系统的内核地址空间中创建一个虚拟的字符设备,并将该字符设备占用的内核地址空间映射到用户进程的地址空间,由此使得内核态和用户态可以共享该字符设备对应的地址空间,在处理由主机下发的计算任务时,相关的结构体和数据会被存储在该字符设备中,从而在内核态和用户态之间进行切换时,无需进行数据拷贝,有效减少了内核态与用户态的数据交互,提高了任务执行效率。
[0013]进一步地,步骤(S2)中,在将描述该计算任务的命令结构体存储到命令队列之后,还包括:将命令结构体在命令队列中的偏移值kernel_cmd_offset以及相应的命令ID发送给用户态;
[0014]并且,步骤(S3)中,在将执行结果存储到数据队列之后,还包括:将命令ID、执行结果的长度length和执行结果在数据队列中的偏移值usr_data_offset发送给内核态。
[0015]本专利技术中,SSD盘内系统的内核态在将命令结构体存储到命令队列之后,会将命令结构体在命令队列中的偏移值kernel_cmd_offset以及相应的命令ID发送给用户态,由此能够主动通知用户态有PIS任务需要处理;用户态的进程在执行完计算任务之后,也会将命令ID、执行结果的长度length和执行结果在数据队列中的偏移值usr_data_offset发送给内核态,由此能够主动通知内核态,计算任务执行完成。相比于传统任务卸载方法中,内核态和用户态之间通过轮询的方式进行通信,本专利技术中,SSD盘内系统的内核态和用户态之间可以主动地进行通信,使得计算任务能够得到及时地处理,也避免了CPU资源的浪费。
[0016]进一步地,SSD的盘内系统中,内核态与用户态之间通过netlink通信。
[0017]netlink是一种支持多播双向异步socket方式的模块化通信机制,可由内核发起,本专利技术中,SSD盘内系统的内核态与用户态之间通过netlink通信,能够高效地实现内核态与用户态之间双向地、主动地通信,不会造成进程阻塞的问题。
[0018]进一步地,初始化步骤中,通过mmap机制将字符设备占用的内核地址空间映射到用户进程的地址空间。
[0019]mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系,本专利技术通过mmap机制将字符设备占用的内核地址空间映射到用户进程的地址空间,能够有效实现内核态与用户态之间的内存共享。
[0020]进一步地,命令队列,和数据队列,为环形队列。
[0021]本专利技术以环形队列组织命令队列和数据队列,能够减少虚拟字符设备所占用的内存空间。
[0022]进一步地,本专利技术提供的基于可计算存储架构的任务卸载方法,还包括:在主机端执行的计算任务下发步骤;
[0023]计算任务下发步骤包括:将计算任务对应的任务类型和执行任务所需的参数封装为命令结构体后,下发至SSD。
[0024]进一步地,本专利技术提供的基于可计算存储架构的任务卸载方法,还包括:在主机端执行的执行结果读取步骤;
[0025]执行结果读取步骤包括:若SS本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于可计算存储架构的任务卸载方法,所述可计算存储架构包括主机和SSD;其特征在于,所述任务卸载方法包括在SSD的盘内系统中执行的初始化步骤和计算步骤;所述初始化步骤包括:在SSD的盘内系统的内核地址空间中创建一个虚拟的字符设备,并将所述字符设备占用的内核地址空间映射到用户进程的地址空间;在所述字符设备中维护命令队列和数据队列;所述命令队列用于存储来自主机的命令结构体,所述命令结构体用于描述主机下发的计算任务,所封装的信息包括任务类型以及执行任务所需的参数;所述数据队列用于存储主机下发的计算任务的执行结果;所述计算步骤,包括:(S1)在内核态,接收到主机下发的计算任务后,将描述该计算任务的命令结构体存储到所述命令队列中;(S2)在用户态,获取到命令结构体在所述命令队列中的偏移值kernel_cmd_offset以及相应的命令ID后,根据所述偏移值kernel_cmd_offset到所述命令队列中读取命令结构体,并从中解析出计算任务的任务类型和参数,重新封装为对应的命令并执行,将执行结果存储到所述数据队列中;(S3)在内核态,获取到命令ID、执行结果的长度length和执行结果在所述数据队列中的偏移值usr_data_offset后,将所述长度length和所述偏移值usr_data_offset返回给主机。2.如权利要求1所述的基于可计算存储架构的任务卸载方法,其特征在于,所述步骤(S2)中,在将描述该计算任务的命令结构体存储到所述命令队列之后,还包括:将命令结构体在所述命令队列中的偏移值kernel_cmd_offset以及相应的命令ID发送给用户态;并且,所述步骤(S3)中,在将执行结果存储到所述数据队列之后,还包括:将命令ID、执行结果的长度length和执行结果在所述数据队列中的偏移值usr_data_offset发送给内核态。3.如权利要求2所述的基于可计算存储架构的任务卸载方法,其特征在于,SSD的盘内系统中,内核态与用户态之间通过netlink通信。4.如权利要求1~3任一项所述的基于可计算存储架构的任务卸载方法,其特征在于,所述初始化步骤中,通过mmap机制将所述字符设备占用的内核地址空间映射到用户进程的地址空间。5.如权利要求1~...

【专利技术属性】
技术研发人员:吴非付内东刘伟华董卜榕刘嘉宏谢长生
申请(专利权)人:华中科技大学
类型:发明
国别省市:

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

1