Method and apparatus for allocating storage in a flash memory
First Claim
1. A method for allocating storage in an auxiliary storage medium, the auxiliary storage medium comprising at least one partition of physical address space, the method comprising:
- (a) organizing the partition into a plurality of regions, each region defining a portion of client address space which represents a number of units of physical address space in the partition; and
(b) organizing each unit of physical address space into a plurality of allocations, each allocation including at least one block of physical data storage locations in the unit.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus are provided for operating a flash memory (24) as a client memory, wherein the flash memory comprises a partition (28) of physical data storage locations. The partition is divided into a plurality of units (30). Each unit is organized into a plurality of allocations (60) where each allocation includes a plurality of blocks (58) of physical data storage locations. The partition is organized into a plurality of regions (46) which define a client address space such that each region represents a portion of the client address space. Interfacing the client address space with the physical address space requires maintaining an allocation list (56) for each unit that includes an allocation (68) entry describing each allocation in the unit. Each allocation entry includes a first field (70) storing a client start address for the allocation in the client address space and a second field (72) storing an allocation length indicating the number of blocks of data in that allocation. A third field (74) stores a status of the allocation, i.e., either valid, pending, bad or discarded, and a fourth field (76) stores a physical start address for the allocation in the partition.
-
Citations
37 Claims
-
1. A method for allocating storage in an auxiliary storage medium, the auxiliary storage medium comprising at least one partition of physical address space, the method comprising:
-
(a) organizing the partition into a plurality of regions, each region defining a portion of client address space which represents a number of units of physical address space in the partition; and (b) organizing each unit of physical address space into a plurality of allocations, each allocation including at least one block of physical data storage locations in the unit. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. An apparatus for allocating storage of data amongst storage mediums in a computer system, the apparatus comprising:
-
(a) a processing unit; (b) an auxiliary storage medium, the auxiliary storage medium comprising at least one partition, the partition organized into a plurality of regions, each region defining a portion of client address space which represents a number of units in the partition; (c) a main storage medium coupled to the processing unit, the storage medium at least temporarily storing program instructions that control the processing unit;
execution of said program instructions on the processing unit comprising;(i) organizing each unit into a plurality of allocations, each allocation including at least one block of physical data storage locations in the unit; and (iii) transferring storage of data to and from the auxiliary storage medium by using an allocation list for each unit of the partition to translate the client address space defined by the regions and the physical address space of the partition, the allocation list including at least one allocation entry describing each allocation in the unit, each allocation entry including (A) a client start address for the allocation in the portion of client address space defined by the region representing the unit;
(B) an allocation length indicating the number of blocks in the allocation;
(C) a status of the allocation; and
(D) a physical start address for the allocation in the unit. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A computer-readable medium having a computer-executable component for allocating storage in an auxiliary storage medium, wherein the computer-executable component allocates storage in the auxiliary storage medium by:
-
(a) establishing at least one partition of physical address space in the storage medium; (b) dividing the partition into a plurality of units, each unit comprising a portion of physical address space in the partition; and (c) defining a client address space by organizing the plurality of units into a plurality of regions, each region defining a portion of client address space which represents the portions of physical address space within the plurality of units into which the region is organized. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37)
-
Specification