MRAM having error correction code circuitry and method therefor
First Claim
1. A memory circuit, comprising:
- a magnetoresistive random access memory (MRAM) core for storing data received by the memory circuit and outputting stored data, the magnetoresistive random access memory (MRAM) having a reserved portion;
an error correction code (ECC) coder for adding a redundancy code to the data for storing in the magnetoresistive random access memory (MRAM) core;
an ECC corrector, coupled to the magnetoresistive random access memory (MRAM) core, for performing an analysis of the stored data and the redundancy code to detect and correct errors in the stored data that is output by the magnetoresistive random access memory (MRAM) core and providing an error signal when an error is detected from the analysis; and
an error counter, coupled to the ECC corrector and the magnetoresistive random access memory (MRAM) core, for providing a count of occurrences of the error signal for storage in the reserved portion of the magnetoresistive random access memory (MRAM) core.
9 Assignments
0 Petitions
Accused Products
Abstract
An embedded memory system (10) uses an MRAM core (12) and error correction code (ECC) corrector circuitry (20). The ECC corrector circuitry identifies soft memory bit errors which are errors primarily resulting from an MRAM bit not being correctly programmed. The errors are identified and corrected during a read or a write cycle and not necessarily when the memory is in a special test mode. As errors are corrected, the error corrections are counted by an error counter (24) to create a count value. The count value is stored in the MRAM core itself and can later be retrieved and read during a test mode for an indication of how many bit corrections are required for the MRAM core over a period of time. The count value is stored by using an unused portion of a write memory cycle during a read operation.
42 Citations
27 Claims
-
1. A memory circuit, comprising:
-
a magnetoresistive random access memory (MRAM) core for storing data received by the memory circuit and outputting stored data, the magnetoresistive random access memory (MRAM) having a reserved portion;
an error correction code (ECC) coder for adding a redundancy code to the data for storing in the magnetoresistive random access memory (MRAM) core;
an ECC corrector, coupled to the magnetoresistive random access memory (MRAM) core, for performing an analysis of the stored data and the redundancy code to detect and correct errors in the stored data that is output by the magnetoresistive random access memory (MRAM) core and providing an error signal when an error is detected from the analysis; and
an error counter, coupled to the ECC corrector and the magnetoresistive random access memory (MRAM) core, for providing a count of occurrences of the error signal for storage in the reserved portion of the magnetoresistive random access memory (MRAM) core. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A memory circuit, comprising:
-
a non-volatile random access memory (NVRAM) core for storing data received by the memory circuit and outputting stored data;
an ECC corrector, coupled to the non-volatile random access memory (NVRAM) core, for performing an analysis of stored data fetched from the non-volatile random access memory (NVRAM) core during a read cycle of the non-volatile random access memory (NVRAM) core to detect and correct errors in the stored data that is output by the non-volatile random access memory (NVRAM) core and providing an error signal when an error is detected from the analysis; and
an error counter, coupled to the ECC corrector and the non-volatile random access memory (NVRAM) core, for providing a count of occurrences of the error signal for storage in the non-volatile random access memory (NVRAM) core. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A method of operating a memory circuit having a non-volatile random access memory (NVRAM) core, comprising:
-
storing data received by the memory circuit in the non-volatile random access memory (NVRAM) core;
outputting the data stored in the non-volatile random access memory (NYRAM) core;
performing an analysis of the data output from the non-volatile random access memory (NVRAM) core to detect and correct errors therein;
obtaining a count of detected errors; and
storing the count in the non-volatile random access memory (NVRAM) core. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27)
-
Specification