Low overhead error correcting code protection for stored information
First Claim
1. An apparatus comprising:
- a data storage structure to store a plurality of first data values, each of the plurality of first data values having a first data width;
a first check value storage structure to store a plurality of first check values;
a second check value storage structure to store a plurality of second check values; and
check value generation hardware to generate the first check values and the second check values, the first check values providing a first level of error protection for the first data values, the second check values providing a second level of error protection for a plurality of second data values, each of the plurality of second data values having a second data width, the second data width being greater than the first data width, each of the second data values being a concatenation of one of the first data values and at least another of the first data values;
wherein the memory array is to store each of the first data values in a one of a plurality of first locations; and
the check value generation hardware is also to generate a plurality of third check values from the contents of the plurality of first locations, compare each of the plurality of third check values to each of the plurality of first check values, generate a plurality of fourth check values from contents of the data storage structure where the plurality of second data values are stored, only if a third check value and a corresponding first check value do not match, compare each of the plurality of fourth check values to a corresponding second check value, wherein comparing a fourth check value to a second check value includes generating a syndrome; and
use the syndrome to correct the contents of the corresponding first location, wherein using the syndrome includes using only the columns in a parity check matrix that correspond to the first location of a byte of the data storage structure.
1 Assignment
0 Petitions
Accused Products
Abstract
Embodiments of an invention for low overhead error-correcting-code protection for stored information are described are disclosed. In one embodiment, an apparatus includes a data storage structure, a first check value storage structure, a second check value storage structure, and check value generation hardware. The data storage structure is to store a plurality of first data values. The first check value storage structure is to store a plurality of first check values. The second check value storage structure is to store a plurality of second check values. The check value generation hardware is to generate the first check values and the second check values. The first check values provide a first level of error protection for the first data values and the second check values provide a second level of error protection for a plurality of second data values. Each of the plurality of first data value has a first data width, and each of the plurality of second data values has a second data width, the second data width being greater than the first data width. Each of the second data values is a concatenation of one of the first data values and at least another of the first data values.
61 Citations
16 Claims
-
1. An apparatus comprising:
-
a data storage structure to store a plurality of first data values, each of the plurality of first data values having a first data width; a first check value storage structure to store a plurality of first check values; a second check value storage structure to store a plurality of second check values; and check value generation hardware to generate the first check values and the second check values, the first check values providing a first level of error protection for the first data values, the second check values providing a second level of error protection for a plurality of second data values, each of the plurality of second data values having a second data width, the second data width being greater than the first data width, each of the second data values being a concatenation of one of the first data values and at least another of the first data values; wherein the memory array is to store each of the first data values in a one of a plurality of first locations; and the check value generation hardware is also to generate a plurality of third check values from the contents of the plurality of first locations, compare each of the plurality of third check values to each of the plurality of first check values, generate a plurality of fourth check values from contents of the data storage structure where the plurality of second data values are stored, only if a third check value and a corresponding first check value do not match, compare each of the plurality of fourth check values to a corresponding second check value, wherein comparing a fourth check value to a second check value includes generating a syndrome; and
use the syndrome to correct the contents of the corresponding first location, wherein using the syndrome includes using only the columns in a parity check matrix that correspond to the first location of a byte of the data storage structure. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method comprising:
-
generating a first check value to provide a first level of error protection for a first data value, the first data value having a first data width; generating a second check value to provide a second level of error protection for a second data value, the second data value having a second data width, the second data width being greater than the first data width, the second data values being a concatenation of the first data values and at least a third data value, the third data value having the first data width; and storing the first data value in a first location in a memory array; storing the first check value in the memory array; storing the second check value in the memory array; reading the contents of the first location from the memory array; generating a third check value from the contents read from the first location; comparing the third check value to the first check value; generating a fourth check value from contents of the memory array where the second data value is stored, only if the third check value and the first check value do not match comparing the fourth check value to the second check value, wherein comparing the fourth check value to the second check value includes generating a syndrome; and using the syndrome to correct the contents of the first location of the memory array, wherein using the syndrome to correct the contents of the first location of the memory array includes using only the columns in a parity check matrix that correspond to the first location of a byte of the memory array. - View Dependent Claims (13, 14, 15)
-
-
16. A system comprising:
-
a system memory; and a processor having; a cache to store a plurality of first data values from the system memory, a plurality of first check values, and a plurality of second check values, each of the plurality of first data values having a first data width; and check value generation hardware to generate the first check values and the second check values, the first check values providing a first level of error protection for the first data values, the second check values providing a second level of error protection for a plurality of second data values, each of the plurality of data values having a second data width, the second data width being greater than the first data width, each of the second data values being a concatenation of one of the first data values and at least another of the first data values; wherein the cache is to store each of the first data values in a one of a plurality of first locations; and the check value generation hardware is also to generate a plurality of third check values from the contents of the plurality of first locations, compare each of the plurality of third check values to each of the plurality of first check values, generate a plurality of fourth check values from contents of the cache where the plurality of second data values are stored, only if a third check value and a corresponding first check value do not match, compare each of the plurality of fourth check values to a corresponding second check value, wherein comparing a fourth check value to a second check value includes generating a syndrome; and
use the syndrome to correct the contents of the corresponding first location, wherein using the syndrome includes using only the columns in a parity check matrix that correspond to the first location of a byte of the cache.
-
Specification