IP Library › Granted Patent US 11,972,822
Granted Patent B2
US 11,972,822 · App. 17/552,143 · Granted Apr 30, 2024

Programmable ECC for MRAM mixed-read scheme

Inventors: Martin Hassner (Mountain View, CA); Michael Nicolas Albert Tran (San Jose, CA); Ward Parkinson (Boise, ID); Michael Grobis (Campbell, CA); Nathan Franklin (Belmont, CA); Raj Ramanujan (Federal Way, WA)
Assignee: SanDisk Technologies LLC
G11C29/42G11C29/1201G11C29/18G11C29/4401G11C2029/1802
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,972,822
App. No.
17/552,143
Granted
Apr 30, 2024
Kind
B2
Abstract

Technology is disclosed for a fast ECC engine for a mixed read of MRAM cells. A codeword read from MRAM cells using a referenced read is decoded using a first ECC mode. If decoding passes, results are provided to a host. If decoding fails, a self-referenced read (SRR) is performed. The data read using the SRR is decoded with a second ECC mode that is capable of correcting a greater number of bits than the first ECC mode. The second ECC mode may have a higher mis-correction rate than the first ECC mode (for a given raw bit error rate (RBER)). However, the RBER may be lower when using the second ECC mode. Therefore, the first and second ECC modes may result in about the same probability of an undetectable error (or mis-correction).

Claims (62)

1. An apparatus, comprising:

a memory array comprising a plurality of reversible resistivity memory cells; and

a control circuit in communication with the memory array, the control circuit configured to:

read a group of selected memory cells using a referenced read;

decode data read from the group using the referenced read with a first error correction code (ECC) mode that is capable of correcting up to a first number of bits in the group, the first ECC mode has a first error mis-correction rate for a given raw bit error rate;

read the group of selected memory cells using a self-referenced read in response to a failure to decode the data in the group using the first ECC mode; and

decode data read from the group using the self-referenced read with a second ECC mode that is capable of correcting up to a second number of bits in the group, wherein the second number of bits is greater than the first number of bits, the second ECC mode has a second error mis-correction rate that is greater than the first error mis-correction rate for the given raw bit error rate, wherein data read using the self-referenced read has a lower raw bit error rate than data read using the referenced read, wherein a reduction in raw bit error rate reduces error mis-correction rate in the second ECC mode.

2. The apparatus of claim 1 , wherein the control circuit comprises a programmable ECC engine, the programmable ECC engine configured to:

calculate coefficients for an error locator polynomial having a degree of n when performing the first ECC mode, wherein n is an integer; and

calculate coefficients for an error locator polynomial having a degree of m when performing the second ECC mode, wherein m is an integer that is larger than n.

3. The apparatus of claim 2 , wherein the programmable ECC engine resides on the same semiconductor die as the memory array.

4. The apparatus of claim 2 , wherein:

the programmable ECC engine resides on a control semiconductor die; and

the memory array resides on a memory structure die that is bonded to the control semiconductor die.

5. The apparatus of claim 1 , wherein the control circuit comprises a programmable ECC engine configured to:

generate syndromes for a codeword formed from data read from the memory cells; and

calculate coefficients for an error locator polynomial based on parallel processing of the syndromes.

6. The apparatus of claim 5 , wherein the programmable ECC engine is configured to operate asynchronously to calculate the coefficients.

7. The apparatus of claim 1 , wherein each reversible resistivity memory cell comprises a magnetoresistive random access memory (MRAM) element.

8. The apparatus of claim 1 , wherein each reversible resistivity memory cell comprises a two terminal selector element in series with a reversible resistivity memory element.

9. The apparatus of claim 8 , wherein the two terminal selector element comprises an Ovonic Threshold Switch (OTS).

10. The apparatus of claim 1 , wherein the memory array comprises:

a plurality of first conductive lines; and

a plurality of second conductive lines, each of the plurality of memory cells are connected between one of the first conductive lines and one of the second conductive lines.

11. The apparatus of claim 1 , wherein:

the referenced read comprises a forced current read; and

the self-referenced read comprises a forced current self-referenced read.

12. A method of reading memory cells, the method comprising:

reading a codeword from a group of magnetoresistive random access memory (MRAM) cells in a cross-point memory array on a semiconductor die using a current-force referenced read;

