# US 2018/0324503 A1 · Data storage system with adaptive data path routing

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

- Number: US 2018/0324503 A1
- Document ID: US20180324503A1
- Status: Published application
- Kind: A1
- Application number: 15/584,845
- Filed: 2017-05-02
- Published: 2018-11-08
- Earliest claimed: 2017-05-02
- Assignees: Seagate Technology LLC
- Applicants: Seagate Technology, LLC
- Inventors: Kuntal Rawal
- Web page: https://patentgrep.com/patent/US20180324503A1

## CPC

- H04Q 3/0029: {Provisions for intelligent networking}
- H04B 1/006: {using switches for selecting the desired band (H04B1/0057 takes precedence)}
- H04B 1/44: Transmit/receive switching
- H04L 41/147: for predicting network behaviour
- H04L 43/0894: Packet rate
- H04L 45/24: Multipath
- H04Q 11/00: Selecting arrangements for multiplex systems (multiplex systems H04J)
- H04W 40/28: for reactive routing
- H04L 43/16: Threshold monitoring
- H04L 45/028: Dynamic adaptation of the update intervals, e.g. event-triggered updates
- H04Q: SELECTING (switches, relays, selectors H01H; wireless communication networks H04W)
- H04B: TRANSMISSION
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

A data storage system can have adaptive data path routing that consists of a network controller connected to a plurality of data storage units that each have a local controller and memory. A front-end module of the network controller may direct a first data set from a first data storage unit of the plurality of data storage units via a primary data. A back-end routing module of the network controller can adapt to an amount of data accesses by transferring a second data set from a second data storage unit of the plurality of data storage units via a back-end data path.

## Claims

### Claim 1

A system comprising a network controller connected to a plurality of data storage units each comprising a local controller and memory, a first data set directed from a first data storage unit of the plurality of data storage units via a primary data path as directed by a front-end routing module of the network controller, the network controller configured to adapt to an amount of data accesses by transferring a second data set from a second data storage unit of the plurality of data storage units via a back-end data path as directed by a back-end routing module of the network controller.

### Claim 2 (depends on 1)

The system of claim 1, wherein the first and second data sets are respectively transferred along the primary and back-end data paths concurrently.

### Claim 3 (depends on 1)

The system of claim 1, wherein the second data set is not transferred until the network controller predicts a decrease in system bandwidth.

### Claim 4 (depends on 1)

The system of claim 1, wherein the second data set is not transferred until the network controller detects a decrease in system bandwidth.

### Claim 5 (depends on 1)

The system of claim 1, wherein the back-end data path has a greater latency than the primary data path.

### Claim 6 (depends on 1)

The system of claim 1, wherein the network controller throttles the size of the second data set to provide a threshold system bandwidth.

### Claim 7 (depends on 1)

The system of claim 1, wherein the second data set consists of data requests pending in a buffer of the network controller.

### Claim 8 (depends on 7)

The system of claim 7, wherein the network controller alters the size of the buffer as a result of the number of pending data requests.

### Claim 9 (depends on 1)

The system of claim 1, wherein the first data set is transferred via a single channel of the primary data path.

### Claim 10

A method comprising:
connecting a network controller to a plurality of data storage units each comprising a local controller and memory;
directing a first data set from a first data storage unit of the plurality of data storage units via a primary data path as directed by a front-end routing module of the network controller;
detecting a number of active data storage units in the plurality of data storage units with the network controller; and
transferring a second data set from a second data storage unit of the plurality of data storage units via a back-end data path as directed by a back-end routing module of the network controller.

### Claim 11 (depends on 10)

The method of claim 10, wherein the network controller ignores a total size of pending data accesses and a total number of pending data accesses.

### Claim 12 (depends on 10)

The method of claim 10, wherein the front-end routing module sends all data accesses to the plurality of data storage units via the primary data path while the detected number of active data storage units is below a predetermined first threshold.

### Claim 13 (depends on 12)

The method of claim 12, wherein the back-end routing module is inactive until the detected number of active data storage units is above the predetermined first threshold.

### Claim 14 (depends on 12)

The method of claim 12, wherein the back-end routing module selects data accesses from a buffer of the network controller to maintain a system data rate provided to at least one host.

### Claim 15 (depends on 12)

The method of claim 12, wherein the back-end routing module utilizes a number of different back-end data paths based on a routing schedule maintained by the network controller.

### Claim 16 (depends on 15)

The method of claim 15, wherein the routing schedule is altered by the network controller in response to logged system bandwidth.

### Claim 17 (depends on 10)

The method of claim 10, wherein the network controller adjusts the routing schedule to accommodate for hysteresis.

### Claim 18

An apparatus comprising a network controller connected to a plurality of data storage units each comprising a local controller and memory, the network controller comprising a front-end routing module and a back-end routing module respectively directing data to the plurality of data storage units via a primary data path and a separate back-end data path in response to a detected number of active data storage units in the plurality of data storage units.

### Claim 19 (depends on 18)

The apparatus of claim 18, wherein the primary data path has a greater bandwidth than the back-end data path.

### Claim 20 (depends on 18)

The apparatus of claim 18, wherein the primary data path is physically separated from the back-end data path, the primary data path passing through a multi-channel selector upstream of the plurality of data storage units, the back-end data path passing between data storage units of the plurality of data storage units.
