IP Library › Granted Patent US 11,128,314
Granted Patent B2
US 11,128,314 · App. 16/450,724 · Granted Sep 21, 2021

Error characteristic estimation for NAND flash

Inventors: Fan Zhang (San Jose, CA); Chenrong Xiong (San Jose, CA); Meysam Asadi (San Jose, CA); Xuanxuan Lu (San Jose, CA)
Assignee: SK hynix Inc.
H03M13/1108G06F11/1072H03M13/116H03M13/1111G11C29/52
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,128,314
App. No.
16/450,724
Granted
Sep 21, 2021
Kind
B2
Abstract

Techniques related to improving a performance related to at least data reads from a memory are described. In an example, data is stored in a block of the memory as codewords. A data read includes a determination of whether each bit from a portion of the block is a zero or a one based on voltage measurements. Prior to decoding the codewords by performing a decoding procedure by an ECC decoder of the memory, a first number of errors “E 01 ” and a second number of errors “E 10 ” are estimated, where the first number of errors “E 01 ” is associated with bits each being a true zero and erroneously determined as a one, and where the second number of errors “E 10 ” associated with bits each being a true one and erroneously determined as a zero. Thereafter, the decoding of the codewords based on the decoding procedure is performed.

Claims (45)

1. A method implemented on a computer system that includes a memory storing bits of a codeword and an error correction code (ECC) decoder decoding the codeword, the method comprising:

determining, based on voltage measurements of a hard decoding procedure, whether each bit stored in a portion of a block of the memory is a zero or a one;

prior to decoding the codeword by performing a soft decoding procedure by the ECC decoder, estimating a first number of errors “E 01 ” associated with bits each being a true zero and erroneously determined as a one and a second number of errors “E 10 ” associated with bits each being a true one and erroneously determined as a zero, the first number of errors “E 01 ” and the second number of errors “E 10 ” determined based on the voltage measurements of the hard decoding procedure, wherein estimating the first number of errors “E 01 ” comprises:

determining a first count “C 1 ” of the bits that are determined as a one based on the voltage measurements;

determining a second count “C 0 ” of the bits that are determined as a zero based on the voltage measurements; and

determining a flip bit count “E” as a function of a checksum of the bits that are determined based on the voltage measurement, the first number of errors “E 01 ” being based on the first count, the second count, and the flip bit count; and

performing the decoding of the codeword by the soft decoding procedure after the first number of errors “E 01 ” and the second number of errors “E 10 ” are estimated, the soft decoding procedure performed based on the first number of errors “E 01 ” and the second number of errors “E 10 ”.

2. The method of claim 1 , wherein the portion of the block is a page of the block.

3. The method of claim 2 , wherein the decoding of the first number of errors “E 01 ” and the second number of errors “E 10 ” are input to the soft decoding procedure.

4. The method of claim 1 , further comprising:

receiving a data write command to at least the portion of the block; and

updating a data write procedure to the portion of the block based on the first number of errors “E 01 ” and the second number of errors “E 10 ”.

5. The method of claim 1 , wherein determining whether each bit is a zero or a one is based on the hard decoding procedure that uses the voltage measurements.

6. The method of claim 1 , wherein estimating the first number of errors “E 01 ” and the second number of errors “E 10 ” comprises computing the checksum of the bits that are determined based on the voltage measurements.

7. The method of claim 1 , wherein estimating the first number of errors “E 01 ” and the second number of errors “E 10 ” comprises determining the first count of the bits that are determined as a one based on the voltage measurements and the second count of the bits that are determined as a zero based on the voltage measurements.

8. The method of claim 1 , wherein estimating the first number of errors “E 01 ” and the second number of errors “E 10 ” comprises determining the flip bit count.

9. The method of claim 1 , wherein determining whether each bit is a zero or a one is based on the hard decoding procedure that uses the voltage measurements, and wherein estimating the first number of errors “E 01 ” and the second number of errors “E 10 ” comprises:

computing the checksum of the bits that are determined based on the voltage measurements;

determining the first count “C 1 ” of the bits that are determined as a one based on the voltage measurements;

determining the second count “C 0 ” of the bits that are determined as a zero based on the voltage measurements; and

determining the flip bit count “E” as the function of the checksum, wherein the first number of errors “E 01 ” is based on the first count, the second count, and the flip bit count.

10. The method of claim 9 , wherein the function is a linear function.

