Methods, devices and systems for variable size logical page management in a solid state drive
First Claim
1. A data storage device, comprising:
- an array of flash memory devices comprising a plurality of blocks, each comprising a plurality of physical pages;
a controller coupled to the array of memory devices and configured to program and read data from the array of memory devices responsive to data access commands from a host, wherein the controller is configured to;
store data in a plurality of logical pages (L-Pages) of different sizes, each of the plurality of L-Pages being associated with an L-Page number that is configured to enable the host to logically reference data stored in one or more of the plurality of physical pages;
maintain a logical-to-physical address translation map configured to enable the controller to determine a location, within one or more physical pages, of the data referenced by each L-Page number,wherein the translation map comprises a plurality of mapping entries arranged by L-Page numbers, each mapping entry comprising;
a complete starting physical address of an L-Page within one of the plurality of physical pages, anda size of the L-Page associated with the L-Page number of the mapping entry;
maintain a system journal (S-Journal) that includes a plurality of journal entries, wherein each of the plurality of journal entries is configured to associate one or more of the plurality of physical pages to each of the plurality of L-pages; and
create a journal entry directly into one of the plurality of journals each time a logical page in the logical-to-physical address translation map is updated.
14 Assignments
0 Petitions
Accused Products
Abstract
A data storage device may comprise an array of flash memory devices comprising a plurality of blocks, each comprising a plurality of physical pages. A controller may be coupled to and configured to program and read data from the array responsive to host commands. The controller may be configured to store data in a plurality of logical pages (L-Pages) of different sizes, each associated with an L-Page number that is configured to enable the host to logically reference data stored in one or more of the physical pages; and maintain a logical-to-physical address translation map configured to enable the controller to determine a location, within one or more physical pages, of the data referenced by each L-Page number. The translation map may comprise a plurality of mapping entries arranged by L-Page numbers, each comprising a complete starting physical address of an L-Page within one of the physical pages.
137 Citations
36 Claims
-
1. A data storage device, comprising:
-
an array of flash memory devices comprising a plurality of blocks, each comprising a plurality of physical pages; a controller coupled to the array of memory devices and configured to program and read data from the array of memory devices responsive to data access commands from a host, wherein the controller is configured to; store data in a plurality of logical pages (L-Pages) of different sizes, each of the plurality of L-Pages being associated with an L-Page number that is configured to enable the host to logically reference data stored in one or more of the plurality of physical pages; maintain a logical-to-physical address translation map configured to enable the controller to determine a location, within one or more physical pages, of the data referenced by each L-Page number, wherein the translation map comprises a plurality of mapping entries arranged by L-Page numbers, each mapping entry comprising; a complete starting physical address of an L-Page within one of the plurality of physical pages, and a size of the L-Page associated with the L-Page number of the mapping entry; maintain a system journal (S-Journal) that includes a plurality of journal entries, wherein each of the plurality of journal entries is configured to associate one or more of the plurality of physical pages to each of the plurality of L-pages; and create a journal entry directly into one of the plurality of journals each time a logical page in the logical-to-physical address translation map is updated. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method of controlling a data storage device comprising a volatile memory and a plurality of non-volatile memory devices, each of the plurality of non-volatile devices being configured to store a plurality of physical pages, each of the physical pages being stored at a predetermined physical location within the plurality of non-volatile memory devices, the method comprising:
-
storing data in at least one of a plurality of logical pages (L-Pages) of different sizes, each of the plurality of L-Pages being associated with an L-Page number that enables the controller to logically reference the data stored in one or more of the physical pages; and maintaining a logical-to-physical address translation map in the volatile memory, the address translation map being configured to enable the controller to determine a physical location, within one or more of the plurality of physical pages, of the data referenced by each L-Page number, the address translation map comprising a plurality of mapping entries arranged by L-Page number, each mapping entry comprising a complete physical starting address of an L-Page within one of the plurality of physical pages and a size of the L-Page associated with the L-Page number of the mapping entry; maintaining a system journal (S-Journal) in one of the plurality of non-volatile memory devices that includes a plurality of journal entries, wherein each of the plurality of journal entries is configured to associate one or more of the plurality of physical pages to each of the plurality of L-pages; and creating a journal entry directly into one of the plurality of journals each time a logical page in the logical-to-physical address translation map is updated. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A solid state drive controller, comprising:
-
a buffer configured to couple to an array of flash memory devices comprising a plurality of blocks, each comprising a plurality of physical pages; and a processor coupled to the buffer, the processor being configured to program and read data from the array of flash memory devices responsive to data access commands from a host, wherein the processor is further configured to; store data in a plurality of logical pages (L-Pages) of different sizes, each of the plurality of L-Pages being associated with an L-Page number that is configured to enable the host to logically reference data stored in one or more of the plurality of physical pages; and maintain a logical-to-physical address translation map configured to enable the processor to determine a location, within one or more physical pages, of the data referenced by each L-Page number, wherein the translation map comprises a plurality of mapping entries arranged by L-Page numbers, each mapping entry comprising a complete starting physical address of an L-Page within one of the plurality of physical pages and a size of the L-Page associated with the L-Page number of the mapping entry; maintain a system journal (S-Journal) that includes a plurality of journal entries, wherein each of the plurality of journal entries is configured to associate one or more of the physical pages to each of the plurality of L-pages; and create a journal entry directly into one of the plurality of journals each time a logical page in the logical-to-physical address translation map is updated. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
Specification