NVM子系统复位的实现方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:33038516 阅读:15 留言:0更新日期:2022-04-15 09:17
本申请涉及一种NVM子系统复位的实现方法、装置、计算机设备及存储介质,其中该方法包括:SSD获取SSD控制器发送的子系统复位中断信号;固件跳转到中断处理函数处理事件,并判断SSD是否有命令未处理完;如果有命令没处理完,则标记用户复位模式事件并不做复位相关操作;退出中断处理函数,待SSD回到主状态机进入到重启状态,将正在进行的命令终止;所有命令均正常终止完成;固件向SSD控制器发停止LTSSM请求,SSD做PCIe核复位,等待参考时钟正常可用,SSD重新配置PCIe寄存器,SSD做NVMe核复位,SSD做NVMe初始化,固件向SSD控制器发开启LTSSM请求。本发明专利技术可以实现不同的测试平台都能测试通过的目的。过的目的。过的目的。

【技术实现步骤摘要】
NVM子系统复位的实现方法、装置、计算机设备及存储介质


[0001]本专利技术涉及固态硬盘
,特别是涉及一种NVM子系统复位的实现方法、装置、计算机设备及存储介质。

技术介绍

[0002]目前,NVM Subsystem reset(NVM子系统复位)发生于以下3种情形:主电源应用于NVM子系统;4E564D65h(“NVMe”)被写到NSSR.NSSRC(NVM Subsystem Reset.NVM Subsystem Reset Control子系统复位控制)字段;厂商定义的特殊事件发生时,NVM子系统将会reset(复位)。当NVM子系统复位时,整个NVM子系统将被重置,包括构成NVM子系统的所有控制器层级的重置,禁用与构成NVM子系统的所有控制器关联的持久内存区域,以及由NVM子系统的所有PCIe端口转换到检测LTSSM状态。
[0003]然而,现有Subsystem reset方案在sanblaze(一种SSD测试软件)测试平台上reset测试失败。该平台由于SSD正在进行读写命令,主机没等读写命令结束就下发reset请求,Device在收到reset中断时,在中断中将PCIe/NVMe Core(核心)复位,导致还未处理完的节点卡住,无法顺利完成,最终测试失败。

技术实现思路

