IP Library Granted Patent US 8,305,812
Granted Patent B2
US 8,305,812 · App. 12/769,208 · Granted Nov 6, 2012

Flash memory module and method for programming a page of flash memory cells

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 8,305,812
App. No.
12/769,208
Granted
Nov 6, 2012
Kind
B2
Abstract

A flash memory module and a method for programming a page of flash memory cells, the method includes: receiving a cycle count indication indicative of a number of program cycles of the page of memory cells; setting a value of a programming parameter of a programming operation based on the cycle count indication; and programming at least one flash memory cell of the page of flash memory cells by performing the programming operation.

Claims (103)

1. A method for programming a page of flash memory cells, the method comprises:

receiving a cycle count indication indicative of a number of program cycles of the page of memory cells;

setting a value of at least one flash memory programming parameter of a programming operation based on the cycle count indication; and

programming at least one flash memory cell of the page of flash memory cells by performing the programming operation; wherein the programming parameter is a size of a programming step of a sequence of programming pulses that are supplied to a flash memory cell during the programming operation.

2. A method for programming a page of flash memory cells, the method comprises:

receiving a cycle count indication indicative of a number of program cycles of the page of memory cells;

setting a value of at least one flash memory programming parameter of a programming operation based on the cycle count indication; and programming at least one flash memory cell of the page of flash memory cells by performing the programming operation; wherein the programming parameter is a target threshold voltage level of a flash memory cell that represents a target logic value; and

setting the target threshold voltage level based on a mapping between cycle count indication ranges and target voltage levels.

3. A method for programming a page of flash memory cells, the method comprises:

receiving a cycle count indication indicative of a number of program cycles of the page of memory cells;

setting a value of at least one flash memory programming parameter of a programming operation based on the cycle count indication; and programming at least one flash memory cell of the page of flash memory cells by performing the programming operation; wherein the programming parameter is a threshold voltage window that comprises multiple target voltage levels of a flash memory cell, the multiple target voltage levels represent multiple target logic values.

4. The method according to claim 3 , wherein an initial threshold voltage window that is set at a beginning of life of the page of flash memory cells is smaller than half of a final threshold voltage window that is set at an end of life of the page of flash memory cells.

5. A method for programming a page of flash memory cells, the method comprises:

receiving a cycle count indication indicative of a number of program cycles of the page of memory cells;

setting a value of at least one flash memory programming parameter of a programming operation based on the cycle count indication; and

programming at least one flash memory cell of the page of flash memory cells by performing the programming operation;

setting a value of at least one erase parameter of an erase operation based on the cycle count indication; and

erasing at least one flash memory cell of the page of flash memory cells by performing the erase operation.

6. A method for programming a page of flash memory cells, the method comprises:

receiving a cycle count indication indicative of a number of program cycles of the page of memory cells;

setting a value of at least one flash memory programming parameter of a programming operation based on the cycle count indication; and

programming at least one flash memory cell of the page of flash memory cells by performing the programming operation;

receiving distribution information that is indicative of a distribution of actual threshold voltages of flash memory cells of the page of flash memory cells; wherein the setting of the value of the programming parameter is further based on the distribution information.

7. A method for programming a page of flash memory cells, the method comprises:

receiving a cycle count indication indicative of a number of program cycles of the page of memory cells;

setting a value of at least one flash memory programming parameter of a programming operation based on the cycle count indication; and

programming at least one flash memory cell of the page of flash memory cells by performing the programming operation;

receiving distribution information that is indicative of a distribution of actual threshold voltages of flash memory cells of the page of flash memory cells;

applying a statistical retention model on the distribution information to provide an estimated distribution information; and

setting the value of the programming parameter based on the estimated distribution information and on the cycle count indication.

8. The method according to claim 7 comprising repeating the stages of receiving distribution information, applying a statistical retention model, setting the value of the programming parameter and programming the at least one flash memory cell until reaching a desired distribution of threshold voltages of flash memory cells.

9. The method according to claim 7 , wherein the programming parameter is a size of a programming step of a sequence of programming pulses that are supplied to a flash memory cell during the programming operation.

10. The method according to claim 7 , wherein the programming parameter is a value of a first programming pulse out of a sequence of programming pulses that are supplied to a flash memory cell during the programming operation of the flash memory cell.

11. The method according to claim 7 , wherein the programming parameter is a target threshold voltage level of a flash memory cell that represents a target logic value.

12. The method according to claim 7 , wherein the estimated distribution information is received at a first point in time and is indicative of an estimated distribution of threshold voltages of flash memory cells of the page of flash memory cells at a second point in time that follows the first point in time; wherein the method comprises:

