Command queuing
US-2016364179-A1 · Dec 15, 2016 · US
US11907569B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-11907569-B1 |
| Application number | US-202217948161-A |
| Country | US |
| Kind code | B1 |
| Filing date | Sep 19, 2022 |
| Priority date | Sep 9, 2014 |
| Publication date | Feb 20, 2024 |
| Grant date | Feb 20, 2024 |
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 host stores “context” metadata for logical block addresses (LBAs) in a manner tied to physical location. Notwithstanding log-structured or copy on write processes, the host is then provided with immediate context when the host is called upon to assist a memory controller with data identified by physical location, for example, for memory reconfiguration, garbage collection, wear leveling or other processes. The metadata for example can provide the host with insight as to which data may be moved to enhance performance optimization and where that data can be placed. In one embodiment, the host writes back one or more references that span multiple layers of indirection in concert with write of the underlying data; in another embodiment, the context can point to other metadata.
Opening claim text (preview).
We claim: 1. A storage device comprising: flash memory having erase units, wherein the flash memory is to have one or more namespaces at a first hierarchical level, and groups of one or more of the erase units at a second hierarchical level; a host interface to receive a write request and, in association with the write request, a designation of a specified namespace of the one or more namespaces, write data, and an associated handle that indicates context for the write data; logic to cause the storage device to select one of the groups, dependent on the handle, the selected one of the groups being associated with the specified namespace, store the write data in the one or more erase units of the flash memory which are associated with the selected one of the groups, track write data validity information for the one or more erase units of flash memory which are associated with the selected one of the groups; and dependent on the validity information, perform garbage collection in a manner dedicated to the selected one of the groups; wherein, as part of garbage collection performed for the selected group, the logic is to cause the storage device to copy the write data to a destination erase unit of the flash memory, the destination erase unit being selected dependent on the associated handle; wherein the said logic comprises at least one of (1) instructional logic stored on a physical storage medium and (2) hardware logic. 2. The storage device of claim 1 , wherein the storage device is further to receive a query from a host, and wherein the logic is further to cause the storage device to process the query and responsively: identify the associated handle; and transmit to the host information representing the associated handle. 3. The storage device of claim 2 , wherein the information transmitted to the host explicitly identifies the associated handle. 4. The storage device of claim 1 , wherein the flash memory comprises address subspaces at a third hierarchical level, each of the groups of one or more of the erase units being associated with no more than one of the address subspaces. 5. The storage device of claim 4 , wherein the storage device is further to receive a request from a host to provide to the host information identifying a number of the address subspaces. 6. The storage device of claim 5 , wherein the information explicitly identifies a specific one of the address subspaces. 7. The storage device of claim 5 , wherein the storage device is further to receive address information with the write request, and wherein the logic is further to cause the storage device to responsively: derive a first portion from the address information, and identify from the first portion the specific namespace; perform one or more operations to subdivide the address information and identify therefrom a second portion and a third portion; and identify a specific one of the address subspaces from the second portion. 8. The storage device of claim 1 , wherein the logic is further to cause the storage device to store metadata for the selected one of the groups, the metadata representing a time associated with the selected one of the groups. 9. The storage device of claim 8 , wherein the storage device is further to receive a request from the host for status information associated with the groups, and wherein the logic is further to cause the storage device to responsively: identify the status information from the metadata; and transmit the status information to the host. 10. The storage device of claim 8 , wherein the time is associated with programming of the write data into the flash memory. 11. The storage device of claim 8 , wherein the time is associated with an amount of time since data was programmed. 12. The storage device of claim 1 , wherein the logic is further to cause the storage device to store metadata for the selected group, the metadata representing an extent to which additional write data can be programmed into the one or more erase units of flash memory which are associated with the selected one of the groups without erasure of the one or more erase units. 13. The storage device of claim 1 , wherein the storage device is further to receive, from a host, a request, and wherein the logic is further to cause the storage device to responsively: identify a size corresponding to the selected one of the groups; and transmit to a host information representing the size corresponding to the selected one of the groups. 14. The storage device of claim 13 , wherein the amount of storage space exactly corresponds to a non-power of two number of storage locations in the flash memory. 15. The storage device of claim 13 , wherein the size corresponds to a maximum writeable capacity corresponding to the selected one of the groups. 16. The storage device of claim 1 , wherein the flash memory comprises planes, and wherein at least one of the groups comprises erase units on different ones of the planes. 17. The storage device of claim 1 , wherein the logic is further to cause the storage device to track an extent to which additional write data can be programmed into the one or more erase units of flash memory which are associated with the selected one of the groups without erasure of the one or more erase units. 18. The storage device of claim 17 , wherein the storage device is further to receive a request, and wherein the logic is to further cause the storage device to responsively: identify the extent to which additional write data can be programmed into the one or more erase units of flash memory which are associated with the selected one of the groups without erasure of the one or more erase units; and transmit to a host information representing the extent to which additional write data can be programmed into the one or more erase units of flash memory which are associated with the selected one of the groups without erasure of the one or more erase units. 19. The storage device of claim 1 , wherein: the one or more groups include two groups, including the selected one of the groups and another group; the logic is further to cause the storage device to: track metadata for each of the two groups, and to transmit to the host status information for each of the two groups, dependent on the metadata; receive at least one command relating to performance of garbage collection that causes the storage device to perform said garbage collection for the selected one of the groups in a manner triggered by the host; and the at least one command causes the time to be selectively different for flash memory associated with the selected group relative to flash memory associated with the other of the two groups. 20. The storage device of claim 1 , wherein the logic is further to cause the storage device to: store a value that represents a size corresponding to the selected one of the groups; track metadata for each corresponding one of the groups, wherein the metadata for each corresponding one of the groups represents an extent to which the corresponding one of the groups can continue to receive writeable data without erasure; receive a maintenance command from a host, wherein the maintenance command specifies the selected one of the groups; and perform maintenance, responsive to the maintenance command, a which changes the extent the corresponding one of the groups can continue to receive writeable data without erasure of the one or more erase units corresponding to the selected one of the groups.
Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices · CPC title
Improving I/O performance · CPC title
Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP] · CPC title
Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays · CPC title
in relation to life time, e.g. increasing Mean Time Between Failures [MTBF] · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.