Systems and methods for detecting and correcting memory corruptions in software
US-2019102251-A1 · Apr 4, 2019 · US
US10545830B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10545830-B2 |
| Application number | US-201715850915-A |
| Country | US |
| Kind code | B2 |
| Filing date | Dec 21, 2017 |
| Priority date | Feb 6, 2017 |
| Publication date | Jan 28, 2020 |
| Grant date | Jan 28, 2020 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A method of operating a storage device includes receiving a first logical address from a host, determining whether first metadata stored in a volatile memory of the storage device and associated with the first logical address is corrupted, processing the first metadata as an uncorrectable error when the first metadata is determined to be corrupted, providing an error message to the host indicating that an operation cannot be performed on data associated with the first logical address when the first metadata is processed as the uncorrectable error, after the providing of the error message, receiving a second logical address from the host, determining whether second metadata stored in the volatile memory and associated with the second logical address is corrupted, and performing an operation of accessing the non-volatile memory based on the second metadata, when the second metadata is not determined to be corrupted.
Opening claim text (preview).
What is claimed is: 1. A method of operating a storage device including a non-volatile memory and a volatile memory, the method comprising: receiving a first logical address from a host; determining whether first metadata stored in the volatile memory and associated with the first logical address is corrupted; processing the first metadata as an uncorrectable error when the first metadata is determined to be corrupted; providing an error message to the host indicating that an operation cannot be performed on data associated with the first logical address when the first metadata is processed as the uncorrectable error; after the providing of the error message, receiving a second logical address from the host; determining whether second metadata stored in the volatile memory and associated with the second logical address is corrupted; and performing an operation of accessing the non-volatile memory based on the second metadata, when the second metadata is not determined to be corrupted. 2. The method of claim 1 , wherein the first metadata comprises mapping data indicating a first physical address corresponding to the first logical address; and the processing of the first metadata comprises processing the mapping data as the uncorrectable error, when the mapping data is unrecoverable. 3. The method of claim 2 , wherein the determining of whether the first metadata is corrupted comprises determining whether the mapping data is corrupted based on physical block information stored in the volatile memory. 4. The method of claim 2 , wherein the processing of the first metadata further comprises correcting the first physical address into a second physical address. 5. The method of claim 4 , wherein the second physical address corresponds to a signature indicating a physical address which does not exist in the non-volatile memory, and the providing of the error message comprises providing the error message to the host according to the signature without accessing the non-volatile memory. 6. The method of claim 4 , wherein the second physical address corresponds to a new physical address for storing data indicating the uncorrectable error in the non-volatile memory, and the processing of the first metadata further comprises writing the data to the second physical address. 7. The method of claim 1 , wherein the first metadata comprises trim data indicating data erased from the host; and the processing of the first metadata comprises processing mapping data corresponding to the trim data as the uncorrectable error, when the trim data is unrecoverable. 8. The method of claim 1 , wherein the volatile memory comprises an error checking and correction (ECC) module; and the processing of the first metadata comprises processing the first metadata as the uncorrectable error, when the first metadata cannot be corrected by the ECC module. 9. The method of claim 8 , wherein the first metadata comprises mapping data indicating a first physical address corresponding to the first logical address, and the processing of the first metadata comprises processing all mapping data, which is included in an ECC chunk having the mapping data, as the uncorrectable error. 10. The method of claim 9 , wherein the processing of all the mapping data comprises: resetting parity of the ECC chunk according to all the mapping data included in the ECC chunk; and changing physical addresses of all the mapping data included in the ECC chunk into corrected physical addresses. 11. The method of claim 8 , wherein the first metadata comprises mapping data indicating a first physical address corresponding to the first logical address and trim data indicating data erased from the host, and the processing of the first metadata comprises processing a plurality of mapping ECC chunks corresponding to the trim data as the uncorrectable error. 12. A method of operating a storage device including a non-volatile memory and a volatile memory, the method comprising: loading a directory stored in the non-volatile memory to the volatile memory when power is supplied to the storage device, wherein the directory includes a plurality of directory data indicating physical addresses respectively corresponding to a plurality of metadata; determining whether the plurality of directory data is corrupted in the directory loaded to the volatile memory; determining whether first directory data among the plurality of directory data determined to be corrupted is recoverable; processing first metadata corresponding to the first directory data as an uncorrectable error when the first directory data is corrupted and not recoverable; and loading second metadata corresponding to second directory data from the non-volatile memory to the volatile memory, wherein the second directory data is not corrupted among the plurality of directory data. 13. The method of claim 12 , further comprising: receiving a logical address from a host; providing an error message to the host indicating that an operation cannot be performed on data associated with the logical address, when the logical address corresponds to the first metadata; and performing the operation when the logical address corresponds to the second metadata. 14. The method of claim 12 , wherein the volatile memory comprises an error checking and correction (ECC) module, and the processing of the first metadata comprises processing the first directory data as the uncorrectable error, when the first directory data cannot be corrected by the ECC module. 15. The method of claim 14 , wherein the processing of the first directory data comprises: processing all directory data, which is included in an ECC chunk having the first directory data, as the uncorrectable error; and processing a plurality of metadata corresponding to all the directory data as the uncorrectable error. 16. The method of claim 12 , further comprising loading the plurality of metadata stored in the non-volatile memory to the volatile memory, wherein the plurality of metadata comprises at least one of mapping data indicating a physical address corresponding to a logical address, physical block information indicating information about pages of each physical block comprised in the non-volatile memory, or trim data indicating data erased from a host. 17. A storage device comprising: a non-volatile memory; and a controller comprising a volatile memory configured to store first metadata associated with a first logical address and second metadata associated with a second logical address, wherein, when the controller receives the first logical address from a host, the controller is configured to determine whether the first metadata is corrupted and process the first metadata as an uncorrectable error if the first metadata is corrupted, and then, when the controller receives the second logical address from the host, the controller is configured to determine whether the second metadata is corrupted and control an operation of accessing the non-volatile memory based on the second metadata if the second metadata is not corrupted. 18. The storage device of claim 17 , wherein the first and second metadata comprise at least one of mapping data indicating a physical address corresponding to a logical address, physical block information indicating information about pages of each physical block comprised in the non-volatile memory, or trim data indicating data erased from a host. 19. The storage device of claim 17 , wherein the volatile memory comprises an error checking and corre
using file system or storage system metadata · CPC title
Configuration or reconfiguration · CPC title
using directory methods · CPC title
for memory modules · CPC title
Hybrid storage device · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.