Back to results
US 2026/0219986 A1Published application
Error detection or correction using signed parity codes
AssigneeRivos Inc.
InventorJohn G. Bennett
Life of this patent
Estimating the term…
Abstract
Systems and methods are described herein for efficient and low latency correction of single chip or single bounded block errors in a multichip memory system, using a signed parity mechanism to perform replacement or correction of erasures due to a fault, and to identify the correct symbol to be replaced. The mechanism has a high reliability of performing repair of faults which fall under the model, and a high probity of identifying uncorrectable errors.
Claims28
A data storage system comprising:
- a data storage assembly;
- and
- a signed parity code error correction system configured to:
- receive data from the data storage assembly, the data including a data block, a parity block, and a signature;
- calculate a signature for the data block and determine whether the calculated signature matches the signature included in the received data;
- calculate a parity for the data block and determine whether the calculated parity matches a parity of the received parity block;
- responsive to determining that the signature and the parity matches, return the received data block;
- responsive to determining that the parity does not match, generate a correction by:
- reconstructing sub-blocks of the received data block using the parity block;
- calculating updated signatures based on the reconstructed sub-blocks;
- and
- responsive to determining that exactly one of the updated signatures matches the received signature, returning a corrected data block that incorporates the reconstructed sub-block corresponding to the matching updated signature.
9 more elements
A computing device configured to:
- receive data to store in a memory;
- calculate a signature and parity block for the data;
- cause the data, signature, and parity block to be stored in the memory;
- and
- responsive to receiving a request for the data:
- retrieve the data, signature, and parity block from the memory;
- recalculate the signature and parity block from the retrieved data;
- compare the retrieved signature and parity block with the recalculated signature and parity block;
- and
- responsive to detecting a discrepancy between the retrieved signature and parity block with the recalculated signature and parity block:
- use the parity block to reconstruct each sub-block of the data retrieved from the memory as a candidate correction and a candidate signature for each reconstructed sub-block;
- responsive to determining that exactly one candidate correction results in a candidate signature that matches the retrieved signature, return corrected data based on the exactly one candidate correction;
- and
- responsive to determining that there is not exactly one candidate correction that results in a candidate signature that matches the retrieved signature, return an error.
11 more elements
A method of generating a signature code, the method comprising:
- assigning bit patterns to each bit position of a data block, wherein each bit pattern is unique with respect to all of the other bit patterns;
- selecting a set of expected fault patterns;
- conducting an exhaustive search of the selected set of expected fault patterns to identify fault patterns in which the bit patterns representing each bit position of the data block combine in ways which cause two or more matches to be possible;
- replacing at least one of the bit patterns associated with a bit in fault in the identified fault patterns to be replaced with a new bit pattern;
- and
- repeating the steps of conducting the exhaustive search and replacing at least one of the bit patterns until the exhaustive search is completed without finding a combination that causes two or more matches.
3 more elements
A method comprising:
- receiving data;
- calculating a signature for the data;
- calculating a parity block, wherein the parity block is calculated for the data and the signature;
- and
- storing the data, signature, and parity block in a memory.
2 more elements
Dependencies are inferred from the claim text.