IP Library Granted Patent US 10,095,424
Granted Patent B2
US 10,095,424 · App. 15/228,729 · Granted Oct 9, 2018

Apparatus and method for programming non-volatile memory using a multi-cell storage cell group

Inventors: Wei Wu (Portland, OR); Yi Zou (Portland, OR); Jawad B. Khan (Cornelius, OR); Xin Guo (San Jose, CA)
Assignee: INTEL CORPORATION
G06F3/0616G06F3/0644G06F3/0688G06F12/1009G11C11/5628G11C11/5635G11C11/5642G06F2212/1036G06F2212/2022G06F2212/7201
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,095,424
App. No.
15/228,729
Granted
Oct 9, 2018
Kind
B2
Abstract

Provided are an apparatus, method, and system for programming a multi-cell storage cell group. A non-volatile memory has storage cells. Each storage cell is programmed with information using a plurality of threshold voltage levels and each storage cell is programmed from bits from a plurality of pages. A memory controller is configured to program the storage cells and to organize the storage cells in the non-volatile memory into storage cell groups. Each storage cell group stores a number of bits of information and each of the storage cells in each of the storage cell groups is programmed with the plurality of threshold voltage levels. The memory controller selects bits from the pages to write for one storage cell group and determines at least one threshold voltage level to use for each of the storage cells in the storage cell group to program the selected bits in the storage cell group.

Claims (72)

1. An apparatus, comprising:

a non-volatile memory having storage cells, wherein each storage cell is programmed with information using a plurality of threshold voltage levels, and wherein each storage cell is programmed from bits from a plurality of pages; and

a memory controller configured to program the storage cells and to:

organize the storage cells in the non-volatile memory into storage cell groups, wherein each storage cell group stores a number of bits of information, wherein each of the storage cells in each of the storage cell groups is programmed with the plurality of threshold voltage levels;

select bits from the pages to write for one storage cell group; and

determine at least one threshold voltage level to use for each of the storage cells in the storage cell group to program the selected bits in the storage cell group.

2. The apparatus of claim 1 , wherein the selected bits from the pages to write comprises the number of bits of information stored in each storage cell group, wherein all of the plurality of threshold voltage levels are used to program all possible bits determined from the pages.

3. The apparatus of claim 1 , wherein the plurality of threshold voltage levels comprises a first number of threshold voltage levels, wherein the number of bits of information stored in each of the storage cell groups comprises a first number of bits of information, wherein the number of bits selected from the pages comprises a second number of bits of information, wherein the second number of bits of information is less than the first number of bits of information, wherein the memory controller is further configured to:

operate in a translation mode using only a second number of threshold voltage levels to program the second number of bits of information in each of the storage cells of the storage cell groups, wherein the second number of threshold voltage levels is less than the first number of threshold voltage levels.

4. The apparatus of claim 3 , wherein the second number of threshold voltage levels comprises a lowest of the first number of threshold voltage levels.

5. The apparatus of claim 3 , wherein each multi-level cell comprises n bits and can be programmed into 2n separate states with 2n different threshold voltage levels, wherein the first number of threshold voltage levels comprises 2n, wherein the second number of threshold voltage levels comprises j threshold voltage levels, where j<2n, wherein each of the storage cell groups has p storage cells, wherein each storage cell group represents 2np states of information, wherein the first number of bits of information comprises m bits of information, where m=Log2(2np) bits of information, and wherein the second number of bits of information comprises k bits of information, where k<m and k is a largest integer less than or equal to Log2(jp).

6. The apparatus of claim 3 , wherein the memory controller is further to:

read a state of the storage cells in the storage cell group;

decode the read state into decoded bits having the first number of bits of information;

translate the decoded bits into translated bits having the second number of bits of information; and

return the translated bits of information.

7. The apparatus of claim 3 , wherein the memory controller is further to:

provide translation functions based on a truth table associating states of the second number of bits of information with a subset of states of the first number of bits of information, wherein the subset of states of the first number of bits of information are programmed using the second number of threshold voltage levels; and

use the translation functions to translate the second number of bits of information to the first number of bits of information to program in one of the storage cell groups and to translate a read first number of bits of information from one of the storage cell groups to the second number of bits of information.

8. The apparatus of claim 3 , wherein there are at least two significant bit sections of the second number of bits of information, wherein selecting bits from the pages for a current storage cell group comprises selecting each of the at least two significant bit sections from different pages from which the at least two significant bit sections were selected for a previous storage cell group.

9. The apparatus of claim 8 , wherein the memory controller is further to:

read the first number of bits of information from one of the storage cell groups;

translate the read first number of bits of information to a translated second number of bits of information; and

for each storage cell group, alternate writing the at least two significant bit sections of the translated second number of bits of information to different pages to which the at least two significant bit sections were written for a previous storage cell group.

10. The apparatus of claim 3 , wherein each of the storage cell groups comprises a storage cell pair of two storage cells, wherein the each of the storage cells stores two bits of information, wherein the first number of bits of information comprises four bits, wherein the second number of bits comprises three bits, wherein the selected bits for each storage cell group are selected from a first page and a second page.

11. The apparatus of claim 10 , wherein the selecting the bits from the first page and the second page for a current storage cell group comprises selecting one most significant bit and two least significant bits from different of the first and second pages from which the most significant bit and the two least significant bits were selected for a previous storage cell group programmed before the current storage cell group is programmed.

12. A system, comprising:

a processor;

a bus, wherein the processor is coupled to the bus; and

