# US 12,181,961 B2 · Apparatus and method for regulating available storage of a data storage system

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

- Number: US 12,181,961 B2
- Document ID: US12181961B2
- Status: Granted
- Kind: B2
- Application number: 17/959,899
- Filed: 2022-10-04
- Published: 2023-01-26
- Granted: 2024-12-31
- Earliest claimed: 2018-12-17
- Assignees: SanDisk Technologies LLC
- Applicants: Western Digital Technologies, Inc.
- Inventors: Jay Sarkar; Cory Peterson
- Web page: https://patentgrep.com/patent/US12181961B2

## CPC

- G06F 11/079: {Root cause analysis, i.e. error or fault diagnosis (in a hardware test environment G06F11/22; in a software test environment G06F11/36)}
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 11/0727: {in a storage system, e.g. in a DASD or network based storage system (drivers for digital recording or reproducing units G06F3/06; circuits for error detection or correction within digital recording or reproducing units G11B20/18; for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS], H04L67/1097)}
- G06F 11/0751: {Error or fault detection not based on redundancy (power supply failures G06F1/30; network fault management H04L41/06)}
- G06F 11/0793: {Remedial or corrective actions (recovery from an exception in an instruction pipeline G06F9/3861; by retry G06F11/1402; for recovering from a failure of a protocol instance or entity H04L69/40)}
- G06F 11/3034: {where the computing system component is a storage system, e.g. DASD based or network based (digital input from or digital output to record carriers G06F3/06; digital recording or reproducing G11B20/18; for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS], H04L67/1097)}
- G06F 11/3058: {Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations (thermal management in cooling arrangements of a computing system G06F1/206)}
- G06F 11/3089: {Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents (software debugging using additional hardware using a specific debug interface G06F11/3656; performance evaluation by tracing or monitoring G06F11/3466)}
- G06F 11/3433: {for load management (allocation of a server based on load conditions G06F9/505; load rebalancing G06F9/5083; redistributing the load in a network by a load balancer H04L67/1029)}
- G06F 11/3447: {Performance evaluation by modeling}
- G06F 11/3466: {Performance evaluation by tracing or monitoring}
- G06F 12/10: Address translation
- G06N 20/00: Machine learning
- G06F 2201/81: Threshold
- G06F 2212/1036: Life time enhancement
- G06F 2212/1044: Space efficiency improvement
- G06F 2212/657: Virtual address space management
- G06F 2212/7201: Logical to physical mapping or translation of blocks or pages
- G06F 2212/7204: Capacity control, e.g. partitioning, end-of-life degradation
- G06F 2212/7206: Reconfiguration of flash memory system
- G06F 2212/7208: Multiple device management, e.g. distributing data over multiple flash devices
- G06N 5/01: Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
- G06N 7/01: Probabilistic graphical models, e.g. probabilistic networks
- G06N 20/20: Ensemble learning
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

Apparatus, media, methods, and systems for data storage systems and methods for autonomously adapting data storage system performance, lifetime, capacity and/or operational requirements. A data storage system may comprise a controller and one or more non-volatile memory devices. The controller is configured to determine a category for a workload of one or more operations being processed by the data storage system using a machine-learned model. The controller is configured to determine an expected degradation of the one or more non-volatile memory devices. The controller is configured to adjust, based on the expected degradation and an actual usage of physical storage of the data storage system by a host system, an amount of physical storage of the data storage system available to the host system.

## Claims

### Claim 1

A machine-implemented method for a data storage system comprising one or more non-volatile memories, the machine-implemented method comprising:
causing a machine-learned model to be trained or prepared for determining a category for a workload of one or more operations being executed by the data storage system, wherein causing the machine-learned model to be trained or prepared comprises:
receiving, at the data storage system, an example category for the workload;
monitoring values of input parameters to the machine-learned model; and
applying a rank value to one or more of the input parameters,
wherein the rank value to the one or more of the input parameters is applied based on whether a respective value of a respective input parameter of the one or more of the input parameters satisfies a respective threshold value for the respective input parameter of the one or more of the input parameters.

### Claim 2 (depends on 1)

The machine-implemented method of claim 1, further comprising:
determining, using the machine-learned model, the category for the workload of the one or more operations being executed by the data storage system; and
based on the category, a projected degradation, and an actual storage usage of the data storage system, regulating an amount of available storage of the data storage system,
wherein the projected degradation is associated with one or more non-volatile memories of the data storage system.

### Claim 3 (depends on 1)

The machine-implemented method of claim 1, wherein the category for the workload comprises an entropy type for the workload, and the entropy type comprises at least one of the following:
a random workload type associated with reading or writing using randomly addressed memory blocks;
a sequential workload type associated with reading or writing using contiguously addressed memory blocks; and
a mixed workload type associated with reading or writing using randomly addressed memory blocks and contiguously addressed memory blocks.

### Claim 4 (depends on 1)

