# US 10,481,827 B2 · Writing same data on a storage system

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

- Number: US 10,481,827 B2
- Document ID: US10481827B2
- Status: Granted
- Kind: B2
- Application number: 15/891,584
- Filed: 2018-02-08
- Published: 2019-08-08
- Granted: 2019-11-19
- Earliest claimed: 2018-02-08
- Assignees: Micron Technology, Inc.
- Applicants: Micron Technology, Inc.
- Inventors: Kevin R. Duncan
- Web page: https://patentgrep.com/patent/US10481827B2

## CPC

- G06F 3/065: {Replication mechanisms}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- 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 3/0688: {Non-volatile semiconductor memory arrays}
- G06F 13/1673: {using buffers}
- G06F 13/28: using burst mode transfer, e.g. direct memory access {DMA}, cycle steal (G06F13/32 takes precedence)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A command to duplicate data on a storage system is received from a host system, and in response to receiving the command, data corresponding to the command is retrieved from host memory of the host system. A plurality of write operations are performed on one or more memory devices of the storage system to fulfill the command, wherein performing each one of the plurality of write operations comprises writing the data to the one or more memory devices of the storage system without a subsequent retrieval of the data from the host memory.

## Claims

### Claim 1

A method, comprising:
receiving, at a storage system, a command from a host system to duplicate data on the storage system;
in response to receiving the command, retrieving data corresponding to the command from host memory of the host system; and
performing a plurality of write operations on one or more memory devices of the storage system to fulfill the command;
wherein performing each one of the plurality of write operations comprises writing the data to the one or more memory devices of the storage system without a subsequent retrieval of the data from the host memory; and
wherein the plurality of write operations are performed without utilizing a host interface coupling the host system to the storage system.

### Claim 2 (depends on 1)

The method of claim 1, further comprising storing the data in a dedicated buffer of the storage system.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
performing a first number of the plurality of write operations;
prior to completing execution of the command, delaying performance of a remaining number of the plurality of write operations; and
continuing performance of the remaining number of the plurality of write operations corresponding to the command.

### Claim 4 (depends on 3)

The method of claim 3, wherein performing the remaining number of the plurality of write operations corresponding to the command comprises retrieving the data from the dedicated buffer for each respective one of the remaining number of the plurality of write operations.

### Claim 5 (depends on 3)

The method of claim 3, wherein delaying is in response to receiving a request to perform a data operation not related to the command.

### Claim 6 (depends on 1)

The method of claim 1, wherein the command is a write same command.

### Claim 7 (depends on 1)

The method of claim 1, wherein performing the plurality of write operation to fulfill the command comprises writing the data repeatedly to sequential respective address locations corresponding to the one or more memory devices of the storage system.

### Claim 8 (depends on 7)

The method of claim 7, wherein writing the data repeatedly further comprises performing the plurality of write operations to the sequential respective address locations corresponding to the memory devices of the storage system.

### Claim 9

A system, comprising:
a buffer;
a memory device; and
a processing device, operatively coupled with the memory device and buffer, to:
receive a command from a host system to duplicate data on the storage system;
retrieve the data specified by the command from host memory of the host system; and
perform a plurality of write operations on the memory device by duplicating the data to the memory device using the buffer and without a subsequent retrieval of the data from the host memory;
wherein the plurality of write operations are performed without utilizing a host interface coupling the host system to the storage system.

### Claim 10 (depends on 9)

The system of claim 9, wherein the command comprises a first address of the host memory where the data is stored and a second address of the memory device where the data is to be duplicated.

### Claim 11 (depends on 9)

The system of claim 9, wherein the command is write same command.

### Claim 12 (depends on 9)

The system of claim 9, wherein the processing device is further configured to:
receive a request to perform an operation unrelated to the command; and
in response to receiving the request to perform the operation unrelated to the command, reschedule performance of the plurality of write operations on the memory device.

### Claim 13

An apparatus comprising:
a buffer;
a memory device;
a direct memory access (DMA) engine; and
a controller configured to:
receive a write same command from a host system;
in response to receiving the write same command, retrieve, via the DMA engine, data, specified by the write same command, from a host memory of the host system;
store, via the DMA engine, the data in the buffer;
perform a first plurality of write same operations for the write same command;
perform a plurality of data operations unrelated to the write same command; and
perform a second plurality of write same operations for the write same command, wherein the first plurality of write same operations and the second plurality of write same operations comprises transferring one or more instances of the data from the buffer to the memory device, and wherein the first plurality of write same operations and the second plurality of write same operations are performed without utilizing a host interface coupling the host system to the apparatus.

### Claim 14 (depends on 13)

The apparatus of claim 13, wherein a size specified by the write same command corresponds to a total amount of data to be written to the memory device in association with executing the write same command.

### Claim 15 (depends on 14)

The apparatus of claim 14, wherein a size of data being written to the memory device from executing the first and second plurality of write same operations is a fraction of the size specified by the write same command.

### Claim 16 (depends on 14)

The apparatus of claim 14, wherein the size specified by the write same command is a multiple of a write size of the memory device.

### Claim 17 (depends on 13)

The apparatus of claim 13, wherein a size specified by the write same command is a multiple of a size of the buffer.

### Claim 18 (depends on 13)

The apparatus of claim 13, wherein the controller is further configured to:
perform the first plurality of write same operations to a first block of the memory device; and
perform the second plurality of write same operations to a second block of the memory device, wherein the first block and the second block are continuous and adjacently addressed blocks of the memory device.

### Claim 19 (depends on 13)

The apparatus of claim 13, wherein the controller is further configured to perform the second plurality of write same operations for the write same command in response to detecting completion of performing the plurality of data operations that are unrelated to the write same command.

### Claim 20 (depends on 13)

The apparatus of claim 13, wherein the controller is further configured to schedule performance of the plurality of data operations after completion of the first plurality of write same operations and before performing the second plurality of write same operations.
