掌桥专利:专业的专利平台
掌桥专利
首页

一种功能单元挂死的恢复方法、装置、设备及介质

文献发布时间:2024-04-18 20:01:30


一种功能单元挂死的恢复方法、装置、设备及介质

技术领域

本发明涉及固态硬盘的数据存储技术领域,特别是涉及一种功能单元挂死的恢复方法、装置、设备及介质。

背景技术

随着固态硬盘(Solid State Drive,SSD)的高速发展,为了保证固态硬盘存储数据的稳定性和可靠性,对固态硬盘出现的故障需要进行自主恢复。固态硬盘中一般被分为三部分,分别为固态硬盘主控、数据传输通道、非易失性存储器NAND,其中在NAND中还设置有多个由多个存储矩阵plane组成的用于接收和执行对闪存的操作命令的功能单元(Logical Unit Number,lun)。

为了能够提高固态硬盘存储数据的效率,固态硬盘能够至少支持异步独立存储单元数据读取的特性(Asynchronous Independent Plane Read,AIPR)和挂起写擦数据的特性(SUSPEND)。其中,AIPR特性为允许功能单元以最小组成单元存储矩阵执行读数据命令;SUSPEND特性为允许功能单元在执行写数据命令和/或擦数据命令的过程中,将写数据命令和/或擦数据命令挂起,进而执行读数据命令。

现有的固态硬盘在同时耦合AIPR特性和SUSPEND特性时,易出现功能单元lun挂死的情况,为了恢复功能单元的挂死情况,现有的方法为:直接对多笔正在执行的AIPR特性对应的读数据命令进行复位,此时,无法准确得知多笔读数据命令的状态,直接对多笔读数据命令进行复位会导致其余读数据命令当前所处理的数据丢失,同时,SUSPEND特性对应的全部写数据命令和/或擦数据命令在对读数据命令进行复位时直接被取消,也导致当前所处理的数据丢失,出现数据掉盘的情况。

鉴于上述存在的问题,寻求在同时耦合AIPR特性和SUSPEND特性时避免出现数据掉盘的情况是本领域技术人员竭力解决的问题。

发明内容

本发明的目的是提供一种功能单元挂死的恢复方法、装置、设备及介质,用于解决同时耦合AIPR特性和SUSPEND特性时出现的数据掉盘的问题。

为解决上述技术问题,本发明提供一种功能单元挂死的恢复方法,应用于固态硬盘,方法包括:

当确定功能单元处于挂死状态时,获取异步独立存储单元数据读取的特性对应的读数据命令的数量;

当读数据命令的数量达到预设数量时,开启复位功能;

根据复位功能控制读数据命令从当前读执行阶段退回至初始读执行阶段;

根据读数据命令处于初始读执行阶段确定完成复位恢复;

查询是否存在挂起写擦数据的特性对应的写数据命令和/或擦数据命令;

若存在,则根据复位功能控制写数据命令和/或擦数据命令从当前写擦执行阶段退回至初始写擦执行阶段;

根据写数据命令和/或擦数据命令处于初始写擦执行阶段确定完成复位恢复。

另一方面,确定功能单元处于挂死状态包括:

查询读数据命令的执行状态;

确定读数据命令的执行状态为忙碌状态;

判断忙率状态的持续时长是否达到预设时长;

若达到预设时长,则确定功能单元处于挂死状态;

若未达到预设时长,则确定功能单元未处于挂死状态。

另一方面,当读数据命令的数量达到预设数量时,开启复位功能包括:

判断功能单元中是否存在多笔读数据命令;

若否,则进入开启复位功能的步骤;

若是,则设定预设数量为1;

判断功能单元中的读数据命令的数量是否为1;

若为1,则进入开启复位功能的步骤;

若不为1,则返回至判断功能单元中是否存在多笔读数据命令的步骤。

另一方面,当功能单元中的读数据命令的数量不为1时,还包括:

对功能单元设置复位标记;

根据复位标记确定读数据命令执行失败;

输出表征执行读数据命令失败的故障信息;

