# US 2025/0147682 A1 · Random Storage Access and Data Erasure for Improved Performance and Reduced Write Amplification

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2025/0147682 A1
- Document ID: US20250147682A1
- Status: Published application
- Kind: A1
- Application number: 19/014,020
- Filed: 2025-01-08
- Published: 2025-05-08
- Earliest claimed: 2022-07-20
- Assignees: Micron Technology, Inc.
- Applicants: Micron Technology, Inc.
- Inventors: Luca Bert
- Web page: https://patentgrep.com/patent/US20250147682A1

## CPC

- G06F 3/064: {Management of blocks}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0656: {Data buffering arrangements}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A host system to query, during booting up of the host system, a superblock size in a connected memory sub-system. The host system can place write requests into separate streams and send the streams to the memory sub-system to store data of the write requests into separate sets of superblocks for the streams respectively. The host system can allocate, a plurality of log buffers for the streams respectively and record, into the log buffers, sequences of logical addresses as in the streams respectively. The host system can trim a stream, among the plurality of streams, by issuing commands to the memory sub-system to erase, according to the superblock size, an amount of data from a portion of a sequence of logical addresses recorded in a log buffer for the stream, causing the memory sub-system to free at least one superblock.

## Claims

### Claim 1

A device, comprising:
memory cells configured as a plurality of superblocks; and
a controller configured to receive requests to write data to a storage space provided by the memory cells, the requests configured as a plurality of streams; and
wherein the controller is configured to aggregate placement of data of different streams into different superblocks and configured not to reclaim a superblock that is to be partially erased according to commands received in the device.

### Claim 2 (depends on 1)

The device of claim 1, wherein the controller is further configured to:
receive, during booting up of a system containing the device, a query; and
providing, in response to the query, a superblock size of the plurality of superblocks.

### Claim 3 (depends on 2)

The device of claim 2, wherein the controller is further configured to:
maintain a plurality of stream cursors for the plurality of different streams respectively.

### Claim 4 (depends on 3)

The device of claim 3, wherein each of the plurality of stream cursors is configured to use a different superblock among the plurality of superblocks.

### Claim 5 (depends on 4)

The device of claim 4, wherein the controller is further configured to:
allocate storage spaces for writing by the plurality of streams according to the plurality of stream cursors.

### Claim 6 (depends on 5)

The device of claim 5, wherein each respective stream cursor, among the plurality of stream cursors is configured to identify a next free space in a respective superblock to host a logical block address to be written.

### Claim 7 (depends on 6)

The device of claim 6, wherein the controller is further configured to:
receive a request to trim a stream, among the plurality of streams;
identify at least one first superblock that is full and that stores data for the stream; and
erase the at least one first superblock;
wherein the stream contains data in a second superblock that is not full; and
wherein the controller is configured to exclude the second superblock from being reclaimed in responding to the request.

### Claim 8

A method, comprising:
configuring memory cells in a device as a plurality of superblocks;
receiving, in the device, requests to write data to a storage space provided by the memory cells, the requests configured as a plurality of streams; and
aggregating, by the device, placement of data of different streams into different superblocks, wherein the device is configured not to reclaim a superblock that is to be partially erased according to commands received in the device.

### Claim 9 (depends on 8)

The method of claim 8, further comprising:
receive, during booting up of a system containing the device, a query; and
providing, in response to the query, a superblock size of the plurality of superblocks.

### Claim 10 (depends on 8)

The method of claim 8, further comprising:
maintaining, in the device, a plurality of stream cursors for the plurality of different streams respectively.

### Claim 11 (depends on 10)

The method of claim 10, wherein each of the plurality of stream cursors is configured to identify a different superblock among the plurality of superblocks.

### Claim 12 (depends on 11)

The method of claim 11, further comprising:
allocating storage spaces for writing by the plurality of streams according to the plurality of stream cursors.

### Claim 13 (depends on 12)

The method of claim 12, wherein each respective stream cursor, among the plurality of stream cursors is configured to identify a next free space in a respective superblock to host a logical block address to be written.

### Claim 14 (depends on 13)

The method of claim 13, further comprising:
receiving, in the device, a request to trim a stream, among the plurality of streams, wherein the stream contains data stored in at least one first superblock that is full, and wherein the stream further contains data stored in a second superblock that is not full;
identifying at least one first superblock;
erasing the at least one first superblock; and
excluding the second superblock from being reclaimed during responding to the request.

### Claim 15

A non-transitory computer storage medium storing instructions which, when executed by a device, cause the device to perform a method, comprising:
configuring memory cells in the device as a plurality of superblocks;
receiving, in the device, requests to write data to a storage space provided by the memory cells, the requests configured as a plurality of streams; and
aggregating, by the device, placement of data of different streams into different superblocks, wherein the device is configured not to reclaim a superblock that is to be partially erased according to commands received in the device.

### Claim 16 (depends on 15)

The non-transitory computer storage medium of claim 15, wherein the method further comprises:
receive, during booting up of a system containing the device, a query; and
providing, in response to the query, a superblock size of the plurality of superblocks.

### Claim 17 (depends on 15)

The non-transitory computer storage medium of claim 15, wherein the method further comprises:
maintaining, in the device, a plurality of stream cursors for the plurality of different streams respectively;
wherein each of the plurality of stream cursors is configured to identify a different superblock among the plurality of superblocks.

### Claim 18 (depends on 17)

The non-transitory computer storage medium of claim 17, wherein the method further comprises:
allocating storage spaces for writing by the plurality of streams according to the plurality of stream cursors.

### Claim 19 (depends on 18)

The non-transitory computer storage medium of claim 18, wherein each respective stream cursor, among the plurality of stream cursors is configured to identify a next free space in a respective superblock to host a logical block address to be written.

### Claim 20 (depends on 19)

The non-transitory computer storage medium of claim 19, wherein the method further comprises:
receiving, in the device, a request to trim a stream, among the plurality of streams, wherein the stream contains data stored in at least one first superblock that is full, and wherein the stream further contains data stored in a second superblock that is not full;
identifying at least one first superblock;
erasing the at least one first superblock; and
excluding the second superblock from being reclaimed during responding to the request.
