METHODS, DEVICES AND SYSTEMS FOR TWO STAGE POWER-ON MAP REBUILD WITH FREE SPACE ACCOUNTING IN A SOLID STATE DRIVE
First Claim
1. A data storage device controller configured to couple to a non-volatile memory comprising a plurality of blocks, each block being configured to store a plurality of physical pages at predetermined physical locations, the controller comprising:
- a processor configured to program data to and read data from the non-volatile memory, the data being stored in a plurality of logical pages;
a volatile memory comprising a logical-to-physical address translation map configured to enable the processor to determine a physical location, within one or more physical pages, of the data stored in each logical page; and
a plurality of journals stored in the non-volatile memory, each journal comprising a plurality of journal entries associating one or more physical pages to each logical page,wherein the controller is configured, upon startup, to;
read each of the plurality of journals in an order and to rebuild the map in the volatile memory from the read plurality of journals;
indicate a readiness to process data access commands after the map is rebuilt; and
rebuild a table from the map and select, based on the rebuilt table, at least one of the plurality of blocks for garbage collection after having indicated the readiness to process data access commands.
15 Assignments
0 Petitions
Accused Products
Abstract
A data storage device comprises a non-volatile memory comprising a plurality of blocks, each configured to store a plurality of physical pages at predetermined physical locations. A controller programs and reads data stored in a plurality of logical pages. A volatile memory comprises a logical-to-physical address translation map configured to enabling determination of the physical location, within one or more physical pages, of the data stored in each logical page. A plurality of journals may be stored, each comprising a plurality of entries associating one or more physical pages to each logical page. At startup, the controller may read at least some of the plurality of journals in an order and rebuild the map; indicate a readiness to service data access commands after the map is rebuilt; rebuild a table from the map and, based thereon, select block(s) for garbage collection after having indicated the readiness to process the commands.
-
Citations
27 Claims
-
1. A data storage device controller configured to couple to a non-volatile memory comprising a plurality of blocks, each block being configured to store a plurality of physical pages at predetermined physical locations, the controller comprising:
-
a processor configured to program data to and read data from the non-volatile memory, the data being stored in a plurality of logical pages; a volatile memory comprising a logical-to-physical address translation map configured to enable the processor to determine a physical location, within one or more physical pages, of the data stored in each logical page; and a plurality of journals stored in the non-volatile memory, each journal comprising a plurality of journal entries associating one or more physical pages to each logical page, wherein the controller is configured, upon startup, to; read each of the plurality of journals in an order and to rebuild the map in the volatile memory from the read plurality of journals; indicate a readiness to process data access commands after the map is rebuilt; and rebuild a table from the map and select, based on the rebuilt table, at least one of the plurality of blocks for garbage collection after having indicated the readiness to process data access commands. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method of controlling a data storage device comprising a non-volatile memory comprising a plurality of blocks, each block being configured to store a plurality of physical pages at predetermined physical locations, the method comprising:
-
programming data to and reading data from the non-volatile memory, the data being stored in a plurality of logical pages; maintaining, in a volatile memory, a logical-to-physical address translation map configured to enable a determination of a physical location, within one or more physical pages, of the data stored in each logical page; and maintaining, in the non-volatile memory, a plurality of journals, each journal comprising a plurality of journal entries associating one or more physical pages to each logical page and, upon startup; reading each of the plurality of journals in an order and rebuilding the map in the volatile memory from the read plurality of journals; indicating a readiness to process data access commands after the map is rebuilt; and rebuilding a table from the map and, based on the rebuilt table, selecting at least one of the plurality of blocks for garbage collection after having indicated the readiness to process data access commands. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27)
-
Specification