Method of testing detection and correction capabilities of ECC memory controller
First Claim
1. A method of verifying error checking and correction (“
- ECC”
) capabilities of a memory controller electrically connected to a processor via a bus, said memory controller controlling access to a memory device, the method comprising;
disabling said ECC capabilities of said memory controller;
while said ECC capabilities of said memory controller are disabled, writing a test pattern and a first ECC code to a selected location in said memory device, said first ECC code corresponding to a natural state of said bus and said test pattern being at least one bit different than a pattern corresponding to said first ECC code, thereby inducing a memory error;
subsequent to said writing, enabling said ECC capabilities of said memory controller;
subsequent to said enabling, reading data stored at said selected memory location using said memory controller.
12 Assignments
0 Petitions
Accused Products
Abstract
System and method for testing the error detection and correction (“ECC”) capabilities of an ECC memory controller are disclosed. The system uses the natural state of the bus to induce one- or two-bit memory errors by disabling the ECC capabilities of the controller and then writing a test data pattern that is one or two bits different than a data pattern that would result in an ECC code equal to the natural state of the bus and an ECC code equal to the natural state of the bus to a selected memory location. At that point, the ECC capabilities of the memory controller are reenabled and the memory location to which the test data pattern was previously written is read and its ECC code generated. A determination is then made whether the memory controller detected and/or corrected the induced error.
-
Citations
23 Claims
-
1. A method of verifying error checking and correction (“
- ECC”
) capabilities of a memory controller electrically connected to a processor via a bus, said memory controller controlling access to a memory device, the method comprising;disabling said ECC capabilities of said memory controller;
while said ECC capabilities of said memory controller are disabled, writing a test pattern and a first ECC code to a selected location in said memory device, said first ECC code corresponding to a natural state of said bus and said test pattern being at least one bit different than a pattern corresponding to said first ECC code, thereby inducing a memory error;
subsequent to said writing, enabling said ECC capabilities of said memory controller;
subsequent to said enabling, reading data stored at said selected memory location using said memory controller. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
- ECC”
-
9. A computer program product for verifying error checking and correction (“
- ECC”
) capabilities of a memory controller electrically connected to a processor via a bus, said memory controller controlling access to a memory device, the computer program product stored on a computer-readable medium and comprising;instructions for disabling said ECC capabilities of said memory controller;
instructions for writing a test pattern and a first ECC code to a selected location in said memory device while said ECC capabilities of said memory controller are disabled, said first ECC code corresponding to a natural state of said bus and said test pattern being at least one bit different than a pattern corresponding to said first ECC code, thereby inducing a memory error;
instructions for enabling said ECC capabilities of said memory controller after said writing;
instructions for reading data stored at said selected memory location using said memory controller subsequent to said enabling. - View Dependent Claims (10, 11, 12, 13, 14, 15)
- ECC”
-
16. Apparatus for verifying error checking and correction (“
- ECC”
) capabilities of a memory controller electrically connected to a processor via a bus and for controlling access to a memory device, the apparatus comprising;means for disabling said ECC capabilities of said memory controller;
means for writing a test pattern and a first ECC code to a selected location in said memory device while said ECC capabilities of said memory controller are disabled, said first ECC code corresponding to a natural state of said bus and said test pattern being at least one bit different than a pattern corresponding to said first ECC code, thereby inducing a memory error;
means for enabling said ECC capabilities of said memory controller after said writing;
means for causing said memory controller to read data stored at said selected memory location subsequent to said enabling. - View Dependent Claims (17, 18, 19, 20, 21, 22)
means for determining whether said memory error was detected and corrected by said memory controller subsequent to said reading; and
means for indicating that said memory controller has failed if said memory error was not detected and corrected by said memory controller.
- ECC”
-
18. The apparatus of claim 16 further comprising:
-
means for determining whether said memory error was reported by said memory controller subsequent to said reading; and
means for indicating that said memory controller has failed if said memory error was not detected and corrected by said memory controller.
-
-
19. The apparatus of claim 16 further comprising means for changing at least one test variable subsequent to said reading.
-
20. The apparatus of claim 19 wherein said at least one test variable is selected from a group consisting of a memory location to which said test pattern is written, an identity of said test pattern, and a position within said test pattern of a bad bit.
-
21. The apparatus of claim 16 wherein said memory error is a single bit error and said test pattern is one bit different than a pattern corresponding to said first ECC code.
-
22. The apparatus of claim 16 wherein said memory error is a double bit error and said test pattern is two bits different than a pattern corresponding to said first ECC code.
-
23. In a computer comprising a memory controller electrically connected to a processor via a bus, said memory controller being for controlling access to a memory device and having error checking and correcting (“
- ECC”
) capabilities, an apparatus for verifying the accuracy of said ECC capabilities of said memory controller, the apparatus comprising;means for disabling said ECC capabilities of said memory controller;
means for writing a test pattern and a first ECC code to a selected location in said memory device while said ECC capabilities of said memory controller are disabled, said first ECC code corresponding to a natural state of said bus and said test pattern being at least one bit different than a pattern corresponding to said first ECC code, thereby inducing a memory error;
means for enabling said ECC capabilities of said memory controller after said writing;
means for causing said memory controller to read data stored at said selected memory location subsequent to said enabling;
means for determining, with respect to single bit memory errors, whether said memory error was detected and corrected by said memory controller subsequent to said reading and if not, indicating that said memory controller has failed; and
means for determining, with respect to double bit memory errors, whether said memory error was reported by said memory controller subsequent to said reading and if not, indicating that said memory controller has failed.
- ECC”
Specification