US2013246721A1PendingUtilityA1

Controller, data storage device, and computer program product

Assignee: FUKUTOMI KAZUHIROPriority: Feb 8, 2012Filed: Sep 10, 2012Published: Sep 19, 2013
Est. expiryFeb 8, 2032(~5.6 yrs left)· nominal 20-yr term from priority
G06F 3/0638G06F 3/0679G06F 3/0616G06F 3/0604G06F 3/0661G06F 3/0659G06F 3/0608
50
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

According to an embodiment, a controller includes a write control unit configured to make a control that converts data requested to be written by an external device into pieces of cluster data with a size of a cluster of a storage medium, compresses each piece of cluster data, determines a corresponding physical address of a write destination in the storage medium according to a predetermined rule, and writes the compressed pieces of cluster data to the storage medium using the physical address of the write destination. The write control unit also makes a control that writes a correspondence between the physical address and a corresponding logical address to a storage unit. The controller also includes a read control unit configured to a control that reads a piece of cluster data from the storage medium using an acquired physical address, and decompresses the read piece of cluster data.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A controller that controls the reading and writing of data from and to a storage medium and a storage unit, the storage medium including a plurality of pages each serving as a storage area which is a unit of input and output from and to an external device, the storage medium storing a plurality of pieces of data of clusters in each page, each of the pieces of data being a predetermined data unit, the storage unit storing correspondences between logical addresses for identifying the respective clusters and physical addresses of the storage medium, the controller comprising:
 a write control unit configured to make a control that converts data requested to be written by the external device into a plurality of pieces of cluster data with a size equal to a size of the cluster, compresses each of the converted pieces of cluster data by an external compression unit, determines a corresponding physical address of a write destination in the storage medium according to a predetermined rule, and writes the compressed pieces of cluster data to the storage medium using the physical address of the write destination, and a control that writes a correspondence between the physical address of the write destination and a corresponding logical address to the storage unit;   a read control unit configured to a control that acquires a corresponding physical address of data requested to be read by the external device from the storage unit, reads a corresponding piece of cluster data from the storage medium using the acquired physical address, decompresses the read piece of cluster data by an external decompression unit, and outputs the decompressed piece of cluster data; and   a transfer control unit configured to make a control that determines a piece of cluster data to be transferred among the pieces of cluster data written to the storage medium according to a predetermined rule, reads the determined piece of cluster data from the storage medium, decompresses the read piece of cluster data by the external decompression unit, compresses the decompressed piece of cluster data by the external compression unit, determines a corresponding physical address of a transfer destination in the storage medium according to a predetermined rule, and writes the compressed piece of cluster data to the storage medium using the corresponding physical address of the transfer destination, and a control that writes a correspondence between the physical address of the transfer destination and a corresponding logical address to the storage unit.   
     
     
         2 . The controller according to  claim 1 , wherein
 the write control unit controls whether the external compression unit compresses the pieces of cluster data according to a predetermined rule,   the read control unit controls whether the external decompression unit decompresses the piece of cluster data according to a predetermined rule, and   the transfer control unit controls whether the external decompression unit decompresses the piece of cluster data according to a predetermined rule and controls whether the external compression unit compresses the piece of cluster data according to a predetermined rule.   
     
     
         3 . The controller according to  claim 1 , wherein
 the page includes at least one set area with a size that is an integer multiple of the size of the cluster,   the set area is divided into a plurality of predetermined division sizes,   the write control unit adds dummy data to the compressed piece of cluster data so that a size of the compressed piece of cluster data is an integer multiple of the division size, and   the transfer control unit adds dummy data to the compressed piece of cluster data so that a size of the compressed piece of cluster data is an integer multiple of the division size.   
     
     
         4 . The controller according to  claim 2 , wherein
 the page includes at least one set area with a size that is an integer multiple of the size of the cluster,   the set area is divided into a plurality of predetermined division sizes,   the write control unit adds dummy data to the compressed piece of cluster data so that a size of the compressed piece of cluster data is an integer multiple of the division size,   the transfer control unit adds dummy data to the compressed piece of cluster data so that a size of the compressed piece of cluster data is an integer multiple of the division size,   when the size of the piece of cluster data that is an integer multiple of the division size is equal to the size of the set area, the write control unit makes a control that cancels the compression of the piece of cluster data, and writes the piece of cluster data whose compression is cancelled to the storage medium using the physical address of the write destination, and a control that writes a correspondence between the physical address of the write destination and the logical address to the storage unit,   when the read piece of cluster data is not compressed, the read control unit makes a control that outputs the read piece of cluster data without decompressing by the external decompression unit,   when the read cluster data is not compressed, the transfer control unit makes a control that does not decompress the read piece of cluster data by the external decompression unit, and   when the size of the cluster data that is an integer multiple of the division size is equal to the size of the set area, the transfer control unit makes a control that cancels the compression of the piece of cluster data, writes the piece of cluster data whose compression is cancelled to the storage medium using the physical address of the write destination, and a control that writes a correspondence between the physical address of the transfer destination and the logical address to the storage unit.   
     
     
         5 . The controller according to  claim 1 , wherein
 the storage medium includes a block including the plurality of pages,   the write control unit makes a control that writes the pieces of cluster data across the plurality of pages with consecutive physical addresses, respectively, in a management unit in which the block is managed into the storage medium,   when the pieces of cluster data are written across the plurality of pages with the consecutive physical addresses in the management unit in which the block is managed, the read control unit makes a control that reads the plurality of pages and extracts the pieces of cluster data,   when the pieces of cluster data are written across the plurality of pages with the consecutive physical addresses in the management unit in which the block is managed, the transfer control unit makes a control that reads the plurality of pages and extracts the pieces of cluster data, and   the transfer control unit makes a control that writes the pieces of cluster data across the plurality of pages with consecutive physical addresses, respectively, in the management unit in which the block is managed into the storage medium.   
     
     
         6 . The controller according to  claim 3 , wherein
 the storage medium includes a block including the plurality of set areas,   the write control unit makes a control that writes the pieces of cluster data across the plurality of set areas with consecutive physical addresses, respectively, in a management unit in which the block is managed into the storage medium,   when the pieces of cluster data are written across the plurality of set areas with the consecutive physical addresses in the management unit in which the block is managed, the read control unit makes a control that reads the plurality of set areas and extracts the pieces of cluster data,   when the pieces of cluster data are written across the plurality of set areas with the consecutive physical addresses in the management unit in which the block is managed, the transfer control unit makes a control that reads the plurality of set areas and extracts the pieces of cluster data, and   the transfer control unit makes a control that writes the pieces of cluster data across the plurality of set areas with consecutive physical addresses, respectively, in the management unit in which the block is managed into the storage medium.   
     
     
         7 . The controller according to  claim 3 , wherein
 the storage medium includes a block including the plurality of pages,   the write control unit makes a control that writes the piece of cluster data together with metadata including the logical address, and writes information for specifying at least the block as the physical address of the write destination into the storage unit,   the read control unit makes a control that reads the pieces of cluster data stored at the physical address acquired from the storage unit, extracts metadata which is written together with the read pieces of cluster data, compares the logical address included in the extracted metadata with the logical address of data which is requested to be read, and reads the pieces of cluster data with the identical logical address,   the transfer control unit makes control that determines pieces of cluster data to be transferred among the pieces of cluster data written into the storage medium according to a predetermined rule, acquires the physical address corresponding to the determined pieces of cluster data from the storage unit, reads the pieces of cluster data stored at the acquired physical address, extracts metadata which is written together with the read pieces of cluster data, compares the logical address included in the extracted metadata with the logical address of the determined pieces of cluster data, and reads the pieces of cluster data with the identical logical address, and   the transfer control unit makes a control that writes the pieces of cluster data together with the metadata including the logical address into the storage medium, and writes information for specifying at least the block as the physical address of the transfer destination into the storage unit.   
     
     
         8 . The controller according to  claim 7 , wherein
 the read control unit sequentially compares the logical address from the last piece of cluster data in a storing order of the pieces of cluster data, and   the transfer control unit sequentially compares the logical address from the last piece of cluster data in the storing order of the pieces of cluster data.   
     
     
         9 . The controller according to  claim 2 , wherein
 when a time required for the compression performed by the external compression unit is equal to or more than a predetermined time, the write control unit makes a control that cancels the compression of the pieces of cluster data by the external compression unit, writes the pieces of cluster data whose compression is cancelled into the storage medium using the physical address of the write destination, and a control that writes a correspondence between the physical address of the write destination and the logical address into the storage unit,   when the read piece of cluster data is not compressed, the read control unit makes a control that outputs the read piece of cluster data without decompressing by the external decompression unit,   when the read piece of cluster data is not compressed, the transfer control unit makes a control that does not decompress the read piece of cluster data by the external decompression unit, and   when a time required for the compression performed by the external compression unit is equal to or more than a predetermined time, the transfer control unit makes a control that cancels the compression of the pieces of cluster data by the external compression unit, and writes the pieces of cluster data whose compression is cancelled into the storage medium using the physical address of the transfer destination, and a control that writes a correspondence between the physical address of the transfer destination and the logical address into the storage unit.   
     
     
         10 . The controller according to  claim 2 , wherein
 the write control unit makes a control that does not compress the pieces of cluster data by the external compression unit,   when the read piece of cluster data is not compressed, the read control unit makes a control that outputs the read piece of cluster data without decompressing by the external decompression unit,   when the read piece of cluster data is not compressed, the transfer control unit makes a control that does not decompress the read piece of cluster data by the external decompression unit, and a control that compresses the pieces of cluster data by the external compression unit.   
     
     
         11 . The controller according to  claim 10 , wherein
 the transfer control unit makes control that does not decompress a piece of cluster data read for piece of cluster data to be transferred again and being written into the storage medium by the control of the transfer control unit among the pieces of cluster data to be transferred which are determined according to a predetermined rule, and a control that does not compress the pieces of cluster data by the external compression unit.   
     
     
         12 . The controller according to  claim 2 , wherein
 the write control unit makes a control that compresses the pieces of cluster data by the external compression unit,   the read control unit makes a control that decompresses the piece of cluster data by the external decompression unit, and   the transfer control unit makes a control that does not decompress the piece of cluster data by the external decompression unit and does not compress the piece of cluster data by the external compression unit.   
     
     
         13 . The controller according to  claim 1 , wherein
 the write control unit makes a control that converts data requested to be written by the external device into a plurality of pieces of cluster data with a size equal to the size of the cluster, compresses each of the converted pieces of cluster data by the external compression unit at a first compression ratio, and writes the compressed pieces of cluster data into the storage medium using the physical address of the write destination, and a control that writes a correspondence between the physical address of the write destination into the storage unit and the logical address,   the read control unit makes a control that acquires a corresponding physical address of data requested to be read by the external device from the storage unit, reads a piece of cluster data from the storage medium using the acquired physical address, decompresses the read piece of cluster data by the external decompression unit at the first compression ratio or a second compression ratio higher than the first compression ratio, and outputs the decompressed piece of cluster data, and   the transfer control unit makes a control that determines a piece of cluster data to be transferred among the pieces of cluster data written into the storage medium according to a predetermined rule, reads the determined piece of cluster data from the storage medium, decompresses the read piece of cluster data by the external decompression unit at the first compression ratio or the second compression ratio, compresses the decompressed piece of cluster data by the external compression unit at the second compression ratio, writes the compressed piece of cluster data into the storage medium using the physical address of the transfer destination, and a control that writes a correspondence between the physical address of the transfer destination and the logical address into the storage unit.   
     
     
         14 . The controller according to  claim 1 , wherein
 a sum of a storage capacity obtained by subtracting a predetermined capacity from a capacity of the storage medium capable of storing data and a capacity corresponding to at least a portion of an amount of data reduction obtained by the compression of the piece of cluster data is provided to an external host apparatus.   
     
     
         15 . A data storage device comprising:
 a storage medium including a plurality of pages each serving as a storage area which is a unit of input and output from and to an external device, the storage medium storing a plurality of pieces of data of clusters in each page, each of the pieces of data being a predetermined data unit;   a storage unit configured to store correspondences between logical addresses for identifying the respective clusters and physical addresses of the storage medium;   a compression unit configured to compress data;   a write control unit configured to make a control that converts data requested to be written by the external device into a plurality of pieces of cluster data with a size equal to a size of the cluster, compresses each of the converted pieces of cluster data by the compression unit, determines a corresponding physical address of a write destination in the storage medium according to a predetermined rule, and writes the compressed pieces of cluster data to the storage medium using the physical address of the write destination, and a control that writes a correspondence between the physical address of the write destination and a corresponding logical address to the storage unit;   a decompression unit configured to decompress the data compressed by the compression unit;   a read control unit configured to a control that acquires a corresponding physical address of data requested to be read by the external device from the storage unit, reads a corresponding piece of cluster data from the storage medium using the acquired physical address, decompresses the read piece of cluster data by the decompression unit, and outputs the decompressed piece of cluster data; and   a transfer control unit configured to make a control that determines a piece of cluster data to be transferred among the pieces of cluster data written to the storage medium according to a predetermined rule, reads the determined piece of cluster data from the storage medium, decompresses the read piece of cluster data by the decompression unit, compresses the decompressed piece of cluster data by the compression unit, determines a corresponding physical address of a transfer destination in the storage medium according to a predetermined rule, and writes the compressed piece of cluster data to the storage medium using the corresponding physical address of the transfer destination, and a control that writes a correspondence between the physical address of the transfer destination and a corresponding logical address to the storage unit.   
     
     
         16 . A computer program product comprising a computer-readable medium containing a program executed by a computer that controls the reading and writing of data from and to a storage medium and a storage unit, the storage medium including a plurality of pages each serving as a storage area which is a unit of input and output from and to an external device, the storage medium storing a plurality of pieces of data of clusters in each page, each of the pieces of data being a predetermined data unit, the storage unit storing correspondences between logical addresses for identifying the respective clusters and physical addresses of the storage medium, the program causing the computer to execute:
 converting data requested to be written by the external device into a plurality of pieces of cluster data with a size equal to a size of the cluster;   compressing each of the converted pieces of cluster data by an external compression unit;   determining a corresponding physical address of a write destination in the storage medium according to a predetermined rule;   writing the compressed pieces of cluster data to the storage medium using the physical address of the write destination;   writing a correspondence between the physical address of the write destination and a corresponding logical address to the storage unit;   acquiring a corresponding physical address of data requested to be read by the external device from the storage unit;   reading a corresponding piece of cluster data from the storage medium using the acquired physical address;   decompressing the read piece of cluster data by an external decompression unit;   outputting the decompressed piece of cluster data;   determining a piece of cluster data to be transferred among the pieces of cluster data written to the storage medium according to a predetermined rule;   reading the determined piece of cluster data from the storage medium;   decompressing the read piece of cluster data by the external decompression unit;   compressing the decompressed piece of cluster data by the external compression unit;   determining a corresponding physical address of a transfer destination in the storage medium according to a predetermined rule;   writing the compressed piece of cluster data to the storage medium using the corresponding physical address of the transfer destination; and   writing a correspondence between the physical address of the transfer destination and a corresponding logical address to the storage unit.

Join the waitlist — get patent alerts

Track US2013246721A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.