[0004]基于此,有必要针对上述技术问题,提供一种NVM子系统复位的实现方法、装置、计算机设备及存储介质。
[0005]一种NVM子系统复位的实现方法,所述方法包括:
[0006]SSD获取SSD控制器发送的子系统复位中断信号;
[0007]固件跳转到中断处理函数处理事件,并判断SSD是否有命令未处理完;
[0008]如果有命令没处理完,则标记用户复位模式事件并不做复位相关操作;
[0009]退出中断处理函数,待SSD回到主状态机进入到重启状态,将正在进行的命令终止;
[0010]等待所有命令均正常终止完成;
[0011]固件向SSD控制器发停止LTSSM请求,SSD做PCIe核复位,等待参考时钟正常可用,SSD重新配置PCIe寄存器,SSD做NVMe核复位,SSD做NVMe初始化,固件向SSD控制器发开启LTSSM请求,写NSSRO寄存器表示子系统复位已发生过,链路重新开始训练。
[0012]在其中一个实施例中,在所述固件跳转到中断处理函数处理该事件,并判断SSD是否有命令未处理完的步骤还包括:
[0013]如果所有命令都已处理完,则标记中断复位模式事件并跳转到所述固件向SSD控制器发停止LTSSM请求的步骤。
[0014]在其中一个实施例中,在所述SSD收到SSD控制器发送的子系统复位中断信号的步骤之前还包括:
[0015]SSD上电后正常处理命令,并执行NVM子系统复位测试脚本;
[0016]主机发送子系统复位请求给SSD。
[0017]在其中一个实施例中,在所述链路重新开始训练的步骤之后还包括:
[0018]等待主机发送控制器配置寄存器使能命令,重新开始处理命令。
[0019]一种NVM子系统复位的实现装置,所述装置包括:
[0020]获取模块,所述获取模块用于SSD获取SSD控制器发送的子系统复位中断信号;
[0021]判断模块,所述判断模块用于固件跳转到中断处理函数处理事件,并判断SSD是否有命令未处理完;
[0022]第一标记模块,所述第一标记模块用于如果有命令没处理完,则标记用户复位模式事件并不做复位相关操作;
[0023]命令终止模块,所述命令终止模块用于退出中断处理函数,待SSD回到主状态机进入到重启状态,将正在进行的命令终止,等待所有命令均正常终止完成;
[0024]子流程模块,所述子流程模块用于固件向SSD控制器发停止LTSSM请求,SSD做PCIe核复位,等待参考时钟正常可用,SSD重新配置PCIe寄存器,SSD做NVMe核复位,SSD做NVMe初始化,固件向SSD控制器发开启LTSSM请求,写NSSRO寄存器表示子系统复位已发生过,链路重新开始训练。
[0025]在其中一个实施例中,所述装置还包括第二标记模块,所述第二标记模块用于:
[0026]如果所有命令都已处理完,则标记中断复位模式事件并跳转至子流程模块。
[0027]在其中一个实施例中,所述装置还包括请求模块,所述请求模块用于:
[0028]SSD上电后正常处理命令,并执行NVM子系统复位测试脚本;
[0029]主机发送子系统复位请求给SSD。
[0030]在其中一个实施例中,所述装置还包括等待模块,所述等待模块用于:
[0031]等待主机发送控制器配置寄存器使能命令,重新开始处理命令。
[0032]一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。
[0033]一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。
[0034]上述NVM子系统复位的实现方法、装置、计算机设备及存储介质通过SSD获取SSD控制器发送的子系统复位中断信号;固件跳转到中断处理函数处理事件,并判断SSD是否有命令未处理完;如果有命令没处理完,则标记用户复位模式事件并不做复位相关操作;退出中断处理函数,待SSD回到主状态机进入到重启状态,将正在进行的命令终止;所有命令均正常终止完成;固件向SSD控制器发停止LTSSM请求,SSD做PCIe核复位,等待参考时钟正常可用,SSD重新配置PCIe寄存器,SSD做NVMe核复位,SSD做NVMe初始化,固件向SSD控制器发开启LTSSM请求,写NSSRO寄存器表示子系统复位已发生过,链路重新开始训练。本专利技术所提供的方案可以根据收到主机发送的子系统复位请求时SSD是否正在处理读写命令来采用不同的方案来处理复位事件,达到不同的测试平台都能测试通过的目的。
附图说明
[0035]图1为传统技术中NVM Subsystem reset方案的示意图;
[0036]图2为一个实施例中NVM子系统复位的实现方法的流程示意图;
[0037]图3为另一个实施例中NVM子系统复位的实现方法的流程示意图;
[0038]图4为一个实施例中NVM Subsystem reset方案的示意图;
[0039]图5为一个实施例中NVM子系统复位的实现装置的结构框图;
[0040]图6为另一个实施例中NVM子系统复位的实现装置的结构框图;
[0041]图7为再一个实施例中NVM子系统复位的实现装置的结构框图;
[0042]图8为又一个实施例中NVM子系统复位的实现装置的结构框图;
[0043]图9为一个实施例中计算机设备的内部结构图。
具体实施方式
[0044]为了使本申请的目的、技术方案及优点更加清本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种NVM子系统复位的实现方法,其特征在于,所述方法包括:SSD获取SSD控制器发送的子系统复位中断信号;固件跳转到中断处理函数处理事件,并判断SSD是否有命令未处理完;如果有命令没处理完,则标记用户复位模式事件并不做复位相关操作;退出中断处理函数,待SSD回到主状态机进入到重启状态,将正在进行的命令终止;等待所有命令均正常终止完成;固件向SSD控制器发停止LTSSM请求,SSD做PCIe核复位,等待参考时钟正常可用,SSD重新配置PCIe寄存器,SSD做NVMe核复位,SSD做NVMe初始化,固件向SSD控制器发开启LTSSM请求,写NSSRO寄存器表示子系统复位已发生过,链路重新开始训练。2.根据权利要求1所述的NVM子系统复位的实现方法,其特征在于,在所述固件跳转到中断处理函数处理该事件,并判断SSD是否有命令未处理完的步骤还包括:如果所有命令都已处理完,则标记中断复位模式事件并跳转到所述固件向SSD控制器发停止LTSSM请求的步骤。3.根据权利要求2所述的NVM子系统复位的实现方法,其特征在于,在所述SSD收到SSD控制器发送的子系统复位中断信号的步骤之前还包括:SSD上电后正常处理命令,并执行NVM子系统复位测试脚本;主机发送子系统复位请求给SSD。4.根据权利要求1

3任一项所述的NVM子系统复位的实现方法,其特征在于,在所述链路重新开始训练的步骤之后还包括:等待主机发送控制器配置寄存器使能命令,重新开始处理命令。5.一种NVM子系统复位的实现装置,其特征在于,所述装置包括:获取模块,所述获取模块用于SSD获取SSD控制器发送的子系统复位中断信号;判断模块,所述判断模块用于固件跳转到中断处理函数处理事件...

【专利技术属性】
技术研发人员:沈荣娟韩道静刘金雷
申请(专利权)人:深圳忆联信息系统有限公司
类型:发明
国别省市:

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

1