根据故障信息释放执行读数据命令的资源。

另一方面,当功能单元中的读数据命令的数量为1时,在开启复位功能之后,还包括:

确定功能单元中剩余的读数据命令执行失败;

输出表征执行读数据命令失败的故障信息;

根据故障信息释放执行读数据命令的资源。

另一方面,还包括:

当存在挂起写擦数据的特性对应的写数据命令和/或擦数据命令时,则输出表征执行写数据命令和/或擦数据命令失败的告警信息;

根据告警信息释放执行写数据命令和/或擦数据命令的资源;

当不存在挂起写擦数据的特性对应的写数据命令和/或擦数据命令时,则确定完成对功能单元复位恢复。

另一方面,在获取异步独立存储单元数据读取的特性对应的读数据命令的数量之后,还包括:

对功能单元设置拒收状态;

根据拒收状态拒绝接收功能单元处于挂死状态之后发起的读数据命令;

对应的,在确定完成对功能单元复位恢复之后,还包括:

发出表征确定完成复位恢复的提示信息;

根据提示信息解除拒收状态。

另一方面,当功能单元中的读数据命令的数量为4时,确定读数据命令分别为第一读数据命令、第二读数据命令、第三读数据命令、第四读数据命令;获取异步独立存储单元数据读取的特性对应的读数据命令的数量包括:

获取异步独立存储单元数据读取的特性对应的第一读数据命令、第二读数据命令、第三读数据命令、第四读数据命令;

对应的,在获取异步独立存储单元数据读取的特性对应的读数据命令的数量之后,还包括:

对功能单元设置拒收状态;

根据拒收状态拒绝接收功能单元处于挂死状态之后发起的以步进值为1递增的多个读数据命令;

根据第一读数据命令、第二读数据命令、第三读数据命令、第四读数据命令设定预设数量为1;

将读数据命令的数量按照步进值1递减;

当功能单元中剩余第一读数据命令、第二读数据命令、第三读数据命令时,返回至将读数据命令的数量按照步进值1递减的步骤;

当功能单元中剩余第一读数据命令、第二读数据命令时,返回至将读数据命令的数量按照步进值1递减的步骤;

当功能单元中剩余第一读数据命令时,进入开启复位功能的步骤。

为解决上述技术问题,本发明还提供了一种功能单元挂死的恢复装置,应用于固态硬盘,装置包括:

第一获取模块,用于当确定功能单元处于挂死状态时,获取异步独立存储单元数据读取的特性对应的读数据命令的数量;

开启模块,用于当读数据命令的数量达到预设数量时,开启复位功能;

第一退回模块,用于根据复位功能控制读数据命令从当前读执行阶段退回至初始读执行阶段;

第一复位恢复模块,用于根据读数据命令处于初始读执行阶段确定完成复位恢复;

第一查询模块,用于查询是否存在挂起写擦数据的特性对应的写数据命令和/或擦数据命令;

第二退回模块,用于若存在,则根据复位功能控制写数据命令和/或擦数据命令从当前写擦执行阶段退回至初始写擦执行阶段;

第二复位恢复模块,用于根据写数据命令和/或擦数据命令处于初始写擦执行阶段确定完成复位恢复。

此外,该装置还包括:

另一方面,确定功能单元处于挂死状态包括:

第二查询模块,用于查询读数据命令的执行状态;

忙碌状态模块,用于确定读数据命令的执行状态为忙碌状态;

第一判断模块,用于判断忙率状态的持续时长是否达到预设时长;

若达到预设时长,则触发第一确定模块,用于确定功能单元处于挂死状态;

若未达到预设时长,则触发第二确定模块,用于确定功能单元未处于挂死状态。

另一方面,当读数据命令的数量达到预设数量时,开启复位功能包括:

第二判断模块,用于判断功能单元中是否存在多笔读数据命令;

若否,则进入开启复位功能的步骤;

若是,则触发第一设定模块,用于设定预设数量为1;

第三判断模块,用于判断功能单元中的读数据命令的数量是否为1;

若为1,则进入开启复位功能的步骤;

