METHOD AND SYSTEM FOR MANAGING PROGRAM CYCLES IN A MULTI-LAYER MEMORY
First Claim
1. A method of managing data comprising:
- in a memory system having an interface for receiving data from a host, 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 interface and the at least one flash memory die, the controller;
receiving requests to program data from a host;
determining a program cycle, in advance of programming data associated with the requests, the programming 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 an amount of host data associated with the received requests and freeing an amount of memory capacity for a subsequent host data write programming operation; and
after determining the programming cycle, executing the host data write programming operation and any maintenance program operations in the determined programming cycle.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for managing program cycles in a multi-layer memory is 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 and an amount of data already programmed in the plurality of memory layers necessary to be programmed in maintenance operations to provide free memory capacity for a subsequent request to program data from the host. The controller programs the data associated with the request, and the amount of data already programmed to be programmed in maintenance operations, in predetermined programming units according to the determined program cycle.
-
Citations
20 Claims
-
1. A method of managing data comprising:
in a memory system having an interface for receiving data from a host, 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 interface and the at least one flash memory die, the controller; receiving requests to program data from a host; determining a program cycle, in advance of programming data associated with the requests, the programming 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 an amount of host data associated with the received requests and freeing an amount of memory capacity for a subsequent host data write programming operation; and after determining the programming cycle, executing the host data write programming operation and any maintenance program operations in the determined programming cycle. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
10. A method of managing data comprising:
in a memory system having an interface for receiving data from a host, 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 interface and the plurality of flash memory die, the controller; receiving requests 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 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 selected 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. - View Dependent Claims (11, 12, 13)
-
14. A mass storage memory system, comprising:
-
an interface adapted to receive data from a host system; 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 interface and the flash memory die, the controller configured to; receive requests to program data from the host system; in advance of programming data associated with the request, determine a 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 an amount of host data associated with the received requests and freeing an amount of memory capacity for a subsequent host data write programming operation; and after determining the programming cycle, execute the host data write programming operation and any maintenance program operations according to the determined programming cycle. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification