System and method for flash memory management
First Claim
1. A method of managing a flash memory device, the method comprises:
- receiving multiple data sectors from an interface;
writing the multiple data sectors into a data buffer that is nonvolatile;
creating a pointer in a data management structure that is stored in a metadata buffer that is nonvolatile, for each data sector corresponding to a storage location of the data sector in the data buffer;
wherein the data management structure comprises a random mapping table and a metadata data structure;
wherein the random mapping table is partitioned to random mapping table mapping portions;
wherein each random mapping table portion comprises pointers to data sectors stored in the data buffer and a pointer to a previously written metadata data structure;
wherein the metadata data structure comprises pointers to multiple random mapping table portions; and
a list of data blocks that are managed by the data management structure;
if a predefined condition is reached, merging data sectors stored in the data buffer with data sectors that are already stored in a sequential nonvolatile portion of the flash memory device, wherein the sequential nonvolatile portion differs from the data buffer and wherein the metadata buffer differs from the data buffer.
9 Assignments
0 Petitions
Accused Products
Abstract
A method, a computer readable medium and a system for managing flash memory. The method may include receiving multiple data sectors from an interface; writing the multiple data sectors into a data buffer that is nonvolatile; creating a pointer in a data management structure that is stored in a metadata buffer that is nonvolatile, for each data sector corresponding to a storage location of the data sector in the data buffer; if a predefined condition is reached, merging data sectors stored in the data buffer with data sectors that are already stored in a sequential nonvolatile portion of the flash memory device, wherein the sequential nonvolatile portion differs from the data buffer.
353 Citations
26 Claims
-
1. A method of managing a flash memory device, the method comprises:
-
receiving multiple data sectors from an interface; writing the multiple data sectors into a data buffer that is nonvolatile; creating a pointer in a data management structure that is stored in a metadata buffer that is nonvolatile, for each data sector corresponding to a storage location of the data sector in the data buffer; wherein the data management structure comprises a random mapping table and a metadata data structure; wherein the random mapping table is partitioned to random mapping table mapping portions; wherein each random mapping table portion comprises pointers to data sectors stored in the data buffer and a pointer to a previously written metadata data structure; wherein the metadata data structure comprises pointers to multiple random mapping table portions; and
a list of data blocks that are managed by the data management structure;if a predefined condition is reached, merging data sectors stored in the data buffer with data sectors that are already stored in a sequential nonvolatile portion of the flash memory device, wherein the sequential nonvolatile portion differs from the data buffer and wherein the metadata buffer differs from the data buffer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 25)
-
-
10. A system for managing a flash memory device, the system comprises a memory controller that is arranged to:
- receive multiple data sectors from an interface;
write the multiple data sectors into a data buffer that is nonvolatile;
create a pointer in a data management structure that is stored in a metadata buffer that is nonvolatile, for each data sector corresponding to a storage location of the data sector in the data buffer;
wherein the data management structure comprises a random mapping table and a metadata data structure;
wherein the random mapping table is partitioned to random mapping table mapping portions;
wherein each random mapping table portion comprises pointers to data sectors stored in the data buffer and a pointer to a previously written metadata data structure;
wherein the metadata data structure comprises pointers to multiple random mapping table portions and a list of data blocks that are managed by the data management structure;
if a predetermined condition is reached, merge data sectors stored in the data buffer with data sectors that are already stored in a sequential nonvolatile portion of the flash memory device, wherein the sequential nonvolatile portion differs from the data buffer and wherein the metadata buffer differs from the data buffer. - View Dependent Claims (11, 12, 13, 14, 15, 16, 26)
- receive multiple data sectors from an interface;
-
17. A computer readable medium that is not transitory and stores instructions for:
-
receiving multiple data sectors from an interface; writing the multiple data sectors into a data buffer that is nonvolatile; creating a pointer in a data management structure that is stored in a metadata buffer that is nonvolatile, for each data sector corresponding to a storage location of the data sector in the data buffer; wherein the data management structure comprises a random mapping table and a metadata data structure; wherein the random mapping table is partitioned to random mapping table mapping portions; wherein each random mapping table portion comprises pointers to data sectors stored in the data buffer and a pointer to a previously written metadata data structure; wherein the metadata data structure comprises pointers to multiple random mapping tale portions and a list of data blocks that are managed by the data management structure; if a predetermined condition is reached, merging data sectors stored in the data buffer with data sectors that are already stored in a sequential nonvolatile portion of the flash memory device, wherein the sequential nonvolatile portion differs from the data buffer and wherein the metadata buffer differs from the data buffer. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
Specification