若不为1,则返回至判断功能单元中是否存在多笔读数据命令的步骤。

另一方面,当功能单元中的读数据命令的数量不为1时,还包括:

复位标记模块,用于对功能单元设置复位标记;

第三确定模块,用于根据复位标记确定读数据命令执行失败;

第一输出模块,用于输出表征执行读数据命令失败的故障信息;

第一释放模块,用于根据故障信息释放执行读数据命令的资源。

另一方面,当功能单元中的读数据命令的数量为1时,在开启复位功能之后,还包括:

第四确定模块,用于确定功能单元中剩余的读数据命令执行失败;

第二输出模块,用于输出表征执行读数据命令失败的故障信息;

第二释放模块,用于根据故障信息释放执行读数据命令的资源。

另一方面,还包括:

第三输出模块,用于当存在挂起写擦数据的特性对应的写数据命令和/或擦数据命令时,则输出表征执行写数据命令和/或擦数据命令失败的告警信息;

第三释放模块,用于根据告警信息释放执行写数据命令和/或擦数据命令的资源;

第五确定模块,用于当不存在挂起写擦数据的特性对应的写数据命令和/或擦数据命令时,则确定完成对功能单元复位恢复。

另一方面,在获取异步独立存储单元数据读取的特性对应的读数据命令的数量之后,还包括:

第一设置模块,用于对功能单元设置拒收状态;

第一拒收模块,用于根据拒收状态拒绝接收功能单元处于挂死状态之后发起的读数据命令;

对应的,在确定完成对功能单元复位恢复之后,还包括:

发出模块,用于发出表征确定完成复位恢复的提示信息;

解除模块,用于根据提示信息解除拒收状态。

另一方面,当功能单元中的读数据命令的数量为4时,确定读数据命令分别为第一读数据命令、第二读数据命令、第三读数据命令、第四读数据命令;获取异步独立存储单元数据读取的特性对应的读数据命令的数量包括:

第二获取模块,用于获取异步独立存储单元数据读取的特性对应的第一读数据命令、第二读数据命令、第三读数据命令、第四读数据命令;

对应的,在获取异步独立存储单元数据读取的特性对应的读数据命令的数量之后,还包括:

第二设置模块,用于对功能单元设置拒收状态;

第二拒收模块,用于根据拒收状态拒绝接收功能单元处于挂死状态之后发起的以步进值为1递增的多个读数据命令;

第二设定模块,用于根据第一读数据命令、第二读数据命令、第三读数据命令、第四读数据命令设定预设数量为1;

递减模块,用于将读数据命令的数量按照步进值1递减;

当功能单元中剩余第一读数据命令、第二读数据命令、第三读数据命令时,返回至将读数据命令的数量按照步进值1递减的步骤;

当功能单元中剩余第一读数据命令、第二读数据命令时,返回至将读数据命令的数量按照步进值1递减的步骤;

当功能单元中剩余第一读数据命令时,进入开启复位功能的步骤。

为解决上述技术问题,本发明还提供了一种功能单元挂死的恢复设备,包括:

存储器,用于存储计算机程序;

处理器,用于指向计算机程序,实现功能单元挂死的恢复方法的步骤。

为解决上述技术问题,本发明还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,实现上述全部功能单元挂死的恢复方法的步骤。

本发明所提供的一种功能单元挂死的恢复方法,应用于固态硬盘,方法包括:当确定功能单元处于挂死状态时,获取异步独立存储单元数据读取的特性对应的读数据命令的数量;当读数据命令的数量达到预设数量时,开启复位功能;此时保证功能单元中的全部读数据命令均被处理,准确得知多笔读数据命令的当前状态,以避免直接复位出现的其余读数据命令当前处理的数据丢失掉盘;根据复位功能控制读数据命令从当前读执行阶段退回至初始读执行阶段;根据读数据命令处于初始读执行阶段确定完成复位恢复;查询是否存在挂起写擦数据的特性对应的写数据命令和/或擦数据命令;若存在,则根据复位功能控制写数据命令和/或擦数据命令从当前写擦执行阶段退回至初始写擦执行阶段;根据写数据命令和/或擦数据命令处于初始写擦执行阶段确定完成复位恢复。此时,由于对SUSPEND特性对应的全部写数据命令和/或擦数据命令再次进行查询确认,避免了在写数据命令和/或擦数据命令被取消,进而导致当前所处理的数据丢失掉盘的情况。

