IP Library Granted Patent US 9,836,350
Granted Patent B2
US 9,836,350 · App. 14/871,096 · Granted Dec 5, 2017

Joint decoding of rewriting NVM error sectors

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 9,836,350
App. No.
14/871,096
Granted
Dec 5, 2017
Kind
B2
Abstract

Embodiments disclosed herein generally relate to an error correction method for non-volatile memory. The error correction method writes data to a first location from a block of user data stored in DRAM. The data written to the first location is verified and errors are identified. Upon determining the number of identified errors exceed a threshold, the block of user data is re-writing to a second location. The data written to the second location is verified and errors are identified. The data written to the first location and the data written to the second location are compared and all discrepancy bits are erased in the comparison. A joint parity check matrix is built with the data written to the first location and the data written to the second location. A code word matrix is built with the comparison. A resultant of the joint parity check matrix and the code word matrix is determined if it is invertible.

Claims (60)

1. An error correction method of a data storage system having non-volatile memory, comprising:

writing data to a first location in the non-volatile memory from a block of user data stored in DRAM;

verifying the data written to the first location and identifying errors;

re-writing the block of user data to a second location in the non-volatile memory upon determining the number of identified errors exceed a threshold value;

verifying the data written to the second location and identifying errors;

comparing the data written to the first location and the data written to the second location and identifying all discrepancy bits in the comparison;

applying joint decoding;

building a joint parity check matrix for the data written to the first location and the data written to the second location;

building a code word matrix with the comparison, wherein the code matrix includes variables for the identified discrepancy bits;

determining if a resultant of the joint parity check matrix and the code word matrix is invertible; and

solving simultaneous equation to determine values for the identified discrepancy bits.

2. The error correction method for non-volatile memory of claim 1 , wherein the second location does not overwrite the first location.

3. The error correction method for non-volatile memory of claim 1 , wherein the threshold value is one.

4. The error correction method for non-volatile memory of claim 1 , further comprising:

determining the number of identified errors from the write to the second location exceeds a second threshold value;

re-writing the block of user data to a third location;

verifying the data written to the third location and identifying errors;

building a second joint parity check matrix for the data written to the first location, the data written to the second location, and the data written to the third location; and

determining if the second joint parity check matrix is invertible.

5. The error correction method for non-volatile memory of claim 4 , wherein the second threshold value is one.

6. A non-transitory computer-readable storage medium storing a program, which, when executed by a processor of a data storage system performs an operation for correcting errors in non-volatile memory, the operation comprising:

writing data to a first location in the non-volatile memory from a block of user data stored in DRAM;

verifying the data written to the first location and identifying errors;

re-writing the block of user data to a second location in the non-volatile memory upon determining the number of identified errors exceed a threshold value;

verifying the data written to the second location and identifying errors;

comparing the data written to the first location and the data written to the second location and identifying all discrepancy bits in the comparison;

applying joint decoding;

building a joint parity check matrix for the data written to the first location and the data written to the second location;

building a code word matrix with the comparison, wherein the code matrix includes variables for the identified discrepancy bits;

determining if a resultant of the joint parity check matrix and the code word matrix is invertible; and

solving simultaneous equation to determine values for the identified discrepancy bits.

7. The computer-readable storage medium of claim 6 , wherein the second location does not overwrite the first location.

8. The computer-readable storage medium of claim 6 , wherein the threshold value is one.

9. The computer-readable storage medium of claim 6 , further comprising:

determining the number of identified errors from the write to the second location exceeds a second threshold value;

re-writing the block of user data to a third location;

verifying the data written to the third location and identifying errors;

building a second joint parity check matrix for the data written to the first location, the data written to the second location, and the data written to the third location; and

determining if the second joint parity check matrix is invertible.

10. The computer-readable storage medium of claim 9 , wherein the second threshold value is one.

11. A data storage system, comprising:

a processor; and

a non-volatile memory, wherein the memory includes an application program configured to perform an operation for correcting errors in the non-volatile memory, the operation comprising:

writing data to a first location from a block of user data stored in DRAM;

verifying the data written to the first location and identifying errors;

re-writing the block of user data to a second location upon determining the number of identified errors exceed a threshold value;

verifying the data written to the second location and identifying errors;

comparing the data written to the first location and the data written to the second location and identifying all discrepancy bits in the comparison;

applying joint decoding;

building a joint parity check matrix for the data written to the first location and the data written to the second location;

building a code word matrix with the comparison, wherein the code matrix includes variables for the identified discrepancy bits;

determining if a resultant of the joint parity check matrix and the code word matrix is invertible; and

solving simultaneous equation to determine values for the identified discrepancy bits.

12. The system of claim 11 , wherein the second location does not overwrite the first location.

13. The system of claim 11 , further comprising:

re-writing the block of user data to a third location;

verifying the data written to the third location and identifying errors;

building a second joint parity check matrix for the data written to the first location, the data written to the second location, and the data written to the third location; and

determining if the second joint parity check matrix is invertible.

14. The system of claim 11 , wherein the threshold value is one.

Assignments (13)
SECURITY AGREEMENT (SUPPLEMENTAL) Recorded Nov 14, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069411/0208 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2024
From: SANDISK TECHNOLOGIES, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 069168/0273 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT SERIAL NO 15/025,946 PREVIOUSLY RECORDED AT REEL: 040831 FRAME: 0265. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 15, 2017
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 043973/0762 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2016
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 040831/0265 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE ADDRESS PREVIOUSLY RECORDED AT REEL: 036701 FRAME: 0784. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Aug 9, 2016
From: BANDIC, ZVONIMIR Z.; GUNNAM, KIRAN KUMAR; MATEESCU, ROBERT EUGENIU; QIN, MINGHAI
To: HGST NETHERLANDS B.V.
Reel/Frame 039637/0240 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 1, 2015
From: BANDIC, ZVONIMIR Z.; GUNNAM, KIRAN KUMAR; MATEESCU, ROBERT EUGENIU; QIN, MINGHAI
To: HGST NETHERLANDS B.V.
Reel/Frame 036701/0784 →