# US 10,872,015 B2 · Data storage system with strategic contention avoidance

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

- Number: US 10,872,015 B2
- Document ID: US10872015B2
- Status: Granted
- Kind: B2
- Application number: 16/023,234
- Filed: 2018-06-29
- Published: 2020-01-02
- Granted: 2020-12-22
- Earliest claimed: 2018-06-29
- Assignees: Seagate Technology LLC
- Applicants: Seagate Technology LLC
- Inventors: Stacey Secatch; Steven S. Williams; David W. Claude; Benjamin J. Scott; Kyumsung Lee; Jeff Rogers
- Web page: https://patentgrep.com/patent/US10872015B2

## CPC

- G06F 11/1441: {Resetting or repowering}
- G06F 1/30: Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations (for resetting only G06F1/24)
- G06F 3/061: {Improving I/O performance}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 11/2015: {Redundant power supplies (power supply failure G06F1/30)}
- G06F 2212/1044: Space efficiency improvement
- G06F 2212/7202: Allocation control and policies
- G06F 2212/7205: Cleaning, compaction, garbage collection, erase control
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A data storage system can connect a plurality of remote hosts to a plurality of die sets resident in a semiconductor memory. Execution of at least one data access command addressed by a remote host of the plurality of remote hosts can occur prior to a power interruption event being detected for at least one die set of the plurality of die sets. User-generated data associated with the at least one data access command may then be flushed to a predetermined location responsive to an available resource budget associated with the power interruption event.

## Claims

### Claim 1

A method comprising:
connecting a plurality of remote hosts to a plurality of die sets resident in a semiconductor memory;
executing at least one data access command addressed by a remote host of the plurality of remote hosts;
generating a power interruption strategy with an interrupt module connected to the plurality of die sets, the power interruption strategy prescribing the execution of a sequence of pending data writes and background operations within an operational timeframe before power loss predicted by the interrupt module;
detecting a power interruption event for at least one die set of the plurality of die sets; and
moving user-generated data associated with the at least one data access command to a predetermined location in accordance with the power interruption strategy responsive to the power interruption event.

### Claim 2 (depends on 1)

The method of claim 1, wherein each die set of the plurality of die sets has a separate die set queue.

### Claim 3 (depends on 2)

The method of claim 2, wherein a channel queue is fed by each of the plurality of die sets.

### Claim 4 (depends on 1)

The method of claim 1, wherein the power interruption event is unscheduled.

### Claim 5 (depends on 1)

The method of claim 1, wherein the predicted operational timeframe comprises an amount of electrical power remaining to conduct data operations on at least one of the plurality of die sets.

### Claim 6 (depends on 1)

The method of claim 1, wherein the predicted operational timeframe comprises an amount of time remaining to conduct data operations on at least one of the plurality of die sets.

### Claim 7 (depends on 1)

The method of claim 1, wherein the predicted operational timeframe comprises an amount of processing capacity remaining to conduct data operations on at least one of the plurality of die sets.

### Claim 8 (depends on 1)

The method of claim 1, wherein metadata is moved to the predetermined location after detection of the power interruption event.

### Claim 9 (depends on 1)

The method of claim 1, wherein map data is moved to the predetermined location after detection of the power interruption event.

### Claim 10

A method comprising:
connecting a plurality of remote hosts to a plurality of die sets resident in a semiconductor memory;
executing at least one data access command addressed by a remote host of the plurality of remote hosts;
generating a power interruption strategy with an interrupt module connected to the plurality of die sets the power interruption strategy prescribing the execution of a sequence of pending data writes and background operations within an operational timeframe before power loss predicted by the interrupt module;
detecting a power interruption event for at least one die set of the plurality of die sets; and
flushing user-generated data associated with the at least one data access command to a predetermined location in association with the power interruption strategy responsive to a predicted resource budget associated with the power interruption event.

### Claim 11 (depends on 10)

The method of claim 10, wherein the interrupt module comprises a prediction module that forecasts future data access command performance.

### Claim 12 (depends on 11)

The method of claim 11, wherein the future data access command performance is forecasted as a result of real-time detected data access performance.

### Claim 13 (depends on 10)

The method of claim 10, wherein the interrupt module generates a plurality of different power interruption strategies, each power interruption strategy prescribing a different sequence of pending data writes and background operations on the plurality of die sets, the interrupt module configured to alter which power interruption strategy is executed based on predicted system conditions during the power interruption event.

### Claim 14 (depends on 10)

The method of claim 10, wherein the power interruption strategy executes at least one data access command out of a queued order prior to the power interruption event.

### Claim 15 (depends on 13)

The method of claim 13, wherein the plurality of different power interruption strategies designate different non-volatile destinations for unwritten write data.

### Claim 16 (depends on 13)

The method of claim 13, wherein the plurality of different power interruption strategies designate different non-volatile destinations for unwritten metadata.

### Claim 17 (depends on 13)

The method of claim 13, wherein the plurality of different power interruption strategies designate different non-volatile destinations for unwritten map data.

### Claim 18 (depends on 10)

The method of claim 10, wherein the interrupt module generates a mapping strategy that designates a non-volatile destination for map data unwritten to a host addressed destination after the power interruption event.

### Claim 19

A system comprising a plurality of remote hosts connected to a plurality of die sets resident in a semiconductor memory, a queue populated with at least one data access command addressed by a remote host of the plurality of remote hosts, an interrupt module configured to generate a power interruption strategy prescribing the execution of a sequence of pending data writes and background operations within an operational timeframe before power loss predicted by the interrupt module, detect a power interruption event for at least one die set of the plurality of die sets and flush user-generated data associated with the at least one data access command to a predetermined location in accordance with the power interruption strategy responsive to with the power interruption event.

### Claim 20 (depends on 19)

The system of claim 19, wherein the predetermined location is generated by a scram circuit of the interrupt module connected to the plurality of die sets.
