# US 12,216,926 B2 · Intelligent path selection and load balancing

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

- Number: US 12,216,926 B2
- Document ID: US12216926B2
- Status: Granted
- Kind: B2
- Application number: 18/224,409
- Filed: 2023-07-20
- Published: 2023-11-09
- Granted: 2025-02-04
- Earliest claimed: 2019-04-11
- Assignees: Samsung Electronics Co., Ltd.
- Applicants: Samsung Electronics Co., Ltd.
- Inventors: Zhengyu Yang; Nithya Ramakrishnan; Allen Russell Andrews; Sudheendra Grama Sampath; T. David Evans; Clay Mayers
- Web page: https://patentgrep.com/patent/US12216926B2

## CPC

- G06F 3/0635: {by changing the path, e.g. traffic rerouting, path reconfiguration}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0611: {in relation to response time}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0673: {Single storage device}
- G06F 13/1668: {Details of memory controller}
- G06F 13/4027: {using bus bridges (G06F13/4022 takes precedence)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method for dispatching input-output in a system. The system may include a centralized processing circuit, a plurality of persistent storage targets, a first input-output processor, and a second input-output processor. The method may include determining whether the first input-output processor is connected to a first target of the plurality of persistent storage targets; determining whether the second input-output processor is connected to the first target; and in response to determining that both the first input-output processor is connected to the first target, and the second input-output processor is connected to the first target, dispatching a first plurality of input-output requests, each to either the first input-output processor or the second input-output processor, the dispatching being in proportion to a service rate of the first input-output processor to the first target and a service rate of the second input-output processor to the first target, respectively.

## Claims

### Claim 1

A method comprising:
determining a first service rate of a first processor to a first persistent storage device;
determining a second service rate of the first processor to the first persistent storage device based on a service rate of a second processor to the first persistent storage device;
comparing the first service rate with the second service rate; and
transmitting a request to at least one of the first processor or the second processor based on the comparing.

### Claim 2 (depends on 1)

The method of claim 1, wherein the second service rate is calculated based on a parameter associated with an operation of the second processor to access the first persistent storage device.

### Claim 3 (depends on 1)

The method of claim 1, wherein the second service rate includes a portion of the first service rate that is used by the second processor to access the first persistent storage device.

### Claim 4 (depends on 3)

The method of claim 3, wherein the request is transmitted to the at least one of the first processor or the second processor according to the portion.

### Claim 5 (depends on 1)

The method of claim 1, wherein the service rate of the second processor is calculated based on at least a third service rate of the second processor, and a fourth service rate for routing the request from the second processor to the first persistent storage device through a bridge.

### Claim 6 (depends on 1)

The method of claim 1, wherein:
the request comprises a first request and a second request;
the first service rate is determined for a configuration in which both the first and second requests are transmitted to the first processor;
the second service rate is determined for a configuration in which one of the first and second requests is transmitted to the first processor, and the other one of the first and second requests is transmitted to the second processor; and
the first and second requests are transmitted to the first processor in response to determining that the first service rate is greater than the second service rate.

### Claim 7 (depends on 1)

The method of claim 1, wherein:
the request comprises a first request and a second request;
the first service rate is determined for a configuration in which both the first and second requests are transmitted to the first processor;
the second service rate is determined for a configuration in which one of the first and second requests is transmitted to the first processor, and the other one of the first and second requests is transmitted to the second processor; and
the one of the first and second requests is transmitted to the first processor and the other one of the first and second requests is transmitted to the second processor in response to determining that the first service rate is less than the second service rate.

### Claim 8

A system comprising:
a first persistent storage device;
a first processor connected to the first persistent storage device;
a second processor connected to the first persistent storage device through a bridge; and
a processing circuit configured to:
determine a first service rate of the first processor to the first persistent storage device;
determine a second service rate of the first processor to the first persistent storage device based on a service rate of the second processor to the first persistent storage device;
compare the first service rate with the second service rate; and
transmit a request to at least one of the first processor or the second processor based on the comparing.

### Claim 9 (depends on 8)

The system of claim 8, wherein the second service rate is calculated based on a parameter associated with an operation of the second processor to access the first persistent storage device.

### Claim 10 (depends on 8)

The system of claim 8, wherein the second service rate includes a portion of the first service rate that is used by the second processor to access the first persistent storage device.

### Claim 11 (depends on 10)

The system of claim 10, wherein the request is transmitted to the at least one of the first processor or the second processor according to the portion.

### Claim 12 (depends on 8)

The system of claim 8, wherein the service rate of the second processor is calculated based on at least a third service rate of the second processor, and a fourth service rate for routing the request from the second processor to the first persistent storage device through the bridge.

### Claim 13 (depends on 8)

The system of claim 8, wherein:
the request comprises a first request and a second request;
the first service rate is determined for a configuration in which both the first and second requests are transmitted to the first processor;
the second service rate is determined for a configuration in which one of the first and second requests is transmitted to the first processor, and the other one of the first and second requests is transmitted to the second processor; and
the first and second requests are transmitted to the first processor in response to determining that the first service rate is greater than the second service rate.

### Claim 14 (depends on 8)

The system of claim 8, wherein:
the request comprises a first request and a second request;
the first service rate is determined for a configuration in which both the first and second requests are transmitted to the first processor;
the second service rate is determined for a configuration in which one of the first and second requests is transmitted to the first processor, and the other one of the first and second requests is transmitted to the second processor; and
the one of the first and second requests is transmitted to the first processor and the other one of the first and second requests is transmitted to the second processor in response to determining that the first service rate is less than the second service rate.

### Claim 15

A system comprising:
a processor; and
memory comprising instructions that, when executed by the processor, cause the processor to:
determine a first service rate of a first processor to a first persistent storage device;
determine a second service rate of the first processor to the first persistent storage device based on a service rate of a second processor to the first persistent storage device;
compare the first service rate with the second service rate; and
transmit a request to at least one of the first processor or the second processor based on the comparing.

### Claim 16 (depends on 15)

The system of claim 15, wherein the second service rate is calculated based on a parameter associated with an operation of the second processor to access the first persistent storage device.

### Claim 17 (depends on 15)

The system of claim 15, wherein the second service rate includes a portion of the first service rate that is used by the second processor to access the first persistent storage device.

### Claim 18 (depends on 17)

The system of claim 17, wherein the request is transmitted to the at least one of the first processor or the second processor according to the portion.

### Claim 19 (depends on 15)

The system of claim 15, wherein:
the request comprises a first request and a second request;
the first service rate is determined for a configuration in which both the first and second requests are transmitted to the first processor;
the second service rate is determined for a configuration in which one of the first and second requests is transmitted to the first processor, and the other one of the first and second requests is transmitted to the second processor; and
the first and second requests are transmitted to the first processor in response to determining that the first service rate is greater than the second service rate.

### Claim 20 (depends on 15)

The system of claim 15, wherein:
the request comprises a first request and a second request;
the first service rate is determined for a configuration in which both the first and second requests are transmitted to the first processor;
the second service rate is determined for a configuration in which one of the first and second requests is transmitted to the first processor, and the other one of the first and second requests is transmitted to the second processor; and
the one of the first and second requests is transmitted to the first processor and the other one of the first and second requests is transmitted to the second processor in response to determining that the first service rate is less than the second service rate.
