一种固态硬盘数据读取错误的处理方法及相关装置与流程

文档序号:17287697发布日期:2019-04-03 03:42阅读:1147来源:国知局
一种固态硬盘数据读取错误的处理方法及相关装置与流程

本申请涉及计算机技术领域,特别涉及一种固态硬盘数据读取错误的处理方法、存储设备、装置以及计算机可读存储介质。



背景技术:

随着信息技术的不断发展,出现了各种各样的存储技术。nand就是其中的一种存储技术,成本较低,常用于大规模数据存储。但是nand的存储颗粒由于电气特性,会出现不同程度的存储数据错误问题。具体的,当pe次数越多发生读取错误的概率就高,当读的次数越高时发生错误的概率越高,此外数据存在固定位置的时间越长时发生数据读错误的概率也会越高。

现有技术中,当出现固态硬盘的读取错误时,一般会获取该错误的发生次数,根据发生次数的多少判断是否进行应对措施,并且所进行的应对措施一般就是数据搬移操作,即将存储于nand的数据取出来重新存储到新的位置,也就是更新老数据的存储位置,可以减少数据的错误率。但是数据搬移操作需要的硬件性能较大,当在存储设备中只要数据块需要进行相关的修复处理时,就只能进行数据搬移操作,消耗了大量的性能,不利于机器进行,并且数据搬移操作当数据量较大时,会消耗更多的时间,修复的效率不高。

因此,如何更高效的处理固态硬盘的数据读取错误是本领域技术人员关注的重点问题。



技术实现要素:

本申请的目的是提供一种固态硬盘数据读取错误的处理方法、存储设备、装置以及计算机可读存储介质,通过在出现数据读取错误时,将上一次读取错误的pe次数与当前发生的读取错误的pe次数的差值进行判断,根据判断结果确定是执行参考电压仿真还是数据搬移操作,也就是通过pe次数作为判断错误密度的依据,以提高判断的准确度,在此基础上避免了只能执行数据搬移操作而出现的性能问题,降低了错误处理耗时,提高了修复效率。

为解决上述技术问题,本申请提供一种固态硬盘数据读取错误的处理方法,包括:

当固态硬盘中的数据块发生读取错误时,判断当前读取错误是否为首次发生;

当所述当前读取错误不为首次发生时,则判断所述数据块的上一次读取错误的pe次数与所述当前读取错误的pe次数的差值是否大于预设pe次数;

当所述差值大于所述预设pe次数时,对所述数据块执行参考电压仿真操作,以便对所述数据读取错误进行处理;

当所述差值不大于所述预设pe次数时,对所述数据块执行数据搬移操作,以便对所述数据读取错误进行处理。

可选的,还包括:

当所述当前读取错误为首次发生时,将所述当前读取错误的信息记录在数据块信息中。

可选的,当固态硬盘中的数据块发生读取错误时,判断所述当前读取错误是否为首次发生,包括:

当固态硬盘中的数据块发生读取错误时,获取所述数据块的数据块信息;

根据所述数据块信息判断所述当前读取错误是否为首次发生。

可选的,当所述当前读取错误不为首次发生时,则判断所述数据块的上一次读取错误的pe次数与所述当前读取错误的pe次数的差值是否大于预设pe次数,包括:

当所述读取错误不为首次发生时,从所述数据块的数据块信息中获取所述上一次读取错误的pe次数和所述当前读取错误的pe次数;

将所述当前读取错误的pe次数减去所述上一次读取错误的pe次数得到pe次数差值;

判断所述pe次数差值是否大于所述预设pe次数。

本申请还提供一种存储设备,包括:

错误判断模块,用于当固态硬盘中的数据块发生读取错误时,判断当前读取错误是否为首次发生;

pe次数判断模块,用于当所述当前读取错误不为首次发生时,则判断所述数据块的上一次读取错误的pe次数与所述当前读取错误的pe次数的差值是否大于预设pe次数;

参考电压仿真模块,用于当所述差值大于所述预设pe次数时,对所述数据块执行参考电压仿真操作,以便对所述数据读取错误进行处理;

数据搬移模块,用于当所述差值不大于所述预设pe次数时,对所述数据块执行数据搬移操作,以便对所述数据读取错误进行处理。

可选的,还包括:

错误信息记录模块,用于当所述当前读取错误为首次发生时,将所述当前读取错误的信息记录在数据块信息中。

可选的,所述错误判断模块,包括:

数据块信息获取单元,用于当固态硬盘中的数据块发生读取错误时,获取所述数据块的数据块信息;

