IP Library Granted Patent US 11,907,569
Granted Patent B1
US 11,907,569 · App. 17/948,161 · Granted Feb 20, 2024

Storage deveice that garbage collects specific areas based on a host specified context

Inventors: Alan Chen (Simi Valley, CA); Craig Robertson (Simi Valley, CA); Robert Lercari (Thousand Oaks, CA); Andrey V. Kuzmin (Moscow, RU)
Assignee: Radian Memory Systems, Inc.
G06F3/0655G06F3/061G06F3/0679
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,907,569
App. No.
17/948,161
Granted
Feb 20, 2024
Kind
B1
Abstract

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.

Claims (49)

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.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 20, 2024
From: RADIAN MEMORY SYSTEMS, INC.
To: RADIAN MEMORY SYSTEMS LLC
Reel/Frame 067471/0240 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2022
From: KUZMIN, ANDREY V.; ROBERTSON, CRAIG; LERCARI, ROBERT; CHEN, ALAN
To: RADIAN MEMORY SYSTEMS, INC.
Reel/Frame 061470/0990 →
Continuity (8)
Continuation 17176035 · Feb 15, 2021
Continuation 16702736 · Dec 4, 2019
Continuation 15211939 · Jul 15, 2016
Continuation In Part 14848273 · Sep 8, 2015
Provisional Application 62241429 · Oct 14, 2015
Provisional Application 62199969 · Jul 31, 2015
Provisional Application 62194172 · Jul 17, 2015
Provisional Application 62048162 · Sep 9, 2014
Cited By (1)
US 12,578,900