Methods, devices and systems for hardware-based garbage collection in solid state drives
First Claim
1. A solid state drive controller, comprising:
- a processor configured to couple to a plurality of non-volatile memory devices, each configured to store a plurality of physical pages; and
a first volatile memory configured to store a logical-to-physical address translation map configured to enable the controller to determine a physical location of logical pages stored within one or more of the plurality of physical pages;
wherein the processor is further configured to;
maintain, in the plurality of non-volatile memory devices, a plurality of journals defining physical-to-logical page correspondences and comprising a plurality of journal entries, each entry associating one or more physical pages to a logical page, at least one of the plurality of journals containing last-in-time updates to logical pages and stale entries that no longer point to valid logical pages,wherein each of the plurality of journals covers a predetermined physical region of the non-volatile memory, the predetermined physical region comprising a predetermined range of the plurality of physical pages, and each of the plurality of journals comprises an identification number based on address information of a physical page covered by the journal;
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; and
perform garbage collection, wherein garbage collection comprises;
reading entries of at least one of the plurality of journals;
determining a validity of each logical page referenced by the read entries through a comparison with a corresponding entry in the address translation map, wherein the logical pages referenced by the read entries are stored in first physical pages;
writing logical pages determined to be valid to second physical pages and updating the address translation map accordingly; and
designating at least the first physical pages as free space.
14 Assignments
0 Petitions
Accused Products
Abstract
A data storage device may comprise non-volatile memory devices, each configured to store a plurality of physical pages, a controller and a first volatile memory configured to store a logical-to-physical address translation map that enables the controller to determine a physical location of logical pages. The controller may maintain, in the memory devices, a plurality of journals defining physical-to-logical page correspondences, each entry of which associating one or more physical pages to a logical page. Garbage collection may be carried out by reading entries of the journals; determining a validity of each logical page referenced by the read entries through a comparison with a corresponding entry in the map, the logical pages referenced by the read entries being stored in first physical pages; writing logical pages determined to be valid to second physical pages and updating the map accordingly; and designating at least the first physical pages as free space.
178 Citations
38 Claims
-
1. A solid state drive controller, comprising:
-
a processor configured to couple to a plurality of non-volatile memory devices, each configured to store a plurality of physical pages; and a first volatile memory configured to store a logical-to-physical address translation map configured to enable the controller to determine a physical location of logical pages stored within one or more of the plurality of physical pages; wherein the processor is further configured to; maintain, in the plurality of non-volatile memory devices, a plurality of journals defining physical-to-logical page correspondences and comprising a plurality of journal entries, each entry associating one or more physical pages to a logical page, at least one of the plurality of journals containing last-in-time updates to logical pages and stale entries that no longer point to valid logical pages, wherein each of the plurality of journals covers a predetermined physical region of the non-volatile memory, the predetermined physical region comprising a predetermined range of the plurality of physical pages, and each of the plurality of journals comprises an identification number based on address information of a physical page covered by the journal; 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; and perform garbage collection, wherein garbage collection comprises; reading entries of at least one of the plurality of journals; determining a validity of each logical page referenced by the read entries through a comparison with a corresponding entry in the address translation map, wherein the logical pages referenced by the read entries are stored in first physical pages; writing logical pages determined to be valid to second physical pages and updating the address translation map accordingly; and designating at least the first physical pages as free space. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A solid state drive controller, comprising:
-
a processor configured to couple to a plurality of non-volatile memory devices, each configured to store a plurality of physical pages and to; write data to and read data from the memory devices; and maintain, in the memory devices, a plurality of journals comprising a plurality of journal entries, each entry associating a physical location in the memory devices to a logical page that is stored in the memory devices, at least one of the plurality of journals containing last-in-time updates to logical pages and stale entries that no longer point to valid logical pages, wherein each of the plurality of journals covers a predetermined physical region of the non-volatile memory, the predetermined physical region comprising a predetermined range of the plurality of physical pages, and each of the plurality of journals comprises an identification number based on address information of a physical page covered by the journal; create a journal entry directly into one of the plurality of journals each time a logical page is updated; a volatile memory configured to store; a logical-to-physical address translation map configured to enable the processor to determine a physical location of the logical pages within the memory devices; and a journal translation map configured to enable the processor to determine a physical location of the journals within the memory devices; wherein the processor is further configured to; perform garbage collection of a memory block in the memory devices that stores a plurality of journals, the performing including at least, for each journal in the memory block; determining whether the journal is valid based at least in part on a check with the journal translation map; when the journal is determined to be valid, determining validity of one or more entries in the journal through a comparison with a corresponding entry in the address translation map; and writing valid entries to a new journal and updating the journal translation map accordingly. - View Dependent Claims (19, 20)
-
-
21. A method for controlling a data storage device, the data storage device comprising a plurality of non-volatile memory devices, each being configured to store a plurality of physical pages;
- a controller coupled to the plurality of memory devices and configured to program data to and read data from the plurality of memory devices; and
a first volatile memory configured to store a logical-to-physical address translation map configured to enable the controller to determine a physical location of logical pages stored within one or more of the plurality of physical pages, the method comprising;maintaining, in the plurality of non-volatile memory devices, a plurality of journals defining physical-to-logical page correspondences and comprising a plurality of journal entries, each associating one or more physical pages to a logical page, at least one of the plurality of journals containing last-in-time updates to logical pages and stale entries that no longer point to valid logical pages, wherein each of the plurality of journals covers a predetermined physical region of the non-volatile memory, the predetermined physical region comprising a predetermined range of the plurality of physical pages, and each of the plurality of journals comprises an identification number based on address information of a physical page covered by the journal; 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; and performing garbage collection by at least; reading entries of at least one of the plurality of journals; determining a validity of each logical page referenced by the read entries through a comparison with a corresponding entry in the address translation map, wherein the logical pages referenced by the read entries are stored in first physical pages; writing logical pages determined to be valid to second physical pages and updating the address translation map accordingly; and designating at least the first physical pages as free space. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
- a controller coupled to the plurality of memory devices and configured to program data to and read data from the plurality of memory devices; and
-
37. A method of controlling a data storage device, the data storage device comprising a plurality of non-volatile memory devices each configured to store a plurality of physical pages, a controller and a volatile memory, the controller being coupled to the plurality of memory devices and being configured to write data to and read data from the memory devices, the method comprising the controller:
-
maintaining, in the memory devices, a plurality of journals comprising a plurality of journal entries, each entry associating a physical location in the memory devices to a logical page that is stored in the memory devices, at least one of the plurality of journals containing last-in-time updates to logical pages and stale entries that no longer point to valid logical pages, wherein each of the plurality of journals covers a predetermined physical region of the non-volatile memory, the predetermined physical region comprising a predetermined range of the plurality of physical pages, and each of the plurality of journals comprises an identification number based on address information of a physical page covered by the journal; creating a journal entry directly into one of the plurality of journals each time a logical page is updated; storing, in the volatile memory, a logical-to-physical address translation map configured to enable the controller to determine a physical location of the logical pages within the memory devices; storing, in the volatile memory, a journal translation map configured to enable the controller to determine a physical location of the journals within the memory devices; performing garbage collection of a memory block in the memory devices that stores a plurality of journals, by at least, for each journal in the memory block, determining whether the journal is valid based at least in part on a check with the journal translation map; and when the journal is determined to be valid, determining validity of one or more entries in the journal through a comparison with a corresponding entry in the address translation map; and writing valid entries to a new journal and updating the address translation map accordingly. - View Dependent Claims (38)
-
Specification