Efficient allocation policies for a system having non-volatile memory
First Claim
1. A method for optimal memory allocations in a logical space corresponding to a non-volatile memory (“
- NVM”
), the method comprising;
receiving a request to store data associated with a file in the NVM, the NVM comprising at least two dies comprising a plurality of physical blocks, wherein each of a plurality of super blocks comprises a physical block located in each of the at least two dies, and wherein each superblock comprises super block boundaries;
selecting a logical block of the logical space with a largest number of free sectors, wherein the logical block comprises boundaries that are aligned with the super block boundaries of one of the super blocks, and wherein the free sectors within the selected logical block are randomly distributed at non-contiguous physical locations;
allocating the free sectors of the logical block in a sequential order to the file; and
writing the data to the free sectors based on the sequential order so that a write access pattern is optimized for the selected block even though the sectors are randomly distributed within the super block.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods are disclosed for efficient allocation policies for a system having non-volatile memory. A file system allocator of the system can be configured to allocate memory regions that are aligned with one or more logical blocks of a logical space (e.g., one or more super block-aligned regions). In some embodiments, the file system allocator can monitor the number of free sectors corresponding to each logical block. In other embodiments, the file system allocator can monitor a ratio of free space to total space corresponding to each logical block. The file system allocator can select a logical block based at least in part on the number of free sectors of the logical block. In some cases, the file system allocator can allocate the free sectors of the logical block in a sequential order.
-
Citations
22 Claims
-
1. A method for optimal memory allocations in a logical space corresponding to a non-volatile memory (“
- NVM”
), the method comprising;receiving a request to store data associated with a file in the NVM, the NVM comprising at least two dies comprising a plurality of physical blocks, wherein each of a plurality of super blocks comprises a physical block located in each of the at least two dies, and wherein each superblock comprises super block boundaries; selecting a logical block of the logical space with a largest number of free sectors, wherein the logical block comprises boundaries that are aligned with the super block boundaries of one of the super blocks, and wherein the free sectors within the selected logical block are randomly distributed at non-contiguous physical locations; allocating the free sectors of the logical block in a sequential order to the file; and writing the data to the free sectors based on the sequential order so that a write access pattern is optimized for the selected block even though the sectors are randomly distributed within the super block. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
- NVM”
-
10. A system comprising:
-
a non-volatile memory (“
NVM”
) comprising at least two dies comprising a plurality of physical blocks comprising a plurality of physical blocks, wherein each of a plurality of super blocks comprises a physical block located in each of the at least two dies, and wherein each superblock comprises super block boundaries; anda file system allocator for allocating free sectors contained within logical blocks of a logical space to files, wherein each of the logical blocks has boundaries that are is aligned with the super block boundaries of at least one super block of the NVM, the file system allocator operative to; receive a request to store data associated with a file in the NVM; select a logical block as a current logical block based at least in part on a number of free sectors associated with the logical block, wherein the free sectors within the selected logical block are randomly distributed at non-contiguous physical locations; allocate, in a sequential order, at least a portion of the free sectors of the current logical block to the file; and write the data to the free sectors based on the sequential order so that a write access pattern is optimized for the selected block even though the sectors are randomly distributed within the super blocks. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
Specification