IP Library Granted Patent US 11,112,971
Granted Patent B2
US 11,112,971 · App. 16/103,577 · Granted Sep 7, 2021

Storage device, data management method, and data management program

Inventors: Ai Satoyama (Tokyo, JP); Tomohiro Kawaguchi (Tokyo, JP); Yoshihiro Yoshii (Tokyo, JP)
Assignee: HITACHI, LTD.
G06F3/0608G06F3/064G06F3/0658G06F3/0661G06F3/0665G06F3/0688G06F3/0659
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,112,971
App. No.
16/103,577
Granted
Sep 7, 2021
Kind
B2
Abstract

A storage device includes one or more FMPKs including a FM chip capable of storing data and a storage controller that controls storing of write data of a predetermined write request for the FMPK. The FMPK includes a compression/decompression circuit that compresses data according to a second compression algorithm different from a first compression algorithm. The storage controller compresses data using the first compression algorithm, and determines whether the write data will be compressed using the storage controller or the compression/decompression circuit based on a predetermined condition. The write data is compressed by the determined storage controller or compression/decompression circuit and is stored in the FMPK.

Claims (60)

1. A storage device which includes one or more nonvolatile memory packages including a nonvolatile recording medium capable of storing data, and a storage controller that controls storing of write data of a predetermined write request for the nonvolatile memory packages, the storage device configured to:

compress data, via a processor included in the storage controller, according to a first compression algorithm, wherein the first compression algorithm is a high compression algorithm;

compress data, via a flash memory package external to the storage controller, according to a second compression algorithm different from the first compression algorithm, wherein the second compression algorithm is a low compression algorithm, a plurality of flash memories included in the flash memory package, wherein a processing capacity of the storage controller is higher than a processing capacity of the flash memories, wherein the storage controller in configured to:

calculate an access frequency for a page of a plurality of pages stored in a virtual volume,

determine if the calculated access frequency is equal to or higher than a predetermined value,

select the second algorithm when the calculated access frequency is equal to or higher than a predetermined value, as a selected algorithm,

compare the second algorithm to a selection algorithm stored in the nonvolatile recording medium,

determine that the selection algorithm stored is not the second algorithm and register that information as a change selection algorithm,

determine that an operation rate of the processor is lower than a predetermined setting value,

change the selection algorithm stored in the nonvolatile recording medium to the selected algorithm,

compress, by the flash memory package, the write data based on the selected algorithm, and

store, by the flash memory package, the compressed write data in the nonvolatile memory package.

2. The storage device according to claim 1 , wherein

the virtual volume, to which a storage area of a pool formed by a storage area of the nonvolatile recording medium of the nonvolatile memory package is allocated, is formed in the storage device,

the storage controller, when an overwrite request which is a write request of overwriting a predetermined page of the virtual volume is issued from a host device, sends a write request to the nonvolatile memory package so that write data of the overwrite request is stored in an area of the pool allocated to the predetermined page of the virtual volume, and

a controller of the nonvolatile memory package, upon receiving the write request, changes the storage area allocated to the area of the pool to another storage area and stores the write data in the other storage area.

3. The storage device according to claim 2 , wherein

The storage controller transmits and receives data to and from the host device in units of pages of the virtual volume, and transmits and receives data to and from the nonvolatile memory package in units of blocks having a size smaller than the page, and

when a size of compressed data obtained by compressing the target data of the write request using at least one of the processor and the flash memory package included in the storage controller is smaller than a size of the block, the storage controller appends predetermined adjustment data to the compressed data to adjust the size of the compressed data to the size of the block and transmits the adjusted compressed data to the nonvolatile memory package.

4. The storage device according to claim 3 , wherein

when the adjustment data is included in the block received from the storage controller, the nonvolatile memory package removes the adjustment data from the block to extract the compressed data and stores the compressed data.

5. The storage device according to claim 3 , wherein

when a read request for the virtual volume is received from the host device and target data of the read request is the compressed data having a size smaller than the size of the block, the storage controller acquires block data including the compressed data from the nonvolatile memory package, removes the adjustment data from the block to extract the compressed data, decompresses the compressed data, and transmits the decompressed data to the host device.

6. The storage device according to claim 2 , wherein

The storage controller determines whether the write data will be compressed by the processor or the flash memory package based on the access frequency of the page of the virtual volume serving as a write destination of the write request.

7. The storage device according to claim 6 , wherein

the first compression algorithm is an algorithm of which the time associated with a compression process is longer than that of the second compression algorithm and the compression ratio is higher than that of the first compression algorithm.

8. The storage device according to claim 6 , wherein

