IP Library Granted Patent US 7,636,258
Granted Patent B2
US 7,636,258 · App. 11/955,278 · Granted Dec 22, 2009

Integrated circuits, memory controller, and memory modules

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,636,258
App. No.
11/955,278
Granted
Dec 22, 2009
Kind
B2
Abstract

In accordance with embodiments of the invention, there are provided integrated circuits, memory controller, a method for determining a level for programming or erasing a memory segment, and a method for determining a wear level score for a memory segment. In an embodiment of the invention, a method for determining a level for programming or erasing a memory segment is provided, wherein a first level for programming or erasing a memory segment is determined as a function of an initial program/erase level. Furthermore, a first updated level is determined for a subsequent program/erase operation of the memory segment and a second level for programming or erasing the memory segment subsequent to programming or erasing the memory segment is determined using the first level, wherein the second level is determined as a function of the first updated level.

Claims (50)

1. An integrated circuit comprising a memory controller, the memory controller comprising:

a first determining circuit to determine a first level for programming or erasing a memory segment as a function of an initial program/erase level;

a second determining circuit to determine a first updated level for a subsequent program/erase operation of the memory segment; and

a third determining circuit to determine a second level for programming or erasing the memory segment subsequent to programming or erasing the memory segment using the first level, wherein the second level is determined as a function of the first updated level.

2. The integrated circuit of claim 1 , wherein the initial program/erase level is a predefined erase level.

3. The integrated circuit of claim 1 , wherein the first determining circuit is configured to:

attempt to program or erase the memory segment using a first candidate program/erase level;

adjust the first candidate program/erase level to a second candidate program/erase level in case the attempt to program or erase the memory segment using the first candidate program/erase level has not been successful;

attempt to program or erase the memory segment using the second candidate program/erase level; and

define the second candidate program/erase level as the first level in case the to program or erase the memory segment using the second candidate program/erase level has been successful.

4. The integrated circuit of claim 3 , wherein the first determining circuit is configured to adjust the first candidate program/erase level to the second candidate program/erase level by adjusting at least one parameter selected from the group consisting of:

a voltage magnitude of the first candidate program/erase level;

a pulse width of the first candidate program/erase level; and

a pulse repetition rate of the first candidate program/erase level.

5. The integrated circuit of claim 1 , wherein the second determining circuit is configured to determine the first updated level as a function of a difference between the first level and the initial program/erase level.

6. The integrated circuit of claim 5 , wherein the second determining circuit is configured to determine the first updated level as a predefined offset from the initial program/erase level when the difference between the first level and the initial program/erase level exceeds a predefined threshold.

7. A method for determining a level for programming or erasing a memory segment, the method comprising:

determining a first level for programming or erasing a memory segment as a function of an initial program/erase level;

determining a first updated level for a subsequent program/erase operation of the memory segment; and

determining a second level for programming or erasing the memory segment subsequent to programming or erasing the memory segment using the first level, wherein the second level is determined as a function of the first updated level.

8. The method of claim 7 , wherein the initial program/erase level is a predefined erase level.

9. The method of claim 7 , wherein determining the first level for programming or erasing the memory segment as a function of the initial program/erase level comprises:

attempting to program or erase the memory segment using a first candidate program/erase level;

adjusting the first candidate program/erase level to a second candidate program/erase level in case the attempt to program or erase the memory segment using the first candidate program/erase level has not been successful;

attempting to program or erase the memory segment using the second candidate program/erase level; and

defining the second candidate program/erase level as the first level in case the to program or erase the memory segment using the second candidate program/erase level has been successful.

10. The method of claim 9 , wherein the first candidate program/erase level is adjusted to the second candidate program/erase level by adjusting at least one parameter selected from the group consisting of:

a voltage magnitude of the first candidate program/erase level;

a pulse width of the first candidate program/erase level; and

a pulse repetition rate of the first candidate program/erase level.

11. The method of claim 7 , wherein the first updated level is determined as a function of the difference between the first level and the initial program/erase level.

12. An integrated circuit comprising a memory controller, the memory controller comprising:

a wear level score determining circuit to determine a wear level score for a memory segment, wherein the wear level score determining circuit is configured to:

determine a first nominal program/erase level associated with the memory segment; and

determine the wear level score for the memory segment relative to at least one other memory segment, wherein the wear level score for the memory segment is determined as a function of the difference between the first nominal program/erase level and a second nominal program/erase level associated with the at least one other memory segment.

13. The integrated circuit of claim 12 , wherein the wear level score determining circuit is configured to determine the second nominal program/erase level associated with the at least one other memory segment.

14. The integrated circuit of claim 12 , wherein the wear level score determining circuit is configured to determine the wear level score further taking into account the number of programming operations or erase operations or a combination of programming operations and erase operations which the memory segment has undergone.

15. The integrated circuit of claim 12 , further comprising:

a wear level score ordering circuit to order the wear level scores of the memory segment and of the at least one other memory segment; and

a memory segment selection circuit to select the memory segment to store received data to be stored in accordance with a determined order.

16. The integrated circuit of claim 15 , wherein the memory segment selection circuit is configured to select the memory segment to store received data to be stored further based upon the type of the received data to be stored.

17. A method for determining a wear level score for a memory segment, the method comprising:

determining a first nominal program/erase level associated with the memory segment; and

determining a wear level score for the memory segment relative to at least one other memory segment, wherein the wear level score for the memory segment is determined as a function of a difference between the first nominal program/erase level and a second nominal program/erase level associated with the at least one other memory segment.

18. The method of claim 17 , further comprising determining the second nominal program/erase level associated with the at least one other memory segment.

19. The method of claim 17 , wherein the wear level score is determined further taking into account the number of programming operations or erase operations or a combination of programming operations and erase operations which the memory segment has undergone.

20. The method of claim 17 , further comprising:

ordering the wear level scores of the memory segment and of the at least one other memory segment; and

selecting the memory segment to store received data to be stored in accordance with a determined order.

21. The method of claim 20 , wherein the memory segment is selected to store received data to be stored further based upon the type of the received data to be stored.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2015
From: INFINEON TECHNOLOGIES AG
To: POLARIS INNOVATIONS LIMITED
Reel/Frame 037171/0719 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 19, 2015
From: INFINEON TECHNOLOGIES AG
To: POLARIS INNOVATIONS LIMITED
Reel/Frame 037147/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2015
From: QIMONDA AG
To: INFINEON TECHNOLOGIES AG
Reel/Frame 035623/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 1, 2010
From: QIMONDA FLASH GMBH
To: QIMONDA AG
Reel/Frame 024629/0532 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2008
From: KUX, ANDREAS; RICHTER, DETLEV; KOEBERNICK, GERT; ENGELHARDT, JUERGEN; PRASAD, SUDHINDRA
To: QIMONDA FLASH GMBH
Reel/Frame 020587/0554 →