# US 2020/0394304 A1 · Optimizing storage system performance using storage device topology

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

- Number: US 2020/0394304 A1
- Document ID: US20200394304A1
- Status: Published application
- Kind: A1
- Application number: 16/891,201
- Filed: 2020-06-03
- Published: 2020-12-17
- Earliest claimed: 2016-10-04
- Assignees: Pure Storage, Inc.
- Applicants: Pure Storage, Inc.
- Inventors: Gordon James Coleman; Peter E. Kirkpatrick; Eric D. Seppanen
- Web page: https://patentgrep.com/patent/US20200394304A1

## CPC

- G06F 16/2282: {Tablespace storage structures; Management thereof}
- G06F 3/0607: {by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0632: {by initialisation or re-initialisation of storage systems}
- G06F 3/064: {Management of blocks}
- G06F 3/065: {Replication mechanisms}
- G06F 3/0652: {Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket}
- G06F 3/0655: {Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices}
- G06F 3/0665: {at area level, e.g. provisioning of virtual or logical volumes}
- G06F 3/0688: {Non-volatile semiconductor memory arrays}
- G06F 3/0689: {Disk arrays, e.g. RAID, JBOD}
- G06F 9/4401: Bootstrapping (security arrangements therefor G06F21/57)
- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 12/0253: {Garbage collection, i.e. reclamation of unreferenced memory}
- G06F 16/211: {Schema design and management}
- G06F 16/252: {between a Database Management System and a front-end application}
- G06F 21/572: {Secure firmware programming, e.g. of basic input output system [BIOS]}
- G06F 2209/482: Application
- G06F 2212/702: Conservative garbage collection
- G06F 2212/7205: Cleaning, compaction, garbage collection, erase control
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A topology of a solid-state storage device of a storage system is received from a storage controller. A plurality of schedulable units of the solid-state storage device that are configured to perform parallel access operations are identified based on the topology. A determination as to which of the plurality of schedulable units are associated with other access operations that have been scheduled to be performed by the solid-state storage device is made. A write operation is scheduled to be performed by one or more of the plurality of schedulable units that are not associated with the other access operations that have been scheduled to be performed by the solid-state storage device. The write operation is performed to store data at the solid-state storage device based on the scheduling.

## Claims

### Claim 1

(canceled)

### Claim 2

A storage system comprising:
a plurality of solid-state storage devices; and
a storage system controller, operatively coupled to the plurality of solid-state storage devices, the storage system controller comprising a processing device, the processing device to:
receive, from a storage controller, a topology of a solid-state storage device of the plurality of solid-state storage devices;
identify a plurality of schedulable units of the solid-state storage device that are configured to perform parallel access operations based on the topology;
determine which of the plurality of schedulable units are associated with other access operations that have been scheduled to be performed by the solid-state storage device;
schedule a write operation to be performed by one or more of the plurality of schedulable units that are not associated with the other access operations that have been scheduled to be performed by the solid-state storage device; and
perform the write operation to store data at the solid-state storage device based on the scheduling.

### Claim 3 (depends on 2)

The storage system of claim 2, wherein the other access operations correspond to write operations that have been scheduled to be performed by the plurality of schedulable units of the solid-state storage device.

### Claim 4 (depends on 2)

The storage system of claim 2, wherein to schedule the write operation the processing device is further to:
assign the write operation to be performed by the one or more of the plurality of schedulable units that is available to perform the write operation, wherein the data of the write operation is stored at a data block of the one or more of the plurality of schedulable units.

### Claim 5 (depends on 2)

The storage system of claim 2, wherein the processing device is further to:
receive a read operation for data stored at a particular schedulable unit of the plurality of schedulable units, wherein additional data is retrieved from a plurality of other schedulable units from a plurality of other solid-state storage devices upon determining that the particular schedulable unit storing the data is performing another access operation.

### Claim 6 (depends on 5)

The storage system of claim 5, wherein the processing device is further to:
reconstruct the data stored at the particular schedulable unit based on the additional data from the plurality of other schedulable units from the plurality of other solid-state storage devices.

### Claim 7 (depends on 2)

The storage system of claim 2, wherein the processing device is further to:
determine a priority associated with an entity associated with the write operation, wherein the scheduling of the write operation is based on the determined priority.

### Claim 8 (depends on 2)

The storage system of claim 2, wherein the other access operations comprise a garbage collection process.

### Claim 9

A method comprising:
receiving, from a storage controller, a topology of a solid-state storage device of a storage system;
identifying a plurality of schedulable units of the solid-state storage device that are configured to perform parallel access operations based on the topology;
determining which of the plurality of schedulable units are associated with other access operations that have been scheduled to be performed by the solid-state storage device;
scheduling, by a processing device, a write operation to be performed by one or more of the plurality of schedulable units that are not associated with the other access operations that have been scheduled to be performed by the solid-state storage device; and
performing the write operation to store data at the solid-state storage device based on the scheduling.

### Claim 10 (depends on 9)

The method of claim 9, wherein the other access operations correspond to write operations that have been scheduled to be performed by the plurality of schedulable units of the solid-state storage device.

### Claim 11 (depends on 9)

The method of claim 9, wherein the scheduling of the write operation comprises:
assigning the write operation to be performed by the one or more of the plurality of schedulable units that is available to perform the write operation, wherein the data of the write operation is stored at a data block of the one or more of the plurality of schedulable units.

### Claim 12 (depends on 9)

The method of claim 9, further comprising:
receiving a read operation for data stored at a particular schedulable unit of the plurality of schedulable units, wherein additional data is retrieved from a plurality of other schedulable units from a plurality of other solid-state storage devices upon determining that the particular schedulable unit storing the data is performing another access operation.

### Claim 13 (depends on 12)

The method of claim 12, further comprising:
reconstructing the data stored at the particular schedulable unit based on the additional data from the plurality of other schedulable units from the plurality of other solid-state storage devices.

### Claim 14 (depends on 9)

The method of claim 9, further comprising:
determining a priority associated with an entity associated with the write operation, wherein the scheduling of the write operation is based on the determined priority.

### Claim 15 (depends on 9)

The method of claim 9, wherein the other access operations comprise a garbage collection process.

### Claim 16

A non-transitory computer readable storage medium storing instructions, which when executed, cause a processing device of a storage system controller to:
receive, from a storage controller, a topology of a solid-state storage device of a storage system;
identify a plurality of schedulable units of the solid-state storage device that are configured to perform parallel access operations based on the topology;
determine which of the plurality of schedulable units are associated with other access operations that have been scheduled to be performed by the solid-state storage device;
schedule, by the processing device, a write operation to be performed by one or more of the plurality of schedulable units that are not associated with the other access operations that have been scheduled to be performed by the solid-state storage device; and
perform the write operation to store data at the solid-state storage device based on the scheduling.

### Claim 17 (depends on 16)

The non-transitory computer readable storage medium of claim 16, wherein the other access operations correspond to write operations that have been scheduled to be performed by the plurality of schedulable units of the solid-state storage device.

### Claim 18 (depends on 16)

The non-transitory computer readable storage medium of claim 16, wherein to schedule the write operation the processing device is further to:
assign the write operation to be performed by the one or more of the plurality of schedulable units that is available to perform the write operation, wherein the data of the write operation is stored at a data block of the one or more of the plurality of schedulable units.

### Claim 19 (depends on 16)

The non-transitory computer readable storage medium of claim 16, wherein the processing device is further to:
receive a read operation for data stored at a particular schedulable unit of the plurality of schedulable units, wherein additional data is retrieved from a plurality of other schedulable units from a plurality of other solid-state storage devices upon determining that the particular schedulable unit storing the data is performing another access operation.

### Claim 20 (depends on 19)

The non-transitory computer readable storage medium of claim 19, wherein the processing device is further to:
reconstruct the data stored at the particular schedulable unit based on the additional data from the plurality of other schedulable units from the plurality of other solid-state storage devices.

### Claim 21 (depends on 16)

The non-transitory computer readable storage medium of claim 16, wherein the processing device is further to:
determine a priority associated with an entity associated with the write operation, wherein the scheduling of the write operation is based on the determined priority.
