IP Library Granted Patent US 10,530,391
Granted Patent B2
US 10,530,391 · App. 15/662,158 · Granted Jan 7, 2020

Non-binary encoding for non-volatile memory

Inventors: Richard Leo Galbraith (Rochester, MN); Jonas Andrew Goode (Lake Forest, CA); Niranjay Ravindran (Rochester, MN)
Assignee: Western Digital Technologies, Inc.
H03M13/1171G06F11/1068G06F11/1072G11C29/52H03M13/1108H03M13/1111
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,530,391
App. No.
15/662,158
Granted
Jan 7, 2020
Kind
B2
Abstract

A data storage system and method are provided for storing data in non-volatile memory devices. Binary data is received for storage in a non-volatile memory device. The binary data is converted into non-binary data comprising base-X values, where X is an integer greater than two. The non-binary data is encoded to generate a codeword and the codeword is written to a wordline of the non-volatile memory device.

Claims (62)

1. A method, comprising:

receiving, from a write request from a host, binary data for storage in a non-volatile memory device;

converting, in response to the write request, the binary data into non-binary data for writing to the non-volatile memory device;

after converting the binary data into the non-binary data, encoding, the converted non-binary data using a non-binary encoding scheme, to generate a codeword, wherein a number base of the non-binary data is selected based on a number of program levels the non-volatile memory device is capable of programming;

writing the codeword to a wordline of the non-volatile memory device; and

reading the codeword from the wordline of the non-volatile memory device without a use of gray coding,

wherein reading the codeword from the wordline of the non-volatile memory device without the use of gray coding avoids a loss of cell-level information that results from the use of gray coding.

2. The method of claim 1 , wherein converting the binary data into non-binary data comprises converting base-two values of the binary data into base-X values, where X is an integer greater than two.

3. The method of claim 2 , wherein X is a non-power-of-two integer.

4. The method of claim 2 , wherein writing the codeword to the wordline of the non-volatile memory device comprises programming memory cells of the wordline to respective program levels selected from X available program levels based on values of the non-binary data.

5. The method of claim 1 , wherein encoding the converted non-binary data comprises generating a non-binary low-density parity-check (LDPC) code, and

wherein the generated codeword comprises the non-binary data and the non-binary LDPC code.

6. The method of claim 1 , further comprising:

decoding the codeword to retrieve the non-binary data; and

converting the non-binary data back into the binary data.

7. A data storage system, comprising:

a plurality of non-volatile memory devices; and

a controller configured to:

receive, from a write request from a host, first binary data for storage in the data storage system;

convert, in response to the write request, base-two values of the first binary data into first non-binary data comprising base-X values to write to a first non-volatile memory device of the plurality of non-volatile memory devices, where X is an integer greater than two;

after converting the first binary data into the first non-binary data, encode the converted first non-binary data using a non-binary encoding scheme, to generate a first codeword, wherein the controller is configured to select X based on a number of program levels that a first non-volatile memory device of the plurality of non-volatile memory devices is capable of programming;

write the first codeword to a wordline of the first non-volatile memory device of the plurality of non-volatile memory devices; and

read the first codeword from the wordline of the first non-volatile memory device of the plurality of non-volatile memory devices without a use of gray coding,

wherein the controller is configured to avoid a loss of cell-level information that results from the use of gray coding.

8. The data storage system of claim 7 , wherein the controller is further configured to write the first codeword to the wordline of the first non-volatile memory device by programming memory cells of the wordline to respective program levels selected from X available program levels based on values of the first non-binary data.

9. The data storage system of claim 7 , wherein the controller is further configured to encode the converted first non-binary data by generating a first non-binary low-density parity-check (LDPC) code, and

wherein the generated first codeword comprises the first non-binary data and the first LDPC code.

10. The data storage system of claim 7 , wherein the controller is further configured to:

receive second binary data for storage in the data storage system;

convert base-two values of the second binary data into second non-binary data comprising base-Y values, where Y is an integer greater than two and is different from X;

encode the second non-binary data to generate a second codeword; and

write the second codeword to a wordline of a second non-volatile memory device of the plurality of non-volatile memory devices.

11. The data storage system of claim 10 , wherein the controller is further configured to write the second codeword to the wordline of the second non-volatile memory device by programming memory cells of the wordline to respective program levels selected from Y available program levels based on values of the second non-binary data.

12. The data storage system of claim 7 , wherein the controller is further configured to:

decode the first codeword to retrieve the first non-binary data; and

convert the first non-binary data back into the first binary data.

13. A processor-readable medium encoded with instructions that, when executed by a processor, perform a method comprising:

associating a non-volatile memory device with a value X based on a property of the non-volatile memory device, wherein X is an integer greater than two;

receiving, from a write request from a host, binary data for storage in the non-volatile memory device;

converting, in response to the write request, base-two values of the binary data into non-binary data comprising base-X values for writing to the non-volatile memory device;

after converting the binary data into the non-binary data, encoding the converted non-binary data using a non-binary encoding scheme, to generate a codeword, wherein X is selected based on a number of program levels the non-volatile memory device is capable of programming;

writing the codeword to a wordline of the non-volatile memory device; and

reading the codeword from the wordline of the non-volatile memory device without a use of gray coding,

wherein reading the codeword from the wordline of the non-volatile memory device without the use of gray coding avoids a loss of cell-level information that results from the use of gray coding.

14. The processor-readable medium of claim 13 , wherein the property of the non-volatile memory device comprises a program-erase count.

15. The processor-readable medium of claim 13 , wherein the property of the non-volatile memory device comprises an read error count.

16. The processor-readable medium of claim 13 , wherein encoding the converted non-binary data to generate the codeword comprises generating a non-binary low-density parity-check (LDPC) code, and wherein the generated codeword comprises the non-binary data and the LDPC code.

17. The processor-readable medium of claim 13 , wherein writing the codeword to the wordline of the non-volatile memory device comprises programming memory cells of the wordline to respective program levels selected from X available program levels based on values of the non-binary data.

18. The processor-readable medium of claim 13 , wherein the method further comprises:

decoding the codeword to retrieve the non-binary data; and

converting the non-binary data back into the binary data.

19. A data storage system, comprising:

a non-volatile memory device;

means for receiving, from a write request from a host, binary data for storage in the non-volatile memory device;

means for converting, in response to the write request, base-two values of the binary data into non-binary data comprising base-X values, where X is an integer greater than two for writing to the non-volatile memory device;

after converting the binary data into the non-binary data, means for encoding the converted non-binary data using a non-binary encoding scheme, to generate a codeword, wherein the means for encoding comprises means for selecting X based on based on a number of program levels the non-volatile memory device is capable of programming;

means for writing the codeword to a wordline of the non-volatile memory device; and

means for reading the codeword from the wordline of the non-volatile memory device without the use of gray coding,

wherein the means for reading the codeword comprises means for avoiding a loss of cell-level information resulting from the use of gray coding.

20. The data storage system of claim 19 , further comprising:

means for decoding the codeword to retrieve the non-binary data; and

means for converting the non-binary data back to the binary data.

Assignments (10)
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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2017
From: GALBRAITH, RICHARD LEO; GOODE, JONAS ANDREW; RAVINDRAN, NIRANJAY
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 043172/0166 →
Continuity (2)
Provisional Application 62368953 · Jul 29, 2016
Related Publication 20180034479A1 · Feb 1, 2018