SYSTEM AND METHOD FOR LIMITING FRAGMENTATION
First Claim
1. A method of controlling storage of content on a storage device, the method comprising:
- in a storage device having a controller in communication with non-volatile memory, wherein the non-volatile memory comprises a first type of non-volatile memory and a second type of non-volatile memory, the controller;
receiving data for storage in the non-volatile memory;
upon determining that a fullness of the storage device has reached a proactive defragmentation threshold, only writing sequentially addressed logical groups of received data to the second type of non-volatile memory; and
upon determining that the fullness of the storage device has reached a reactive defragmentation threshold automatically defragmenting data already written into the second type of non-volatile memory in response to a triggering event.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system are disclosed for controlling the storage of data in a storage device to reduce fragmentation. The method may include a controller of a storage device receiving data for storage in non-volatile memory, proactively preventing fragmentation by only writing an amount of sequentially addressed logical groups of data into a main storage area of the storage device, such as multi-level cell (MLC) flash memory, and reactively defragmenting data previously written into the MLC memory when a trigger event is reached. The system may include a storage device with a controller configured to perform the method noted above, where the thresholds for minimum sequential writes into MLC, and for scanning the memory for fragmented data and removing fragmentation by re-writing the fragmented data already in MLC into new MLC blocks, may be fixed or variable.
-
Citations
28 Claims
-
1. A method of controlling storage of content on a storage device, the method comprising:
in a storage device having a controller in communication with non-volatile memory, wherein the non-volatile memory comprises a first type of non-volatile memory and a second type of non-volatile memory, the controller; receiving data for storage in the non-volatile memory; upon determining that a fullness of the storage device has reached a proactive defragmentation threshold, only writing sequentially addressed logical groups of received data to the second type of non-volatile memory; and upon determining that the fullness of the storage device has reached a reactive defragmentation threshold automatically defragmenting data already written into the second type of non-volatile memory in response to a triggering event. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
14. A storage device comprising:
-
a non-volatile memory having a first type of non-volatile memory and a second type of non-volatile memory; and a controller in communication with the non-volatile memory, the controller configured to; receive data for storage in the non-volatile memory; upon a determination that a fullness of the storage device has reached a proactive defragmentation threshold, only write sequentially addressed logical groups of received data to the second type of non-volatile memory; and upon a determination that the fullness of the storage device has reached a reactive defragmentation threshold, automatically defragment data already written into the second type of non-volatile memory in response to a trigger event. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A method of controlling storage of content on a storage device, the method comprising:
in a storage device having a controller in communication with non-volatile memory, wherein the non-volatile memory comprises a first type of non-volatile memory and a second type of non-volatile memory, the controller; receiving data for storage in the non-volatile memory; upon determining that the fullness of the storage device has reached a reactive defragmentation threshold automatically defragmenting data already written into the second type of non-volatile memory in response to a triggering event; and wherein automatically defragmenting data already written into the second type of non-volatile memory comprises the controller; scanning the second type of non-volatile memory for sequentially numbered logical groups of data previously written in noncontiguous locations in the non-volatile memory; and if a threshold amount of sequentially numbered logical groups previously written in noncontiguous locations are present, re-writing at least the threshold amount of sequentially numbered logical groups of data contiguously into a new block in the second type of non-volatile memory. - View Dependent Claims (28)
Specification