The machine-implemented method of claim 1, wherein causing the machine-learned model to be trained or prepared further comprises:
calibrating the rank value applied to one or more of the input parameters.

### Claim 5 (depends on 4)

The machine-implemented method of claim 4, wherein:
the example category for the workload is received from a host system;
the values of input parameters to the machine-learned model are transferred to the host system;
the rank value to the one or more of the input parameters is applied by the host system; and
the rank value to the one or more of the input parameters is calibrated by the host system;
wherein the host system and the data storage system are communicably coupled with each other.

### Claim 6 (depends on 1)

The machine-implemented method of claim 1, wherein the receiving, at the data storage system, the example category for the workload comprises:
processing the example category for the workload in a manner to simulate an amount of workload similar in size to an amount that the data storage system processes over its lifetime.

### Claim 7 (depends on 1)

The machine-implemented method of claim 1, wherein the monitoring values of the input parameters to the machine-learned model comprises:
determining a set of the input parameters to monitor, based on a stored set of rules.

### Claim 8 (depends on 5)

The machine-implemented method of claim 5, wherein the calibrating the rank value applied to the one or more of the input parameters comprises:
adjusting the rank value applied to the one or more of the input parameters based on the values of input parameters to the machine-learned model.

### Claim 9

A data storage system, comprising:
one or more controllers configured to cause:
causing a machine-learned model to be trained or prepared for determining a category for a workload of one or more operations being executed by the data storage system, wherein causing the machine-learned model to be trained or prepared comprises:
receiving, at the data storage system, an example category for the workload; and
monitoring values of input parameters to the machine-learned model,
wherein the receiving, at the data storage system, the example category for the workload comprises:
processing the example category for the workload in a manner to simulate an amount of workload similar in size to an amount that the data storage system processes over its lifetime.

### Claim 10 (depends on 9)

The data storage system of claim 9, wherein the one or more controllers are configured to further cause:
determining, using the machine-learned model, the category for the workload of the one or more operations being executed by the data storage system; and
based on the category, a projected degradation, and an actual storage usage of the data storage system, regulating an amount of available storage of the data storage system,
wherein the projected degradation is associated with one or more non-volatile memories of the data storage system.

### Claim 11 (depends on 9)

The data storage system of claim 9, wherein the category for the workload comprises an entropy type for the workload, and the entropy type comprises at least one of the following:
a random workload type associated with reading or writing using randomly addressed memory blocks;
a sequential workload type associated with reading or writing using contiguously addressed memory blocks; and
a mixed workload type associated with reading or writing using randomly addressed memory blocks and contiguously addressed memory blocks.

### Claim 12 (depends on 9)

The data storage system of claim 9, wherein causing the machine-learned model to be trained or prepared further comprises:
applying a rank value to one or more of the input parameters; and
calibrating the rank value applied to one or more of the input parameters.

### Claim 13 (depends on 12)

The data storage system of claim 12, wherein:
the example category for the workload is for being received from a host system;
the values of input parameters to the machine-learned model are for being transferred to the host system;
the rank value to the one or more of the input parameters is for being applied by the host system;
the rank value to the one or more of the input parameters is for being calibrated by the host system; and
the host system and the data storage system are for being communicably coupled with each other.

### Claim 14 (depends on 13)

The data storage system of claim 13, wherein the calibrating the rank value applied to the one or more of the input parameters comprises:
adjusting the rank value applied to the one or more of the input parameters based on the values of input parameters to the machine-learned model.

### Claim 15 (depends on 12)

The data storage system of claim 12, wherein the rank value to the one or more of the input parameters is for being applied based on whether a respective value of a respective input parameter of the one or more of the input parameters satisfies a respective threshold value for the respective input parameter of the one or more of the input parameters.

### Claim 16 (depends on 9)

The data storage system of claim 9, wherein the monitoring values of the input parameters to the machine-learned model comprises:
determining a set of the input parameters to monitor, based on a stored set of rules.

### Claim 17

An apparatus, comprising:
means for causing a machine-learned model to be trained or prepared for determining a category for a workload of one or more operations being executed by a data storage system, wherein the means for causing the machine-learned model to be trained or prepared comprises:
means for receiving, at the data storage system, an example category for the workload;
means for monitoring values of input parameters to the machine-learned model; and
means for applying a rank value to one or more of the input parameters,
wherein:
the example category for the workload is for being received from a host system;
the values of input parameters to the machine-learned model are for being transferred to the host system;
the rank value to the one or more of the input parameters is for being applied by the host system; and
the host system and the data storage system are for being communicably coupled with each other.

### Claim 18 (depends on 17)

The apparatus of claim 17, wherein the means for causing the machine-learned model to be trained or prepared further comprises:
means for calibrating the rank value applied to one or more of the input parameters.

### Claim 19 (depends on 18)

The apparatus of claim 18, wherein the rank value to the one or more of the input parameters is for being calibrated by the host system.
