一种处理主机任务的方法、系统及终端技术方案

技术编号:38131257 阅读:8 留言:0更新日期:2023-07-08 09:39
本申请公开了一种处理主机任务的方法、系统及终端,该方法包括:对主机下发的任务信息进行解析,获取任务参数;根据任务参数,判断任务信息是否符合设定的配置要求;当任务信息符合设定的配置要求时,根据任务参数中的地址列表指针和地址数量,调度相应的内存物理地址;根据是否开启缓存,对任务信息采取不同的切分方式,获取命令子任务;根据命令子任务,对内存物理地址所匹配的内存物理指针数据进行调度和转换;根据调度和转换结果,发送提交队列条目命令;根据完成队列条目命令,对任务信息的完成状态进行统计,上报完成状态。通过本申请,能够高效实现任务切片和数据切片,从而提高NVMe命令的处理速度。NVMe命令的处理速度。NVMe命令的处理速度。

【技术实现步骤摘要】
一种处理主机任务的方法、系统及终端


[0001]本申请涉及磁盘数据存储
,特别是涉及一种处理主机任务的方法、系统及终端。

技术介绍

[0002]随着数据存储技术的发展,基于PCIe(Peripheral Component Interconnect Express,高速串行计算机扩展总线标准)接口实现的SSD(Solid State Drives,固态硬盘)因其具有高性能、低延迟等特点逐渐受到重视。而NVMe(Non

Volatile Memory express,非易失性内存主机控制器接口规范)作为新一代的接口传输协议,规定了主机与NVM(Non

Volatile Memory,非易失性存储介质)子系统之间的通信协议。目前,NVMe+PCIe已经发展成为主流的存储方案。在当前主流的存储方案中,如何基于NVMe协议处理主机任务,是个重要的技术问题。
[0003]目前,当需要执行某种IO操作时,基于NVMe协议处理主机任务的方法,通常采用包括有三个阶段的典型流程:第一阶段,主机在命令中设置好PRP(physical region range,指物理区域页面,PRP entry描述的是一段连续的物理内存的起始地址),该PRP位于NVMe SSD控制器内部的读写存储缓冲区;主机写命令到SQ队列;主机通过门铃寄存器通知NVMe SSD控制器取指令。第二阶段,NVMe SSD控制器收到通知后,到SQ队列取指令;NVMe SSD控制器根据指令执行相应的数据读写搬运操作;NVMe SSD控制器执行完后,向CQ(completion queue,完成队列)队列写入指令执行结果;NVMe SSD控制器中断通知主机去检测CQ中的反馈信息。第三阶段,主机CQ指令执行完成后,通知门铃寄存器回复NVMe SSD控制器。
[0004]然而,目前基于NVMe协议处理主机任务的方法中,由于主机需要承担PRP entry的转换、SQ(submission queue,提交队列)的管理与指针更新、CQ队列指针更新等任务,主机承担的任务较多,使得一次NVMe命令的执行流程很长,时延消耗大,并且占用的中央处理器资源较多,因此,目前处理主机任务的方法使得NVMe命令的处理速度较低。尤其当应用在有无Cache参与和任务切分的实际应用场景中,还需要主机根据MDTS开展任务的切分工作,再进行IO命令的下发,这种情况会占用更多的CPU资源,导致NVMe命令的处理速度更低。

技术实现思路

