IP Library Granted Patent US 12,625,819
Granted Patent B1
US 12,625,819 · App. 19/409,662 · Granted May 12, 2026

Storage system with namespaces and host-accessible subdivisions

Inventors: Robert Lercari (Thousand Oaks, CA); Alan Chen (Simi Valley, CA); Mike Jadon (Manhattan Beach, CA); Craig Robertson (Simi Valley, CA); Andrey V. Kuzmin (Moscow, RU)
Assignee: Radian Memory Systems, ILLC
G06F12/1009G06F3/0616G06F3/064G06F3/0688G06F12/0207G06F12/0246G06F12/109G06F3/0659G06F3/0662G06F2212/1016G06F2212/7201G06F2212/7202G06F2212/7205
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 12,625,819
App. No.
19/409,662
Granted
May 12, 2026
Kind
B1
Abstract

This disclosure provides techniques hierarchical address virtualization within a memory controller and configurable block device allocation. By performing address translation only at select hierarchical levels, a memory controller can be designed to have predictable I/O latency, with brief or otherwise negligible logical-to-physical address translation time. In one embodiment, address transition may be implemented entirely with logical gates and look-up tables of a memory controller integrated circuit, without requiring processor cycles. The disclosed virtualization scheme also provides for flexibility in customizing the configuration of virtual storage devices, to present nearly any desired configuration to a host or client.

Claims (117)

1 . A storage system comprising:

a host having a host-side interface; and

a storage drive comprising:

a drive-side interface;

at least one namespace;

flash memory having erase units organized into subdivisions, the subdivisions comprising respective, non-overlapping sets of erase units; and

logic operable to cause the storage drive to transmit to the host, responsive to receipt, via the drive-side interface, of at least one query from the host, information to identify a specific namespace of the at least one namespace, one or more of the subdivisions which are associated with the specific namespace, and for each one of the one or more of the subdivisions, an associated subdivision size;

wherein the host comprises logic operable to cause the host to:

receive, via the host-side interface, the information transmitted by the storage drive in response to the at least one query,

format write requests such that each of the write requests are addressed to the specific namespace and to a selected subdivision of the one or more subdivisions, and

transmit, via the host-side interface, the write requests to the storage drive;

wherein the storage drive further comprises logic operable to cause the storage drive to:

maintain a logical-to-physical look-up table;

receive the write requests from the host, via the drive-side interface, and, for each one of the write requests, to:

derive, from address information associated with the one of the write requests, a first address portion, a second address portion, and a third address portion,

identify, from the first address portion, the specific namespace,

identify, from the second address portion, the selected subdivision,

identify an offset associated with the selected subdivision, by using at least one operation to subdivide the offset to identify a physical storage location within a specific erase unit of the set of erase units which is respective to the selected subdivision,

program data associated with the one of the write requests into the identified physical storage location,

identify a logical block address from the third address portion; and

update the logical to physical look-up table, such that the identified logical block address is indexed to the identified physical storage location; and

wherein each said logic comprises at least one of circuitry or instructions stored on a physical storage medium that, when executed, are to control circuitry of the storage device.

2 . The storage system of claim 1 , wherein the storage device further comprises logic operable to cause the storage device to:

track metadata respective to the one or more subdivisions;

compare the metadata with at least one criterion; and

responsive to satisfaction of the at least one criterion by the metadata for a given subdivision of the one or more subdivisions, automatically copy valid data from at least one erase unit in the set respective to the given subdivision to a new erase unit.

3 . The storage system of claim 2 , wherein the storage device further comprises logic operable to cause the storage device to:

in association with the copy of the valid data, disassociate the at least one erase unit from the set which is respective to the given subdivision; and

automatically control physical erasure of the at least one erase unit.

4 . The storage system of claim 3 , wherein the storage device further comprises logic operable to cause the storage device to:

maintain a pool of free erase units; and

select the new erase unit from the pool of free erase units, and assign the new erase unit to the set which is respective to the given subdivision.

5 . The storage system of claim 3 , wherein the storage device further comprises logic operable to cause the storage device to:

track information representing defect status of each erase unit in the set which is respective to the given subdivision;

in association with the automatically-controlled physical erasure of the at least one erase unit, detect an erasure error in a given erase unit of the at least one erase unit; and

