Memory performance evaluation using address mapping information
US-2024394164-A1 · Nov 28, 2024 · US
US9336133B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9336133-B2 |
| Application number | US-201313826738-A |
| Country | US |
| Kind code | B2 |
| Filing date | Mar 14, 2013 |
| Priority date | Dec 31, 2012 |
| Publication date | May 10, 2016 |
| Grant date | May 10, 2016 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A system and method for managing program cycles in a multi-layer memory are disclosed. The method includes a controller receiving a request to program data from a host and, in advance of programming data associated with the request, determining a program cycle for programming the data associated with the request. The programming cycle may be a set of a host data write programming operation and any maintenance programming operations on an amount of data already programmed in the plurality of memory layers that is necessary to provide free memory capacity for a subsequent request to program data from the host. The controller programs the data associated with the host request, and the amount of data to be programmed in maintenance operations, in predetermined programming units according to the determined program cycle.
Opening claim text (preview).
We claim: 1. A method of managing data in a memory system having at least one flash memory die having a plurality of layers, each of the plurality of layers having a different bit-per-cell data capacity, and a controller in communication with the at least one flash memory die, the method comprising the controller: receiving requests to program data from a host; determining a program cycle, in advance of programming data associated with the requests, the program cycle comprising a set of a host data write programming operation and maintenance programming operations in at least one of the plurality of layers, for programming a predetermined amount of host data associated with the received requests and freeing an amount of memory capacity for a subsequent host data write programming operation of the predetermined amount of host data; determining an amount of data necessary to be programmed in the maintenance programming operations by reviewing a status of each of the plurality of layers of the at least one flash memory die and determining a number of maintenance operations in each of the plurality of layers required to free an amount of space sufficient to program the predetermined amount of host data in response to a subsequent request to program data without a need for prior maintenance operations; and after determining the program cycle, executing the host data write programming operation and any maintenance program operations in the determined program cycle. 2. The method of claim 1 , wherein the predetermined amount of host data comprises a programming unit having a fixed number of metapages that is a lowest common multiple of a whole number of metablocks in each of the plurality of layers. 3. The method of claim 1 , wherein reviewing the status of each of the plurality of layers comprises determining at least one of a presence of a minimum number of free blocks in each layer or an amount of valid data programmed in each of the plurality of layers. 4. The method of claim 1 , wherein determining the program cycle comprises selecting one of a predetermined plurality of program cycle types based on a status of a destination layer for the predetermined amount of host data and a status of each higher bit-per-cell layer identified in the program cycle types. 5. The method of claim 4 , wherein the at least one flash memory die comprises a plurality of flash memory die and wherein determining the program cycle comprises determining the program cycle for the destination layer in a first of the plurality of flash memory die and for at least one higher bit-per-cell layer linked to the destination layer in a different one of the plurality of flash memory die. 6. A method of managing data in a memory system having at least one flash memory die having a plurality of layers, each of the plurality of layers having a different bit-per-cell data capacity, and a controller in communication with the at least one flash memory die, the method comprising the controller: receiving requests to program data from a host; determining a program cycle, in advance of programming data associated with the requests, the program cycle comprising a set of a host data write programming operation and maintenance programming operations in at least one of the plurality of layers, for programming a predetermined amount of host data associated with the received requests and freeing an amount of memory capacity for a subsequent host data write programming operation of the predetermined amount of host data; after determining the program cycle, executing the host data write programming operation and any maintenance program operations in the determined program cycle; wherein each of the plurality of layers comprises a plurality of partitions, and each programmed block in a layer is exclusively classified as being in a respective one of the plurality of partitions in the layer; and wherein the method further comprises the controller, for each particular request of the received requests: determining if the data associated with the particular request is associated with a particular one of the plurality of partitions; and only permitting programming of the data associated with the particular request, and an amount of data previously programmed to be programmed in maintenance operations, according to the determined program cycle when no other program cycle associated with the particular one of the plurality of partitions is active. 7. The method of claim 6 , further comprising concurrently programming in one of the at least one flash memory die a first program cycle for data in a first of the received requests associated with a first of the plurality of partitions and a second program cycle for data in a second of the received requests associated with a second of the plurality of partitions. 8. A method of managing data in a memory system having a plurality of flash memory die having a plurality of layers, each of the plurality of layers having a different bit-per-cell data capacity, and at least one controller in communication with the plurality of flash memory die, the method comprising the controller: receiving a request to program data from a host; selecting one of the plurality of flash memory die in which to execute a program cycle; prior to programming data associated with the request, selecting a program cycle type from a predetermined number of program cycle types based on a type of data associated with the request and a status of each of the plurality of layers in the selected one of the plurality of flash memory die, wherein each of the predetermined number of program cycle types identifies a different combination of a host write programming operation and maintenance programming operations for completing a program cycle, and wherein the program cycle comprises writing a predetermined amount of data received from the host and executing an amount of maintenance programming operations such that sufficient memory capacity in each layer to which data is programmed during the program cycle is freed to program an additional amount of data in a next program cycle without triggering a prior maintenance operation; and executing the host data write programming operation and any maintenance program operations according to the selected program cycle type. 9. The method of claim 8 , wherein each of the plurality of layers in the plurality of flash memory die comprises a plurality of partitions associated with data of a respective type of data, and wherein selecting the program cycle type comprises selecting one of the predetermined number of program cycle types corresponding to a partition associated with the type of data in the request to program data. 10. The method of claim 8 , wherein the predetermined amount of data comprises a programming unit having a fixed number of metapages that is a lowest common multiple of a whole number of metablocks in each of the plurality of layers. 11. The method of claim 10 , wherein selecting the program cycle type comprises selecting the program cycle type based on at least one of a presence of a minimum number of free blocks in each layer or an amount of valid data programmed in each layer of the selected one of the plurality of flash memory die. 12. A mass storage memory system, comprising: at least one flash memory die having a plurality of layers, each of the plurality of layers having a different bit-per-cell data capacity and a plurality of memory blocks; and a controller in communication with the at least one flash memory die, the controller configured to: receive requests to program data from a host system; in advance of programming data associated with the received requests, d
Allocation control and policies · CPC title
in block erasable memory, e.g. flash memory · CPC title
using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency · CPC title
Multilevel memory having cells with different number of storage levels · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.