Fat analysis for optimized sequential cluster management
First Claim
1. A method of storing portions of data, in an adaptive manner, in a memory system that includes a controller and a non-volatile memory array, comprising:
- the controller obtaining an attribute of a logical address range from information stored by a host in a File Allocation Table or directory in the non-volatile memory array;
the controller selecting a storage scheme from a plurality of storage schemes for a portion of data having a logical address within the logical address range according to the attribute of the logical address range; and
the controller storing the portion of data according to the selected storage scheme.
3 Assignments
0 Petitions
Accused Products
Abstract
Techniques for managing data in a non-volatile memory system (e.g., Flash Memory) are disclosed. A controller can use information relating to a host'"'"'s file system, which is stored by the host on non-volatile memory, to determine if one or more clusters (or sectors with clusters) are currently allocated. The controller can use the information relating to the host'"'"'s file system to identify when the host is sending data to the next free cluster and to store such data in a sequential format by copying data from other locations in the non-volatile memory.
277 Citations
21 Claims
-
1. A method of storing portions of data, in an adaptive manner, in a memory system that includes a controller and a non-volatile memory array, comprising:
-
the controller obtaining an attribute of a logical address range from information stored by a host in a File Allocation Table or directory in the non-volatile memory array;
the controller selecting a storage scheme from a plurality of storage schemes for a portion of data having a logical address within the logical address range according to the attribute of the logical address range; and
the controller storing the portion of data according to the selected storage scheme. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of storing data received from a host in a non-volatile memory array, comprising:
-
receiving one or more addressable units of data from the host;
analyzing information stored by the host in the non-volatile memory array to identify a plurality of logical address ranges available to the host for storage of data;
comparing the plurality of logical address ranges available to the host with logical addresses of the one or more addressable units of data to determine if the one or more addressable units of data are allocated to the next range of logical addresses available to the host; and
storing the one or more addressable units of data in a manner that is dependent on the determination. - View Dependent Claims (10, 11, 12)
-
-
13. A memory device for storing data in non-volatile memory, the data being received from a host in addressable units of data, comprising:
-
a non-volatile memory array that contains a copy of a host File Allocation Table; and
a memory controller in communication with the non-volatile memory array, the memory controller monitoring the contents of the copy of the host File Allocation Table, the memory controller determining an allocation state of a portion of logical address space from the copy of the host File Allocation Table and, the memory controller selecting a data management scheme for an addressable unit of data having a logical address within the portion of logical address space in response to the allocation state. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A computer readable medium including program code for selecting between alternative storage schemes available to a memory controller for storage of host data in a non-volatile memory, comprising:
-
computer program code that identifies an allocation status of a plurality of portions of logical address space from information stored by a host in the non-volatile memory and provides the allocation status to the memory controller; and
computer program code that selects a data management scheme for a portion of host data according to an allocation status of a portion of logical address space that includes the logical address of the portion of data. - View Dependent Claims (19, 20, 21)
-
Specification