Method and device for recovering erroneous data

US9280301B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9280301-B2
Application numberUS-201414501368-A
CountryUS
Kind codeB2
Filing dateSep 30, 2014
Priority dateAug 28, 2013
Publication dateMar 8, 2016
Grant dateMar 8, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method for recovering erroneous data is disclosed, the method includes: when data in a storage block that is included in a solid state disk (SSD) is read, performing a first error check on data on a certain page of the storage block to acquire erroneous data on the page; if a first number of pieces of the erroneous data on the page is smaller than or equal to a preset first threshold, performing an error checking and correction (ECC) recovery on the data on the page; and if the first number is greater than the preset first threshold, acquiring data from spare space according to a storage position of the erroneous data on the page and a fixed entry corresponding to the storage block, and replacing the erroneous data on the page with the acquired data, where the fixed entry includes a storage position of each data stored in the spare space.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for recovering erroneous data, comprising: performing a first error check on data on a certain page of a storage block to acquire erroneous data on the page when data in the storage block that is comprised in a solid state disk is read; performing an error checking and correction (ECC) recovery on the data on the page when a first number of pieces of the erroneous data on the page is smaller than or equal to a preset first threshold; and acquiring data from spare space according to a storage position of the erroneous data on the page and a fixed entry corresponding to the storage block when the first number is greater than the preset first threshold; and replacing the erroneous data on the page with the acquired data when the first number is greater than the preset first threshold, wherein the fixed entry comprises a storage position of each data stored in the spare space. 2. The method according to claim 1 , wherein after acquiring the data from the spare space according to the storage position of the erroneous data on the page and the fixed entry corresponding to the storage block, and replacing the erroneous data on the page with the acquired data when the first number is greater than the preset first threshold, the method further comprises: performing a second error check on the data on the page to acquire the erroneous data on the page; performing an ECC recovery on the data on the page when a second number of pieces of erroneous data on the page is smaller than or equal to the preset first threshold; labeling the storage block as a bad block when the second number is greater than the preset first threshold; acquiring data from a preset number of storage blocks according to a page identity of the page when the second number is greater than the preset first threshold; determining whether to perform a redundant array of independent disks (RAID) recovery on the data on the page according to the acquired data; and performing a RAID recovery on the data on the page when a determination is made to perform the RAID recovery on the data on the page according to the acquired data. 3. The method according to claim 1 , wherein after performing the first error check on the data on the certain page of the storage block to acquire the erroneous data on the page, the method further comprises: acquiring a storage position of erroneous data on each page in the storage block; acquiring erroneous data in a same storage position; counting the number of errors in the erroneous data in a same storage position; selecting a first preset number of storage positions with the greatest number of errors; and storing the selected storage positions in a temporary entry corresponding to the storage block. 4. The method according to claim 1 , wherein after performing the first error check on the data on the certain page of the storage block to acquire the erroneous data on the page, the method further comprises: acquiring erroneous data in each storage position on the page; counting the number of errors in the erroneous data in each storage position on the page according to the erroneous data in each storage position on the page; selecting a first preset number of storage positions with the greatest number of errors; and storing the selected storage positions and a page identity of the page in a temporary entry corresponding to the storage block. 5. The method according to claim 1 , wherein after performing the first error check on the data on the certain page of the storage block to acquire the erroneous data on the page, the method further comprises: acquiring a storage position of erroneous data on each page in the storage block; acquiring erroneous data in a same storage position; counting the number of errors in the erroneous data in a same storage position; selecting a second preset number of storage positions from the storage positions of the erroneous data in the storage block according to the number of errors counted; and storing the selected storage positions and a page identity corresponding to the selected storage positions in a temporary entry corresponding to the storage block. 6. The method according to claim 1 , wherein after performing the ECC recovery on the data on the page when the second number of pieces of the erroneous data on the page is smaller than or equal to the preset first threshold, the method further comprises: acquiring an idle storage block in the solid state disk; and moving the data in the storage block to the idle storage block according to a fixed entry corresponding to the idle storage block. 7. The method according to claim 6 , further comprising replacing the fixed entry corresponding to the storage block with the temporary entry corresponding to the storage block. 8. A device for recovering erroneous data, comprising: a first acquiring module configured to perform a first error check on data on a certain page of a storage block to acquire erroneous data on the page when the data in the storage block that is comprised in a solid state disk is read; a first recovering module configured to perform an error checking and correction (ECC) recovery on the data on the page when a first number of pieces of the erroneous data on the page is smaller than or equal to a preset first threshold; and a first replacing module configured to acquire data from spare space according to a storage position of the erroneous data on the page and a fixed entry corresponding to the storage block when the first number is greater than the preset first threshold, and replace the erroneous data on the page with the acquired data when the first number is greater than the preset first threshold, wherein the fixed entry comprises a storage position of each data stored in the spare space. 9. The device according to claim 8 , further comprising: a second acquiring module configured to perform a second error check on the data on the page to acquire the erroneous data on the page; a second recovering module configured to perform the ECC recovery on the data on the page when a second number of pieces of the erroneous data on the page is smaller than or equal to the preset first threshold; a labeling module configured to label the storage block as bad when the second number is greater than the preset first threshold, and acquire data from a preset number of storage blocks according to a page identity of the page when the second number is greater than the preset first threshold; and a third recovering module configured to determine whether to perform a redundant array of independent disks (RAID) recovery on the data on the page according to the acquired data, and perform a RAID recovery on the data on the page when a determination is made to perform the RAID recovery on the data on the page according to the acquired data. 10. The device according to claim 8 , further comprising: a third acquiring module configured to acquire a storage position of erroneous data on each page in the storage block; a first counting module configured to acquire erroneous data in a same storage position, and count the number of errors in the erroneous data in a same storage position; and a first storing module configured to select a first preset number of storage positions with the greatest number of errors, and store the selected storage positions in a temporary entry corresponding to the storage block. 11. The device according to claim 8 , further comprising: a fourth acquiring module configured to acquire erroneous data in each storage position on the page; a second counting module configured to count the number of errors in the erroneous data in each storage

Assignees

Inventors

Classifications

  • G06F11/108Primary

    Parity data distribution in semiconductor storages, e.g. in SSD · CPC title

  • Migration mechanisms · CPC title

  • in relation to data integrity, e.g. data losses, bit errors · CPC title

  • G06F3/0689Primary

    Disk arrays, e.g. RAID, JBOD · CPC title

  • using arrangements adapted for a specific error detection or correction feature · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9280301B2 cover?
A method for recovering erroneous data is disclosed, the method includes: when data in a storage block that is included in a solid state disk (SSD) is read, performing a first error check on data on a certain page of the storage block to acquire erroneous data on the page; if a first number of pieces of the erroneous data on the page is smaller than or equal to a preset first threshold, perform…
Who is the assignee on this patent?
Huawei Tech Co Ltd
What technology area does this patent fall under?
Primary CPC classification G06F11/108. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 08 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).