responsively update tracked information representing defect status to mark the given erase unit as bad.

6 . The storage system of claim 2 , wherein:

the metadata of the storage device comprises data validity information, tracked by the storage device on a basis that is specific to a single erase unit of the set respective to the given subdivision;

the at least one criterion of the storage device comprises a criterion associated with data stored in individual ones of the erase units of the flash memory; and

the automatic copy of valid data is performed responsive to satisfaction, by the data validity information, of the criterion associated with data stored in individual ones of the erase units of the flash memory.

7 . The storage system of claim 2 , wherein the metadata represents times, respective to the one or more subdivisions, since data was programmed into at least one erase unit in the respective set of erase units.

8 . The storage system of claim 2 , wherein the metadata indicates wear of each erase unit in the sets respective to the one or more subdivisions.

9 . The storage system of claim 2 , wherein the metadata indicates data access frequencies respective to the one or more subdivisions.

10 . The storage system of claim 1 , wherein:

the host further comprises logic operable to cause the host to transmit, via the host-side interface, a command to the storage device, to release stored data; and

the storage device further comprises logic operable to cause the storage device to:

receive, via the drive-side interface, the command; and

responsively update tracked data validity information, to mark as released, at least one physical storage location corresponding to the released data.

11 . The storage system of claim 10 , wherein the storage device further comprises logic operable to cause the storage device to:

in association with the update of the tracked data validity information, detect a condition where all storage locations of a given erase unit having previously-written data, provided by the host, are marked as released; and

automatically control physical erasure of the given erase unit.

12 . The storage system of claim 1 , wherein:

the at least one query is at least one first query;

the host further comprises logic operable to cause the host to transmit a second query to the storage device; and

the storage device further comprises logic operable to cause the storage device to:

track metadata respective to different ones of the one or more subdivisions;

receive, via the drive-side interface, the second query; and

responsive to receipt of the second query, transmit second information, via the drive-side interface, to the host, which is dependent on the tracked metadata.

13 . The storage device of claim 12 , wherein the second information identifies a given subdivision of the one or more subdivisions and indicates a quantity of available space, associated with the set of erase units which are respective to the given subdivision, which can currently be written to.

14 . The storage device of claim 12 , wherein the metadata represents a time since data was programmed into the respective subdivision.

15 . The storage device of claim 1 , wherein:

the host further comprises logic operable to cause the host to transmit, via the host-side interface, a second query to the storage device; and

the storage device further comprises logic operable to cause the storage device to:

store a value representing a maximum number of subdivisions; and

receive, via the drive-side interface, the second query; and

responsively transmit to the host, via the drive-side interface, information representing the maximum number of the subdivisions.

16 . The storage system of claim 1 , wherein:

the flash memory comprises flash memory dies;

the flash memory further comprises one or more die groups, each die group having a subset of one or more of the flash memory dies, the one or more of the flash memory dies in each die group being mutually-exclusive to the one or more of the flash memory dies in each other die group, wherein each die group is associated with a die group identifier (ID);

the host further comprises logic operable to cause the host to transmit, via the host-side interface, a second query to the storage device; and

the storage device further comprises logic operable to cause the storage device to receive the second query from the host, via the drive-side interface, and to responsively transmit to the host, via the drive-side interface, information representing each die group ID.

17 . The storage system of claim 16 , wherein:

the host further comprises logic operable to cause the host to format each of the write requests to specify an ID associated with a specific die group of the one or more die groups; and

the storage device logic is further operable to cause the storage device to perform a division operation, on the address information associated each given one of the write requests, to identify a die group ID specified by the host in association with the given one of the write requests.

18 . The storage system of claim 1 , wherein:

the host further comprises logic operable to cause the host to transmit, to the storage drive, via the host-side interface, a configuration command accompanied with a setting; and

the storage drive further comprises logic operable to cause the storage drive to:

receive the configuration command from the host, via the drive-side interface; and

responsively update a quantity, of the one or more subdivisions accessible by the host, dependent on the setting.

19 . The storage system of claim 1 , wherein:

the host further comprises logic operable to cause the host to transmit read requests to the storage device, via the host-side interface; and

the storage device further comprises logic operable to cause the storage device to:

