Memory performance evaluation using address mapping information
US-2024394164-A1 · Nov 28, 2024 · US
US9436595B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-9436595-B1 |
| Application number | US-201313840838-A |
| Country | US |
| Kind code | B1 |
| Filing date | Mar 15, 2013 |
| Priority date | Mar 15, 2013 |
| Publication date | Sep 6, 2016 |
| Grant date | Sep 6, 2016 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A data storage device includes a plurality of flash memory devices. A memory controller is configured to receive a request from a host computing device to write a first logical block of application data to the data storage device, write the first logical block to a data buffer, wherein a size of the data buffer is larger than the logical block and may store multiple logical blocks, write one or more logical blocks of garbage-collected data to the data buffer, and write the logical blocks in the data buffer to the data storage device when the data buffer becomes full. The data buffer written to the data storage device includes at least one logical block of application data and at least one logical block of garbage-collected data. In an alternative implementation, garbage-collected data may be written to the data buffer upon expiration of a timer.
Opening claim text (preview).
What is claimed is: 1. A method comprising: receiving, by a memory controller, a request from a host computing device to write a first logical block of application data to a data storage device; writing, by the memory controller, the first logical block to a data buffer, wherein a size of the data buffer is a same size as a page that can be written to the data storage device and is larger than the logical block; starting a timer in response to writing the first logical block to the data buffer; receiving, by the memory controller, one or more additional requests from the host computing device to write one or more additional logical blocks of application data to the data storage device; prior to an expiration of the timer, determining that the data buffer is not full; detecting the expiration of the timer; writing, by the memory controller, in response to detecting the expiration of the timer and determining that the data buffer is not full, one or more logical blocks of garbage-collected data to the data buffer to fill the data buffer, wherein the garbage-collected data comprises at least one valid logical block of an erase unit of the data storage device that has been selected for garbage collection; and writing the full data buffer to the data storage device. 2. The method of claim 1 wherein the data buffer includes a plurality of logical blocks and wherein the full data buffer includes at least one logical block of the application data and at least one logical block of garbage-collected data. 3. The method of claim 1 and further comprising: tracking, by a garbage collection control engine, a number of valid and invalid logical blocks in each of a plurality of erase units of the data storage device; and selecting one of the erase units for garbage collection based on a number of valid logical blocks and a number of invalid logical blocks within the selected erase unit. 4. The method of claim 1 and further comprising: determining a number of free erase units within the data storage device; determining that the number of free erase units is less than a threshold; and increasing a portion of the data buffer that is reserved for the garbage-collected data based on the determining that the number of free erase units is less than a threshold. 5. The method of claim 1 and further comprising: determining a number of free erase units within the data storage device; determining that the number of free erase units is greater than a threshold; and decreasing a portion of the data buffer that is reserved for the garbage-collected data based on the determining that the number of free erase units is greater than a threshold. 6. The method of claim 1 and further comprising: determining a number of write requests for application data; determining that the number of write requests is greater than a threshold; and decreasing a portion of the data buffer that is reserved for the garbage-collected data based on the determining that the number of write requests is greater than a threshold. 7. The method of claim 1 wherein the receiving comprises receiving, by a memory controller, a request from an application running on a host computing device to write a first logical block of application data to a data storage device; wherein the timer is associated with the application; wherein the starting comprises starting the timer associated with the application in response to the writing, by the memory controller, the first logical block of data from the application to a data buffer associated with the timer. 8. The method of claim 1 and further comprising: adjusting an initial value of the timer as write requests for application data from the host computing device change or a number of free erase units change in order to vary a likely amount of garbage-collected data that will be written to the data buffer. 9. A data storage device, comprising: a plurality of flash memory devices, each of the flash memory devices being arranged into a plurality of erase units having a plurality of logical blocks for storing data; and a memory controller operationally coupled with the flash memory devices, the memory controller being configured to: receive a request from a host computing device to write a first logical block of application data to the data storage device; write the first logical block to a data buffer, wherein a size of the data buffer is a same size as a page that can be written to the data storage device and is larger than the logical block; start a timer in response to writing the first logical block to the data buffer; receive one or more additional requests from the host computing device to write one or more additional logical blocks of application data to the data storage device; prior to an expiration of the timer, determine that the data buffer is not full; detect the expiration of the timer; write, in response to detecting the expiration of the timer and determining that the data buffer is not full, one or more logical blocks of garbage-collected data to the data buffer, wherein the garbage-collected data comprises at least one valid logical block of an erase unit of the data storage device that has been selected for garbage collection; and write the data buffer to the data storage device. 10. The data storage device of claim 9 wherein the data buffer includes a plurality of logical blocks and wherein the data buffer includes at least one logical block of the application data and at least one logical block of garbage-collected data. 11. The data storage device of claim 9 wherein the memory controller is further configured to: track a number of valid and invalid logical blocks in each of a plurality of erase units of the data storage device; and select one of the erase units for garbage collection based on a number of valid logical blocks and a number of invalid logical blocks within the selected erase unit. 12. The data storage device of claim 9 wherein the memory controller is further configured to: determine a number of free erase units within the data storage device; determine that the number of free erase units is less than a threshold; and increase a portion of the data buffer that is reserved for the garbage-collected data based on the determining that the number of free erase units is less than a threshold. 13. The data storage device of claim 9 wherein the memory controller is further configured to: determine a number of free erase units within the data storage device; determine that the number of free erase units is greater than a threshold; and decrease a portion of the data buffer that is reserved for the garbage-collected data based on the determining that the number of free erase units is greater than a threshold. 14. The data storage device of claim 9 wherein the memory controller is further configured to: determine a number of write requests for application data; determine that the number of write requests is greater than a threshold; and decrease a portion of the data buffer that is reserved for the garbage-collected data based on the determining that the number of write requests is greater than a threshold. 15. The data storage device of claim 9 wherein the memory controller being configured to receive comprises the memory controller being configured to receive a request from an application running on a host computing device to write a first logical block of application data to a data storage device; wherein the memory controller being configured to start comprises the memory controller being configured to start the timer associated with t
in block erasable memory, e.g. flash memory · CPC title
Performance improvement · CPC title
Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks · CPC title
Cleaning, compaction, garbage collection, erase control · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.