# US 2022/0035530 A1 · Systems and methods for processing copy commands

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

- Number: US 2022/0035530 A1
- Document ID: US20220035530A1
- Status: Published application
- Kind: A1
- Application number: 17/062,467
- Filed: 2020-10-02
- Published: 2022-02-03
- Earliest claimed: 2020-07-28
- Assignees: Samsung Electronics Co., Ltd.
- Applicants: Samsung Electronics Co., Ltd.
- Inventors: Fnu VIKRAM SINGH
- Web page: https://patentgrep.com/patent/US20220035530A1

## CPC

- G06F 3/065: {Replication mechanisms}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/0656: {Data buffering arrangements}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- 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

Systems and methods for processing copy commands are disclosed. A first controller of the storage device receives a copy command from a host via a first queue. The storage device generates, based on the copy command, a read command and a write command, and submits the read and write commands to a second controller of the storage device via a second queue. The second controller retrieves and processes the read and write commands from the second queue. The storage device reads, based on the processing of the read command, data stored in a first location of a storage media associated with a source address, and writes the data to a second location of the storage media associated with a destination address. The first controller transmits a signal to the host for indicating completion of the copy command.

## Claims

### Claim 1

A method for processing a copy command from a host to a storage device, the method comprising:
receiving, by a first controller of the storage device, the copy command from the host via a first queue, wherein the copy command includes a first source address and a first destination address;
generating, by the storage device, based on the copy command, a first read command and a first write command;
submitting, by the storage device, the first read command and the first write command to a second controller of the storage device via a second queue;
retrieving and processing, by the second controller, the first read command and the first write command from the second queue;
reading, by the storage device, based on the processing of the first read command, data stored in a first location of a storage media of the storage device associated with the first source address;
writing, by the storage device, based on the processing of the first write command, the data to a second location of the storage media associated with the first destination address; and
transmitting, by the first controller, a signal to the host for indicating completion of the copy command.

### Claim 2 (depends on 1)

The method of claim 1, wherein the first source address is associated with a first logical space of the storage device identified by a first identifier, and the first destination address is associated with a second logical space of the storage device identified by a second identifier.

### Claim 3 (depends on 1)

The method of claim 1, wherein the copy command includes a second destination address, wherein the writing includes writing a first portion of the data to the second location of the storage media associated with the first destination address, and writing a second portion of the data to a third location of the storage media associated with the second destination address.

### Claim 4 (depends on 1)

The method of claim 1, wherein the data stored in the first location of the storage media includes metadata having a first portion and a second portion, wherein the writing of the data includes:
writing the first portion of the metadata to a third location of the storage media associated with the first destination address;
generating, by the storage device, a third portion based on the first destination address; and
writing, by the storage device, the third portion in the storage media instead of the second portion of the metadata.

### Claim 5 (depends on 4)

The method of claim 4 further comprising:
skipping reading of the second portion of the metadata based on the processing of the first read command.

### Claim 6 (depends on 4)

The method of claim 4 further comprising:
skipping writing of the second portion of the metadata based on the processing of the first write command.

### Claim 7 (depends on 4)

The method of claim 4, wherein the second portion of the metadata includes data protection information.

### Claim 8 (depends on 4)

The method of claim 4, wherein the first source address is associated with a first logical space configured to store a block of data of a first size, and the first destination address is associated with a second logical space configured to store a block of data of a second size different from the first size.

### Claim 9 (depends on 1)

The method of claim 1, wherein the copy command is associated with a second source address, the method further comprising:
generating, by the storage device, based on the copy command, a second read command;
submitting, by the storage device, the second read command to the second controller of the storage device via the second queue;
retrieving and processing, by the second controller, the second read command from the second queue; and
reading, by the storage device, based on the processing of the second read command, data stored in a third location of the storage device associated with the second source address,
wherein the processing of the second read command by the second controller is concurrent with the processing of the first write command.

### Claim 10 (depends on 1)

The method of claim 1 wherein the storage device is a non-volatile storage device, and the first controller and the second controller adhere to a non-volatile memory express (NVMe) protocol.

### Claim 11 (depends on 1)

The method of claim 1 further comprising:
submitting, by the second controller, a first completion status to a first completion queue.

### Claim 12 (depends on 11)

The method of claim 11, wherein the transmitting of the signal includes submitting a second completion status to a second completion queue based on the submitting of the first completion status to the first completion queue.

### Claim 13

A storage device comprising:
a storage media;
one or more processors coupled to the storage media, the one or more processors being configured to respectively:
receive, via a first controller and a first queue, a copy command from a host, wherein the copy command includes a first source address and a first destination address;
generate, based on the copy command, a first read command and a first write command;
submit the first read command and the first write command to a second controller via a second queue;
retrieve and process, via the second controller, the first read command and the first write command from the second queue;
read, based on the processing of the first read command, data stored in a first location of the storage media associated with the first source address;
write, based on the processing of the first write command, the data to a second location of the storage media associated with the first destination address; and
transmit, via the first controller, a signal to the host for indicating completion of the copy command.

### Claim 14 (depends on 13)

The storage device of claim 13, wherein the first source address is associated with a first logical space of the storage device identified by a first identifier, and the first destination address is associated with a second logical space of the storage device identified by a second identifier.

### Claim 15 (depends on 13)

The storage device of claim 13, wherein the copy command includes a second destination address, wherein in writing the data, the one or more processors are configured to write a first portion of the data to the second location of the storage media associated with the first destination address, and write a second portion of the data to a third location of the storage media associated with the second destination address.

### Claim 16 (depends on 13)

The storage device of claim 13, wherein the data stored in the first location of the storage media includes metadata having a first portion and a second portion, wherein in writing the data, the one or more processors are further configured to:
write the first portion of the metadata to a third location of the storage media associated with the first destination address;
generate a third portion based on the first destination address; and
write the third portion in the storage media instead of the second portion of the metadata.

### Claim 17 (depends on 16)

The storage device of claim 16, wherein the one or more processors are further configured to:
skip reading of the second portion of the metadata based on the processing of the first read command.

### Claim 18 (depends on 16)

The storage device of claim 16, wherein the one or more processors are further configured to:
skip writing of the second portion of the metadata based on the processing of the first write command.

### Claim 19 (depends on 16)

The storage device of claim 16, wherein the second portion of the metadata includes data protection information.

### Claim 20 (depends on 16)

The storage device of claim 16, wherein the first source address is associated with a first logical space configured to store a block of data of a first size, and the first destination address is associated with a second logical space configured to store a block of data of a second size different from the first size.
