# US 2024/0201898 A1 · Storage device performing atomic write, host controlling storage device, and operating method of storage device

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

- Number: US 2024/0201898 A1
- Document ID: US20240201898A1
- Status: Published application
- Kind: A1
- Application number: 18/243,923
- Filed: 2023-09-08
- Published: 2024-06-20
- Earliest claimed: 2022-12-20
- Assignees: Samsung Electronics Co., Ltd.
- Applicants: Samsung Electronics Co., Ltd.
- Inventors: Yongmyung LEE; Seokhwan KIM; Daejun PARK
- Web page: https://patentgrep.com/patent/US20240201898A1

## 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/061: {Improving I/O performance}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F 3/0683: {Plurality of storage devices}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A storage device includes a non-volatile memory; a volatile memory; and a storage controller configured to: receive a new data and append data write command from a host, write new data and append data to at least one of the non-volatile memory and the volatile memory, receive, from the host, a remap command including mapping information between old data and the new data and a first identification (ID), based on the remap command, store in the volatile memory the mapping information between the old data and the new data and the first ID, receive, from the host, a metadata write command requesting writing meta data for the append data and including the first ID, and based on the metadata write command, update the mapping information between the old data and the new data, and write metadata related to the append data to the non-volatile memory.

## Claims

### Claim 1

A storage device comprising:
a non-volatile memory;
a volatile memory; and
a storage controller configured to:
receive a new data and append data write command from a host,
write new data and append data to at least one of the non-volatile memory and the volatile memory,
receive, from the host, a remap command comprising mapping information between old data and the new data and a first identification (ID),
based on the remap command, store in the volatile memory the mapping information between the old data and the new data and the first ID,
receive, from the host, a metadata write command requesting writing meta data for the append data and comprising the first ID, and
based on the metadata write command, update the mapping information between the old data and the new data, and write metadata related to the append data to the non-volatile memory.

### Claim 2 (depends on 1)

The storage device of claim 1, wherein the mapping information between the old data and the new data comprises first mapping information between a first logical address of the old data and a second logical address of the new data.

### Claim 3 (depends on 2)

The storage device of claim 2, wherein the storage controller is further configured to:
based on receiving the remap command, check a first physical address of the old data and a second physical address of the new data; and
store in the volatile memory:
a mapping table comprising the first logical address and the first physical address of the old data and the second logical address and the second physical address of the new data, and
a log table comprising the first ID and the first logical address of the old data and the second physical address of the new data.

### Claim 4 (depends on 3)

The storage device of claim 3, wherein the mapping information update matches the first logical address of the old data with the second physical address of the new data based on the log table.

### Claim 5 (depends on 1)

The storage device of claim 1, wherein the storage controller is further configured to:
receive, from the host, a flush command to write data stored in the volatile memory to the non-volatile memory, and
based on the flush command, when there is the data stored in the volatile memory, write the data stored in the volatile memory to the non-volatile memory.

### Claim 6 (depends on 1)

The storage device of claim 1, wherein the storage controller is further configured to:
receive, from the host, a flush command to write data stored in the volatile memory to the non-volatile memory and comprising the first ID, and
based on the metadata write command, when there is the data stored in the volatile memory, write the data stored in the volatile memory to the non-volatile memory.

### Claim 7 (depends on 1)

The storage device of claim 1, wherein the storage controller is further configured to:
receive, from the host, a second remap command comprising a second ID that is different from the first ID,
based on the second remap command comprising the second ID, store, in the volatile memory, second mapping information included in the second remap command comprising the second ID, and
based on the metadata write command, not process the second mapping information related to the second ID.

### Claim 8 (depends on 1)

The storage device of claim 1, wherein the host comprises a log-structured file system (LFS), and the new data and the append data are entirely written to or not written at all to the storage device.

### Claim 9 (depends on 8)

The storage device of claim 8, wherein the LFS comprises a flash-friendly file system (F2FS).

### Claim 10 (depends on 1)

The storage device of claim 1, wherein the volatile memory comprises one of static random access memory (SRAM) and dynamic random access memory (DRAM).

### Claim 11 (depends on 1)

The storage device of claim 1, wherein the volatile memory comprises static random access memory (SRAM), and the storage controller comprises the volatile memory.

### Claim 12 (depends on 11)

The storage device of claim 11, wherein the volatile memory comprises dynamic random access memory (DRAM), and
wherein the DRAM is located outside the storage controller and configured to communicate with the storage controller.

### Claim 13

An operating method of a storage device communicating with a host and comprising a non-volatile memory and a volatile memory, the operating method comprising:
receiving a new data and append data write command from the host;
writing the new data and the append data to at least one of the non-volatile memory and the volatile memory;
receiving, from the host, a remap command comprising mapping information between old data and the new data and a first identification (ID);
based on the remap command, storing, in the volatile memory, the mapping information between the old data and the new data and the first ID;
receiving, from the host, a metadata write command requesting writing metadata, wherein the metadata is associated with the append data and the metadata write command comprises the first ID; and
in response to the metadata write command, updating the mapping information between the old data and the new data, and writing the metadata.

### Claim 14 (depends on 13)

The operating method of claim 13, wherein the mapping information between the old data and the new data comprises first mapping information between a first logical address of the old data and a second logical address of the new data, and
wherein the storing the mapping information between the old data and the new data and the first ID in the volatile memory comprises:
checking a first physical address of the old data and a second physical address of the new data; and
storing, in the volatile memory, a mapping table comprising the first logical address and the first physical address of the old data and the second logical address and the second physical address of the new data and a log table comprising the first ID and the first logical address of the old data and the second physical address of the new data.

### Claim 15 (depends on 13)

The operating method of claim 13, further comprising:
receiving, from the host, a flush command to write data stored in the volatile memory to the non-volatile memory; and
based on the flush command, when there is the data stored in the volatile memory, writing the data stored in the volatile memory to the non-volatile memory.

### Claim 16 (depends on 13)

The operating method of claim 13, further comprising:
receiving, from the host, a flush command to write data stored in the volatile memory to the non-volatile memory and comprising the first ID; and
based on the metadata write command, when there is the data stored in the volatile memory, writing the data stored in the volatile memory to the non-volatile memory.

### Claim 17 (depends on 13)

The operating method of claim 13, wherein the host comprises a log-structured file system (LFS), and
wherein the new data and the append data are entirely written to or not written at all to the storage device.

### Claim 18 (depends on 17)

The operating method of claim 17, wherein the LFS comprises a flash-friendly file system (F2FS).

### Claim 19

A storage device comprising:
a memory device; and
a storage controller configured to:
receive a new data and append data write command from a host,
based on the write command, write the new data and the append data to the memory device,
receive, from the host, a remap command comprising mapping information between old data and the new data and a first identification (ID),
based on the remap command, store the mapping information between the old data and the new data and the first ID in a memory inside the storage controller, and
receive, from the host, a metadata write command requesting writing metadata, wherein the metadata is associated with the append data and the metadata write command comprises the first ID, and
based on the metadata write command, update the mapping information between the old data and the new data, and write the metadata to the memory device.

### Claim 20 (depends on 19)

The storage device of claim 19, wherein the host comprises a log-structured file system (LFS), and
wherein the new data and the append data are entirely written to or not written at all to the memory device.
