专利名称::数据错误处理方法、数据错误检查和纠正装置及系统的制作方法
技术领域:
:本发明涉及存储
技术领域:
,尤其涉及一种数据错误处理方法、数据错误检查和纠正装置及系统。
背景技术:
:错误检查和纠正(ErrorCheckingandCorrecting,ECC)是一种可以判断并纠正数据错误的算法,它能够纠正的数据错误比特位数是固定的。当数据块中出现错误比特的位数超过ECC模块能纠错的比特位数时,ECC就不能纠正数据的错误,从而会造成用户数据块数据的丢失,且无法挽回。现有技术中,ECC模块校验出数据位错误时,如果出错的比特数小于ECC模块能纠错的最大比特位数目,则ECC模块自动修复相应的错误比特位;如果出错的比特数大于ECC模块能纠错的最大比特位数目,则把存贮出现错误的数据的物理块标为坏块。在实现本发明的过程中,发明人发现上述技术方案至少存在如下缺陷当发生ECC校验错误时,出错的比特数已经超过了ECC模块能纠错的最大比特位数目,通常该数据块的数据已经不可恢复了,从而导致了用户数据的丢失。而且当出错的比特数超过ECC模块能纠错的最大比特位数目时,还可能出现漏报的情况,发生漏报时,不仅不能正确纠错,还可能将正确的数据改错。
发明内容本发明实施例提供了一种数据错误处理方法、数据错误检查和纠正装置及系统。本发明实施例的目的是通过以下技术方案实现的—种数据错误处理方法,包括获取数据块中出现错误的比特数;判断所述出现错误的比特数是否大于或等于预置的阈值,所述预置的阈值小于数据错误检查和纠正装置能纠错的最大比特位数目;如果所述出现错误的比特数大于或等于预置的阈值时,将存贮所述数据块的物理块标识为坏块。—种数据错误检查和纠正装置,包括获取单元,用于获取数据块中出现错误的比特数;判断单元,用于判断所述获取单元获取的所述出现错误的比特数是否大于或等于预置的阈值,所述预置的阈值小于数据错误检查和纠正装置能纠错的最大比特位数目;处理单元,用于在所述判断单元判断所述出现错误的比特数大于或等于所述预置的阈值时,将存贮所述数据块的物理块标识为坏块。—种数据传输系统,包括数据错误检查和纠正装置,用于获取数据块中出现错误的比特数;判断所述出现错误的比特数是否大于或等于预置的阈值,所述预置的阈值小于数据错误检查和纠正装置能纠错的最大比特位数目;如果所述出现错误的比特数大于或等于预置的阈值时,将存贮所述数据块的物理块标识为坏块,告知所述控制模块不再往所述物理块中写入数据;控制模块,用于根据所述数据错误检查和纠正装置的告知不再往所述物理块中写入数据。从本发明实施例提供的以上技术方案可以看出,由于在判断出现错误的比特数大于或等于预置的阈值时,将存贮所述数据块的物理块标识为坏块,上述预置的阈值是小于数据错误检查和纠正装置能纠错的最大比特位数目的,因而可以有效避免出现不可纠错的错误发生,从而能够避免用户数据的丢失及错误修改用户数据。为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例一阐述的一种数据错误处理方法的流程图;图2是本发明实施例二阐述的一种数据错误处理方法的流程图;图3是本发明实施例阐述的一种数据错误检查和纠正装置的组成示意图;图4是本发明实施例阐述的一种数据传输系统的组成框图。具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例提供了一种数据错误处理方法、数据错误检查和纠正装置及系统,通过该方法,能够有效避免出现不可纠错的错误发生,从而能够避免用户数据的丢失及错误修改用户数据。为了防止在出现错误的比特数超过ECC模块能纠错的最大比特位数目时,出现不可恢复的错误数据产生,导致用户数据的丢失,本发明实施例提出了一种数据错误处理方法,在出现不可恢复的错误数据产生之前对出现错误的比特数进行预判断,能够有效防止用户数据的丢失。下面首先阐述一种数据错误处理方法。实施例一本实施例阐述一种数据错误处理方法,在采用ECC进行纠错时根据数据块中出现错误的比特数进行处理的方法,下面结合附图进行详细说明。参见图l,本实施例的方法可以包括以下步骤步骤101:获取数据块中出现错误的比特数;在步骤101之前还可以包括一个步骤判断上述数据块是否发送错误,如果发生错误,则获取数据块中出现错误的比特数,如果没有发生错误,则按照正常的数据处理方法对该数据块进行后续处理。步骤102:判断所述出现错误的比特数是否大于或等于预置的阈值,所述预置的阈值小于数据错误检查和纠正装置能纠错的最大比特位数目;上述预置的阈值是预先设定的,它的值可以选择为小于ECC模块能纠错的最大比特位数目。例如,ECC模块可以纠错的最大比特位数目为8比特,可以预先设定上述阈值为7比特或6比特等,根据对数据正确率的实际需求来设置阈值的大小,如果对数据的正确率要求较高,可以将上述阈值设置的稍微偏低一点,如果没有对数据的正确率有特殊要求,通常情况下将上述阈值设置为比ECC模块能纠错的最大比特位数目少一的值。只要不是外力作用下的物理损坏,发生数据位错误的比特数是逐渐增加的,也就是说同一位置刚开始出现错误都是按照1比特、2比特、3比特...逐渐增加的,一旦检测到出现错误的比特数等于预先设置的阈值时,就将存贮该数据块的物理块标识为坏块,这样就不会再往该数据块中写入数据,就不会出现ECC模块能纠错的最大比特位数目以上的出现错误的比特数,这样就能够最大限度的保证用户数据不会丢失。如果出现错误的比特数是逐渐增加的,那么上述判断条件只需要当出现错误的比特数等于预置的阈值时,就将存贮所述数据块的物理块标识为坏块。对于一些额外情况,例如突然产生很多比特位的错误时,就已经大于上述预置的阈值了,此时也需要立即将存贮所述数据块的物理块标识为坏块,否则,继续往该数据块中写入数据,将可以导致大量的数据出现错误或丢失。步骤103:将存贮所述数据块的物理块标识为坏块。在步骤102中如果判断所述出现错误的比特数大于或等于预置的阈值时,将存贮所述数据块的物理块标识为坏块。如果步骤102中判断出现错误的比特数小于预置的阈值时,可以采用数据错误检查和纠正装置对所述数据块进行纠错。此时就可以正常使用数据错误检查和纠正装置对数据块进行纠错了。本实施例由于在判断出现错误的比特数大于或等于预置的阈值时,将存贮所述数据块的物理块标识为坏块,上述预置的阈值是小于数据错误检查和纠正装置能纠错的最大比特位数目的,因而可以有效避免出现不可纠错的错误发生,从而能够避免用户数据的丢失及错误修改用户数据。实施例一阐述了一种数据错误处理方法,实施例二阐述一种先判断数据块是否出错,在出错时采用相应的处理的数据错误处理方法。实施例二本实施例阐述一种数据错误处理方法,通过该方法,可以能够有效避免出现不可纠错的错误发生,从而能够避免用户数据的丢失及错误修改用户数据。下面结合附图进行详细说明,参见图2,本实施例的方法可以包括以下步骤步骤201:判断数据块是否出错,在判断数据块出错时,执行步骤202,在判断数据块没有出错时,执行步骤203;在ECC算法实现过程中,判断数据块是否出现错误可以是采用以下方法来实现首先是在原来的数据位上外加校验位,校验位的长度与ECC能纠错的最大比特位数目成正比;然后把数据位同校验位一起进行传输或存储,当用户读取该数据时根据数据5位重新生成一组校验位;最后通过比对两次校验位是否一致来判断数据在存储或传输过程中是否发生了错误。步骤202:确定出现错误的比特数;并执行步骤204;确定出现错误的比特数可以采用以下方法来实现如果两组校验位不相同,则表示数据块出现了错误,此时这些数据块则会被解码,以确定数据块中的哪些位是不正确的,就可以确定出现错误的比特数,然后执行步骤204中的判断。步骤202是实时检测数据块出错的比特数的,如果出现错误的比特数大于或等于预置的阈值时,则执行步骤205;如果出现错误的比特数小于预置的阈值时,则执行步骤206。步骤203:存贮所述数据块;在所述数据块没有发生错误时,可以是存贮所述数据块或传输所述数据块到目的地。步骤204:判断所述出现错误的比特数是否大于或等于预置的阈值;如果所述出现错误的比特数大于或等于预置的阈值时,执行步骤205,如果所述出现错误的比特数小于预置的阈值时,执行步骤206;上述预置的阈值小于数据错误检查和纠正装置能纠错的最大比特位数目。例如,ECC模块可以纠错的最大比特位数目为8比特,可以预先设定上述阈值为7比特或6比特等,根据对数据正确率的实际需求来设置阈值的大小,如果对数据的正确率要求较高,可以将上述阈值设置的稍微偏低一点,如果没有对数据的正确率有特殊要求,通常情况下将上述阈值设置为比ECC模块可以纠错的最大比特位数目少一的值。在ECC算法中,如果出现错误的比特数超过该模块能纠错的最大比特位数目时,就会出现漏报的情况,发生漏报时,不仅不能正确报错,还可能将正确的数据改错,漏报概率如下表所示<table>tableseeoriginaldocumentpage6</column></row><table>因此,为了防止出现漏报,需要在出现错误的比特数还没有达到最大纠错能力时,就进行相应的处理,例如将存贮所述数据块的物理块标识为坏块,可以有效避免错误修改用户数据。步骤205:将存贮所述数据块的物理块标识为坏块;如果一个存贮数据块的物理块被标识为坏块,那么就不会再往该物理块中写入数据,在出现不可纠错的错误之前就提前进行处理,可以避免用户数据的丢失或漏报。步骤206:采用数据错误检查和纠正装置对所述数据块进行纠错。当出现错误的比特数在ECC模块可以纠错的能力范围之内时,可以正常使用ECC模块对上述数据块进行纠错。本实施例通过在判断数据块出现错误时,进一步判断出现错误的比特数是否大于或等于预置的阈值,当出现错误的比特数大于或等于预置的阈值时,将存贮所述数据块的物理块标识为坏块,能够有效防止漏报,避免出现不可纠错的错误发生。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。以上提供了一种错误处理的方法,本发明实施例还提供一种数据错误检查和纠正装置和一种数据传输系统。下面首先阐述一种数据错误检查和纠正装置。参见图3,一种数据错误检查和纠正装置,可以包括以下单元获取单元301,用于获取数据块中出现错误的比特数;上述获取单元301可以是通过解码数据块后,采用算法计算分析得到数据块中出现错误的比特数。判断单元302,用于判断所述获取单元301获取的所述出现错误的比特数是否大于或等于预置的阈值,所述预置的阈值小于数据错误检查和纠正装置能纠错的最大比特位数目;上述判断单元302可以是采用算法来实现。处理单元303,用于在所述判断单元302判断所述出现错误的比特数大于或等于预置的阈值时,将存贮所述数据块的物理块标识为坏块。上述处理单元303可以是和上述获取单元301以及判断单元302处于同一个设备中,也可以是处于不同的设备中,当处于不同设备中时,可以是告知具有将物理块标识为坏块的设备执行所述将存贮所述数据块的物理块标识为坏块的步骤。其中,上述数据错误检查和纠正装置还包括错误判断单元,用于判断所述数据块是否发生错误;所述获取单元301用于在所述错误判断单元判断所述数据块发生错误时,获取数据块中出现错误的比特数。其中,上述数据错误检查和纠正装置还包括纠错单元,用于在所述判断单元判断所述获取单元获取的所述出现错误的比特数小于预置的阈值时,对所述数据块进行纠错。上述数据错误检查和纠正装置可以用于实现实施例一和实施例二阐述的数据错误处理方法,但不限于实现该方法。为了更好的说明上述数据错误检查和纠正装置是如何实现上述错误方法的,下面结合实施例一来说明。当数据错误检查和纠正装置中的获取单元获取到数据块中出现错误的比特数后,判断单元将出现错误的比特数与预置的阈值进行比较,如果获取单元获取到的出现错误的比特数大于或等于预置的阈值时,处理单元将存贮所述数据块的物理块标识为坏块。通过上述数据错误检查和纠正装置可以避免用户数据的丢失。上面阐述了一种数据错误检查和纠正装置,下面阐述一种数据传输系统。参见图4,一种数据传输系统,包括数据错误检查和纠正装置401,用于获取数据块中出现错误的比特数;判断所述出现错误的比特数是否大于或等于预置的阈值,所述预置的阈值小于数据错误检查和纠正装置401能纠错的最大比特位数目;如果所述出现错误的比特数大于或等于预置的阈值时,将存贮所述数据块的物理块标识为坏块,告知控制模块不再往所述物理块中写入数据;控制模块402,用于根据所述数据错误检查和纠正装置的告知不再往所述物理块中写入数据。其中,上述数据错误检查和纠正装置401还用于判断所述数据块是否发生错误。其中,上述数据错误检查和纠正装置401还用于在所述出现错误的比特数小于预置的阈值时,对所述数据块进行纠错。本发明实施例由于在判断出现错误的比特数大于或等于预置的阈值时,将存贮所述数据块的物理块标识为坏块,上述预置的阈值是小于数据错误检查和纠正装置能纠错的最大比特位数目的,因而可以有效避免出现不可纠错的错误发生,从而能够避免用户数据的丢失及错误修改用户数据。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括如下步骤获取数据块中出现错误的比特数;判断所述出现错误的比特数是否大于或等于预置的阈值,所述预置的阈值小于数据错误检查和纠正装置能纠错的最大比特位数目;如果所述出现错误的比特数大于或等于预置的阈值时,将存贮所述数据块的物理块标识为坏块。上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上对本发明实施例所提供的一种数据错误处理方法、数据错误检查和纠正装置及系统进行了详细介绍,以上实施例的说明只是用于帮助理解本发明的方法及其思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。8权利要求一种数据错误处理方法,其特征在于,包括获取数据块中出现错误的比特数;判断所述出现错误的比特数是否大于或等于预置的阈值,所述预置的阈值小于数据错误检查和纠正装置能纠错的最大比特位数目;如果所述出现错误的比特数大于或等于预置的阈值时,将存贮所述数据块的物理块标识为坏块。2.根据权利要求1所述的数据错误处理方法,其特征在于,所述获取数据块中出现错误的比特数之前还包括判断所述数据块是否发生错误;如果所述数据块发生错误,执行所述获取数据块中出现错误的比特数的步骤。3.根据权利要求1或2所述的数据错误处理方法,其特征在于,如果所述出现错误的比特数小于所述预置的阈值时,采用数据错误检查和纠正装置对所述数据块进行纠错。4.一种数据错误检查和纠正装置,其特征在于,包括获取单元,用于获取数据块中出现错误的比特数;判断单元,用于判断所述获取单元获取的所述出现错误的比特数是否大于或等于预置的阈值,所述预置的阈值小于数据错误检查和纠正装置能纠错的最大比特位数目;处理单元,用于在所述判断单元判断所述出现错误的比特数大于或等于所述预置的阈值时,将存贮所述数据块的物理块标识为坏块。5.根据权利要求4所述的数据错误检查和纠正装置,其特征在于,还包括错误判断单元,用于判断所述数据块是否发生错误;所述获取单元用于在所述错误判断单元判断所述数据块发生错误时,获取数据块中出现错误的比特数。6.根据权利要求4或5所述的数据错误检查和纠正装置,其特征在于,还包括纠错单元,用于在所述判断单元判断所述获取单元获取的所述出现错误的比特数小于预置的阈值时,对所述数据块进行纠错。7.—种数据传输系统,其特征在于,包括数据错误检查和纠正装置,用于获取数据块中出现错误的比特数;判断所述出现错误的比特数是否大于或等于预置的阈值,所述预置的阈值小于数据错误检查和纠正装置能纠错的最大比特位数目;如果所述出现错误的比特数大于或等于预置的阈值时,将存贮所述数据块的物理块标识为坏块,告知所述控制模块不再往所述物理块中写入数据;控制模块,用于根据所述数据错误检查和纠正装置的告知不再往所述物理块中写入数据。8.根据权利要求7所述的数据传输系统,其特征在于,所述数据错误检查和纠正装置还用于判断所述数据块是否发生错误。9.根据权利要求7或8所述的数据传输系统,其特征在于,所述数据错误检查和纠正装置还用于在所述出现错误的比特数小于所述预置的阈值时,对所述数据块进行纠错。全文摘要本发明实施例公开了一种数据错误处理方法、数据错误检查和纠正装置及系统,一种数据错误处理方法,包括获取数据块中出现错误的比特数;判断所述出现错误的比特数是否大于或等于预置的阈值,所述预置的阈值小于数据错误检查和纠正装置能纠错的最大比特位数目;如果所述出现错误的比特数大于或等于预置的阈值时,将存贮所述数据块的物理块标识为坏块。本发明实施例由于在判断出现错误的比特数大于或等于预置的阈值时,将存贮所述数据块的物理块标识为坏块,上述预置的阈值是小于数据错误检查和纠正装置能纠错的最大比特位数目的,因而可以有效避免出现不可纠错的错误发生,从而能够避免用户数据的丢失及错误修改用户数据。文档编号G06F11/10GK101739306SQ200810171869公开日2010年6月16日申请日期2008年11月12日优先权日2008年11月12日发明者徐长远,杨继涛申请人:成都市华为赛门铁克科技有限公司