System and method for verifying error detection/correction logic
First Claim
1. A method of testing error correction/detection logic, the method comprising:
- creating an initial data bit combination having n bits, wherein each data bit in the initial data bit combination has a same logical value as each other data bit in the initial data bit combination;
shifting a first bit having an different logical value than the same logical value across the initial data bit combination, wherein each time the first bit is shifted, one of n data bit combinations is generated;
providing each of the n data bit combinations to the error detection/correction logic;
in response to said providing, the error detection/correction logic generating a set of check bits for each of the n data bit combinations;
comparing the set of check bits generated by the error correction/detection logic with a known correct set of check bits for each of the n data bit combinations; and
dependent on an outcome of said comparing, generating an indication of whether the error detection/correction logic correctly generated the set of check bits.
2 Assignments
0 Petitions
Accused Products
Abstract
A method of testing error correction/detection logic may involve providing each of a set of n data bit combinations to the error correction/detection logic. Each data bit combination has n bits, and the n data bit combinations may be created by creating an initial data bit combination whose data bits have the same logical value and then shifting a bit having the opposite value across the initial data bit combination. In response to being provided with the n data bit combinations, the error correction/detection logic generates a set of check bits for each of the n data bit combinations. The set of check bits generated by the error correction/detection logic for each of the n data bit combinations may then be verified.
58 Citations
35 Claims
-
1. A method of testing error correction/detection logic, the method comprising:
-
creating an initial data bit combination having n bits, wherein each data bit in the initial data bit combination has a same logical value as each other data bit in the initial data bit combination;
shifting a first bit having an different logical value than the same logical value across the initial data bit combination, wherein each time the first bit is shifted, one of n data bit combinations is generated;
providing each of the n data bit combinations to the error detection/correction logic;
in response to said providing, the error detection/correction logic generating a set of check bits for each of the n data bit combinations;
comparing the set of check bits generated by the error correction/detection logic with a known correct set of check bits for each of the n data bit combinations; and
dependent on an outcome of said comparing, generating an indication of whether the error detection/correction logic correctly generated the set of check bits. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 26, 28, 29)
-
-
13. A computer readable medium comprising program instructions computer-executable to:
-
create an initial data bit combination having n bits, wherein each data bit in the initial data bit combination has a same logical value as each other data bit in the initial data bit combination;
shift a first bit having an different logical value than the same logical value across the initial data bit combination, wherein each time the first bit is shifted, one of n data bit combinations is generated;
provide each of the n data bit combinations to error detection/correction logic;
compare a set of check bits generated by the error correction/detection logic with a known correct set of check bits for each of the n data bit combinations; and
dependent on an outcome of said comparing, generate an indication of whether the error detection/correction logic correctly generated the set of check bits.
-
-
24. A tester for testing error correction/detection logic, the tester comprising:
-
test check bit generating means for creating a set of test data bit combinations and providing the set of test data bit combinations to a check bit generator comprised in the error correction/detection logic, wherein the set of test data bit combinations comprises n n-bit data bit combinations, wherein each possible logical value of each data bit is present in at least one of the n n-bit data bit combinations in the set of test data bit combinations;
comparison means for comparing check bits output by the error correction/detection logic for each of the n n-bit data bit combinations in the set of test data bit combinations to known correct check bits for each of the n n-bit data bit combinations; and
indication means for generating an indication as to whether the check bits output by the error correction/detection logic are correct based on an output of the comparison means.
-
-
27. A method of testing error correction/detection logic, the method comprising:
-
providing a set of m+1 test code words to the error correction/detection logic, wherein each code word has m bits, wherein a first test code word in the set of m+1 test code words is a correct code word, wherein each test code word other than the first test code word comprises a single-bit error at a different bit position within the code word than each other test code word;
in response to said providing, the error correction/detection logic decoding the set of m+1 test code words; and
verifying that the error correction/detection logic correctly decoded each of the m+1 test code words.
-
-
30. A method of testing error correction/detection logic, the method comprising:
-
providing a set of test code words to the error correction/detection logic, wherein said providing comprises introducing an error into each of the test code words in the set by substituting check bits corresponding to an unused syndrome for a correct set of check bits within each test code word, wherein each test code word comprises substituted check bits corresponding to a different unused syndrome than each other test code word in the set of test code words;
in response to said providing, the error correction/detection logic decoding each test code word in the set of test code words; and
verifying that the error correction/detection logic correctly identified the error in each of the test code words. - View Dependent Claims (31, 32, 33)
-
-
34. A data processing system comprising:
-
a storage array comprising at least one storage device;
a host computer system coupled to provide data to the storage array; and
error correction/detection logic configured to generate check bits for the data being provided to the storage array;
wherein the host computer system is configured to test the error correction/detection logic by providing each of a set of n data bit combinations to the error detection/correction logic, wherein each data bit combination has n bits, wherein each possible value of each data bit is present in at least one of the n data bit combinations, wherein the set of n data bit combinations provided to the error detection/correction logic is a subset of a set of all data bit combinations that it is possible to create using n bits;
wherein in response to being provided with the set of n data bit combinations, the error detection/correction logic is configured to generate a set of check bits for each of the n data bit combinations; and
wherein the host computer system is configured to compare the set of check bits generated by the error correction/detection logic with a known correct set of check bits for each of the n data bit combinations.
-
-
35. A method of testing error detection/correction logic, the method comprising:
-
providing a subset of possible data bit combinations of n data bits to the error detection/correction logic, wherein the subset comprises n data bit combinations, wherein each possible value of each data bit is present in at least one of the n data bit combinations in the subset;
verifying the error detection/correction logic by comparing a set of check bits generated by the error detection/correction logic for each of the n data bit combinations in the subset with a set of known correct check bits;
providing a first set of m+1 test code words to the error detection/correction logic, wherein a first test code word is a correct test code word and where each other test code word in the set of m+1 test code words comprises a single-bit error, wherein each test code word having a single-bit error has the single-bit error at a different bit position than each other test code word that has a single-bit error;
wherein said verifying further comprises comparing a first output of the error detection/correction logic generated in response to said providing a first set of m+1 test code words with a first known correct output for each of the m+1 test code words;
providing a second set of test code words to the error detection/correction logic, wherein each test code word in the second set comprises an error introduced by substituting check bits corresponding to an unused syndrome for a correct set of check bits within a correct code word, wherein each test code word in the second set comprises substituted check bits corresponding to a different unused syndrome than each other test code word in the second set of test code words;
wherein said verifying further comprises comparing a second output of the error detection/correction logic generated in response to said providing a second set of test code words with a second known correct output for each of the m+1 test code words; and
in response to said verifying, indicating whether the error detection/correction logic is operating properly.
-
Specification