receive, via the drive-side interface, each of the read requests, wherein each of the read requests is directed to a corresponding logical block address;

detect an error condition associated with reading of data from the corresponding logical block address;

responsively copy valid data associated with the corresponding logical block address to a new erase unit; and

update the logical-to-physical look-up table, such that the corresponding logical block address is indexed to a physical storage location within the new erase unit.

20 . The storage device of claim 19 , wherein the error condition corresponds to a bit error rate which exceeds a threshold.

21 . The storage system of claim 1 , wherein:

the host further comprises logic operable to cause the host to transmit read requests to the storage device, via the host-side interface, each of the read requests specifying a read logical block address;

the storage device further comprises logic operable to cause the storage device to receive, via the drive-side interface, each of the read requests from the host, and to fulfill each given one of the read requests by:

retrieving, from the logical-to-physical look-up table, a read physical address which is mapped to the read logical block address specified by the given one of the read requests;

retrieving, from the flash memory, read data from a physical location corresponding to the read physical address, and

transmitting the read data to the host.

22 . The storage system of claim 1 , wherein the storage device further comprises logic operable to cause the storage device to maintain information, respective to each subdivision of the one or more subdivisions, identifying a next-available physical storage location for the respective subdivision, and to automatically update, in association with the receipt of a first one of the write requests, the information identifying the next-available physical storage location which is respective to an addressed one of the one or more subdivisions.

23 . The storage system of claim 22 , wherein:

the host further comprises logic operable to cause the host to transmit, to the storage device, via the host-side interface, a second query; and

the storage device further comprises logic operable to cause the storage device to:

receive the second query from the host, via the drive-side interface;

responsively transmit, to the host, via the drive-side interface, information which depends on the maintained information identifying the next-available physical storage location, as automatically updated, for at least one subdivision of the one or more subdivisions.

24 . The storage system of claim 1 , wherein the at least one operation to subdivide comprises, for a particular one of the write requests which is directed to a given subdivision of the one or more subdivisions, a division operation performed on the identified offset for the particular one of the write requests, wherein a quotient of the division operation comprises at least one of a number of the erase units, or a number of pages, or a number of storage locations, and wherein a remainder of the division operation corresponds to a structural offset corresponding to a physical address in the flash memory.

25 . The storage system of claim 1 , wherein the associated subdivision size corresponds to at least a minimum amount of storage capacity to be physically reset by the storage device as part of a physical memory erasure operation.

26 . The storage system of claim 1 , wherein:

the storage device further comprises logic operable to cause the storage device to:

perform garbage collection; and

in connection with said garbage collection:

relocate all remaining valid data from any erase unit in the set respective to a given subdivision of the one or more subdivisions to one or more new erase units; and

automatically associate the set respective to the given subdivision with the one or more new erase units;

wherein each of the one or more new erase units are associated with at most exactly one of the sets.

27 . The storage system of claim 1 , wherein the storage device further comprises logic operable to cause the storage device to receive, from the host, via the drive-side interface, a second write request, the second write request being directed to a given subdivision of the one or more subdivisions and, in association with the second write request, to:

detect that insufficient free memory space remains in the set of erase units respective to the given subdivision;

assign a new erase unit to the set respective to the given subdivision;

identify a destination physical address associated with a storage location in the new erase unit;

store write data accompanying the second write request at the storage location associated with the identified destination physical address; and

update the logical to physical look-up table to index a logical block address, identified for the second write request, to the destination physical address.

28 . The storage system of claim 27 , wherein:

the logical block address identified for the second write request corresponds to a logical block address identified for a first one of the write requests; and

the logic is further operable to cause the storage device to update, in association with the storage of the write data accompanying the second write request at the storage location associated with the destination physical address, the logical-to-physical look-up table, so as to reindex a logical block address identified for the first one of the write requests to the destination physical address.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 4, 2025
From: KUZMIN, ANDREY V.; JADON, MIKE; LERCARI, ROBERT; ROBERTSON, CRAIG; CHEN, ALAN
To: RADIAN MEMORY SYSTEMS, INC.
Reel/Frame 073121/0204 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 4, 2025
From: RADIAN MEMORY SYSTEMS, INC.
To: RADIAN MEMORY SYSTEMS, LLC
Reel/Frame 073121/0208 →