IP Library › Granted Patent US 9,110,822
Granted Patent B2
US 9,110,822 · App. 14/288,604 · Granted Aug 18, 2015

Method and device for write abort protection

Inventors: Uday Chandrasekhar (San Jose, CA); Jianmin Huang (San Carlos, CA); Steven Sprouse (San Jose, CA); Nian Niles Yang (Mountain View, CA); Xinde Hu (San Diego, CA)
Assignee: SANDISK TECHNOLOGIES INC.
G06F11/10G06F11/1072G11C29/78H03M13/11
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,110,822
App. No.
14/288,604
Granted
Aug 18, 2015
Kind
B2
Abstract

A data storage device includes a non-volatile memory that includes a three-dimensional (3D) memory. A method includes receiving first data and second data from a host device. A first error-correcting code (ECC) codeword associated with the first data is written to a first word line of the non-volatile memory, and a second ECC codeword associated with the second data is written to a second word line of the non-volatile memory. The first ECC codeword includes a first bit and a second bit, and the second ECC codeword includes a third bit and a fourth bit. The method further includes writing parity information to a parity storage portion of the non-volatile memory that is distinct from the first word line and from the second word line. The parity information includes a parity bit that is based on the first bit, the second bit, the third bit, and the fourth bit.

Claims (39)

1. A method comprising:

in a data storage device including a non-volatile memory including a three-dimensional (3D) memory and a controller associated with operation of memory cells of the 3D memory, performing by the controller:

receiving first data and second data from a host device;

writing a first error-correcting code (ECC) codeword associated with the first data to a first word line of the non-volatile memory, wherein the first ECC codeword includes a first bit and a second bit;

writing a second ECC codeword associated with the second data to a second word line of the non-volatile memory, wherein the second ECC codeword includes a third bit and a fourth bit;

writing parity information to a parity storage portion of the non-volatile memory that is distinct from the first word line and from the second word line,

wherein the parity information includes a parity bit that is based on the first bit, the second bit, the third bit, and the fourth bit; and

in response to occurrence of a write abort event:

reading the first bit using a first threshold to generate a first estimate of the first bit; and

reading the first bit using a second threshold to generate a second estimate of the first bit.

2. The method of claim 1 , wherein the first ECC codeword corresponds to lower page data written to a multi-level cell (MLC) portion of the non-volatile memory, and wherein the parity storage portion corresponds to a single-level cell (SLC) portion of the non-volatile memory.

3. The method of claim 1 , further comprising:

determining whether the first estimate matches the second estimate; and

in response to determining that the first estimate matches the second estimate,

determining that the first bit is likely to be uncorrupted by the write abort event.

4. The method of claim 1 , further comprising:

reading the second bit using the first threshold to generate a third estimate of the second bit and reading the second bit using the second threshold to generate a fourth estimate of the second bit; and

determining whether the third estimate matches the fourth estimate.

5. The method of claim 4 , further comprising in response to determining that the first estimate does not match the second estimate, recovering the first bit using the parity bit in response to determining that the third estimate matches the fourth estimate.

6. The method of claim 5 , wherein the first bit is recovered using the parity bit, the second bit, the third bit, and the fourth bit.

7. The method of claim 4 , further comprising sending the first ECC codeword to an ECC engine in response to determining that the first estimate does not match the second estimate and that the third estimate does not match the fourth estimate.

8. The method of claim 1 , wherein the parity bit is further based on a first result of a first operation based on the first bit and the second bit and is further based on a second result of a second operation based on the third bit and the fourth bit.

9. The method of claim 8 , wherein the parity bit is generated based on a third operation based on the first result and the second result, and wherein the first operation, the second operation, and the third operation correspond to an exclusive-or (XOR) operation.

10. The method of claim 1 , wherein the second bit is selected based on an offset between a first storage element of the first word line that stores the first bit and a second storage element of the first word line that stores the second bit.

11. The method of claim 10 , wherein L indicates a number of storage elements of the first word line, wherein L is an integer that is greater than one, and wherein the offset corresponds to L/2.

12. The method of claim 1 , wherein the data storage device is embedded within the host device.

13. A data storage device comprising:

a non-volatile memory that includes a three-dimensional (3D) memory; and

a controller coupled to the non-volatile memory, wherein the controller is associated with operation of memory cells of the 3D memory and is configured to:

receive first data and second data from a host device;

write a first error-correcting code (ECC) codeword associated with the first data to a first word line of the non-volatile memory, Wherein the first ECC codeword includes a first bit and a second bit;

write a second ECC codeword associated with the second data to a second word line of the non-volatile memory, wherein the second ECC codeword includes a third bit and a fourth bit;

write parity information to a parity storage portion of the non-volatile memory, wherein the parity storage portion is distinct from the first word line and from the second word line, and wherein the parity information includes a parity bit that is based on the first bit, the second bit, the third bit, and the fourth bit; and

in response to occurrence of a write abort event, read the first bit using a first threshold to generate a first estimate of the first bit and to read the first bit using a second threshold to generate a second estimate of the first bit.

14. The data storage device of claim 13 , wherein the first ECC codeword corresponds to lower page data written to a multi-level cell (MLC) portion of the non-volatile memory, and wherein the parity storage portion corresponds to a single-level cell (SLC) portion of the non-volatile memory.

15. The data storage device of claim 13 , wherein the controller is further configured to determine whether the first estimate matches the second estimate and to determine that the first bit is likely to be uncorrupted by the write abort event in response to the first estimate matching the second estimate.

16. The data storage device of claim 13 , wherein the controller is further configured to read the second bit using the first threshold to generate a third estimate of the second bit and to read the second bit using the second threshold to generate a fourth estimate of the second bit.

17. The data storage device of claim 16 , wherein the controller is further configured to recover the first bit using the parity bit in response to determining that the third estimate matches the fourth estimate and in response to determining that the first estimate does not match the second estimate.

18. The data storage device of claim 17 , wherein the controller further includes an ECC engine, and wherein the controller is further configured to send the first ECC codeword to the ECC engine in response to determining that the first estimate does not match the second estimate and that the third estimate does not match the fourth estimate.

Assignments (5)
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 →
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0948 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2014
From: CHANDRASEKHAR, UDAY; HUANG, JIANMIN; SPROUSE, STEVEN; YANG, NIAN NILES; HU, XINDE
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 032973/0851 →
Continuity (2)
Continuation 14035529 · Sep 24, 2013
Related Publication 20150089325A1 · Mar 26, 2015