本发明还提供了一种功能单元挂死的恢复装置、设备及介质,效果同上。

附图说明

为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例所提供的一种固态硬盘的内部结构图;

图2为本发明实施例所提供一种功能单元挂死的恢复方法的流程图;

图3为本发明实施例所提供的一种功能单元挂死的恢复装置结构图;

图4为本发明实施例所提供的一种功能单元挂死的恢复设备结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。

本发明的核心是提供一种功能单元挂死的恢复方法、装置、设备及介质,其能够在同时耦合AIPR特性和SUSPEND特性时避免出现数据掉盘的情况。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

固态硬盘(Solid State Drive,SSD)上承载了用户的重要数据,要求高度的稳定性和可靠性,即在任何条件下可以稳定运行,不丢数据不掉盘。为了达到这个目标,需要针对SSD运行过程中可能出现的故障仔细分类,从而对具体问题做针对性的处理。目前遇到的SSD问题有两类,分为软件问题和硬件问题。通常软件问题可以通过大量的测试,找出问题并修复,而硬件问题部分可通过软件手段恢复。

图1为本发明实施例所提供的一种固态硬盘的内部结构图,如图1所示,固态硬盘主要由固态硬盘主控发送各种指令,并通过数据传输通道CH0至CHn传输指令至非易失性存储器NAND0至NANDn,进行数据的读写操作;还需要说明的是,在NAND中还设置有多个功能单元lun0至lunn,且对应的,在功能单元中还设置有多个存储矩阵plane0至planen。

图2为本发明实施例所提供一种功能单元挂死的恢复方法的流程图,如图2所示,该功能单元挂死的恢复方法,应用于固态硬盘,方法包括:

S10:当确定功能单元处于挂死状态时,获取异步独立存储单元数据读取的特性对应的读数据命令的数量;

其中,步独立存储单元数据读取的特性(Asynchronous Independent PlaneRead,AIPR)能够在读取固态硬盘中的数据时,能够允许通过一个功能单元上的各个存储矩阵并发多线程执行,以此提升读数据的效率;

S11:当读数据命令的数量达到预设数量时,开启复位功能;

其中,需要说明的是,复位功能能够将全部的读数据命令从当前读执行阶段退回至初始读执行阶段;此时可以了解的是,一个读数据命令的执行过程可以分为四个阶段,其中第一阶段为:读数据命令触发阶段,在该阶段过程中,需要下发读数据命令,并根据读数据命令执行后续的读数据操作;第二阶段为:按时间读取数据过程(Time Read),此时将全部的读数据命令按照时间顺序进行排序,其中时间顺序为触发读数据命令的时间逐步增加的顺序,并按照该时间顺序执行读数据命令;第三阶段为:状态检查阶段:在该阶段过程中,读数据命令一般会出现两种状态,第一种状态为正常执行状态,第二中状态为忙碌状态,需要说明的是,读数据命令出现两种的状态可以根据预设状态确定时长确定,当执行读数据命令的时长超出预设状态确定时长,此时读数据命令为忙碌状态,当执行读数据命令的时长未超出预设状态确定时长,此时读数据命令为正常执行状态;第四阶段为:固态硬盘数据传输阶段,在该阶段中可以直接根据读数据命令对固态硬盘中的数据进行读写;

S12:根据复位功能控制读数据命令从当前读执行阶段退回至初始读执行阶段;

可以理解的是,读数据命令的执行阶段至少包括以下三个阶段,分别为:初始读执行阶段、当前读执行阶段以及读执行完毕阶段,可以理解的是,若读数据命令的执行阶段为读执行完毕阶段时,此时表明读数据命令已经执行完毕,并根据读数据命令对固态硬盘中的数据进行读写;