the storage controller determines if the selected algorithm is an appropriate algorithm which is an algorithm appropriate for compressing the data stored in one of the plurality of pages of the virtual volume based on the access frequency, determines whether an algorithm used for compressing the data is the appropriate algorithm, decompresses the data when the algorithm used for compressing the data is not the appropriate algorithm, compresses the decompressed data using the appropriate algorithm, and stores the data in the nonvolatile memory package.

9. The storage device according to claim 8 , wherein

when the operation rate of the storage device is equal to or smaller than the predetermined setting value and the algorithm used for compressing the data is not the appropriate algorithm, the storage controller decompresses the data, compresses the decompressed data using the appropriate algorithm, and stores the data in the nonvolatile memory package.

10. The storage device according to claim 1 , wherein

the processor is provided in the storage controller, and

the flash memory package is included in the nonvolatile memory package.

11. The storage device according to claim 1 , wherein

the processor and the flash memory package are included in the nonvolatile memory package.

12. A data management method by a storage device including one or more nonvolatile memory packages including a nonvolatile recording medium capable of storing data and a storage controller that control storing of data with respect to the nonvolatile memory packages, the storage device configured to:

compress data, via a processor included in the storage controller, according to a first compression algorithm, wherein the first compression algorithm is a high compression algorithm;

compress data, via a flash memory package external to the storage controller, according to a second compression algorithm different from the first compression algorithm, wherein the second compression algorithm is a low compression algorithm, a plurality of flash memories included in the flash memory package, wherein a processing capacity of the storage controller is higher than a processing capacity of the flash memories;

calculate an access frequency for a page of a plurality of pages stored in a virtual volume;

determine if the calculated access frequency is equal to or higher than a predetermined value;

select the second algorithm when the calculated access frequency is equal to or higher than a predetermined value, as a selected algorithm;

compare the second algorithm to a selection algorithm stored in the nonvolatile recording medium;

determine that the selection algorithm stored is not the second algorithm and register that information as a change selection algorithm;

determine that an operation rate of the processor is lower than a predetermined setting value,

change the selection algorithm stored in the nonvolatile recording medium to the selected algorithm;

compress, by the flash memory package, the write data based on the selected algorithm; and

store, by the flash memory package, the compressed write data in the nonvolatile memory package.

13. A non-transitory computer readable medium storing a data management program for controlling a computer that forms a storage controller that controls storing of data with respect to one or more nonvolatile memory packages including a nonvolatile recording medium capable of storing data, when executed by a processor, causes the processor to:

compress data, via a processor included in the storage controller, according to a first compression algorithm, wherein the first compression algorithm is a high compression algorithm;

compress data, via a flash memory package external to the storage controller, according to a second compression algorithm different from the first compression algorithm, wherein the second compression algorithm is a low compression algorithm, a plurality of flash memories included in the flash memory package, wherein a processing capacity of the storage controller is higher than a processing capacity of the flash memories;

calculate an access frequency for a page of a plurality of pages stored in a virtual volume;

determine if the calculated access frequency is equal to or higher than a predetermined value;

select the second algorithm when the calculated access frequency is equal to or higher than a predetermined value, as a selected algorithm;

compare the second algorithm to a selection algorithm stored in the nonvolatile recording medium;

determine that the selection algorithm stored is not the second algorithm and register that information as a change selection algorithm;

determine that an operation rate of the processor is lower than a predetermined setting value;

change the selection algorithm stored in the nonvolatile recording medium to the selected algorithm;

compress, by the flash memory package, the write data based on the selected algorithm; and

store, by the flash memory package, the compressed write data in the nonvolatile memory package.

Assignments (3)
COMPANY SPLIT Recorded Aug 20, 2024
From: HITACHI, LTD.
To: HITACHI VANTARA, LTD.
Reel/Frame 069518/0761 →
CORRECTIVE ASSIGNMENT TO CORRECT THE PUNCTUATION OF THE ASSIGNEE'S NAME PREVIOUSLY RECORDED ON REEL 046785 FRAME 0654. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT OF ASSIGNOR(S)INTEREST. Recorded Jul 7, 2021
From: SATOYAMA, AI; KAWAGUCHI, TOMOHIRO; YOSHII, YOSHIHIRO
To: HITACHI, LTD.
Reel/Frame 056784/0402 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2018
From: SATOYAMA, AI; KAWAGUCHI, TOMOHIRO; YOSHII, YOSHIHIRO
To: HITACHI LTD.
Reel/Frame 046785/0654 →
Priority Claims (1)
JP JP2017-203499 · Oct 20, 2017 · national
Continuity (1)
Related Publication 20190121549A1 · Apr 25, 2019