# US 12,112,072 B2 · Method and memory device for atomic processing of fused commands

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

- Number: US 12,112,072 B2
- Document ID: US12112072B2
- Status: Granted
- Kind: B2
- Application number: 18/456,770
- Filed: 2023-08-28
- Published: 2023-12-14
- Granted: 2024-10-08
- Earliest claimed: 2021-05-05
- Assignees: Samsung Electronics Co., Ltd.
- Applicants: Samsung Electronics Co., Ltd.
- Inventors: Chun-chu Chen-Jhy Archie Wu; Daniel Lee Helmick; Fnu Vikram Singh; Syed Kaiser; Vasili Zhdankin; Yong Yang
- Web page: https://patentgrep.com/patent/US12112072B2

## CPC

- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/0611: {in relation to response time}
- G06F 3/0656: {Data buffering arrangements}
- 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 13/1621: {by maintaining request order}
- G06F 13/1626: {by reordering requests}
- G06F 13/1642: {with request queuing}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method and a memory device are provided. A controller of the memory device retrieves a first command from a host memory. The controller stores a first identifier of the first command in a set-aside buffer of the memory device. The controller retrieves a second command from the host memory. The controller initiates processing of the first command and the second command based on a second identifier of the second command corresponding to the first identifier.

## Claims

### Claim 1

A method of a memory device, comprising:
retrieving, by a controller of the memory device, a first command from a host memory;
storing, by the controller, a first identifier of the first command in a set-aside buffer of the memory device;
retrieving, by the controller, a second command from the host memory; and
initiating, by the controller, processing of the first command and the second command based on a second identifier of the second command corresponding to the first identifier.

### Claim 2 (depends on 1)

The method of claim 1, wherein the first identifier and the second identifier comprise a fused command identifier that differentiates individual fused commands, identifies a last fused command, or identifies a split point within a set of fused commands.

### Claim 3 (depends on 1)

The method of claim 1, wherein the first command is in a first command burst comprising a sequence of one or more commands from a first submission queue, and the second command is in a second command burst comprising a second sequence of one or more commands from the first submission queue.

### Claim 4 (depends on 3)

The method of claim 3, further comprising:
storing the first command in the set-aside buffer, wherein the first command from the set-aside buffer and the second command are atomically processed; and
processing remaining commands of the second command burst.

### Claim 5 (depends on 3)

The method of claim 3, further comprising:
storing the first command in the set-aside buffer,
wherein a third command burst is received before the second command burst and comprises a fused command from a second submission queue, and further comprising:
storing an identifier of the fused command and the fused command in the set-aside buffer; and
processing remaining commands from the third command burst.

### Claim 6 (depends on 3)

The method of claim 3, further comprising:
storing the first command in a scatter-gather memory of the memory device, wherein the first command from the scatter-gather memory and the second command are atomically processed; and
processing remaining commands of the second command burst.

### Claim 7 (depends on 3)

The method of claim 3, further comprising:
storing the first command in a scatter-gather memory of the memory device,
wherein a third command burst is received before the second command burst and comprises a fused command from a second submission queue, and further comprising:
storing an identifier of the fused command in the set-aside buffer;
storing the fused command in the scatter-gather memory; and
processing remaining commands from the third command burst.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
sending a top priority request to an arbiter of the memory device for retrieval of the second command,
wherein only the second command is retrieved in response to the top priority request.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
sending a top priority request to an arbiter of the memory device for retrieval of the second command, wherein a control burst is retrieved in response to the top priority request, and the second command is a beginning portion of the control burst; and
adjusting, by the arbiter, a sequence in which submission queues provide command bursts in the memory device to compensate for the control burst being provided out of sequence.

### Claim 10

A memory device, comprising:
a controller having at least an arbiter, a command fetcher connected to the arbiter, a set-aside buffer, a command parser, and a command processor,
wherein the controller is configured to:
retrieve a first command from a host memory;
store a first identifier of the first command in the set-aside buffer;
retrieve a second command from the host memory; and
initiate processing of the first command and the second command based on a second identifier of the second command corresponding to the first identifier.

### Claim 11 (depends on 10)

The memory device of claim 10, wherein the first identifier and the second identifier comprise a fused command identifier that differentiates individual fused commands, identifies a last fused command, or identifiers a split point within a set of fused commands.

### Claim 12 (depends on 10)

The memory device of claim 10, wherein the first command is in a first command burst comprising a sequence of one or more commands from a first submission queue, and the second command is in a second command burst comprising a second sequence of one or more commands from the first submission queue.

### Claim 13 (depends on 12)

The memory device of claim 12, wherein the controller is further configured to:
store the first command in the set-aside buffer, wherein the first command from the set-aside buffer and the second command are atomically processed; and
process remaining commands of the second command burst.

### Claim 14 (depends on 12)

The memory device of claim 12, wherein:
the controller is further configured to store the first command in the set-aside buffer; and
a third command burst is received before the second command burst and comprises a fused command from a second submission queue, and the controller is further configured to:
store an identifier of the fused command and the fused command in the set-aside buffer; and
process remaining commands from the third command burst.

### Claim 15 (depends on 12)

The memory device of claim 12, wherein the controller is further configured to:
store the first command in a scatter-gather memory of the memory device, wherein the first command from the scatter-gather memory and the second command are atomically processed; and
process remaining commands of the second command burst.

### Claim 16 (depends on 12)

The memory device of claim 12, wherein:
the controller is further configured to store the first command in a scatter-gather memory of the memory device;
a third command burst is received before the second command burst and comprises a fused command from a second submission queue, and the controller is further configured to:
store an identifier of the fused command in the set-aside buffer;
store the fused command in the scatter-gather memory; and
process remaining commands from the third command burst.

### Claim 17 (depends on 10)

The memory device of claim 10, wherein the set-aside buffer is disposed between the command fetcher and the command processor in a processing pipeline of the memory device.

### Claim 18 (depends on 10)

The memory device of claim 10, wherein the controller is further configured to:
send a top priority request to the arbiter for retrieval of the second command,
wherein only the second command is retrieved in response to the top priority request.

### Claim 19 (depends on 10)

The memory device of claim 10, wherein the controller is further configured to:
send a top priority request to the arbiter for retrieval of the second command, wherein a control burst is retrieved in response to the top priority request, and the second command is a beginning portion of the control burst; and
adjust, by the arbiter, a sequence in which submission queues provide command bursts in the memory device to compensate for the control burst being provided out of sequence.

### Claim 20

A memory device, comprising:
a controller having a set-aside buffer, wherein the controller is configured to:
retrieve a first command from a host memory;
store the first command on the set-aside buffer;
retrieve a second command from the host memory; and
atomically process the first command and the second command based on a first identifier of the first command corresponding to a second identifier of the second command.
