# US 2017/0286018 A1 · Storage system and storage control method

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

- Number: US 2017/0286018 A1
- Document ID: US20170286018A1
- Status: Published application
- Kind: A1
- Application number: 15/509,476
- Filed: 2014-10-27
- Published: 2017-10-05
- Earliest claimed: 2014-10-27
- Assignees: Hitachi, Ltd.
- Applicants: Hitachi, Ltd.
- Inventors: Aritoki TAKADA
- Web page: https://patentgrep.com/patent/US20170286018A1

## CPC

- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0673: {Single storage device}
- G06F 3/0683: {Plurality of storage devices}
- G06F 9/52: Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F 13/12: using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F 13/14: Handling requests for interconnection or transfer
- G06F 13/385: {for adaptation of a particular data processing system to different peripheral devices}
- G06F 3/0613: {in relation to throughput}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A storage system includes: a controller including a plurality of processors; an interface device; and a plurality of queues associated with the interface device. The plurality of queues each store data transmitted from a processor allocated to the queue to the interface device. The plurality of queues include a private queue and a public queue. The private queue is a queue allocated with only a first processor as one of the plurality of processors, the private queue requiring no exclusion processing when data is stored, whereas the public queue is a queue allocated with two or more second processors in the plurality of processors, the public queue requiring the exclusion processing when data is stored.

## Claims

### Claim 1

A storage system comprising:
a controller configured to include a plurality of processors;
an interface device to which a storage device is coupled; and
a plurality of queues associated with the interface device, the queues being configured to include a private queue and a public queue,
each of the plurality of queues being configured to store data transmitted from a processor allocated to the queue to the interface device, and each of the plurality of queues being configured to transmit the data to the interface device,
the private queue being a queue allocated with only a first processor as one of the plurality of processors, the private queue requiring no exclusion processing when data is stored,
the public queue being a queue allocated with two or more second processors in the plurality of processors, the public queue requiring the exclusion processing when data is stored, and
the second processor being any one of the plurality of processors other than the first processor.

### Claim 2 (depends on 1)

The storage system according to claim 1, wherein
the controller is configured to determine the processor to be allocated to the private queue, based on a plurality of data issuing frequencies corresponding respectively to the plurality of processors, and
the plurality of data issuing frequencies of the processors each represent a frequency of data issuing from a corresponding processor to the interface device.

### Claim 3 (depends on 2)

The storage system according to claim 2, wherein the controller is configured to determine a processor corresponding to a highest data issuing frequency in the plurality of data issuing frequencies, as the processor to be allocated to the private queue.

### Claim 4 (depends on 1)

The storage system according to claim 1, wherein the controller is configured to, when a predetermined condition related to a public frequency indicating a frequency of data storage in the private queue is satisfied, execute allocation switching in which a target second processor as one of the second processors is allocated to the private queue instead of the first processor and the first processor is allocated to the public queue instead of the target second processor.

### Claim 5 (depends on 4)

The storage system according to claim 4, wherein
the predetermined condition is a condition in which an estimated public frequency is smaller than a current public frequency by a predetermined threshold value or more,
the estimated public frequency is a public frequency configured for a hypothetical case where the allocation switching is executed in which the target second processor is allocated to the private queue instead of the first processor, and the first processor is allocated to the public queue instead of the target second processor, and
the current public frequency is a public frequency before the allocation switching.

### Claim 6 (depends on 1)

The storage system according to claim 1,
the controller is configured to
manage a queue type, which is either private or public, of each of the plurality of queues, and
store data in the public queue after executing, on the public queue, exclusion processing involving locking the queue, and store data in the private queue without executing the exclusion processing,
the controller is configured to repeatedly update allocation relationship between the plurality of processors and the plurality of queues, and
the controller is configured to change, for a queue having the number of allocated processors decreased to one, the queue type from the public to the private.

### Claim 7 (depends on 6)

The storage system according to claim 6, wherein
the controller is configured to determine, for a first queue which is one of the plurality of queues with a largest use load index, whether to change the queue type from the public to the private, and
the use load index indicates a magnitude of a use load of each processor in a queue, and is a value that decreases as the number of processors allocated to the queue increases and increases as a data storage frequency to the queue from each processor increases.

### Claim 8 (depends on 7)

The storage system according to claim 7, wherein
the controller is configured to estimate a use load index of the first queue and a use load index of the second queue for a hypothetical case where allocation switching is executed in which a processor, in the plurality of processors allocated to the first queue, with a lowest frequency of data storage frequency to the first queue is allocated to a second queue, in the plurality of queues, with a smallest use load index, and
the controller is configured to execute the allocation switching in which the processor with the lowest frequency is allocated to the second queue, when the use load index of the first queue estimated is larger than the use load index of the second queue estimated.

### Claim 9 (depends on 8)

The storage system according to claim 8, wherein the use load index is a value based on a product of reciprocal of the number of processors allocated to a queue and a sum of data storage frequencies from the processors to the queue.

### Claim 10 (depends on 1)

The storage system according to claim 1, wherein
data is issued due to the plurality of processors each executing a process,
the controller is configured to determine a process to be executed by the first processor allocated to the private queue, based on a plurality of data issuing frequencies corresponding respectively to a plurality of the processes, and
each of the data issuing frequencies of processes represents a frequency of data issuing from the process to the interface device.

### Claim 11 (depends on 10)

The storage system according to claim 10, wherein the controller is configured to determine a process corresponding to a highest data issuing frequency in the plurality of data issuing frequencies as a process to be executed by the first processor allocated to the private queue.

### Claim 12 (depends on 1)

The storage system according to claim 1, wherein
data is issued due to the plurality of processors each executing a process, and
the controller is configured to execute, when a predetermined condition related to a public frequency indicating a frequency of data storage to the public queue and to a load of the first processor is satisfied, process moving in which a process executed by a target second processor as one of the second processors is moved to the first processor.

### Claim 13 (depends on 12)

The storage system according to claim 12, wherein
the predetermined condition is a condition in which an estimated public frequency is smaller than a current public frequency by a predetermined threshold value or more, and the load of the first processor is smaller than a predetermined threshold value,
the estimated public frequency is a public frequency configured for a hypothetical case where the process moving in which the process executed by the target second processor is moved to the first processor is executed, and
the current public frequency is a public frequency before the process moving.

### Claim 14

A storage control method for data in a storage system,
the storage system including: a controller including a plurality of processors; an interface device to which a storage device is coupled; and a plurality of queues associated with the interface device, the queues including a private queue and a public queue, the private queue being a queue allocated with only a first processor as one of the plurality of processors, the public queue being a queue allocated with two or more second processors in the plurality of processors, the second processor being any one of the plurality of processors other than the first processor,
the method comprising:
causing the controller,
when data transmitted from a processor to the interface device is data issued from the first processor, to store the data in the private queue without executing exclusion processing, and
when data transmitted from a processor to the interface device is data issued from the second processor, to store the data in the public queue after executing the exclusion processing.
