IP Library Granted Patent US 10,007,573
Granted Patent B2
US 10,007,573 · App. 14/876,069 · Granted Jun 26, 2018

Preferred state encoding in non-volatile memories

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,007,573
App. No.
14/876,069
Granted
Jun 26, 2018
Kind
B2
Abstract

The invention pertains to non-volatile memory devices, and more particularly to advantageously encoding data in non-volatile devices in a flexible manner by both NVM manufacturers and NVM users. Multiple methods of preferred state encoding (PSE) and/or error correction code (ECC) encoding may be used in different pages or blocks in the same NVM device for different purposes which may be dependent on the nature of the data to be stored.

Claims (81)

1. A method for encoding data in a non-volatile memory (NVM) device, wherein the NVM device comprises a memory array having a plurality of pages, a page buffer coupled to the memory array, and a data input/output interface coupled to the page buffer, the method comprising the steps of:

(A) selecting a first page in the memory array for programming;

(B) storing first user write data from the data input/output interface into the page buffer;

(C) applying preferred state encoding (PSE) to the first user write data to create first PSE encoded write data and storing the first PSE encoded write data in the page buffer according to a first allocation map;

(D) applying error correction encoding to the first PSE encoded write data to create first error correction code (ECC) encoded write data and storing the first ECC encoded write data in the page buffer according to the first allocation map; and

(E) programming the first contents of the page buffer into the selected first page in the memory array.

2. The method of claim 1 , wherein the NVM device is a NAND flash memory integrated circuit.

3. The method of claim 1 , comprising the further steps of:

(F) storing user metadata into the page buffer; and

(G) applying error correction encoding to at least a portion of the metadata to create ECC encoded metadata and storing the ECC encoded metadata in the page buffer.

4. The method of claim 3 ,

wherein each page in the memory array, including the selected first page, comprises a main area and a spare area;

wherein the page buffer comprises a main area corresponding to the selected page main area and a spare area corresponding to the selected page spare area;

wherein the first PSE encoded write data created in step (C) comprises a portion corresponding to the first user write data and a portion of generated first PSE overhead bits;

wherein the first ECC encoded write data created in step (D) comprises a portion corresponding to the first user write data, a portion corresponding to the first PSE overhead bits, and a portion of generated first ECC overhead bits;

wherein the portion of the first ECC encoded write data corresponding to the first user write data is stored in the page buffer main area;

wherein the portion of the ECC encoded write data corresponding to the first PSE overhead bits is stored in the page buffer spare area;

wherein the portion of the first ECC encoded write data corresponding to the first ECC overhead bits is stored in the page buffer spare area; and

wherein during step (E), data in the page buffer main area is programmed into the first selected page main area, and data in the page buffer spare area is programmed into the first selected page spare area.

5. The method of claim 4 , the method comprising the steps of:

(A′) selecting a second page in the memory array for programming;

(B′) storing second user write data from the data input/output interface into the page buffer;

(C′) applying preferred state encoding (PSE) to the second user write data to create second PSE encoded write data and storing the second PSE encoded write data in the page buffer according to a second allocation map different from the first allocation map;

(D′) applying error correction encoding to the second PSE encoded write data to create second error correction code (ECC) encoded write data and storing the second ECC encoded write data in the page buffer according to the second allocation map; and

(E′) programming the second contents of the page buffer into the selected second page in the memory array.

6. The method of claim 5 , comprising the further steps of:

(F′) storing user metadata into the page buffer; and

(G′) applying error correction encoding to at least a portion of the metadata to create ECC encoded metadata and storing the ECC encoded metadata in the page buffer.

7. The method of claim 6 , wherein the NVM device is a NAND flash memory integrated circuit.

8. The method of claim 5 , wherein the NVM device is a NAND flash memory integrated circuit.

9. The method of claim 4 , wherein steps (C) and (D) are managed in a control circuit, and wherein the control circuit manages the further steps:

(H) determining one of a plurality of ECC encoding methods to apply to the user write data in step (D); and

(J) determining one of a plurality of PSE encoding methods to apply to the user write data in step (C).

10. The method of claim 9 , wherein the control circuit is one of the group comprising: (i) a central processing unit, (ii) a microcontroller, (iii) a processor, (iv) a state machine, (v) a memory controller, (vi) a memory interface, and (vii) control logic.

11. A method for encoding data in a non-volatile memory (NVM) device, wherein the NVM device comprises a memory array having a plurality of pages, a page buffer coupled to the memory array, and a data input/output interface coupled to the page buffer, the method comprising the steps of:

(A) selecting a first page in the memory array for programming;

(B) determining a first allocation map for the first contents of the page buffer;

(C) storing first user write data from the data input/output interface into the page buffer according to the first allocation map;