inputting the codeword read with the current-force referenced read to an error correction code (ECC) engine that resides on the semiconductor die;

generating first coefficients for a first error locator polynomial having a degree of n, wherein n is an integer;

providing decoded data from the ECC engine using the first coefficients and the first error locator polynomial to a host responsive to the ECC engine reporting successful decoding of the codeword read using the current-force referenced read;

reading the codeword from the group of MRAM cells in the cross-point memory array using a current-force self-referenced read in response to the ECC engine reporting a failure to decode the codeword read using the current-force referenced read;

inputting the codeword read with the current-force self-referenced read to the ECC engine;

generating second coefficients for a second error locator polynomial having a degree of m, wherein m is an integer that is larger than n; and

providing decoded data from the ECC engine using the second coefficients and the second error locator polynomial to the host responsive to the ECC engine reporting successful decoding of the codeword read using the current-force self-referenced read.

13. The method of claim 12 , further comprising:

selecting a first mode for the ECC engine that is capable of correcting up to a first number of bits in the codeword;

running the ECC engine in the first mode on the codeword that was read using the current-force referenced read;

selecting a second mode for the ECC engine that is capable of correcting up to a second number of bits in the codeword, wherein the second number is greater than the first number; and

running the ECC engine in the second mode on the codeword read using the self-referenced read.

14. A memory system comprising:

a cross-point memory array comprising a plurality of first conductive lines, a plurality of second conductive lines, and a plurality of non-volatile memory cells, each respective memory cell connected between one of the first conductive lines and one of the second conductive lines, wherein each memory cell comprises a magnetoresistive random access memory (MRAM) element and a threshold switching selector connected in series with the MRAM element;

a programmable error correction code (ECC) engine configured to decode a codeword while correcting up to a selectable number of bits in the codeword; and

a control circuit that:

reads a codeword from a group of the memory cells using a referenced read;

configures the programmable ECC engine to decode the codeword read with the referenced read while correcting up to “n” bits in the codeword;

returns decoded data in response to decoding the codeword read from the group using the referenced read passing;

reads the codeword from the group of the memory cells using a self-referenced read in response to the ECC engine failing to decode the codeword read from the group using the referenced read;

re-configures the programmable ECC engine to decode the codeword read with the self-referenced read while correcting up to “m” bits in the codeword, wherein m is greater than n; and

returns decoded data in response to decoding the codeword read from the group using the self-referenced read passing.

15. The memory system of claim 14 , wherein:

the programmable ECC engine has a first error mis-correction rate when configured to decode the codeword while correcting up to “n” bits in the codeword for a given raw bit error rate in the codeword; and

the programmable ECC engine has a second error mis-correction rate when configured to decode the codeword while correcting up to “m” bits in the codeword for the given raw bit error rate in the codeword, wherein second error mis-correction rate is greater than the first error mis-correction rate, wherein data read using the self-referenced a higher bit error rate than data read using the self-referenced read, wherein the error mis-correction rate while correcting up to “m” bits in the codeword will drop in response to a lower raw bit error rate in the codeword.

16. The memory system of claim 14 , wherein the programmable ECC engine is configured to:

generate syndromes for a codeword read from the group of memory cells; and

calculate coefficients for an error locator polynomial based on parallel processing of the syndromes.

17. The memory system of claim 16 , wherein the programmable ECC engine is configured to operate asynchronously to calculate the coefficients.

18. The memory system of claim 14 , wherein the programmable ECC engine resides on the same semiconductor die as the cross-point memory array.

19. The memory system of claim 14 , wherein:

the programmable ECC engine resides on a control semiconductor die; and

the memory array resides on a memory structure semiconductor die that is bonded to the control semiconductor die.

Assignments (4)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 17, 2021
From: HASSNER, MARTIN; TRAN, MICHAEL NICOLAS ALBERT; PARKINSON, WARD; GROBIS, MICHAEL; FRANKLIN, NATHAN; RAMANUJAN, RAJ
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 058411/0672 →
Continuity (2)
Continuation In Part 17485129 · Sep 24, 2021
Related Publication 20230101414A1 · Mar 30, 2023
Cited By (2)
US 12,436,691 US 12,493,435