IP Library › Granted Patent US 10,116,336
Granted Patent B2
US 10,116,336 · App. 14/304,277 · Granted Oct 30, 2018

Error correcting code adjustment for a data storage device

Inventors: Xinde Hu (San Diego, CA); Manuel Antonio D'Abreu (El Dorado Hills, CA)
Assignee: SanDisk Technologies LLC
H03M13/353G06F11/1048H03M13/3738
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 10,116,336
App. No.
14/304,277
Granted
Oct 30, 2018
Kind
B2
Abstract

A data storage device includes a non-volatile memory and a controller operationally coupled to the non-volatile memory. The controller is configured to access information stored at the non-volatile memory. The information includes a user data portion and an error correcting code (ECC) portion corresponding to the user data portion. The controller is further configured to modify the ECC portion in response to an error rate associated with the information exceeding a threshold. The one or more ECC parameters are modified without erasing or re-programming the user data portion.

Claims (26)

1. A data storage device comprising:

a non-volatile memory; and

a controller coupled to the non-volatile memory, the controller configured to:

initiate a read operation to access information of a codeword stored in a word line on a silicon substrate of the non-volatile memory, the codeword comprising a user data portion and an error correcting code (ECC) portion, wherein the controller includes an ECC distributor configured to statistically distribute positions of ECC portions of codewords relative to positions of user data portions;

generate, during a decoding process associated with the read operation, a modified ECC portion corresponding to the user data portion in response to an error rate associated with the information satisfying a threshold; and

write at least one bit of the modified ECC portion to a location at the non-volatile memory, wherein a physical position of the location relative to the user data portion is set to substantially equally program storage elements at the non-volatile memory based on the statistically distributed positions of ECC portions of codewords relative to positions of user data portions.

2. The data storage device of claim 1 , wherein the controller is further configured to adjust an ECC scheme used to encode the user data portion, adjust a number of bits used to encode the user data portion, or a combination thereof, and wherein the controller is further configured to generate the modified ECC portion by re-encoding the user data portion in accordance with one or more of the adjusted ECC scheme or the adjusted number of bits and to select the location according to an ECC portion distribution scheme to equally program the storage elements.

3. The data storage device of claim 1 , wherein the controller is further configured to initiate the read operation in response to a request for read access, wherein the ECC portion includes Bose-Chaudhuri-Hocquenghem (BCH) information, wherein the modified ECC portion includes low-density parity check (LDPC) information, and wherein writing the modified ECC portion includes overwriting the BCH information with the LDPC information.

4. The data storage device of claim 1 , wherein the controller is further configured to generate the modified ECC portion by re-encoding the user data portion in accordance with a decreased code rate as compared to a code rate used to generate the ECC portion.

5. The data storage device of claim 1 , wherein the codeword includes a bit of the user data portion adjacent to a bit of the ECC portion, and wherein the controller is further configured to:

write part of the modified ECC portion to a different location than the location of the ECC portion, the different location comprising a different word line or a different erase group.

6. The data storage device of claim 1 , wherein the error rate is indicated by a failure bit count (FBC) associated with the information, and wherein the non-volatile memory includes a resistive random access memory (ReRAM).

7. The data storage device of claim 1 , wherein the positions of ECC portions of codewords are physical positions.

8. The data storage device of claim 1 , wherein the controller is further configured to determine a write position of one or more bits of the modified ECC portion relative to a position of user data of the codeword, the write position determined based on a program/erase (P/E) cycle count.

9. The data storage device of claim 1 , wherein the controller is further configured to write the modified ECC portion by sending a partial rewrite in-place command to the non-volatile memory, and wherein the partial rewrite in-place command includes the modified ECC portion and does not include the user data portion.

10. The data storage device of claim 1 , wherein the non-volatile memory has a three-dimensional (3D) configuration that is monolithically formed in one or more physical levels of arrays of memory cells having an active area above the silicon substrate, and further comprising circuitry associated with operation of the memory cells.

11. The data storage device of claim 1 , wherein the controller is further configured to receive the information from read/write circuitry of the non-volatile memory, wherein the controller includes a decoder configured to perform the decoding process, wherein the error rate is determined based on the decoding process, and wherein the controller is further configured to modify one or more ECC parameters in response to the error rate satisfying the threshold and to encode the user data portion in accordance with the one or more modified ECC parameters to generate the modified ECC portion during the decoding process.

12. An apparatus comprising:

means for storing data; and

means for controlling the means for storing data, the means for controlling configured to:

initiate a read operation to access information of a codeword stored in a word line on a silicon substrate of the means for storing data, the codeword comprising a bit of a user data portion adjacent to another bit of an error correcting code (ECC) portion, wherein the means for controlling includes an ECC distributor configured to statistically distribute positions of ECC portions of codewords relative to positions of user data portions;

generate, during a decoding process associated with the read operation, a modified ECC portion corresponding to the user data portion in response to an error rate associated with the information satisfying a threshold; and

write at least one bit of the modified ECC portion to a location at the means for storing data other than a bit location of the ECC portion, wherein a physical position of the location relative to the user data portion is determined, by the means for controlling, so that storage elements of the means for storing data are substantially equally programmed based on the statistically distributed positions of ECC portions of codewords relative to positions of user data portions.

13. The apparatus of claim 12 , wherein the means for controlling is further configured to:

write part of the modified ECC portion to a different location than the ECC portion, the different location comprising a different word line or a different erase group.

14. The apparatus of claim 12 , wherein the means for controlling includes means for statistically determining positions in codewords of ECC portions relative to user data portions.

Assignments (2)
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0807 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 13, 2014
From: HU, XINDE; D'ABREU, MANUEL ANTONIO
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 033100/0192 →
Continuity (1)
Related Publication 20150363262A1 · Dec 17, 2015
Cited By (1)
US 12,493,514