S13:根据读数据命令处于初始读执行阶段确定完成复位恢复;

可以理解的是,复位完成即为读数据命令从当前读执行阶段退回至初始读执行阶段,并稳定在初始读执行阶段,且稳定在初始读执行阶段的时长也需要设定一定时长的时间,以保证读数据命令确实完成了复位;

S14:查询是否存在挂起写擦数据的特性对应的写数据命令和/或擦数据命令;

在本实施例中,将写擦数据的特性记为SUSPEND特性,当该SUSPEND特性被启动时,对应的写擦数据可以暂停,并支持AIPR特性对应读数据命令执行;

若存在,则进入步骤S15:根据复位功能控制写数据命令和/或擦数据命令从当前写擦执行阶段退回至初始写擦执行阶段;

S16:根据写数据命令和/或擦数据命令处于初始写擦执行阶段确定完成复位恢复。

可以理解的是,复位完成即为写数据命令和/或擦数据命令从当前写擦执行阶段退回至初始写擦执行阶段,并稳定在初始写擦执行阶段,且稳定在初始写擦执行阶段的时长也需要设定一定时长的时间,以保证写数据命令和/或擦数据命令确实完成了复位。

本发明所提供的一种功能单元挂死的恢复方法,应用于固态硬盘,方法包括:当确定功能单元处于挂死状态时,获取异步独立存储单元数据读取的特性对应的读数据命令的数量;当读数据命令的数量达到预设数量时,开启复位功能;此时保证功能单元中的全部读数据命令均被处理,准确得知多笔读数据命令的当前状态,以避免直接复位出现的其余读数据命令当前处理的数据丢失掉盘;根据复位功能控制读数据命令从当前读执行阶段退回至初始读执行阶段;根据读数据命令处于初始读执行阶段确定完成复位恢复;查询是否存在挂起写擦数据的特性对应的写数据命令和/或擦数据命令;若存在,则根据复位功能控制写数据命令和/或擦数据命令从当前写擦执行阶段退回至初始写擦执行阶段;根据写数据命令和/或擦数据命令处于初始写擦执行阶段确定完成复位恢复。此时,由于对SUSPEND特性对应的全部写数据命令和/或擦数据命令再次进行查询确认,避免了在写数据命令和/或擦数据命令被取消,进而导致当前所处理的数据丢失掉盘的情况。

在上述实施例的基础上,确定功能单元处于挂死状态包括:

查询读数据命令的执行状态;

确定读数据命令的执行状态为忙碌状态;

判断忙率状态的持续时长是否达到预设时长;

若达到预设时长,则确定功能单元处于挂死状态;

若未达到预设时长,则确定功能单元未处于挂死状态。

读数据命令一般会出现两种状态,第一种状态为正常执行状态,第二中状态为忙碌状态,需要说明的是,读数据命令出现两种的状态可以根据预设状态确定时长确定,当执行读数据命令的时长超出预设状态确定时长,此时读数据命令为忙碌状态,当执行读数据命令的时长未超出预设状态确定时长,此时读数据命令为正常执行状态;

对应的,在确定读数据命令的执行状态为忙碌状态之后,需要判断忙率状态的持续时长是否达到预设时长,以便于根据达到预设时长的忙率状态的读数据命令挂死,此时,该读数据命令对应的功能单元也处于挂死状态;

此时若功能单元被挂死,则需要获取异步独立存储单元数据读取的特性对应的读数据命令的数量。

在一些实施例中,当读数据命令的数量达到预设数量时,开启复位功能包括:

判断功能单元中是否存在多笔读数据命令;

若否,则进入开启复位功能的步骤;

若是,则设定预设数量为1;

判断功能单元中的读数据命令的数量是否为1;

若为1,则进入开启复位功能的步骤;

若不为1,则返回至判断功能单元中是否存在多笔读数据命令的步骤。

