IP Library Granted Patent US 10,891,063
Granted Patent B2
US 10,891,063 · App. 16/202,219 · Granted Jan 12, 2021

Apparatus and methods for managing data storage among groups of memory cells of multiple reliability ranks

Inventors: Carla L. Christensen (Boise, ID); Avani F. Trivedi (Eagle, ID); Tracy D. Evans (Boise, ID)
Assignee: Micron Technology, Inc.
G06F3/0631G06F3/0604G06F3/0679G11C11/5621G11C11/5671G11C16/0483G11C16/08
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,891,063
App. No.
16/202,219
Granted
Jan 12, 2021
Kind
B2
Abstract

Methods of operating an electronic system include allocating a group of memory cells of a plurality of groups of memory cells having a particular rank of a plurality of ranks for storing data of a particular data level of a plurality of data levels, determining a need for an additional group of memory cells for storing data of the particular data level, moving or discarding data from a different group of memory cells storing data of a different data level of the plurality of data levels in response to determining the need for the additional group of memory cells for storing data of the particular data level, and allocating the different group of memory cells for storing data of the particular data level.

Claims (72)

1. A method of operating an electronic system, comprising:

allocating a group of memory cells of a particular plurality of groups of memory cells having a particular rank of a plurality of ranks for storing data of a particular data level of a plurality of data levels, wherein each rank of the plurality of ranks is indicative of characteristics of a respective plurality of groups of memory cells regarding its determined ability to retain data at a plurality of different storage densities;

determining a need for an additional group of memory cells for storing data of the particular data level;

moving or discarding data from a different group of memory cells storing data of a different data level of the plurality of data levels in response to determining the need for the additional group of memory cells for storing data of the particular data level; and

allocating the different group of memory cells for storing data of the particular data level;

wherein each data level of the plurality of data levels corresponds to a respective target reliability level,

wherein the respective target reliability level for any data level of the plurality of data levels is different than the respective target reliability level of each remaining data level of the plurality of data levels; and

wherein, for each rank of the plurality of ranks whose respective plurality of groups of memory cells has a determined ability to retain data of two or more data levels of the plurality of data levels, the determined ability of its respective plurality of groups of memory cells to retain data for each data level of its two or more data levels is greater than or equal to the respective target reliability level for that data level of its two or more data levels for at least one storage density of the plurality of different storage densities.

2. The method of claim 1 , further comprising:

determining a need for a second additional group of memory cells for storing data of the particular data level;

determining that a free group of memory cells of the particular plurality of groups of memory cells having the particular rank is available; and

allocating the free group of memory cells for storing data of the particular data level.

3. The method of claim 1 , wherein moving or discarding the data from the different group of memory cells in response to determining the need for the additional group of memory cells for storing data of the particular data level comprises moving or discarding the data from the different group of memory cells in response to determining the need for the additional group of memory cells for storing data of the particular data level when no free group of memory cells of the particular plurality of groups of memory cells having the particular rank is available.

4. The method of claim 1 , wherein moving or discarding the data from the different group of memory cells in response to determining the need for the additional group of memory cells for storing data of the particular data level comprises discarding the data from the different group of memory cells in response to determining the need for the additional group of memory cells for storing data of the particular data level when no free group of memory cells having any rank of the plurality of ranks is available.

5. The method of claim 4 , wherein discarding the data from the different group of memory cells comprises discarding data of a lowest data level of the plurality of data levels.

6. The method of claim 1 , wherein moving or discarding the data from the different group of memory cells comprises moving or discarding the data from a group of memory cells of a plurality of groups of memory cells having a different rank of the plurality of ranks.

7. The method of claim 1 , wherein moving or discarding the data from the group of memory cells of the plurality of groups of memory cells having the different rank comprises moving or discarding the data from a group of memory cells having a lower rank of the plurality of ranks than the particular rank.

8. The method of claim 1 , wherein moving or discarding the data from the different group of memory cells comprises moving or discarding the data from a different group of memory cells of the particular plurality of groups of memory cells having the particular rank.

9. A method of operating an electronic system, comprising:

allocating a group of memory cells of a plurality of groups of memory cells having a particular rank of a plurality of ranks for storing data of a particular data level of a plurality of data levels;

determining a need for an additional group of memory cells for storing data of the particular data level;

