# US 2019/0317696 A1 · METHOD FOR HANDLING COMMAND IN CONFLICT SCENARIO IN NON-VOLATILE MEMORY EXPRESS (NVMe) BASED SOLID-STATE DRIVE (SSD) CONTROLLER

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

- Number: US 2019/0317696 A1
- Document ID: US20190317696A1
- Status: Published application
- Kind: A1
- Application number: 16/107,985
- Filed: 2018-08-21
- Published: 2019-10-17
- Earliest claimed: 2018-04-13
- Assignees: Samsung Electronics Co., Ltd.
- Applicants: Samsung Electronics Co., Ltd.
- Inventors: Chandrashekar Tandavapura JAGADISH; Abhinav Kumar SINGH; Vikram Singh SHEKHAWAT
- Web page: https://patentgrep.com/patent/US20190317696A1

## CPC

- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0617: {in relation to availability}
- G06F 3/0658: {Controller construction arrangements}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method for handling a command ID conflict in an NVMe-based solid-state drive (SSD) device includes fetching, from a host submission queue (HSQ), one or more commands submitted by a host device. The fetched commands are checked to determine if there is a command ID conflict. A command ID (CID) error interrupt is communicated to firmware of the SSD device if the command ID conflict is detected. A command validation is performed for the one or more commands on receiving the CID error interrupts. A command response is communicated with additional special information from the device FW to the host device for a command having a command ID conflict. One or more resources associated with the one or more commands are released based on the command response.

## Claims

### Claim 1

A method for handling a command identification (ID) conflict in a non-volatile memory express (NVMe)-based solid-state drive (SSD) device, the method comprising:
fetching, by a command fetching unit of an SSD controller, one or more commands submitted by a host to a host submission queue;
checking, by a tag allocation unit of the SSD controller, if there is a command ID conflict in the one or more commands fetched from the host submission queue;
triggering, by the tag allocation unit, a command ID (CID) error interrupt to a device firmware of the SSD device in response to detecting the command ID conflict for a first command among the one or more commands fetched from the host submission queue;
performing, by the device firmware of the SSD device, a command validation of the one or more commands in response to receiving the CID error interrupt;
submitting, by a response generation unit of the SSD device, a command response with additional special information, comprising a host submission queue slot information, from the device firmware of the SSD device to the host, that has the command ID conflict for the first command; and
releasing, by the device firmware of the SSD device, a resource associated with the one or more commands based on the command response.

### Claim 2 (depends on 1)

The method of claim 1, wherein performing the command validation by the device firmware of the SSD device comprises:
comparing, by the device firmware of the SSD device, the one or more commands to determine a first difference between the commands having a same command ID and from a same host submission queue and the host submission queue slot information from which the one or more commands are fetched.

### Claim 3 (depends on 2)

The method of claim 2, further comprising skipping processing of the first command.

### Claim 4 (depends on 1)

The method of claim 1, further comprising processing, by the device firmware of the SSD device, each of the one or more commands in response to determining the command has correct syntax and no command ID conflict.

### Claim 5 (depends on 1)

The method of claim 1, further comprising entering, by the device firmware of the SSD device, command host submission queue slot information for each of the one or more commands in a completion entry once the command is processed.

### Claim 6 (depends on 5)

The method of claim 5, further comprising releasing, by the device firmware of the SSD device, for each of the one or more resources associated with the command in response to completing processing of the command.

### Claim 7

A non-volatile memory express (NVMe)-based solid-state drive (SSD) device for handling a command identification (ID) conflict, the SSD device comprising:
a command fetching unit that fetches one or more commands submitted by a host to a host submission queue in a device memory;
a device firmware of the SSD device in response to the CID error interrupt, performs a command validation of each of the one or more commands fetched from the host submission queue;
a response generation unit of the SSD device that submits a command response with additional special information, which includes a host submission queue slot information, from the device firmware of the SSD device to the host for a first command, among the one or more commands, that has the command ID conflict; and
a tag allocation unit that:
checking whether a command ID conflict exists in the one or more commands fetched from the host submission queue, and
triggering a command ID (CID) error interrupt to the device firmware of the SSD device in response to detecting the command ID conflict.

### Claim 8 (depends on 7)

The SSD device of claim 7, wherein the device firmware of the SSD device releases one or more resources associated with the one or more commands based on the command response.
