# US 12,223,348 B2 · Controller for performing command scheduling, storage device including the controller, and operating method of the controller

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

- Number: US 12,223,348 B2
- Document ID: US12223348B2
- Status: Granted
- Kind: B2
- Application number: 17/376,942
- Filed: 2021-07-15
- Published: 2022-04-28
- Granted: 2025-02-11
- Earliest claimed: 2020-10-28
- Assignees: Samsung Electronics Co., Ltd.
- Applicants: Samsung Electronics Co., Ltd.
- Inventors: Youngil Kim
- Web page: https://patentgrep.com/patent/US12223348B2

## CPC

- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0688: {Non-volatile semiconductor memory arrays}
- G06F 9/5072: {Grid computing}
- G06F 9/52: Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F 9/546: {Message passing systems or structures, e.g. queues}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A storage device communicates with a host device that generates an original packet. The storage device includes a memory device including a die having multiple planes, and a controller. The controller includes; an operation checker that receives the original packet indicating a simultaneous parallel work request that occupies at least two planes among the multiple planes, wherein the operation checker sets a simultaneous parallel identifier associated with the original packet to generate a modified packet, an operation distributor that stores the modified packet in at least one virtual output queue of a virtual queue cluster, and a scheduler that transmits the modified packet to at least one plane among the multiple planes occupied by the simultaneous parallel work request according to a scheduling policy.

## Claims

### Claim 1

A storage device communicating with a host device that generates an original packet, the storage device comprising:
a memory device including a die having multiple planes; and
a controller, the controller configured to:
receive the original packet indicating a simultaneous parallel work request that occupies at least two planes among the multiple planes, wherein the controller sets a simultaneous parallel identifier associated with the original packet to generate a modified packet, the modified packet being the same as the original packet except for the simultaneous parallel identifier;
store the modified packet in at least one virtual output queue of a virtual queue cluster; and
transmit the modified packet to at least one plane among the multiple planes occupied by the simultaneous parallel work request according to a scheduling policy.

### Claim 2 (depends on 1)

The storage device of claim 1, wherein the scheduling policy assigns a higher priority to the modified packet than to a single work packet indicating a single work request from the host device that occupies only a single plane among the multiple planes.

### Claim 3 (depends on 2)

The storage device of claim 2, wherein the controller is further configured to determine whether the original packet is the single work packet or a simultaneous parallel work packet indicating the simultaneous parallel work request, and
to set the simultaneous parallel identifier upon determining that the original packet is the simultaneous parallel work packet.

### Claim 4 (depends on 3)

The storage device of claim 3, wherein the controller sets the simultaneous parallel identifier and generates the modified packet by adding a single bit to the original packet.

### Claim 5 (depends on 3)

The storage device of claim 3, wherein the controller stores the modified packet in the at least one virtual output queue based on information associated with the modified packet.

### Claim 6 (depends on 5)

The storage device of claim 5, wherein the information includes plane information identifying at least one plane among the multiple planes occupied by execution of the simultaneous parallel work request.

### Claim 7 (depends on 5)

The storage device of claim 5, wherein the information includes head information associated with the modified packet located at a head of the at least one virtual output queue.

### Claim 8 (depends on 5)

The storage device of claim 5, wherein the information includes a type of command associated with the original packet.

### Claim 9 (depends on 1)

The storage device of claim 1, wherein upon storing the modified packet in the at least one virtual queue, the controller receives head change information from the virtual queue cluster related to a change in a head of the at least one virtual output queue.

### Claim 10 (depends on 9)

The storage device of claim 9, wherein the controller further receives plane status information from the die.

### Claim 11 (depends on 10)

The storage device of claim 10, wherein the plane status information includes a busy signal for one plane among the multiple planes currently performing another operation and an idle signal for another plane among the multiple planes not performing another operation.

### Claim 12 (depends on 10)

The storage device of claim 10, wherein the controller generates the scheduling policy in response to the head change information and the plane status information.

### Claim 13 (depends on 1)

The storage device of claim 1, wherein the scheduling policy prevents resource starvation during execution of the simultaneous parallel work request.

### Claim 14 (depends on 1)

The storage device of claim 1, wherein the scheduling policy is a weighted-fair scheduling policy.

### Claim 15 (depends on 1)

The storage device of claim 1, wherein the controller assigns a priority higher to one virtual output queue among the at least one virtual queue storing the modified packet than a priority assigned to another virtual output queue among the at least one virtual queue storing a single packet.

### Claim 16

A method of operating a controller in a storage device communicating with a host device that generates an original packet, wherein the storage device includes a memory device including a die having multiple planes and the controller, the method comprising:
receiving the original packet indicating a simultaneous parallel work request;
adding a simultaneous parallel identifier to the original packet to generate a modified packet, the modified packet being the same as the original packet except for the added simultaneous parallel identifier;
storing the modified packet in at least one virtual output queue of a virtual queue cluster; and
transmitting the modified packet to at least one plane among the multiple planes according to a scheduling policy,
wherein execution of the simultaneous parallel work request occupies at least two planes among the multiple planes.

### Claim 17 (depends on 16)

The method of claim 16, wherein the scheduling policy assigns a higher priority to the modified packet than to a single work packet indicating a single work request received from the host device, and
the execution of the single work request occupies only a single plane among the multiple planes.
