CLAIM OF PRIORITY

The present application claims priority from Japanese patent applications JP 2020-066145 filed on Apr. 1, 2020, and JP 2020-139199 filed on Aug. 20, 2020, the content of which are hereby incorporated by reference into this application.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a storage device and specifically to a storage device that reduces an amount of stored data by lossless compression.

2. Description of Related Art

Data storage is a basic function of a computer system. In many computer systems, in case of dealing with a large amount of data, the data is stored in a storage device. The storage device stores data in an internal storage medium (storage drive) such as a hard disk drive (HDD) or a solid state drive (SSD) and performs a process of writing or reading the data according to an instruction from the outside. The data storage cost is calculated as the product of a bit cost of the storage medium (storage medium price/storage medium capacity) and an amount of recorded data in a simple definition (without considering a running cost and the like).

In recent years, for the purpose of reducing data storage costs, a technique for reducing the amount of physical data stored in a storage medium by a lossless compression algorithm is widely used. In a storage device having a data amount reduction function, a compression process is performed before data is written to a medium, and a decompression process is performed after the data is read from the medium. However, since the compression and decompression of the data are processes that require heavy loads, if the processes are executed by a central processing unit (CPU) in the storage device, the performance of writing and reading data according to an instruction from the outside deteriorates.

For example, US-A-2017/0147624 discloses a device that includes a CPU bus equipped with an accelerator that can perform data compression and decompression at high speed with dedicated hardware, and off-loads the compression and decompression of the data stored in the memory and data input and output on the bus, to reduce the CPU load.

On the other hand, in a storage device having a data amount reduction function, in order to further reduce the data storage cost, it is necessary to realize a high data reduction rate by lossless compression. One of the methods thereof is to compress data in large units.

For example, when there are eight items of 8 kB data, compared with a case where each is individually compressed, in case where one item of 64 kB data configured by arranging eight items of data is compressed, the data reduction rate is higher. This is because the lossless compression algorithm used in the storage device is generally a slide dictionary method, and the larger the compression unit, the wider the dictionary search space, so the probability for finding a matching character string becomes higher.

There is a disadvantage in increasing the data compression unit. It is assumed that one item of 8 kB data is to be read from eight items of 8 kB data (64 kB data in total) that are compressed to 20 kB, according to an instruction from the outside. The storage device is required to read 20 kB data from the storage medium from the memory, decompress the data, load the 64 kB data to the memory, extract the 8 kB data, and output the data to the outside.

If a storage device having a data amount reduction function is configured by using an accelerator connection aspect as in US-A-2017/0147624, when the compression unit of the data is increased to 64 kB or the like, an amount of data to be read and written from the memory becomes extremely larger than the amount of data to be output to the outside.

Comparing the memory bandwidth of the CPU and the transfer bandwidth of the storage medium, both are increasing in speed year by year owing to advances in transmission technology. The data read performance of the storage device is also improved accordingly. However, the growth rate of the memory bandwidth of the CPU tends to be slower than the transfer bandwidth of the storage medium. That is, if the data compression unit is increased, the memory bandwidth of the CPU may become a bottleneck in reading the data of the storage device, to hinder performance improvement.

The storage device of one aspect of the present invention includes a first memory, a process device that stores data in the first memory and reads the data from the first memory, and an accelerator that includes a second memory different from the first memory. The accelerator stores compressed data stored in one or more storage drives storing data, in the second memory, decompresses the compressed data stored in the second memory to generate plaintext data, extracts data designated in the process device from the plaintext data, and transmits the extracted designated data to the first memory.

SUMMARY OF THE INVENTION

According to an aspect of the present invention, the performance of the storage device that reduces an amount of stored data by lossless compression can be improved.