[0005]本申请提供了一种处理主机任务的方法、系统及终端,以解决现有技术中的处理主机任务的方法使得NVMe命令的处理速度较低的问题。
[0006]第一方面,本专利技术实施例提供了一种处理主机任务的方法,应用于存储设备,所述存储设备包括至少一个存储元件,所述存储设备通过网络连接至所述主机,所述方法包括:
[0007]对主机下发的任务信息进行解析,获取任务参数;
[0008]根据所述任务参数,判断所述任务信息是否符合设定的配置要求;
[0009]当任务信息符合设定的配置要求时,根据任务参数中的地址列表指针和地址数量,调度相应的内存物理地址;
[0010]根据是否开启缓存,对所述任务信息采取不同的切分方式,获取命令子任务;
[0011]根据所述命令子任务,对所述内存物理地址所匹配的内存物理指针数据进行调度和转换;
[0012]根据调度和转换结果,发送提交队列条目命令;
[0013]根据完成队列条目命令,对所述任务信息的完成状态进行统计,上报所述完成状态。
[0014]在第一方面的一种实现方式中,所述主机与所述存储设备之间通过非易失存储器标准NVMe协议或者基于NVMe协议发展的包括NVMe协议的指令的协议进行通信。
[0015]在第一方面的又一种实现方式中,所述根据是否开启缓存,对所述任务信息采取不同的切分方式,获取命令子任务的步骤包括:
[0016]判断是否开启缓存;
[0017]如果是,根据所述内存物理地址和控制器单个命令大小,对所述任务信息分别进行一级切分和二级切分,获取命令子任务;
[0018]如果否,根据控制器单个命令大小直接对所述任务信息进行二级切分,获取命令子任务。
[0019]在第一方面的又一种实现方式中,所述根据所述内存物理地址和控制器单个命令大小,对所述任务信息分别进行一级切分和二级切分,获取命令子任务步骤,包括:
[0020]当开启缓存时,根据所述内存物理地址中存储的数据信息,对所述任务信息进行一级切分,获取若干个一级子任务;
[0021]将所述一级子任务的配置信息送入一级控制缓存;
[0022]根据所述控制器单个命令大小,将所述一级子任务切分为若干个命令子任务。
[0023]在第一方面的又一种实现方式中,所述根据所述命令子任务,对所述内存物理地址所匹配的内存物理指针数据进行调度和转换的步骤,包括:
[0024]根据所述命令子任务配置的所述内存物理地址数量,依据所述内存物理地址读入相匹配的所述内存物理指针数据;
[0025]对所述内存物理指针数据的合理性进行校验;
[0026]若校验不合格,对所述命令子任务的错误信息进行报错;
[0027]若校验合格,通过将所述内存物理指针数据指向的物理内存译码至所述存储元件的读写存储缓冲区,对所述内存物理指针数据进行转换;
[0028]根据所获取的配置,将转换后的所述内存物理指针数据输出至所述内存物理地址。
[0029]在第一方面的又一种实现方式中,所述根据完成队列条目命令,对所述任务信息的完成状态进行统计,上报所述完成状态的步骤,包括:
[0030]接收来自所述存储元件的完成队列条目命令;
[0031]根据所述完成队列条目命令,对所述任务信息的完成状态进行统计,更新完成队列头指针门铃寄存器,获取命令响应处理结果;
[0032]根据命令响应处理结果管理完成队列指针;
[0033]根据所述命令响应处理结果,统计并上报所述任务信息的完成状态以及报错信息。
[0034]第二方面,本专利技术实施例提供了一种处理主机任务的系统,应用于存储设备,所述存储设备包括至少一个存储元件,所述存储设备通过网络连接至所述主机,所述系统包括:
[0035]任务解析过滤模块,用于对主机下发的任务信息进行解析,获取任务参数;
[0036]判断模块,用于根据所述任务参数,判断所述任务信息是否符合设定的配置要求;
[0037]数据地址调度模块,用于当所述任务信息符合设定的配置要求时,根据所述任务参数中的所述地址列表指针和地址数量,调度相应的内存物理地址信息;
[0038]切分模块,用于根据是否开启缓存,对所述任务信息采取不同的切分方式,获取命令子任务;
[0039]数据处理模块,用于根据所述命令子任务,对所述内存物理地址所匹配的内存物理指针数据进行调度和转换;本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种处理主机任务的方法,其特征在于,应用于存储设备,所述存储设备包括至少一个存储元件,所述存储设备通过网络连接至所述主机,所述方法包括:对主机下发的任务信息进行解析,获取任务参数;根据所述任务参数,判断所述任务信息是否符合设定的配置要求;当任务信息符合设定的配置要求时,根据任务参数中的地址列表指针和地址数量,调度相应的内存物理地址;根据是否开启缓存,对所述任务信息采取不同的切分方式,获取命令子任务;根据所述命令子任务,对所述内存物理地址所匹配的内存物理指针数据进行调度和转换;根据调度和转换结果,发送提交队列条目命令;根据完成队列条目命令,对所述任务信息的完成状态进行统计,上报所述完成状态。2.根据权利要求1所述的处理主机任务的方法,其特征在于,所述主机与所述存储设备之间通过非易失存储器标准NVMe协议或者基于NVMe协议发展的包括NVMe协议的指令的协议进行通信。3.根据权利要求2所述的处理主机任务的方法,其特征在于,所述根据是否开启缓存,对所述任务信息采取不同的切分方式,获取命令子任务的步骤包括:判断是否开启缓存;如果是,根据所述内存物理地址和控制器单个命令大小,对所述任务信息分别进行一级切分和二级切分,获取命令子任务;如果否,根据控制器单个命令大小直接对所述任务信息进行二级切分,获取命令子任务。4.根据权利要求3所述的一种处理主机任务的方法,其特征在于,所述根据所述内存物理地址和控制器单个命令大小,对所述任务信息分别进行一级切分和二级切分,获取命令子任务步骤,包括:当开启缓存时,根据所述内存物理地址中存储的数据信息,对所述任务信息进行一级切分,获取若干个一级子任务;将所述一级子任务的配置信息送入一级控制缓存;根据所述控制器单个命令大小,将所述一级子任务切分为若干个命令子任务。5.根据权利要求2所述的处理主机任务的方法,其特征在于,所述根据所述命令子任务,对所述内存物理地址所匹配的内存物理指针数据进行调度和转换的步骤,包括:根据所述命令子任务配置的所述内存物理地址数量,依据所述内存物理地址读入相匹配的所述内存物理指针数据;对所述内存物理指针数据的合理性进行校验;若校验不合格,对所述命令子任务的错误信息进行报错;若校验合格,通过将所述内存物理指针数据指向的物理内存译码至所述存储元件的读写存储缓冲区,对所述内存物理指针数据进行转换;根据所获取的配置,将转换后的所述内存物理指针数据输出至所述内存物理地址。6.根据权利要求2所述的处理主机任务的方法,其特征在于,所述根据完成队列条目命令,对所述任务信息的完成状态进行统计,上报所述完成状态的步骤,包括:
...

【专利技术属性】
技术研发人员:陆亚南王明明李树青王婷
申请(专利权)人:山东云海国创云计算装备产业创新中心有限公司
类型:发明
国别省市:

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

1