receiving updated distribution information indicative of a distribution of actual threshold voltages of flash memory cells of the page of flash memory cells at the second point in time; and

updating the statistical retention model based on a difference between the estimated distribution information and the updated distribution information.

13. A method for programming a page of flash memory cells, the method comprises:

receiving a cycle count indication indicative of a number of program cycles of the page of memory cells;

setting a value of at least one flash memory programming parameter of a programming operation based on the cycle count indication; and

programming at least one flash memory cell of the page of flash memory cells by performing the programming operation;

receiving distribution information that is indicative of a distribution of actual threshold voltages of flash memory cells of the page of flash memory cells;

determining a distribution of errors among different target voltage levels; and

re-programming the page of flash memory cells if the level of uniformity of the distribution is below a threshold.

14. A method for programming a page of flash memory cells, the method comprises:

receiving a cycle count indication indicative of a number of program cycles of the page of memory cells;

setting a value of at least one flash memory programming parameter of a programming operation based on the cycle count indication; and

programming at least one flash memory cell of the page of flash memory cells by performing the programming operation;

receiving distribution information that is indicative of a distribution of actual threshold voltages of flash memory cells of the page of flash memory cells;

estimating a distribution of threshold voltages of flash memory cell at an end of life of the page of flash memory cells to provide an estimated distribution information; and

setting of the value of the programming parameter based on the estimated distribution information and on the cycle count indication.

15. A flash memory module, comprising:

a flash memory unit that comprises at least one page of flash memory cells; and a controller, for receiving a cycle count indication indicative of a number of program cycles of the page of memory cells, for setting a value of a programming parameter of a programming operation based on the cycle count indication; and for programming at least one flash memory cell of the page of flash memory cells by performing the programming operation; wherein the programming parameter is a size of a programming step of a sequence of programming pulses that are supplied to a flash memory cell during the programming operation.

16. A flash memory module, comprising:

a flash memory unit that comprises at least one page of flash memory cells; and

a controller, for receiving a cycle count indication indicative of a number of program cycles of the page of memory cells, for setting a value of a programming parameter of a programming operation based on the cycle count indication; and for programming at least one flash memory cell of the page of flash memory cells by performing the programming operation: wherein the controller is configured to set the programming parameter is a target threshold voltage level of a flash memory cell that represents a target logic value;

wherein the controller is configured to increase a target threshold voltage level as a result of an increase in the number of program cycles.

17. A flash memory module, comprising:

a flash memory unit that comprises at least one page of flash memory cells; and

a controller, for receiving a cycle count indication indicative of a number of program cycles of the page of memory cells, for setting a value of a programming parameter of a programming operation based on the cycle count indication; and for programming at least one flash memory cell of the page of flash memory cells by performing the programming operation; wherein the controller is configured to set the programming parameter is a target threshold voltage level of a flash memory cell that represents a target logic value;

wherein the controller is configured to set the target threshold voltage level based on a mapping between cycle count indication ranges and target voltage levels.

18. A flash memory module, comprising:

a flash memory unit that comprises at least one page of flash memory cells; and

a controller, for receiving a cycle count indication indicative of a number of program cycles of the page of memory cells, for setting a value of a programming parameter of a programming operation based on the cycle count indication; and for programming at least one flash memory cell of the page of flash memory cells by performing the programming operation;

wherein the programming parameter is a threshold voltage window that comprises multiple target voltage levels of a flash memory cell that represent multiple target logic values.

19. The flash memory module according to claim 18 , wherein an initial threshold voltage window that is set by the controller at a beginning of life of the page of flash memory cells is smaller than half of a final threshold voltage window that is set by the controller at an end of life of the page of flash memory cells.

20. A flash memory module, comprising:

a flash memory unit that comprises at least one page of flash memory cells; and

a controller, for receiving a cycle count indication indicative of a number of program cycles of the page of memory cells, for setting a value of a programming parameter of a programming operation based on the cycle count indication; and for programming at least one flash memory cell of the page of flash memory cells by performing the programming operation; wherein the controller is configured to;

set a value of at least one erase parameter of an erase operation based on the cycle count indication; and

erase at least one flash memory cell of the page of flash memory cells by performing the erase operation.

21. A flash memory module, comprising:

a flash memory unit that comprises at least one page of flash memory cells; and

a controller, for receiving a cycle count indication indicative of a number of program cycles of the page of memory cells, for setting a value of a programming parameter of a programming operation based on the cycle count indication; and for programming at least one flash memory cell of the page of flash memory cells by performing the programming operation; wherein the controller is configured to:

receive distribution information that is indicative of a distribution of actual threshold voltages of flash memory cells of the page of flash memory cells; and