moving or discarding data from a different group of memory cells storing data of a different data level of the plurality of data levels in response to determining the need for the additional group of memory cells for storing data of the particular data level;

allocating the different group of memory cells for storing data of the particular data level; and

in response to moving or discarding the data from the different group of memory cells:

determining a need for an additional group of memory cells for storing data of the different data level; and

moving or discarding data from a third group of memory cells storing data of a further data level of the plurality of data levels in response to determining the need for the additional group of memory cells for storing data of the different data level.

10. A method of operating an electronic system, comprising:

allocating a group of memory cells of a particular plurality of groups of memory cells having a particular rank of a plurality of ranks for storing data of a particular data level of a plurality of data levels, wherein each rank of the plurality of ranks is indicative of characteristics of a respective plurality of groups of memory cells regarding its determined ability to retain data at a plurality of different storage densities;

determining a need for an additional group of memory cells for storing data of the particular data level;

in response to determining the need for the additional group of memory cells for storing data of the particular data level:

determining whether a free group of memory cells of the particular plurality of groups of memory cells having the particular rank is available, and, if available, allocating that free group of memory cells for storing data of the particular data level;

when no free group of memory cells of the particular plurality of groups of memory cells having the particular rank is available, determining whether a free group of memory cells of a plurality of groups of memory cells having a different rank is available, and, if available, allocating that free group of memory cells for storing data of the particular data level; and

when no free group of memory cells of the particular plurality of groups of memory cells having the particular rank is available and no free group of memory cells of the plurality of groups of memory cells having the different rank is available, moving or discarding data from a group of memory cells of the plurality of groups of memory cells having the different rank and storing data of a different data level of the plurality of data levels, and allocating that group of memory cells for storing data of the particular data level;

wherein each data level of the plurality of data levels corresponds to a respective target reliability level;

wherein the respective target reliability level for any data level of the plurality of data levels is different than the respective target reliability level of each remaining data level of the plurality of data levels; and

wherein, for at least one data level of the plurality of data levels, the particular plurality of groups of memory cells having the particular rank has a determined ability to retain data of the at least one data level that is greater than or equal to the respective target reliability level of the at least one data level for only each storage density of a plurality of storage densities that is less than or equal to a first storage density of the plurality of storage densities, and the plurality of groups of memory cells having the different rank has a determined ability to retain data of the at least one data level that is greater than or equal to the respective target reliability level of the at least one data level for only each storage density of the plurality of storage densities that is less than or equal to a second storage density of the plurality of storage densities that is different than the first storage density.

11. The method of claim 10 , wherein determining whether a free group of memory cells of the plurality of groups of memory cells having the different rank is available comprises determining whether a free group of memory cells is available in a plurality of groups of memory cells having a different rank selected from a group consisting of each rank of the plurality of ranks lower than the particular rank.

12. The method of claim 10 , wherein determining whether a free group of memory cells is available in the plurality of groups of memory cells having the different rank selected from the group consisting of each rank of the plurality of ranks lower than the particular rank comprises determining whether a free group of memory cells is available in a plurality of groups of memory cells having a different rank selected from a group consisting of each rank of the plurality of ranks lower than the particular rank that is deemed suitable for storage of data of the particular data level.

13. The method of claim 10 , wherein moving or discarding the data from the group of memory cells of the plurality of groups of memory cells having the different rank comprises discarding data from a group of memory cells having a lowest rank of the plurality of ranks.

14. The method of claim 10 , wherein moving or discarding the data from the group of memory cells of the plurality of groups of memory cells having the different rank comprises moving data from a group of memory cells having a rank of the plurality of ranks lower than the particular rank.

15. The method of claim 14 , further comprising:

in response to moving the data from the group of memory cells having the rank of the plurality of ranks lower than the particular rank, determining a need for an additional group of memory cells for storing data of the different data level.

16. A method of operating an electronic system, comprising:

allocating a group of memory cells of a plurality of groups of memory cells having a particular rank of a plurality of ranks for storing data of a particular data level of a plurality of data levels;

determining a need for an additional group of memory cells for storing data of the particular data level;

in response to determining the need for the additional group of memory cells for storing data of the particular data level:

determining whether a free group of memory cells of the plurality of groups of memory cells having the particular rank is available, and, if available, allocating that free group of memory cells for storing data of the particular data level;