对于本实施例,需要判断功能单元中被挂死的读数据命令是否存在多笔,此时对于上述判断是为了确保功能单元中被挂死的读数据命令均被处理到一个固定的阶段,在一些实施例中,该固定的阶段一般为读执行完毕阶段的前的阶段,其中,可以对应设置上述固定的阶段为读执行固定阶段,因此需要功能单元中被挂死的多笔读数据命令执行到读执行固定阶段才能开启复位功能;为了进一步确保功能单元中被挂死的读数据命令全部都被处理,不涉及遗漏,因此,将读数据命令的预设数量甚至为1,此时,若功能单元中的读数据命令的数量为1,则对全部的功能单元中的读数据命令进行复位。

在一些实施例中,当功能单元中的读数据命令的数量不为1时,还包括:

对功能单元设置复位标记;

根据复位标记确定读数据命令执行失败;

输出表征执行读数据命令失败的故障信息;

根据故障信息释放执行读数据命令的资源。

对应的,当功能单元中的读数据命令的数量为1时,在开启复位功能之后,还包括:

确定功能单元中剩余的读数据命令执行失败;

输出表征执行读数据命令失败的故障信息;

根据故障信息释放执行读数据命令的资源。

对于上述实施例,需要说明的是,为了保证固态硬盘的资源不被占用,因此,需要将执行读数据命令失败的读数据命令的资源释放,此时无论功能单元中的读数据命令的数量是否为1。其中,复位标记可以为数据串的表示方式,该复位标记可以设置为1位、2位、4位等等,当复位标记为1位、2位、4位的数据串时,可以分别表示为:0、01、0011等等,上述提及的有关于复位标记的表示方式仅为众多实施例中几种,并不对复位标记的表示方式作出限定。

在上述实施例中,还包括:

当存在挂起写擦数据的特性对应的写数据命令和/或擦数据命令时,则输出表征执行写数据命令和/或擦数据命令失败的告警信息;

根据告警信息释放执行写数据命令和/或擦数据命令的资源;

当不存在挂起写擦数据的特性对应的写数据命令和/或擦数据命令时,则确定完成对功能单元复位恢复。

为了能够使得及时对挂起的写数据命令和/或擦数据命令进行处理,当查询到写数据命令和/或擦数据命令时,输出告警信息,该告警信息可以是在显示器上,显示为error;或者错误的代码,将错误的代码作为告警信息输出至显示屏;同时为了保证固态硬盘的资源不被占用,因此,需要将输出告警信息的写数据命令和/或擦数据命令对应的资源释放。

在一些实施例中,在获取异步独立存储单元数据读取的特性对应的读数据命令的数量之后,还包括:

对功能单元设置拒收状态;

根据拒收状态拒绝接收功能单元处于挂死状态之后发起的读数据命令;

对应的,在确定完成对功能单元复位恢复之后,还包括:

发出表征确定完成复位恢复的提示信息;

根据提示信息解除拒收状态。

为了保证其余的应当处于正常状态的读数据命令也被挂死,此时当异步独立存储单元数据读取的特性开启之后,在该功能单元对其余要输入的正常状态的读数据命令设置拒收状态;根据拒收状态拒绝接收功能单元处于挂死状态之后发起的读数据命令;并在完成复位恢复时,输出提示信息,根据提示信息解除拒收状态。

其中拒收状态可以通过设置标志位,将标志位禁用,此时根据禁用的标志位设置拒收状态;同时,提示信息可以为数据串的表示方式,该提示信息可以设置为1位、2位、4位等等,当提示信息为1位、2位、4位的数据串时,可以分别表示为:1、10、1001等等,上述提及的有关于提示信息的表示方式仅为众多实施例中几种,并不对提示信息的表示方式作出限定。

在一些实施例中,当功能单元中的读数据命令的数量为4时,确定读数据命令分别为第一读数据命令、第二读数据命令、第三读数据命令、第四读数据命令;获取异步独立存储单元数据读取的特性对应的读数据命令的数量包括:

获取异步独立存储单元数据读取的特性对应的第一读数据命令、第二读数据命令、第三读数据命令、第四读数据命令;

对应的,在获取异步独立存储单元数据读取的特性对应的读数据命令的数量之后,还包括:

