Memory error correction using redundant sliced memory and standard ECC mechanisms
AssigneeHewlett-Packard Company
InventorsTony M. Brewer, Mike Dugan
Life of this patent
Estimating the term…
Abstract
A system and method is presented for error detection and correction using redundant sliced memory wherein ECC codes are used to correct single bit errors and detect multi bit errors and to reconstruct lost data in real time.
Claims17
An apparatus for detection and correction of single and multi-bit memory errors in a memory system comprising:
- an array of memory modules for storing a plurality of data slices;
- a redundant memory module for storing a checksum, said redundant memory having at least as much bit storage space as each memory module of said array of memory modules;
- an array of error correction code generators for generating an error correction code for each of said data slices and for generating an error correction code for said checksum;
- and
- an array of exclusive-or operators for forming said checksum from the bits of said data slices, wherein:
- the checksum comprises space for a number of bits corresponding to a number of bits in each said slice, each bit in each said slice having a position in an order of bits;
- and
- each bit in said checksum is determined by performing an ex-or operation on all bits in the same position in the order of bits of each said slice, thereby providing said checksum with sufficient information to enable correction of a data slice with a multi-bit error, wherein said checksum is XOR-ed with the data of all but one of said data slices to reconstruct data stored in the one of said data slices that is not XOR-ed with said checksum.
A method for detecting and correcting single and multi-bit memory errors in a memory system, the method comprising the steps of:
- distributing data in a memory line equally in a plurality of data slices, with each said slice stored on a memory module associated with said each data slice, wherein each said data slice comprises a sequence of bits of equal length, said sequence having an order and each bit having a position in said order;
- performing XOR operations on all bits in the same position in the order of bits in each said data slice, thereby producing a sequence of ex-or result bits forming a checksum;
- storing said checksum in a redundant memory module;
- generating an error correction code for each of said data slices and an error correction code for use by said checksum in correcting multi-bit errors in said data slices;
- and
- XORing said checksum with the data of all but one of said data slices to reconstruct data stored in the one of said data slices that is not XOR-ed with said checksum, where a multi-bit error was detected in said one of said data slices that is not XOR-ed with said checksum.
An apparatus for detection and correction of single and multi-bit memory errors in a memory system comprising:
- an array of memory modules for storing a plurality of data slices, said data slices having data;
- a redundant memory module for storing a checksum, said redundant memory having at least as much bit storage space as each memory module of said array of memory modules;
- an array of error correction code generators for generating an error correction code for each of said data slices and for generating an error correction code for said checksum;
- and
- an array of exclusive-or operators for forming said checksum from the bits of said data slices, wherein the checksum comprises space for a number of bits corresponding to a number of bits in each said slice, each bit in each said slice having a position in an order of bits, and wherein each bit in said checksum is determined by performing an XOR operation on all bits in the same position in the order of bits of each said slice, thereby providing said checksum with sufficient information to enable correction of a data slice with a multi-bit error;
- and
- a parallel connection between said array of memory modules and a computer system accessing said array, thereby obviating a need for each said memory module to handle a data transmission bandwidth of an entire data line, wherein said checksum enables said apparatus to restore the data of a data slice having a multi-bit error by performing an XOR operation on bits of said checksum with bits in all data slices except for said data slice having a multi-bit error.
An apparatus for detection and correction of single and multi-bit memory errors in a memory system comprising:
- an array of memory modules for storing a plurality of data slices;
- a redundant memory module for storing a checksum, said redundant memory having at least as much bit storage space as each memory module of said array of memory modules;
- an array of error correction code generators for generating an error correction code for each of said data slices and for generating an error correction code for said checksum;
- and
- an array of exclusive-or operators for forming said checksum from the bits of said data slices, wherein the checksum comprises space for a number of bits corresponding to a number of bits in each said slice, each bit in each said slice having a position in an order of bits, and wherein each bit in said checksum is determined by performing an ex-or operation on all bits in the same position in the order of bits of each said slice, thereby providing said checksum with sufficient information to enable correction of a data slice with a multi-bit error, and wherein the apparatus protects against a failure of a data path between a memory module and a PMD chip.
An apparatus for detection and correction of single and multi-bit memory errors in a memory system comprising:
- an array of memory modules for storing a plurality of data slices;
- a redundant memory module for storing a checksum, said redundant memory having at least as much bit storage space as each memory module of said array of memory modules;
- an array of error correction code generators for generating an error correction code for each of said data slices and for generating an error correction code for said checksum;
- and
- an array of exclusive-or operators for forming said checksum from the bits of said data slices, wherein the checksum comprises space for a number of bits corresponding to a number of bits in each said slice, each bit in each said slice having a position in an order of bits, and wherein each bit in said checksum is determined by performing an ex-or operation on all bits in the same position in the order of bits of each said slice, thereby providing said checksum with sufficient information to enable correction of a data slice with a multi-bit error, and wherein a plurality of single bit errors on different memory modules and a multi-bit error on one said memory module may be corrected without disrupting other functions of a computer system to which the apparatus is connected.
A method for detecting and correcting single and multi-bit memory errors in a memory system, the method comprising the steps of:
- distributing data in a memory line equally in a plurality of data slices, with each said slice stored on a memory module associated with said each data slice, wherein each said data slice comprises a sequence of bits of equal length, said sequence having an order and each bit having a position in said order;
- performing XOR operations on all bits in the same position in the order of bits in each said data slice, thereby producing a sequence of ex-or result bits forming a checksum;
- storing said checksum in a redundant memory module;
- generating an error correction code for each of said data slices and an error correction code for use by said checksum in correcting multi-bit errors in said data slices;
- correcting a multi-bit error in one said data slice;
- and
- correcting single bit errors in a plurality of other said data slices, thereby enabling the memory system to simultaneously tolerate a single multi-bit error in a data slice, and a plurality of single bit errors in other data slices without external intervention.
An apparatus for detection and correction of single and multi-bit memory errors in a memory system comprising:
- an array of memory modules for storing a plurality of data slices, said data slices having data;
- a redundant memory module for storing a checksum, said redundant memory having at least as much bit storage space as each memory module of said array of memory modules;
- an array of error correction code generators for generating an error correction code for each of said data slices and for generating an error correction code for said checksum;
- and
- an array of exclusive-or operators for forming said checksum from the bits of said data slices, wherein the checksum comprises space for a number of bits corresponding to a number of bits in each said slice, each bit in each said slice having a position in an order of bits, and wherein each bit in said checksum is determined by performing an XOR operation on all bits in the same position in the order of bits of each said slice, thereby providing said checksum with sufficient information to enable correction of a data slice with a multi-bit error;
- and
- a parallel connection between said array of memory modules and a computer system accessing said array, thereby obviating a need for each said memory module to handle a data transmission bandwidth of an entire data line, wherein said array of error correction code generators cooperates with said checksum to enable said apparatus to correct a multi-bit error on one said data slice, and a plurality of simultaneously existing single bit errors on a plurality of other said data slices.
Dependencies are inferred from the claim text.