Cooperative flash memory control
US-9652376-B2 · May 16, 2017 · US
US11249652B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-11249652-B1 |
| Application number | US-202016832793-A |
| Country | US |
| Kind code | B1 |
| Filing date | Mar 27, 2020 |
| Priority date | Jan 28, 2013 |
| Publication date | Feb 15, 2022 |
| Grant date | Feb 15, 2022 |
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.
This disclosure provides techniques for managing memory which match per-data metrics to those of other data or to memory destination. In one embodiment, wear data is tracked for at least one tier of nonvolatile memory (e.g., flash memory) and a measure of data persistence (e.g., age, write frequency, etc.) is generated or tracked for each data item. Memory wear management based on these individually-generated or tracked metrics is enhanced by storing or migrating data in a manner where persistent data is stored in relatively worn memory locations (e.g., relatively more-worn flash memory) while temporary data is stored in memory that is less worn or is less susceptible to wear. Other data placement or migration techniques are also disclosed.
Opening claim text (preview).
We claim: 1. An apparatus comprising instructions stored on a non-transitory storage medium, the instructions, when executed, to cause at least one host processor to: identify a need on an independent basis for each one of at least two sets of addresses associated with a nonvolatile memory drive, for a copy of data from one physical storage location within the nonvolatile memory drive to another physical storage location within the nonvolatile memory drive; and responsive to the identified need, send one or more requests to a memory controller for the nonvolatile memory drive in a manner directed to the given set, to cause the memory controller to perform the copy of data, wherein the one or more requests are to specify a source address for data to be copied and a destination for the data to be copied, and wherein the instructions when executed are to cause the at least one host processor to choose the destination to correspond to a selected one of the sets of addresses in dependence on metadata comprising an age-since-write characteristic of the data to be copied; wherein the memory controller is to perform logical to physical address translation of the source address and the destination to identify the data being copied and to select a physical destination structure for the data to be copied; wherein the memory controller is to store metadata representing the age-since-write characteristic in a manner respective to each set of the at least two sets of addresses, is to update the metadata respective to each set of the at least two sets of addresses as a function of write operations affecting the respective set of the at least two sets of addresses, is to detect when the metadata respective to each set of the at least two sets of addresses satisfies at least one threshold, and is to responsively send a notification to the at least one host processor; and wherein the instructions when executed are to cause the at least one host processor to choose the destination dependent on the notification from the memory controller. 2. The apparatus of claim 1 wherein: said instructions are, when executed, to cause the at least one host processor to detect the need according to thresholds respective to each one of the at least two sets of addresses. 3. The apparatus of claim 2 wherein: the thresholds respective to each one of the at least two sets of addresses each comprise a cold data threshold. 4. The apparatus of claim 3 wherein: the one or more requests are to cause the memory controller to copy data corresponding to metadata violating the cold data threshold from a first physical location associated with the given set of the at least two sets of addresses to a second physical location also associated with the given set of the at least two sets of addresses. 5. The apparatus of claim 4 wherein: the cold data threshold is a write-cold data threshold, such that the data to be copied from the first physical location comprises data at a location that was last written prior to a duration greater than a threshold amount of time. 6. The apparatus of claim 1 wherein the nonvolatile memory comprises flash memory dies and wherein the memory controller comprises a flash memory controller. 7. The apparatus of claim 6 wherein the flash memory controller is to issue commands to the flash memory dies responsive to requests accompanied by respective ones of the logical addresses. 8. The apparatus of claim 1 wherein the instructions, when executed, are to cause the at least one host processor to send one or more configuration requests to the memory controller for the nonvolatile memory drive, to cause the memory controller to organize physical memory space in the nonvolatile memory drive so as to map to the at least two sets of addresses according to a host-specified demarcation. 9. An apparatus comprising: at least one host processor; and instructions stored on a non-transitory storage medium, the instructions, when executed, to cause the at least one host processor to identify a need on an independent basis for each one of at least two sets of addresses associated with a nonvolatile memory drive, for a copy of data from one physical storage location within the nonvolatile memory drive to another physical storage location within the nonvolatile memory drive, and responsive to the identified need, send one or more requests to a memory controller for the nonvolatile memory drive in a manner directed to the given set, to cause the memory controller to perform the copy of data, wherein the one or more requests are to specify a source address for data to be copied and a destination for the data to be copied, and wherein the instructions when executed are to cause the at least one host processor to choose the destination to correspond to a selected one of the sets of addresses in dependence on metadata comprising an age-since-write characteristic of the data to be copied; wherein the memory controller is to perform logical to physical address translation of the source address and the destination to identify the data being copied and to select a physical destination structure for the data to be copied; wherein the memory controller is to store metadata respective to each set of the at least two sets of addresses, is to update the metadata representing the age-since-write characteristic in a manner respective to each set of the at least two sets of addresses as a function of write operations affecting the respective set of the at least two sets of addresses, is to detect when the metadata respective to each set of the at least two sets of addresses satisfies at least one threshold, and is to responsively send a notification to the at least one host processor; and wherein the instructions when executed are to cause the at least one host processor to choose the destination dependent on the notification from the memory controller. 10. The apparatus of claim 9 wherein the instructions, when executed, are to cause the at least one host processor to send one or more configuration requests to the memory controller for the nonvolatile memory drive, to cause the memory controller to organize physical memory space in the nonvolatile memory drive so as to map to the at least two sets of addresses according to a host-specified demarcation. 11. A method of operating at least one host processor, said method comprising: identifying a need on an independent basis for each one of at least two sets of addresses associated with a nonvolatile memory drive, for a copy of data from one physical storage location within the nonvolatile memory drive to another physical storage location within the nonvolatile memory drive; and responsive to identified need, sending one or more requests to a memory controller for the nonvolatile memory drive in a manner directed to the given set, to cause the memory controller to perform the copy of data, wherein the one or more requests are to specify a source address for data to be copied and a destination for the data to be copied, and wherein the instructions when executed are to cause the at least one host processor to choose the destination to correspond to a selected one of the sets of addresses in dependence on metadata comprising an age-since-write characteristic of the data to be copied; wherein the memory controller is to perform logical to physical address translation of the source address and the destination to identify the data being copied and to select a physical destination structure for the data to be copied; wherein the memory controller is to store metadata respective to each set of the at least two sets of addresses, is to update the metadata representing the age-since-write characte
Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays · CPC title
Lifecycle management · CPC title
Improving I/O performance · CPC title
management of metadata or control data · CPC title
Flash memory · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.