Dynamic volume management for flash memories
First Claim
Patent Images
1. A memory system, comprising:
- a non-volatile memory; and
a data manager operable to define in the non-volatile memory a plurality of volumes in a range of memory encompassing at least a portion of the non-volatile memory, the data manager operable to store volume definition information for the plurality of volumes in either first or second control blocks of memory, each volume defined for a contiguous range of memory having a first end and a second opposite end, the data manager further operable to store data objects in first and second lists each associated with a respective end of the volume and operable to alternate storing of volume definition information for the plurality of volumes between the first and second control blocks when modifying volume definition information for any of the plurality of volumes.
7 Assignments
0 Petitions
Accused Products
Abstract
A method for managing a range of memory in a flash memory space in which a plurality of data objects are stored. A volume defined for the range of memory has a first end and second end, with a respective list of data objects associated with each end. The volume can be resized, moved, and reallocated in the flash memory space without recompilation.
55 Citations
20 Claims
-
1. A memory system, comprising:
-
a non-volatile memory; and a data manager operable to define in the non-volatile memory a plurality of volumes in a range of memory encompassing at least a portion of the non-volatile memory, the data manager operable to store volume definition information for the plurality of volumes in either first or second control blocks of memory, each volume defined for a contiguous range of memory having a first end and a second opposite end, the data manager further operable to store data objects in first and second lists each associated with a respective end of the volume and operable to alternate storing of volume definition information for the plurality of volumes between the first and second control blocks when modifying volume definition information for any of the plurality of volumes. - View Dependent Claims (2, 3, 4)
-
-
5. A memory system, comprising:
-
a non-volatile memory; and a data manager operable to define in the non-volatile memory a plurality of volumes in a range of memory encompassing at least a portion of the non-volatile memory, each volume defined for a contiguous range of memory having a first end and a second opposite end, the data manager operable to store data objects in first and second lists each associated with a respective end of the volume, the data manager further operable to copy all valid data objects in the first list of data objects of a volume to the second list of data objects of the same volume, invalidate data objects in the first list, and redefine the location of the first end to another location in the range of memory for modifying a volume size for at least one of the plurality of volumes. - View Dependent Claims (6, 7, 8)
-
-
9. A memory system, comprising:
-
a non-volatile memory; and a data manager operable to manage a range of memory in at least a portion of the non-volatile memory in which a plurality of data objects are contained, the data manager operable to define in the non-volatile memory a starting block number representing a first end of the range of memory and a block count value identifying a second end of the range of memory relative to the first end of the range of memory, the data manager operable to redefine the starting block number to move the range of memory from a previous location to a current location within the non-volatile memory, the data manager operable to copy valid data objects contained in the range of memory at the previous location to the range of memory at the current location, the data manager further operable to invalidate data objects in the range of memory at the previous location. - View Dependent Claims (10, 11, 12)
-
-
13. A memory system, comprising:
-
a non-volatile memory; and a data manager operable to define in the non-volatile memory a plurality of volumes in a range of memory encompassing at least a portion of the non-volatile memory by storing a starting address and a block count for each volume, each volume defined for a contiguous range of memory having a first end and a second opposite end, the data manager operable to store data objects in first and second lists each associated with a respective end of the volume, the data manager operable to store a different starting address for at least one of the volumes to move in the range of memory from a previous location to a current location, the data manager operable to copy valid data objects contained in the volume at the previous location to the volume at the current location, the data manager further operable to invalidate data objects in the volume at the previous location. - View Dependent Claims (14, 15)
-
-
16. A memory system, comprising:
-
a non-volatile memory having plurality of memory blocks; and a data manager operable to define in the non-volatile memory a plurality of volumes in a range of memory encompassing at least one of the memory blocks of the non-volatile memory, each volume defined for a contiguous range of memory having a first end and a second opposite end, the data manager operable to store data in first and second lists each associated with a respective end of the volume, the plurality of volumes including first and second adjacent volumes, the first volume including at least one data object associated with the first list of the first volume and at least one data object associated with the second list of the first volume, the second volume including at least one data object associated with the first list of the second volume and at least one data object associated with the second list of the second volume, the second end of the second volume coincident with the first end of the first volume, the data manager operable to copy valid data objects associated with the first list of the first volume to the second list of the first volume, the data manager operable to copy valid data objects associated with the second list of the second volume to the first list of the second volume, the data manage operable to invalidate data objects of the fist list of the first volume and data objects of the second list of the second volume, the data manager further operable to redefine the first end of the first volume and the second end of the second volume to maintain coincidence thereof to resize the respective volumes. - View Dependent Claims (17, 18, 19)
-
-
20. A flash memory device, comprising:
-
a flash memory; and a data manager operable to define a plurality of volumes in a range of memory encompassing at least a portion of the flash memory, the data manager operable to store a starting address and a block count for the plurality of volumes in either first or second control blocks of memory, each volume defined for a contiguous range of memory having a first end and a second opposite end, the data manager further operable to store data objects in first and second lists each associated with a respective end of the volume, the data manager further operable to store a different starting address for the volume to move the volume in the range of memory from a previous location to a current location, copy valid data objects contained in the volume at the previous location to the volume at the current location, and invalidate data objects in the volume at the previous location..
-
Specification