set of the value of the programming parameter is further based on the distribution information.

22. A flash memory module, comprising:

a flash memory unit that comprises at least one page of flash memory cells; and

a controller, for receiving a cycle count indication indicative of a number of program cycles of the page of memory cells, for setting a value of a programming parameter of a programming operation based on the cycle count indication; and for programming at least one flash memory cell of the page of flash memory cells by performing the programming operation;

wherein the controller is configured to:

receive distribution information that is indicative of a distribution of actual threshold voltages of flash memory cells of the page of flash memory cells;

apply a statistical retention model on the distribution information to provide an estimated distribution information; and

set the value of the programming parameter based on the estimated distribution information and on the cycle count indication.

23. The flash memory module according to claim 22 wherein the controller is configured to repeat a receiving of distribution information, an applying of a statistical retention model, a setting of the value of the programming parameter and programming the at least one flash memory cell until reaching a desired distribution of threshold voltages of flash memory cells.

24. The flash memory module according to claim 22 , wherein the programming parameter is a size of a programming step of a sequence of programming pulses that are supplied to a flash memory cell during the programming operation.

25. The flash memory module according to claim 22 , wherein the programming parameter is a value of a first programming pulse out of a sequence of programming pulses that are supplied to a flash memory cell during the programming operation of the flash memory cell.

26. The flash memory module according to claim 22 , wherein the programming parameter is a target threshold voltage level of a flash memory cell that represents a target logic value.

27. The flash memory module according to claim 22 , wherein the estimated distribution information is received by the controller at a first point in time and is indicative of an estimated distribution of threshold voltages of flash memory cells of the page of flash memory cells at a second point in time that follows the first point in time;

wherein the controller is further configured to receive updated distribution information indicative of a distribution of actual threshold voltages of flash memory cells of the page of flash memory cells at the second point in time, and update the statistical retention model based on a difference between the estimated distribution information and the updated distribution information.

28. A flash memory module, comprising:

a flash memory unit that comprises at least one page of flash memory cells; and

a controller, for receiving a cycle count indication indicative of a number of program cycles of the page of memory cells, for setting a value of a programming parameter of a programming operation based on the cycle count indication; and for programming at least one flash memory cell of the page of flash memory cells by performing the programming operation;

wherein the controller is configured to:

receive distribution information that is indicative of a distribution of actual threshold voltages of flash memory cells of the page of flash memory cells;

determine a level of uniformity of errors among different target voltage levels; and

re-program the page of flash memory cells if the level of uniformity is lower than a threshold.

29. A flash memory module, comprising:

a flash memory unit that comprises at least one page of flash memory cells; and

a controller, for receiving a cycle count indication indicative of a number of program cycles of the page of memory cells, for setting a value of a programming parameter of a programming operation based on the cycle count indication; and for programming at least one flash memory cell of the page of flash memory cells by performing the programming operation;

wherein the controller is configured to:

receive distribution information that is indicative of a distribution of actual threshold voltages of flash memory cells of the page of flash memory cells;

estimate a distribution of threshold voltages of flash memory cell at an end of life of the page of flash memory cells to provide an estimated distribution information; and

set the value of the programming parameter based on the estimated distribution information and on the cycle count indication.

Assignments (9)
MERGER Recorded Mar 3, 2023
From: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED; BROADCOM INTERNATIONAL PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 062952/0850 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2020
From: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
To: BROADCOM INTERNATIONAL PTE. LTD.
Reel/Frame 053771/0901 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE PREVIOUSLY RECORDED AT REEL: 047422 FRAME: 0464. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 6, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048883/0702 →
MERGER Recorded Oct 5, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047422/0464 →
RELEASE OF SECURITY INTEREST Recorded Jan 11, 2017
From: KREOS CAPITAL IV (EXPERT FUND) LIMITED
To: DENSBITS TECHNOLOGIES LTD.
Reel/Frame 041339/0921 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2016
From: DENSBITS TECHNOLOGIES LTD.
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 037622/0224 →
SECURITY INTEREST Recorded Mar 18, 2015
From: DENSBITS TECHNOLOGIES LTD.
To: KREOS CAPITAL IV (EXPERT FUND) LIMITED
Reel/Frame 035222/0547 →
SECURITY INTEREST Recorded Jul 30, 2014
From: DENSBITS TECHNOLOGIES LTD.
To: KREOS CAPITAL IV (EXPERT FUND) LIMITED
Reel/Frame 033444/0628 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 31, 2011
From: LEVY, SHMUEL; STEINER, AVI
To: DENSBITS TECHNOLOGIES LTD.
Reel/Frame 026362/0666 →