首次发生判断单元,用于根据所述数据块信息判断所述当前读取错误是否为首次发生。

可选的,所述pe次数判断模块,包括:

pe次数获取单元,用于当所述读取错误不为首次发生时,从所述数据块的数据块信息中获取所述上一次读取错误的pe次数和所述当前读取错误的pe次数;

差值计算单元,用于将所述当前读取错误的pe次数减去所述上一次读取错误的pe次数得到pe次数差值;

差值判断单元,用于判断所述pe次数差值是否大于所述预设pe次数。

本申请还提供一种装置,包括:

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

处理器,用于执行所述计算机程序时实现如上所述的处理方法的步骤。

本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的处理方法的步骤。

本申请所提供的一种固态硬盘数据读取错误的处理方法,包括:当固态硬盘中的数据块发生读取错误时,判断当前读取错误是否为首次发生;当所述当前读取错误不为首次发生时,则判断所述数据块的上一次读取错误的pe次数与所述当前读取错误的pe次数的差值是否大于预设pe次数;当所述差值大于所述预设pe次数时,对所述数据块执行参考电压仿真操作,以便对所述数据读取错误进行处理;当所述差值不大于所述预设pe次数时,对所述数据块执行数据搬移操作,以便对所述数据读取错误进行处理。

通过当数据块再次发生错误时,根据该数据块的上一次错误的pe次数和当前错误的pe次数的差值是否大于预设pe次数,也就是根据pe次数判断错误发生的密度,当差值越小时则说明错误发生密度越大,当差值越大时则说明错误发生密度越小,所以当大于预设pe次数时进行参考电压仿真,简单修复数据块中的错误数据,当小于预设pe次数时才进行数据搬移操作,避免了只存在一种错误数据修复操作,当pe次数不达到数据搬移标准时,就可以进行简单的数据修复操作,降低了数据错误处理过程的性能要求,并且降低了时间消耗,提高了对错误数据进行处理的效率。

本申请还提供一种存储设备、装置以及计算机可读存储介质,具有以上有益效果,在此不做赘述。

附图说明

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

图1为本申请实施例所提供的一种固态硬盘数据读取错误的处理方法的流程图;

图2为本申请实施例所提供的一种存储设备的结构示意图。

具体实施方式

本申请的核心是提供一种固态硬盘数据读取错误的处理方法、存储设备、装置以及计算机可读存储介质,通过在出现数据读取错误时,将上一次读取错误的pe次数与当前发生的读取错误的pe次数的差值进行判断,根据判断结果确定是执行参考电压仿真还是数据搬移操作,也就是通过pe次数作为判断错误密度的依据,以提高判断的准确度,在此基础上避免了只能执行数据搬移操作而出现的性能问题,降低了错误处理耗时,提高了修复效率。

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

现有技术,当出现固态硬盘的读取错误时,一般会获取该错误的发生次数,根据发生次数的多少判断是否进行应对措施,并且所进行的应对措施一般就是数据搬移操作,即将存储于nand的数据取出来重新存储到新的位置,也就是更新老数据的存储位置,可以减少数据的错误率。但是数据搬移操作需要的硬件性能较大,当在存储设备中只要数据块需要进行相关的修复处理时,就只能进行数据搬移操作,消耗了大量的性能,不利于机器进行,并且数据搬移操作当数据量较大时,会消耗更多的时间,修复的效率不高。

因此,本申请提供一种固态硬盘数据读取错误的处理方法,通过当数据块再次发生错误时,根据该数据块的上一次错误的pe次数和当前错误的pe次数的差值是否大于预设pe次数,也就是根据pe次数判断错误发生的密度,当差值越小时则说明错误发生密度越大,当差值越大时则说明错误发生密度越小,所以当大于预设pe次数时进行参考电压仿真,简单修复数据块中的错误数据,当小于预设pe次数时才进行数据搬移操作,避免了只存在一种错误数据修复操作,当pe次数不达到数据搬移标准时,就可以进行简单的数据修复操作,降低了数据错误处理过程的性能要求,并且降低了时间消耗,提高了对错误数据进行处理的效率。

请参考图1,图1为本申请实施例所提供的一种固态硬盘数据读取错误的处理方法的流程图。

本实施例中,该方法可以包括:

s101,当固态硬盘中的数据块发生读取错误时,判断当前读取错误是否为首次发生;

本步骤旨在当固态硬盘中的数据块发生读取错误时,判断当前读取错误是否为首次发生。由于本实施例的主要目的是通过pe次数判断读取错误发生的密度,因此,根据上一次的信息和当前的信息才可以获取到读取错误发生的密度。