(D) applying preferred state encoding (PSE) to the first user write data to create first PSE encoded write data and storing the first PSE encoded write data in the page buffer according to the first allocation map;

(E) applying error correction encoding to the first PSE encoded write data to create first error correction code (ECC) encoded write data and storing the first ECC encoded write data in the page buffer according to the first allocation map; and

(F) programming the first contents of the page buffer into the selected first page in the memory array.

12. The method of claim 11 , wherein:

the NVM device comprises one of the group comprising: (i) a single integrated circuit, (ii) a plurality of integrated circuits, and (iii) a solid state drive.

13. The method of claim 12 , wherein:

(i) the single integrated circuit is a NAND flash device;

(ii) the plurality of integrated circuits comprises a plurality of NAND flash devices; and

(iii) the solid state drive comprises at least one NAND flash device.

14. The method of claim 11 , the method comprising the further steps of:

(G) storing metadata into the page buffer according to the first allocation map; and

(H) applying error correction encoding to at least a portion of the metadata to create ECC encoded metadata and storing the ECC encoded metadata in the page buffer according to the first allocation map.

15. The method of claim 14 , wherein:

the NVM device comprises one of the group comprising: (i) a single integrated circuit, (ii) a plurality of integrated circuits, and (iii) a solid state drive.

16. The method of claim 15 , wherein:

(i) the single integrated circuit is a NAND flash device,

(ii) the plurality of integrated circuits comprises a plurality of NAND flash devices, and

(iii) the solid state drive comprises at least one NAND flash device.

17. The method of claim 11 , the method comprising the further steps of:

(A′) selecting a second page in the memory array for programming;

(B′) determining a second allocation map different from the first allocation map for the second contents of the page buffer;

(C′) storing second user write data from the data input/output interface into the page buffer according to the second allocation map;

(D′) applying preferred state encoding (PSE) to the second user write data to create second PSE encoded write data and storing the second PSE encoded write data in the page buffer according to the second allocation map;

(E′) applying error correction encoding to the second PSE encoded write data to create second error correction code (ECC) encoded write data and storing the second ECC encoded write data in the page buffer according to the second allocation map; and

(F′) programming the second contents of the page buffer into the selected second page in the memory array.

18. The method of claim 17 , wherein:

the NVM device comprises one of the group comprising: (i) a single integrated circuit, (ii) a plurality of integrated circuits, and (iii) a solid state drive.

19. The method of claim 18 , wherein:

(i) the single integrated circuit is a NAND flash device,

(ii) the plurality of integrated circuits comprises a plurality of NAND flash devices, and

(iii) the solid state drive comprises at least one NAND flash device.

20. The method of claim 17 , the method comprising the further steps of:

(G′) storing user metadata into the page buffer according to the first allocation map; and

(H′) applying error correction encoding to at least a portion of the metadata to create ECC encoded metadata and storing the ECC encoded metadata in the page buffer according to the second allocation map.

21. The method of claim 20 , wherein:

the NVM device comprises one of the group comprising: (i) a single integrated circuit, (ii) a plurality of integrated circuits, and (iii) a solid state drive.

22. The method of claim 21 , wherein:

(i) the single integrated circuit is a NAND flash device,

(ii) the plurality of integrated circuits comprises a plurality of NAND flash devices, and

(iii) the solid state drive comprises at least one NAND flash device.

23. The method of claim 17 , wherein the second PSE encoded write data has a different PSE word length than the first PSE encoded write data.

24. The method of claim 17 , wherein the second ECC encoded write data is encoded using a different ECC than the first ECC encoded write data.

25. The method of claim 24 , wherein the second PSE encoded write data has a different PSE word length than the first PSE encoded write data.

Assignments (4)
CHANGE OF NAME Recorded Nov 24, 2025
From: INVENSAS CORPORATION
To: INVENSAS LLC
Reel/Frame 073508/0758 →
CHANGE OF NAME Recorded Nov 24, 2025
From: INVENSAS LLC
To: ADEIA SEMICONDUCTOR TECHNOLOGIES LLC
Reel/Frame 073508/0807 →
SECURITY INTEREST Recorded Jun 1, 2020
From: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS INC.; VEVEO, INC.; INVENSAS CORPORATION; INVENSAS BONDING TECHNOLOGIES, INC.; TESSERA, INC.; TESSERA ADVANCED TECHNOLOGIES, INC.; DTS, INC.; PHORUS, INC.; IBIQUITY DIGITAL CORPORATION
To: BANK OF AMERICA, N.A.
Reel/Frame 053468/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 6, 2015
From: PLANTS, WILLIAM C.
To: INVENSAS CORPORATION
Reel/Frame 036737/0313 →