a non-volatile memory having:

data in storage cells accessed by the processor over the bus, wherein each storage cell is programmed with information using a plurality of threshold voltage levels, and wherein each storage cell is programmed from bits from a plurality of pages; and

a memory controller configured to program the storage cells and to:

organize the storage cells in the non-volatile memory into storage cell groups, wherein each storage cell group stores a number of bits of information, wherein each of the storage cells in each of the storage cell groups is programmed with the plurality of threshold voltage levels;

select bits from the pages to write for one storage cell group; and

determine at least one threshold voltage level to use for each of the storage cells in the storage cell group to program the selected bits in the storage cell group.

13. The system of claim 12 , wherein the plurality of threshold voltage levels comprises a first number of threshold voltage levels, wherein the number of bits of information stored in each of the storage cell groups comprises a first number of bits of information, wherein the number of bits selected from the pages comprises a second number of bits of information, wherein the second number of bits of information is less than the first number of bits of information, wherein the memory controller is further configured to:

operate in a translation mode using only a second number of threshold voltage levels to program the second number of bits of information in each of the storage cells of the storage cell groups, wherein the second number of threshold voltage levels is less than the first number of threshold voltage levels.

14. The system of claim 13 , wherein the second number of threshold voltage levels comprises a lowest of the first number of threshold voltage levels.

15. The system of claim 13 , wherein the memory controller is further to:

read a state of the storage cells in the storage cell group;

decode the read state into decoded bits having the first number of bits of information;

translate the decoded bits into translated bits having the second number of bits of information; and

return the translated bits of information.

16. The system of claim 13 , wherein the memory controller is further to:

provide translation functions based on a truth table associating states of the second number of bits of information with a subset of states of the first number of bits of information, wherein the subset of states of the first number of bits of information are programmed using the second number of threshold voltage levels; and

use the translation functions to translate the second number of bits of information to the first number of bits of information to program in one of the storage cell groups and to translate a read first number of bits of information from one of the storage cell groups to the second number of bits of information.

17. The system of claim 13 , wherein there are at least two significant bit sections of the second number of bits of information, wherein selecting bits from the pages for a current storage cell group comprises selecting each of the at least two significant bit sections from different pages from which the at least two significant bit sections were selected for a previous storage cell group.

18. The system of claim 17 , wherein the memory controller is further to:

read the first number of bits of information from one of the storage cell groups;

translate the read first number of bits of information to a translated second number of bits of information; and

for each storage cell group, alternate writing the at least two significant bit sections of the translated second number of bits of information to different pages to which the at least two significant bit sections were written for a previous storage cell group.

19. A method for managing a non-volatile memory, comprising:

programming storage cells in the non-volatile memory with information using a plurality of threshold voltage levels, and wherein each storage cell is programmed from bits from a plurality of pages;

organizing the storage cells in the non-volatile memory into storage cell groups, wherein each storage cell group stores a number of bits of information, wherein each of the storage cells in each of the storage cell groups is programmed with the plurality of threshold voltage levels;

selecting bits from the pages to write for one storage cell group; and

determining at least one threshold voltage level to use for each of the storage cells in the storage cell group to program the selected bits in the storage cell group.

20. The method of claim 19 , wherein the plurality of threshold voltage levels comprises a first number of threshold voltage levels, wherein the number of bits of information stored in each of the storage cell groups comprises a first number of bits of information, wherein the number of bits selected from the pages comprises a second number of bits of information, wherein the second number of bits of information is less than the first number of bits of information, further comprising:

operating in a translation mode using only a second number of threshold voltage levels to program the second number of bits of information in each of the storage cells of the storage cell groups, wherein the second number of threshold voltage levels is less than the first number of threshold voltage levels.

21. The method of claim 20 , wherein the second number of threshold voltage levels comprises a lowest of the first number of threshold voltage levels.

22. The method of claim 20 , further comprising:

reading a state of the storage cells in the storage cell group;

decoding the read state into decoded bits having the first number of bits of information;

translating the decoded bits into translated bits having the second number of bits of information; and

returning the translated bits of information.

23. The method of claim 20 , further comprising:

providing translation functions based on a truth table associating states of the second number of bits of information with a subset of states of the first number of bits of information, wherein the subset of states of the first number of bits of information are programmed using the second number of threshold voltage levels; and

using the translation functions to translate the second number of bits of information to the first number of bits of information to program in one of the storage cell groups and to translate a read first number of bits of information from one of the storage cell groups to the second number of bits of information.

24. The method of claim 20 , wherein there are at least two significant bit sections of the second number of bits of information, wherein selecting bits from the pages for a current storage cell group comprises selecting each of the at least two significant bit sections from different pages from which the at least two significant bit sections were selected for a previous storage cell group.

25. The method of claim 24 , further comprising:

reading the first number of bits of information from one of the storage cell groups;

translating the read first number of bits of information to a translated second number of bits of information; and

for each storage cell group, alternating writing the at least two significant bit sections of the translated second number of bits of information to different pages to which the at least two significant bit sections were written for a previous storage cell group.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2023
From: INTEL CORPORATION
To: SK HYNIX NAND PRODUCT SOLUTIONS CORP.
Reel/Frame 063815/0490 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2016
From: WU, WEI; ZOU, YI; KHAN, JAWAD B; GUO, XIN
To: INTEL CORPORATION
Reel/Frame 039967/0596 →
Continuity (1)
Related Publication 20180039429A1 · Feb 8, 2018