Scheduling of housekeeping operations in flash memory systems
First Claim
1. A memory system, comprising:
- an array of erasable and re-programmable non-volatile memory cells arranged in blocks of memory cells that are erasable together as a unit,an external interface through which commands are received and data passed,a controller connected with the interface and with the memory cell array, capabilities of the controller in response to receiving a command through the interface including;
performing functions necessary to execute the received command,asserting a busy signal through the interface for a time extending beyond that utilized to perform the functions necessary to execute the received command but within a pre-determined time duration, andperforming, during the time extending beyond that utilized to perform the functions, at least a portion of a housekeeping operation that is unnecessary to execute the received command.
2 Assignments
0 Petitions
Accused Products
Abstract
A re-programmable non-volatile memory system, such as a flash EEPROM system, having its memory cells grouped into blocks of cells that are simultaneously erasable is operated to perform memory system housekeeping operations in the foreground during execution of a host command, wherein the housekeeping operations are unrelated to execution of the host command. Both one or more such housekeeping operations and execution of the host command are performed within a time budget established for executing that particular command. One such command is to write data being received to the memory. One such housekeeping operation is to level out the wear of the individual blocks that accumulates through repetitive erasing and re-programming.
-
Citations
7 Claims
-
1. A memory system, comprising:
-
an array of erasable and re-programmable non-volatile memory cells arranged in blocks of memory cells that are erasable together as a unit, an external interface through which commands are received and data passed, a controller connected with the interface and with the memory cell array, capabilities of the controller in response to receiving a command through the interface including; performing functions necessary to execute the received command, asserting a busy signal through the interface for a time extending beyond that utilized to perform the functions necessary to execute the received command but within a pre-determined time duration, and performing, during the time extending beyond that utilized to perform the functions, at least a portion of a housekeeping operation that is unnecessary to execute the received command. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A memory system, comprising:
-
a plurality of erasable and re-programmable non-volatile memory cells organized into a plurality of physical blocks of a number of memory cells that are simultaneously erasable, an interface, and a controller operable connected with the plurality of memory cells and the interface, the controller being configured to operate the memory system in a manner comprising; in response to receiving a command through the interface to transfer one or more units of data within a given time budget, determining whether any housekeeping operation is necessary to be able to transfer the one or more units of data, if any housekeeping operation is necessary to be able to transfer the one or more units of data, performing at least the necessary housekeeping operation, determining whether a housekeeping operation unnecessary to the transfer of one or in more units of data is pending, if a housekeeping operation unnecessary to the data transfer is pending, determining whether any time remaining within the time budget in excess of that required to perform any housekeeping operation necessary to be able to transfer the one or more units of data and to transfer the one or more units of data is sufficient for performing at least a portion of the pending housekeeping operation unnecessary to the data transfer, if sufficient time remains within the time budget, performing the at least a portion of the pending housekeeping operation unnecessary to the data transfer during execution of the received command, and transferring the one or more units of data within the given time budget.
-
-
7. A memory system, comprising:
-
a plurality of erasable and re-programmable non-volatile memory cells organized into a plurality of physical blocks of a number of memory cells that are simultaneously erasable, an interface, and a controller operably connected with the plurality of memory cells and the interface, the controller being configured to perform at least the following operations; maintaining an address map that maps logical addresses received through the host interface to physical addresses of blocks of memory cells, maintaining at least one physical update block, in response to receiving a write command and data to be written through the interface, determining whether a housekeeping operation unnecessary to execution of the received write command is pending and which includes the necessity to copy a quantity of data from one of the plurality of blocks to the update block, if so, copying a portion of the quantity of data from said one of the plurality of blocks into the update block during a period of time provided for execution of the received write command, and after execution of the write command, perform garbage collection on the update block, including copying a remaining amount of the quantity of data from the one block.
-
Specification