具体的,本实施例中可以根据获取的数据块信息,也就是该数据块的元数据信息,根据该信息判断当前读取错误是否为首次发生。

可选的,本步骤还可以包括:

当当前读取错误为首次发生时,将当前读取错误的信息记录在数据块信息。

本可选方案主要在于当该读取错误是首次发生时,就将该当前读取错误的信息记录在数据块信息中,以便后续发生读取错误时可以读取数据块信息进行判断。其中,该当前读取错误的信息包括该读取错误发生时的时间、pe次数以及错误类型等信息。

可选的,本步骤可以包括:

步骤1,当固态硬盘中的数据块发生读取错误时,获取数据块的数据块信息;

步骤2,根据数据块信息判断当前读取错误是否为首次发生。

本可选方法主要是说明一种可选的数据块的判断方法,也就是通过数据块的数据块信息进行判断,当发生读取错误时,获取数据块的数据块信息,根据数据块信息中是否记录有读取错误信息,从而确定该当前读取错误是否为首次发生。或者是通过数据块信息中记录的有关读取错误的pe次数或者是时间判断该当前读取错误是否为首次发生。

s102,当当前读取错误不为首次发生时,则判断数据块的上一次读取错误的pe次数与当前读取错误的pe次数的差值是否大于预设pe次数;

在s101的基础上,本步骤旨在当前数据错误不为首次发生时,判断上一次读取错误和该当前读取错误的pe次数的差值是否大于预设pe次数。

其中,pe次数为数据块的擦写次数。可见,本步骤就是在计算两次读取错误发生之间的pe次数,相比较现有技术中一般是计算两次读取错误之间的时间,将pe次数作为密度判断的数据,可以更加符合固态硬盘的使用规律。即一般情况下固态硬盘的使用损坏率与该固态硬盘的pe次数正相关,而使用损坏率与固态硬盘的时间的相关程度较低,因此通过本步骤可以判断出该数据块的发生读取错误的密度是否达到标准。

当两次pe次数的差值大于预设pe次数时,则表示读取错误发生的密度较低,可能不需要使用数据搬移操作对数据读取错误进行数据修复。当两次pe次数的差值不大于预设pe次数时,则可能需要对该数据块进行数据搬移操作。

可选的,本步骤可以包括:

步骤一,当当前读取错误不为首次发生时,从数据块的数据块信息中获取上一次读取错误的pe次数和读取错误的pe次数;

步骤二,将当前读取错误的pe次数减去上一次读取错误的pe次数得到pe次数差值;

步骤三,判断pe次数差值是否大于预设pe次数。

本可选方案主要是说明如何通过pe次数的差值进行判断。具体的,首先从数据块信息中获取到上一次读取错误和该当前读取错误的pe次数数据,然后将当前读取错误的pe次数减去上一次的读取错误的pe次数。

s103,当差值大于预设pe次数时,对数据块执行参考电压仿真操作,以便对数据读取错误进行处理;

在s102的基础上,本步骤旨在当该pe次数的差值大于预设pe次数时,对该数据块进行参考电压仿真操作,以便对本次出现的数据读取错误进行处理。

其中,参考电压仿真操作是一种快速、低消耗的读取错误修复操作,具体是调整改变对nand存储介质进行数据读取的电压,提升数据读取的能力,可以降低数据读取的错误率。

s104,当差值不大于预设pe次数时,对数据块执行数据搬移操作,以便对数据读取错误进行处理。

在步骤s102的基础上,本步骤旨在当该pe次数的差值不大于该预设pe次数时,也就是该差值小于等于该预设pe次数,说明发生数据读取错误的密度较大,发生的错误率较高,应该进行更加有效的错误修复手段,也就是数据搬移操作。可见,通过s102与s104可以使得进行数据搬移操作更加适合数据块的错误发生情况,而不是在只要错误率达到标准就进行耗时耗费性能的数据搬移操作,而是当错误率在中间范围内使用更加简单的修复操作进行处理,降低总体的读取错误修复的时长,提高了读取错误修复的效率。

需要说明的是,由于本实施例中通过pe次数进行错误率的判断已经提高了错误判断的准确率,因此本实施例中的预设pe次数的大小可以根据实际情况设定,也可以根据固态硬盘的属性进行设定,还可以根据技术人员的经验进行设定,在此不做具体限定。

综上,本实施例通过在出现数据读取错误时,将上一次读取错误的pe次数与当前发生的读取错误的pe次数的差值进行判断,根据判断结果确定是执行参考电压仿真还是数据搬移操作,也就是通过pe次数作为判断错误密度的依据,以提高判断的准确度,在此基础上避免了只能执行数据搬移操作而出现的性能问题,降低了错误处理耗时,提高了修复效率。

