US 12,086,470 B2
Storage device and data processing method
Takashi Nagao, Tokyo (JP); Tomohiro Yoshihara, Tokyo (JP); Akira Yamamoto, Tokyo (JP); and Yuusaku Kiyota, Tokyo (JP)
Assigned to HITACHI, LTD., Tokyo (JP)
Filed by Hitachi, Ltd., Tokyo (JP)
Filed on Dec. 24, 2021, as Appl. No. 17/561,814.
Application 17/561,814 is a continuation of application No. 17/190,152, filed on Mar. 2, 2021, granted, now 11,210,032.
Claims priority of application No. 2020-156106 (JP), filed on Sep. 17, 2020.
Prior Publication US 2022/0121402 A1, Apr. 21, 2022
Int. Cl. G06F 3/06 (2006.01); H03M 7/30 (2006.01)
CPC G06F 3/0661 (2013.01) [G06F 3/0608 (2013.01); G06F 3/0641 (2013.01); G06F 3/0673 (2013.01); H03M 7/6011 (2013.01)] 12 Claims
OG exemplary drawing
 
1. A storage device comprising:
a processor;
an accelerator;
a memory; and
a storage device including a storage medium that stores data corresponding to a first data string previously written to the storage device, the first data string having a first part that has been deduplicated and deleted from the storage device and a second part that has been compressed and stored in the storage device, and maintains deduplicated data management information, regarding the first part of the first data string, including address information indicating where the first part of the first data string is located in the storage device or the memory,
wherein the processor, after receiving a read request for the first data string:
obtains data that configures the first part of the first data string based on the deduplicated data management information and stores the obtained data that configures the first part of the first data string to at least a first address in the memory,
obtains compressed data generated from compressing the second part of the first data string, from the storage medium, and stores the compressed data in the memory, and
transmits, to the accelerator, a decompression instruction to decompress the compressed data into a plurality of items of data that configures the second part of the first data string, the decompression instruction including second addresses where the plurality of items of data that configures the second part of the first data string should be stored in the memory after being decompressed, and
the accelerator:
generates the plurality of items of data that configures the second part of the first data string by decompressing the obtained compressed data, after receiving the decompression instruction, and
stores each of the plurality of items of data that configures the second part of the first data string in the memory in accordance with the second addresses so that the first part of the first data string stored at the at least one first address and the plurality of items of data that configures the second part of the first data string stored at the second addresses form a data string which has a configuration that is identical to a configuration of the first data string previously written to the storage device,
wherein the memory stores a plurality of continuous items of data configuring the first data string,
wherein the processor:
identifies, from among the plurality of continuous items of data, data to be compressed that is data to be stored in the storage device and data that is not to be compressed that is data to not be stored in the storage device, and
transmits a compression instruction for the plurality of continuous items of data including information indicating which of the plurality of continuous items of data are to be compressed to the accelerator, and
the accelerator:
reads the plurality of continuous items of data, which includes the data to be compressed and the data that is not to be compressed, from the memory,
combines the data to be compressed by excluding the data that is not to be compressed from the plurality of continuous items of data, based on the compression instruction received from the processor, and
compresses the combined data to generate compressed data to be stored in the storage device.