对功能单元设置拒收状态;

根据拒收状态拒绝接收功能单元处于挂死状态之后发起的以步进值为1递增的多个读数据命令;

根据第一读数据命令、第二读数据命令、第三读数据命令、第四读数据命令设定预设数量为1;

将读数据命令的数量按照步进值1递减;

当功能单元中剩余第一读数据命令、第二读数据命令、第三读数据命令时,返回至将读数据命令的数量按照步进值1递减的步骤;

当功能单元中剩余第一读数据命令、第二读数据命令时,返回至将读数据命令的数量按照步进值1递减的步骤;

当功能单元中剩余第一读数据命令时,进入开启复位功能的步骤。

在本实施例限定被挂死的功能单元中的读数据命令有4个,其中,当开启异步独立存储单元数据读取的特性时,拒收其余还需要传输进该功能单元中其他读数据命令,此时保证该功能单元中的读数据命令只有4个。将该功能单元中允许存储有的读数据命令的数量设置为1个时,只允许该功能单元中存储有的被挂死的读数据命令只剩1个时,开启复位功能。

在上述实施例中,对于功能单元挂死的恢复方法进行了详细描述,本发明还提供功能单元挂死的恢复装置对应的实施例。需要说明的是,本发明从两个角度对装置部分的实施例进行描述,一种是基于功能模块的角度,另一种是基于硬件的角度。

图3为本发明实施例所提供的一种功能单元挂死的恢复装置结构图,如图3所示,本发明还提供了一种功能单元挂死的恢复装置,应用于固态硬盘,装置包括:

第一获取模块30,用于当确定功能单元处于挂死状态时,获取异步独立存储单元数据读取的特性对应的读数据命令的数量;

开启模块31,用于当读数据命令的数量达到预设数量时,开启复位功能;

第一退回模块32,用于根据复位功能控制读数据命令从当前读执行阶段退回至初始读执行阶段;

第一复位恢复模块33,用于根据读数据命令处于初始读执行阶段确定完成复位恢复;

第一查询模块34,用于查询是否存在挂起写擦数据的特性对应的写数据命令和/或擦数据命令;

第二退回模块35,用于若存在,则根据复位功能控制写数据命令和/或擦数据命令从当前写擦执行阶段退回至初始写擦执行阶段;

第二复位恢复模块36,用于根据写数据命令和/或擦数据命令处于初始写擦执行阶段确定完成复位恢复。

此外,该装置还包括:

在一些实施例中,确定功能单元处于挂死状态包括:

第二查询模块,用于查询读数据命令的执行状态;

忙碌状态模块,用于确定读数据命令的执行状态为忙碌状态;

第一判断模块,用于判断忙率状态的持续时长是否达到预设时长;

若达到预设时长,则触发第一确定模块,用于确定功能单元处于挂死状态;

若未达到预设时长,则触发第二确定模块,用于确定功能单元未处于挂死状态。

在一些实施例中,当读数据命令的数量达到预设数量时,开启复位功能包括:

第二判断模块,用于判断功能单元中是否存在多笔读数据命令;

若否,则进入开启复位功能的步骤;

若是,则触发第一设定模块,用于设定预设数量为1;

第三判断模块,用于判断功能单元中的读数据命令的数量是否为1;

若为1,则进入开启复位功能的步骤;

若不为1,则返回至判断功能单元中是否存在多笔读数据命令的步骤。

在一些实施例中,当功能单元中的读数据命令的数量不为1时,还包括:

复位标记模块,用于对功能单元设置复位标记;

第三确定模块,用于根据复位标记确定读数据命令执行失败;

第一输出模块,用于输出表征执行读数据命令失败的故障信息;

第一释放模块,用于根据故障信息释放执行读数据命令的资源。

在一些实施例中,当功能单元中的读数据命令的数量为1时,在开启复位功能之后,还包括:

第四确定模块,用于确定功能单元中剩余的读数据命令执行失败;

第二输出模块,用于输出表征执行读数据命令失败的故障信息;

