Memory device with data scrubbing capability and methods
US-2024393961-A1 · Nov 28, 2024 · US
US10776018B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10776018-B2 |
| Application number | US-201715626326-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 19, 2017 |
| Priority date | Jun 19, 2017 |
| Publication date | Sep 15, 2020 |
| Grant date | Sep 15, 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.
Embodiments for discovering read failures in a data storage system. Data read from underlying media of the data storage system is validated by initializing a prefix of a buffer used to read the data with a first sequence of bytes of a predefined number. The first sequence of bytes is compared to a sequence of actual bytes of the data read into the buffer. When the first sequence of bytes returns an equal value to the sequence of the actual bytes of the data read, a second sequence of bytes of the predefined number is generated and compared to a subsequent data read to determine the validity.
Opening claim text (preview).
The invention claimed is: 1. A method for discovering read failures in a data storage system, by a processor device, comprising: validating data read from underlying media of the data storage system by initializing a prefix of a buffer used to read the data with a first sequence of bytes of a predefined number, attempting to read the data from the underlying media a first time, and comparing the first sequence of bytes to a first sequence of actual bytes in the buffer once the storage system indicates the data has been successfully read; wherein, when the first sequence of bytes returns an equal value to the first sequence of the actual bytes, a preliminary indication of a read failure of the data is identified; and responsive to the preliminary indication of the read failure of the data, re-initializing the prefix of the buffer with a second sequence of bytes of the predefined number differing from the first sequence of bytes, attempting to re-read the data from the underlying media a second time, and comparing the second sequence of bytes to a second sequence of actual bytes in the buffer when the storage system indicates the data has been successfully re-read to confirm the read failure and therefore determine the validity of the data wherein, when the first and second sequence of bytes both return an equal value to the first and second sequence of actual bytes in the buffer, respectively, the read failure is positively identified notwithstanding whether the data read at the first time and the data read at the second time comprise identical data. 2. The method of claim 1 , wherein the first and second sequence of bytes each comprise a predefined or random sequence of bytes of the predefined number. 3. The method of claim 2 , further including performing each of: preparing the buffer by initializing the first sequence of N bytes, wherein N is the predefined number; issuing a read command at the first time to the underlying media; and upon the read command returning a successful read operation, comparing the first sequence of N bytes to a beginning sequence of N bytes of the first sequence of actual bytes in the buffer. 4. The method of claim 3 , wherein comparing the second sequence of bytes subsequent to the attempted data re-read further includes issuing a subsequent read command at the second time to the underlying media, and comparing the second sequence of bytes to the beginning sequence of N bytes of the second sequence of actual bytes in the buffer upon the subsequent read command returning the successful read operation. 5. The method of claim 3 , further including, for reading a set of blocks, initializing the buffer with the first sequence of N bytes for each block of a predetermined size, and comparing the first sequence of N bytes to the beginning sequence of the N bytes of the first sequence of actual bytes for each block of the set of blocks in the buffer. 6. The method of claim 5 , further including, when the first sequence of N bytes returns an equal value to the beginning sequence of N byes of the first sequence of actual sequence of bytes in buffer for any blocks of the set of blocks, generating the second sequence of bytes for each of the blocks which differs from all prefixes used in the sequence of N bytes of the first sequence of actual bytes of each of the blocks of the set of blocks; and comparing the second sequence of N bytes to the beginning sequence of N bytes of the second sequence of actual sequence of bytes in the buffer for each block in the subsequent attempted data re-read. 7. A system for discovering read failures in a data storage system, the system comprising: a processor device executing instructions stored in a memory, wherein the processor device: validates data read from underlying media of the data storage system by initializing a prefix of a buffer used to read the data with a first sequence of bytes of a predefined number, attempting to read the data from the underlying media a first time, and comparing the first sequence of bytes to a first sequence of actual bytes in the buffer once the storage system indicates the data has been successfully read; wherein, when the first sequence of bytes returns an equal value to the first sequence of the actual bytes, a preliminary indication of a read failure of the data is identified; and responsive to the preliminary indication of the read failure of the data, re-initializes the prefix of the buffer with a second sequence of bytes of the predefined number differing from the first sequence of bytes, attempting to re-read the data from the underlying media a second time, and comparing the second sequence of bytes to a second sequence of actual bytes in the buffer when the storage system indicates the data has been successfully re-read to confirm the read failure and therefore determine the validity of the data wherein, when the first and second sequence of bytes both return an equal value to the first and second sequence of actual bytes in the buffer, respectively, the read failure is positively identified notwithstanding whether the data read at the first time and the data read at the second time comprise identical data. 8. The system of claim 7 , wherein the first and second sequence of bytes each comprise a predefined or random sequence of bytes of the predefined number. 9. The system of claim 8 , wherein the processor device performs each of: preparing the buffer by initializing the first sequence of N bytes, wherein N is the predefined number; issuing a read command at the first time to the underlying media; and upon the read command returning a successful read operation, comparing the first sequence of N bytes to a beginning sequence of N bytes of the first sequence of actual bytes in the buffer. 10. The system of claim 9 , wherein comparing the second sequence of bytes subsequent to the attempted data re-read further includes issuing a subsequent read command at the second time to the underlying media, and comparing the second sequence of bytes to the beginning sequence of N bytes of the second sequence of actual bytes in the buffer upon the subsequent read command returning the successful read operation. 11. The system of claim 9 , wherein the processor device, for reading a set of blocks, initializes the buffer with the first sequence of N bytes for each block of a predetermined size, and compares the first sequence of N bytes to the beginning sequence of the N bytes of the first sequence of actual bytes for each block of the set of blocks in the buffer. 12. The system of claim 11 , wherein the processor device, when the first sequence of N bytes returns an equal value to the beginning sequence of N byes of the first sequence of actual sequence of bytes in buffer for any blocks of the set of blocks, generates the second sequence of bytes for each of the blocks which differs from all prefixes used in the sequence of N bytes of the first sequence of actual bytes of each of the blocks of the set of blocks; and compares the second sequence of N bytes to the beginning sequence of N bytes of the second sequence of actual sequence of bytes in the buffer for each block in the subsequent attempted data re-read. 13. A computer program product for discovering read failures in a data storage system, by a processor device, the computer program product embodied on a non-transitory computer-readable storage medium having computer-readable program code portions stored therein, the computer-readable program code portions comprising: an executable portion that validates data read from underlying media of the data storage system by initializing a prefix of a buffer used to read the d
in relation to data integrity, e.g. data losses, bit errors · CPC title
Error or fault detection not based on redundancy (power supply failures G06F1/30; network fault management H04L41/06) · CPC title
Data buffering arrangements · CPC title
Monitoring storage devices or systems · CPC title
Management of blocks · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.