# US 2024/0201899 A1 · Storage device for compressing and storing data, and operating method thereof

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

- Number: US 2024/0201899 A1
- Document ID: US20240201899A1
- Status: Published application
- Kind: A1
- Application number: 18/311,207
- Filed: 2023-05-02
- Published: 2024-06-20
- Earliest claimed: 2022-12-19
- Assignees: SK hynix Inc.
- Applicants: SK hynix Inc.
- Inventors: Jang Hun YUN
- Web page: https://patentgrep.com/patent/US20240201899A1

## 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/0608: {Saving storage space on storage systems}
- G06F 3/0638: {Organizing or formatting or addressing of data}
- 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 storage device may include a memory storing data and a controller. Such a controller may receive a compression write command from an external device to compress and write original data, compress the original data, based on whether compression information that corresponds to the compression write command is supported, into compressed data using a preset value, and store the compressed data in the memory.

## Claims

### Claim 1

A storage device comprising:
a memory for storing data; and
a controller configured to:
receive a compression write command from an external device to compress and write original data;
compress the original data, based on whether compression information that corresponds to the compression write command is supported, into compressed data using a preset value; and
store the compressed data in the memory.

### Claim 2 (depends on 1)

The storage device of claim 1, wherein the compression information includes a first compression algorithm and a first compression level, and the preset value includes the first compression algorithm or a preset reference compression algorithm.

### Claim 3 (depends on 2)

The storage device of claim 2, wherein the controller compresses the original data into the compressed data using the first compression algorithm when the first compression algorithm and the first compression level are supported, and compresses the original data into the compressed data using the reference compression algorithm when one or both of the first compression algorithm and the first compression level are not supported.

### Claim 4 (depends on 2)

The storage device of claim 2, wherein the first compression level indicates whether the first compression algorithm is a lossy compression algorithm or a lossless compression algorithm.

### Claim 5 (depends on 2)

The storage device of claim 2, wherein the controller further stores information indicating a second compression algorithm and a second compression level into the memory, the second compression algorithm and the second compression level being used to compress the original data into the compressed data.

### Claim 6 (depends on 5)

The storage device of claim 5, wherein the controller stores the information indicating the second compression algorithm and the second compression level as metadata for the compressed data or as a part of mapping data indicating a mapping relationship between a logical address and a physical address corresponding to the compressed data.

### Claim 7 (depends on 6)

The storage device of claim 6, wherein the controller decompresses the compressed data into the original data using the stored second compression algorithm.

### Claim 8 (depends on 5)

The storage device of claim 5, wherein the controller receives a decompression read command from the external device to decompress and read the compressed data, and
wherein the controller decompresses, based on whether a third compression algorithm and a third compression level that correspond to the decompression read command coincide with the second compression algorithm and the second compression level, the compressed data into the original data using the third compression algorithm or the reference compression algorithm, and transmits the original data to the external device.

### Claim 9 (depends on 8)

The storage device of claim 8, wherein the controller decompresses the compressed data into the original data using the third compression algorithm when the third compression algorithm and the third compression level coincide with the second compression algorithm and the second compression level, respectively, and the controller decompresses the compressed data into the original data using the reference compression algorithm when the third compression algorithm does not coincide with the second compression algorithm, or the third compression level does not coincide with the second compression level, or both.

### Claim 10 (depends on 1)

The storage device of claim 1, wherein the controller of the storage device decompresses the compressed data into the original data when the external device has an amount of memory less than a threshold amount, or a processor idle percentage is less than a threshold value, or both, and transmits the original data to the external device.

### Claim 11 (depends on 1)

The storage device of claim 1, wherein the controller transmits the compressed data to the external device and the external device decompresses the compressed data, when the external device has one or more resources sufficient to decompress the compressed data into the original data.

### Claim 12

An operating method of a storage device comprising:
receiving a compression write command from an external device to compress and write original data;
determining whether a first compression algorithm and a first compression level that correspond to the compressed write command are supported;
compressing, based on whether the first compression algorithm and the first compression level are supported, the original data into compressed data using the first compression algorithm or a preset reference compression algorithm; and
storing the compressed data into a memory of the storage device.

### Claim 13 (depends on 12)

The operating method of claim 12, wherein compressing the original data comprises compressing the original data into the compressed data using the first compression algorithm when the first compression algorithm and the first compression level are supported, and compressing the original data into the compressed data using the reference compression algorithm when one or both the first compression algorithm and the first compression level are not supported.

### Claim 14 (depends on 12)

The operating method of claim 12, wherein the first compression level indicates whether the first compression algorithm is a lossy compression algorithm or a lossless compression algorithm.

### Claim 15 (depends on 12)

The operating method of claim 12, further comprising storing information indicating a second compression algorithm and a second compression level into the memory, the second compression algorithm and the second compression level being used to compress the original data into the compressed data.

### Claim 16 (depends on 15)

The operating method of claim 15, wherein the information indicating the second compression algorithm and the second compression level is stored in the memory as metadata for the compressed data or as a part of mapping data indicating a mapping relationship between a logical address and a physical address corresponding to the compressed data.

### Claim 17 (depends on 16)

The operating method of claim 16, further comprising:
decompressing the compressed data into the original data using the stored second compression algorithm; and
transmitting the original data to the external device.

### Claim 18 (depends on 15)

The operating method of claim 15, further comprising:
receiving a decompression read command from the external device to decompress and read the compressed data;
determining whether a third compression algorithm and a third compression level that correspond to the decompression read command coincide with the second compression algorithm and the second compression level;
decompressing, based on whether the third compression algorithm and the third compression level coincide with the second compression algorithm and the second compression level, the compressed data into the original data using the third compression algorithm or the reference compression algorithm; and
transmitting the original data to the external device.

### Claim 19 (depends on 18)

The operating method of claim 18, wherein decompressing the compressed data comprises:
decompressing the compressed data into the original data using the third compression algorithm when the third compression algorithm and the third compression level coincide with the second compression algorithm and the second compression level, respectively; and
decompressing the compressed data into the original data using the reference compression algorithm when the third compression algorithm does not coincide with the second compression algorithm, or the third compression level does not coincide with the second compression level, or both.

### Claim 20 (depends on 12)

The operating method of claim 12, further comprising:
decompressing the compressed data into the original data when the external device has an amount of memory less than a threshold amount, or a processor idle percentage is less than a threshold value, or both; and
transmitting the original data to the external device.

### Claim 21

A controller comprising:
a memory interface configured to communicate with a memory storing data; and
a control circuit configured to receive a compression write command from an external device to compress and write original data, to compress original data, based on whether a compression algorithm and a compression level that correspond to the compression write command are supported, into compressed data using the compression algorithm corresponding to the compression write command or a preset reference compression algorithm, and to store the compressed data in the memory.
