IP Library Granted Patent US 7,437,498
Granted Patent B2
US 7,437,498 · App. 10/898,241 · Granted Oct 14, 2008

Method and system for optimizing reliability and performance of programming data in non-volatile memory devices

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 7,437,498
App. No.
10/898,241
Granted
Oct 14, 2008
Kind
B2
Abstract

Methods of managing memory devices, and devices so managed. A value of a parameter, that is used to program one or more memory cells, is adapted to a monitored condition of the cell(s). Either the number of bits per cell is held fixed or the monitored condition is an intrinsic condition of the cell(s). The initial value of the parameter is optimized for those specific cells, relative to a pre-selected criterion, by programming the cell(s) in accordance with candidate values of the parameter.

Claims (26)

1. A method of managing a memory, comprising the steps of:

(a) storing a pre-selected number of bits in at least one cell of the memory by performing a programming operation on said at least one cell of the memory in accordance with a first respective value of each of at least one parameter;

(b) monitoring a function of a time elapsed since an event associated with said performing of said programming operation on said at least one cell in accordance with said at least one first value; and

(c) substituting a second value for at least one of said at least one first value in accordance with said monitoring while keeping said number of bits fixed.

2. The method of claim 1 , wherein said at least one cell is grouped into at least one page, and wherein said performing, monitoring and substituting are effected on a per-page basis.

3. The method of claim 1 , wherein said at least one cell is grouped into at least one block, and wherein said performing, monitoring and substituting are effected on a per-block basis.

4. The method of claim 1 , further comprising the step of:

(d) performing a programming operation on said at least one cell in accordance with said at least one second value.

5. The method of claim 1 , wherein said at least one parameter is selected from the group consisting of a programming base voltage, a programming iteration stepping voltage, a maximum programming voltage, a maximum number of iterations per programming operation, a programming base pulse duration and a programming iteration stepping duration.

6. A data storage device, comprising:

(a) a plurality of cells for storing the data;

(b) a programming unit operative to store a pre-selected number of bits of the data in each said cell by performing programming operations to program the data into said plurality of cells in accordance with at least one parameter; and

(c) a mechanism for:

(i) monitoring a function of a time elapsed since an event associated with said applying of said programming operations to said plurality of cells in accordance with a first respective value of each said at least one parameter, and

(ii) substituting a second value for at least one of said at least one first value in accordance with said monitoring while keeping said number of bits fixed.

7. A method of managing a memory, comprising the steps of:

(a) programming at least one cell of the memory to store a pre-selected number of bits in accordance with a first respective value of each of at least one parameter;

(b) monitoring a condition of said at least one cell that is associated with said programming in accordance with said at least one first value and that is selected from the group consisting of:

(i) a time of a first said programming of said at least one cell in accordance with said at least one first value,

(ii) a time of a most recent said programming of said at least one cell in accordance with said at least one first value, and

(iii) a time since a number of iterations in excess of a predetermined threshold first was needed to program one of said at least one cell; and

(c) substituting a second value for at least one of said at least one first value in accordance with said monitoring while keeping said number of bits fixed.

8. A method of managing a memory, comprising the steps of:

(a) programming at least one cell of the memory to store a pre-selected number of bits in accordance with a first respective value of each of at least one parameter;

(b) monitoring a time of a most recent erasure of said at least one cell; and

(c) substituting a second value for at least one of said at least one first value in accordance with said monitoring while keeping said number of bits fixed.

Assignments (5)
CHANGE OF NAME Recorded Jun 10, 2025
From: WESTERN DIGITAL ISRAEL LTD.
To: SANDISK ISRAEL LTD.
Reel/Frame 071587/0836 →
CHANGE OF NAME Recorded Aug 21, 2020
From: SANDISK IL LTD
To: WESTERN DIGITAL ISRAEL LTD
Reel/Frame 053574/0513 →
CHANGE OF NAME Recorded Nov 12, 2008
From: MSYSTEMS LTD
To: SANDISK IL LTD.
Reel/Frame 021824/0112 →
CHANGE OF NAME Recorded Nov 6, 2008
From: M-SYSTEMS FLASH DISK PIONEERS LTD.
To: MSYSTEMS LTD
Reel/Frame 021795/0359 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2004
From: RONEN, AMIR
To: M-SYSTEMS FLASH DISK PIONEERS LTD.
Reel/Frame 015625/0151 →