11. The method of claim 10 , wherein the second number of errors “E 10 ” is estimated as (E−C 1 +C 0 )/2.

12. The method of claim 9 , wherein the first number of errors “E 01 ” is estimated as (C 1 −C 0 +E)/2.

13. A computer system comprising:

a memory storing bits of a codeword; and

an error correction code (ECC) decoder communicatively coupled with the memory and configured to:

determine, based on voltage measurements of a hard decoding procedure, whether each bit stored in a portion of a block of the memory is a zero or a one;

prior to decoding the codeword by performing a soft decoding procedure, estimate a first number of errors “E 01 ” associated with bits each being a true zero and erroneously determined as a one and a second number of errors “E 10 ” associated with bits each being a true one and erroneously determined as a zero, the first number of errors “E 01 ” and the second number of errors “E 10 ” determined based on the voltage measurements of the hard decoding wherein to estimate the first number of errors “E 01 ” and the second number of errors “E 10 ” comprises to:

compute a checksum of the bits that are determined based on the voltage measurements;

determine a first count “C 1 ” of the bits that are determined as a one based on the voltage measurements;

determine a second count “C 0 ” that are determined as a zero based on the voltage measurements; and

determine a flip bit count “E” as a function of the checksum, wherein the first number of errors “E 01 ” is based on the first count, the second count, and the flip bit count; and

perform the decoding of the codeword by the decoding procedure after the first number of errors “E 01 ” and the second number of errors “E 10 ” are estimated, the soft decoding procedure performed based on the first number of errors “E 01 ” and the second number of errors “E 10 ”.

14. The computer system of claim 13 , wherein the first number of errors “E 01 ” is estimated as (C 1 −C 0 +E)/2.

15. The computer system of claim 14 , wherein the second number of errors “E 10 ” is estimated as (E−C 1 +C 0 )/2.

16. A non-transitory computer-readable storage medium storing instructions that, upon execution on a computer system that includes a memory storing bits of a codeword and an error correction code (ECC) decoder decoding the codeword, cause the computer system to perform operations comprising:

determining, based on voltage measurements of a hard decoding procedure, whether each bit stored in a portion of a block of the memory is a zero or a one;

prior to decoding the codeword by performing a soft decoding procedure by the ECC decoder, estimating a first number of errors “E 01 ” associated with bits each being a true zero and erroneously determined as a one and a second number of errors “E 10 ” associated with bits each being a true one and erroneously determined as a zero, the first number of errors “E 01 ” and the second number of errors “E 10 ” determined based on the voltage measurements of the hard decoding procedure, wherein estimating the first number of errors “E 01 ” and the second number of errors “E 10 ” comprises:

computing a checksum of the bits that are determined based on the voltage measurements;

determining a first count “C 1 ” of the bits that are determined as a one based on the voltage measurements;

determining a second count “C 0 ” of the bits that are determined as a zero based on the voltage measurements; and

determining a flip bit count “E” as a function of the checksum, wherein the first number of errors “E 01 ” is based on the first count, the second count, and the flip bit count; and

performing the decoding of the codeword by the decoding procedure after the first number of errors “E 01 ” and the second number of errors “E 10 ” are estimated, the soft decoding procedure performed based on the first number of errors “E 01 ” and the second number of errors “E 10 ”.

17. The non-transitory computer-readable storage medium of claim 16 , wherein the first number of errors “E 01 ” is estimated as (C 1 −C 0 +E)/2, and wherein the second number of errors “E 10 ” is estimated as (E−C 1 +C 0 )/2.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYNG PARTY NAME ALSO RECEIVING PARTY ADDRESS PREVIOUSLY RECORDED AT REEL: 55342 FRAME: 316. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Aug 16, 2021
From: SK HYNIX MEMORY SOLUTIONS AMERICA INC.
To: SK HYNIX INC.
Reel/Frame 057291/0166 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2021
From: ZHANG, FAN; XIONG, CHENRONG; ASADI, MEYSAM; LU, XUANXUAN
To: SK HYNIX MEMORY SOLUTIONS AMERICA INC.
Reel/Frame 055342/0299 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2021
From: SK HYNIX MEMORY SOLUTION AMERICA INC.
To: SK HYNIX INC.
Reel/Frame 055342/0316 →
Continuity (1)
Related Publication 20200403634A1 · Dec 24, 2020
Cited By (1)
US 12,250,004