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) core 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;
an error counter, coupled to the ECC corrector, the ECC coder 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 by using an unused portion of a write memory cycle during a read operation to implement said storage;
a write cycle counter coupled to the ECC corrector, the ECC coder and the magnetoresistive random access memory (MRAM) core for providing a count of write cycles for storage in the reserved portion of the magnetoresistive random access memory (MRAM) core in response to the error; and
a read cycle counter coupled to the ECC corrector, the ECC coder and the magnetoresistive random access memory (MRAM) core for providing a count of read cycles for storage in the reserved portion of the magnetoresistive random access memory (MRAM) core in response to the error.
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.
34 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) core 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; an error counter, coupled to the ECC corrector, the ECC coder 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 by using an unused portion of a write memory cycle during a read operation to implement said storage; a write cycle counter coupled to the ECC corrector, the ECC coder and the magnetoresistive random access memory (MRAM) core for providing a count of write cycles for storage in the reserved portion of the magnetoresistive random access memory (MRAM) core in response to the error; and a read cycle counter coupled to the ECC corrector, the ECC coder and the magnetoresistive random access memory (MRAM) core for providing a count of read cycles for storage in the reserved portion of the magnetoresistive random access memory (MRAM) core in response to the error. - 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 coder, coupled to the non-volatile random access memory (NVRAM) core, for adding a redundancy code to the data for storing in the non-volatile random access memory (NVRAM) core; 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; 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 by using an unused portion of a write memory cycle during a read operation to implement said storage; a write cycle counter coupled to the ECC corrector, the ECC coder and the NVRAM core for providing a count of write cycles for storage in the reserved portion of the NVRAM core in response to an error; and a read cycle counter coupled to the ECC corrector, the ECC coder and the NVRAM core for providing a count of read cycles for storage in the reserved portion of the NVRAM core in response to the error. - 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 (NVRAM) 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, a count of write cycles and a count of read cycles; and storing the count of detected errors, count of write cycles and count of read cycles in the non-volatile random access memory (NVRAM) core using an unused portion of a write memory cycle during a read operation. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27)
-
Specification