第二释放模块,用于根据故障信息释放执行读数据命令的资源。

在一些实施例中,还包括:

第三输出模块,用于当存在挂起写擦数据的特性对应的写数据命令和/或擦数据命令时,则输出表征执行写数据命令和/或擦数据命令失败的告警信息;

第三释放模块,用于根据告警信息释放执行写数据命令和/或擦数据命令的资源;

第五确定模块,用于当不存在挂起写擦数据的特性对应的写数据命令和/或擦数据命令时,则确定完成对功能单元复位恢复。

在一些实施例中,在获取异步独立存储单元数据读取的特性对应的读数据命令的数量之后,还包括:

第一设置模块,用于对功能单元设置拒收状态;

第一拒收模块,用于根据拒收状态拒绝接收功能单元处于挂死状态之后发起的读数据命令;

对应的,在确定完成对功能单元复位恢复之后,还包括:

发出模块,用于发出表征确定完成复位恢复的提示信息;

解除模块,用于根据提示信息解除拒收状态。

在一些实施例中,当功能单元中的读数据命令的数量为4时,确定读数据命令分别为第一读数据命令、第二读数据命令、第三读数据命令、第四读数据命令;获取异步独立存储单元数据读取的特性对应的读数据命令的数量包括:

第二获取模块,用于获取异步独立存储单元数据读取的特性对应的第一读数据命令、第二读数据命令、第三读数据命令、第四读数据命令;

对应的,在获取异步独立存储单元数据读取的特性对应的读数据命令的数量之后,还包括:

第二设置模块,用于对功能单元设置拒收状态;

第二拒收模块,用于根据拒收状态拒绝接收功能单元处于挂死状态之后发起的以步进值为1递增的多个读数据命令;

第二设定模块,用于根据第一读数据命令、第二读数据命令、第三读数据命令、第四读数据命令设定预设数量为1;

递减模块,用于将读数据命令的数量按照步进值1递减;

当功能单元中剩余第一读数据命令、第二读数据命令、第三读数据命令时,返回至将读数据命令的数量按照步进值1递减的步骤;

当功能单元中剩余第一读数据命令、第二读数据命令时,返回至将读数据命令的数量按照步进值1递减的步骤;

当功能单元中剩余第一读数据命令时,进入开启复位功能的步骤。

由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

图4为本发明实施例所提供的一种功能单元挂死的恢复设备结构图,如图4所示,一种功能单元挂死的恢复设备包括:

存储器40,用于存储计算机程序;

处理器41,用于执行计算机程序时实现如上述实施例中所提到的功能单元挂死的恢复方法的步骤。

本实施例提供的功能单元挂死的恢复设备可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。

其中,处理器41可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器41可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器41也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(CentralProcessing Unit,CPU);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器41可以集成有图像处理器(Graphics Processing Unit,GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器41还可以包括人工智能(Artificial Intelligence,AI)处理器,该AI处理器用于处理有关机器学习的计算操作。

存储器40可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器40还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器40至少用于存储以下计算机程序,其中,该计算机程序被处理器41加载并执行之后,能够实现前述任意一个实施例公开的功能单元挂死的恢复方法的相关步骤。另外,存储器40所存储的资源还可以包括操作系统和数据等,存储方式可以是短暂存储或者永久存储。其中,操作系统可以包括Windows、Unix、Linux等。数据可以包括但不限于功能单元挂死的恢复方法等。

在一些实施例中,功能单元挂死的恢复设备还可包括有显示屏、输入输出接口、通信接口、电源以及通信总线。

本领域技术人员可以理解,图4中示出的结构并不构成对功能单元挂死的恢复设备的限定,可以包括比图示更多或更少的组件。

本发明实施例提供的功能单元挂死的恢复设备,包括存储器40和处理器41,处理器41在执行存储器40存储的程序时,能够实现功能单元挂死的恢复方法。

最后,本发明还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例中记载的步骤。

可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory),ROM、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上对本发明所提供的一种功能单元挂死的恢复方法、装置、设备及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

技术分类

06120116556567