determining whether a free group of memory cells of a plurality of groups of memory cells having a different rank is available, and, if available, allocating that free group of memory cells for storing data of the particular data level;

when no free group of memory cells of the plurality of groups of memory cells having the particular rank is available and no free group of memory cells of the plurality of groups of memory cells having the different rank is available, moving data from a group of memory cells having a rank of the plurality of ranks lower than the particular rank and storing data of a different data level of the plurality of data levels, and allocating that group of memory cells for storing data of the particular data level;

in response to moving the data from the group of memory cells having the rank of the plurality of ranks lower than the particular rank, determining a need for an additional group of memory cells for storing data of the different data level; and

in response to determining the need for the additional group of memory cells for storing data of the different data level:

determining whether a free group of memory cells of the plurality of groups of memory cells having the different rank is available, and, if available, allocating that free group of memory cells for storing data of the different data level;

determining whether a free group of memory cells of a plurality of groups of memory cells having an other rank of the plurality of ranks is available, and, if available, allocating that free group of memory cells for storing data of the different data level; and

when no free group of memory cells of the plurality of groups of memory cells having the different rank is available and no free group of memory cells of the plurality of groups of memory cells having the other rank is available, moving or discarding data from a group of memory cells of the plurality of groups of memory cells having the other rank and storing data of an other data level of the plurality of data levels, and allocating that group of memory cells for storing data of the different data level.

17. An electronic system, comprising:

a plurality of memory dies comprising a plurality of groups of memory cells, wherein each group of memory cells of the plurality of groups of memory cells is associated with a respective determined ability to retain data at a plurality of different storage densities; and

a controller for access of the plurality of groups of memory cells;

wherein each data level of a plurality of data levels defined in the electronic system corresponds to a respective target reliability level;

wherein the respective target reliability level for any data level of the plurality of data levels is different that the respective target reliability level of each remaining data level of the plurality of data levels; and

wherein, for each data level of the plurality of data levels, the controller is configured to:

store data of that data level to a group of memory cells of the plurality of groups of memory cells assigned to store that data level in response to its respective determined ability to retain data of that data level being greater than or equal to the respective target reliability level of that data level for at least one storage density of a plurality of storage densities defined in the electronic system; and

inhibit storage of the data of that data level to a group of memory cells of the plurality of groups of memory cells deemed to be unsuitable to store data of that data level in response to its respective determined ability to retain data being less than the respective target reliability level of that data level for each storage density of the plurality of storage densities.

18. The electronic system of claim 17 , wherein at least one memory die of the plurality of memory dies contains a group of memory cells deemed to be suitable to store data of at least one data level of the plurality of data levels in response to its respective determined ability to retain data, and deemed to be unsuitable to store data of at least one other data level of the plurality of data levels in response to its respective determined ability to retain data.

19. The electronic system of claim 17 , further comprising:

wherein, for at least one data level of the plurality of data levels, the controller is configured to:

store data of that data level to a memory die of the plurality of memory dies assigned to store that data level; and

inhibit storage of the data of that data level to a memory die of the plurality of memory dies deemed to be unsuitable to store data of that data level in response to the respective determined abilities of the groups of memory cells of that memory die to retain data.

20. The electronic system of claim 17 , wherein the controller is further configured to:

allocate a group of memory cells of a subset of the plurality of groups of memory cells having a particular rank of a plurality of ranks for storing data of a particular data level of the plurality of data levels;

determine a need for an additional group of memory cells for storing data of the particular data level;

move or discard data from a different group of memory cells storing data of a different data level of the plurality of data levels in response to determining the need for the additional group of memory cells for storing data of the particular data level; and

allocate the different group of memory cells for storing data of the particular data level.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Nov 15, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 051041/0317 →
RELEASE OF SECURITY INTEREST Recorded Oct 14, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050724/0392 →
SUPPLEMENT NO. 12 TO PATENT SECURITY AGREEMENT Recorded Apr 19, 2019
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 048948/0677 →
SUPPLEMENT NO. 3 TO PATENT SECURITY AGREEMENT Recorded Apr 19, 2019
From: MICRON TECHNOLOGY, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 048951/0902 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 28, 2018
From: CHRISTENSEN, CARLA L.; TRIVEDI, AVANI F.; EVANS, TRACY D.
To: MICRON TECHNOLOGY, INC.
Reel/Frame 047603/0062 →