基于上一实施例,本实施例提供一种更加具体的固态硬盘数据读取错误的处理方法。

本实施例通过定时巡检,来判断存储于系统的数据的好坏,并通过其好坏状态的判断来决定是否执行读参考电压仿真操作,还是强制数据搬移操作。其中,读参考电压的仿真可以有效减小读数据的错误概率;强制数据搬移操作则将存储与nand的数据读取出来重新存储到新的位置,相当于将目标数据从旧数据块换为新数据块,更能减小数据的错误率,但是该种操作系统开销更大。

本方法在固定时间如x个小时内,读取所有数据块内的固定数据页,如果发生数据读取错误,则表明该块数据已发生错误。发生错误后读取存储与系统内的该数据块的信息,该信息包括pe次数,是否发生过该种类型的错误,发生这种错误的时候获取pe次数的具体信息,系统会根据这些信息来选择是执行参考电压仿真操作,还是数据搬移操作。

在本实施例,该方法可以如下:

假设系统有n个数据块,而系统巡检需要在m秒时间内巡检一次,则每个数据块之间的巡检间隔时间为m/n秒;由于每次巡检操作所用的时间相对于巡检的间隔时间,可以忽略不计,所以可以认为巡检一次的时间依然为m秒。这样可以将n次巡检平均分配到m秒的周期内,尽量减小多次巡检扎堆引起的性能下降。

因此,其中的巡检过程如下:

步骤1,读取该数据块的对应数据页;如果没有错误,直接执行步骤5;如果发生错误,则进入步骤2;

步骤2,读取数据块信息判断前面的巡检过程中是否发生过该种错误,如果没有发生过进入步骤3;如果发生过并且上次发生时的pe次数和当前的pe次数差值大于阈值k则进入步骤3;如果发生过而且上次发生时的pe次数和当前的pe次数差值小于阈值k则进入步骤4;

步骤3,触发nand读参考电压仿真,并执行步骤5;

步骤4,触发nand强制数据搬移,并执行步骤5;

步骤5,启动下一个数据块的触发计时器,如果block_num<max,则block_num++;如果block_num=max,则block_num=0。

本实施例通过将数据巡检过程分散到一个较长的周期内,能够降低系统数据的错误率的同时有效减小巡检引起的性能下降,而且能够通过读参考电压仿真和强制数据搬移两种操作提高系统的健壮性,从而能在提高系统性能的基础上,还能提高系统的健壮性,进而提高产品的竞争力。

下面对本申请实施例提供的一种存储设备进行介绍,下文描述的存储设备与上文描述的固态硬盘数据读取错误的处理方法可相互对应参照。

请参考图2,图2为本申请实施例所提供的一种存储设备的结构示意图。

本实施例中,该存储设备可以包括:

错误判断模块100,用于当固态硬盘中的数据块发生读取错误时,判断读取错误是否为首次发生;

pe次数判断模块200,用于当读取错误不为首次发生时,则判断数据块的上一次读取错误的pe次数与读取错误的pe次数的差值是否大于预设pe次数;

参考电压仿真模块300,用于当差值大于预设pe次数时,对数据块执行参考电压仿真操作,以便对数据读取错误进行处理;

数据搬移模块400,用于当差值不大于预设pe次数时,对数据块执行数据搬移操作,以便对数据读取错误进行处理。

可选的,该存储设备,还可以包括:

错误信息记录模块,用于当读取错误为首次发生时,将读取错误的信息记录在数据块信息。

可选的,该错误判断模块100,包括:

数据块信息获取单元,用于当固态硬盘中的数据块发生读取错误时,获取数据块的数据块信息;

首次发生判断单元,用于根据数据块信息判断读取错误是否为首次发生。

可选的,该pe次数判断模块200,可以包括:

pe次数获取单元,用于当读取错误不为首次发生时,从数据块的数据块信息中获取上一次读取错误的pe次数和读取错误的pe次数;

差值计算单元,用于将读取错误的pe次数减去上一次读取错误的pe次数得到pe次数差值;

差值判断单元,用于判断pe次数差值是否大于预设pe次数。

本申请实施例还提供一种装置,包括:

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

处理器,用于执行所述计算机程序时实现如以上实施例所述的处理方法的步骤。

本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上实施例所述的处理方法的步骤。

该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的一种固态硬盘数据读取错误的处理方法、存储设备、装置以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1