IP Library › Granted Patent US 9,857,994
Granted Patent B2
US 9,857,994 · App. 14/553,250 · Granted Jan 2, 2018

Storage controller, control method, and computer product

Inventor: Hironori Saito (Yokohama, JP)
Assignee: FUJITSU LIMITED
G06F3/0619G06F3/065G06F3/0689G06F11/00G06F11/14G06F12/0246
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 9,857,994
App. No.
14/553,250
Granted
Jan 2, 2018
Kind
B2
Abstract

A storage controller that performs control for storing in memory areas of a storage device, data that is grouped into redundant data in blocks each having a given data size. The storage controller includes a memory unit configured to store therein group information created by grouping performed such that logical addresses for a writing destination identified from a data writing request are correlated with the blocks; and a control unit configured to count in response to a data reading request, number of times of reading from a group including logical addresses for a reading destination identified from the reading request, based on the group information, and issues any one among a reading request that includes the logical addresses for the reading destination and a reading request that includes logical addresses for a memory destination of redundant data corresponding to data of the logical addresses for the reading destination.

Claims (40)

1. A storage controller that performs control for storing in a memory area of a storage device, data that is grouped into redundant data in blocks each having a given data size, the storage controller comprising:

a memory configured to store therein group information created by grouping performed such that logical addresses for a writing destination identified from a data writing request are correlated with the blocks; and

a processor configured to

count in response to a received data reading request, a number of times of reading from a group including logical addresses for a reading destination identified from the data reading request, based on the group information, and

issue based on the counted number of times of reading from the group that includes the logical addresses for the reading destination, any one among a reading request that includes the logical addresses for the reading destination and a reading request that includes logical addresses for a storage destination of redundant data corresponding to data of the logical addresses for the reading destination, wherein

the memory area is a memory area of a semiconductor memory where copying control for copying data from a first block to a second block is executed when data reading from the first block is executed a prescribed number of times, and

the processor

issues, consequent to the counted number of times of reading from the group reaching a first count that is less than the prescribed number of times, a reading request including the logical addresses included in the group, such that the copying control for data of the logical addresses included in the group is started; and

issues, in response to an other data reading request received during issuance of the reading request, a reading request including logical addresses for a storage destination of redundant data corresponding to data of logical addresses for a reading destination of the other data reading request.

2. The storage controller according to claim 1 , wherein

the storage controller controls the storage device including the semiconductor memory and other storage device different from the storage device, the other storage device storing therein redundant data of the data stored in the storage device, and

the processor issues to the other storage device, in response to the data reading request received after the counted number of times of reading from the group exceeds the first count, a reading request that includes logical addresses for a storage destination of redundant data corresponding to data of logical addresses for a reading destination, when the logical addresses for the reading destination identified from the reading request are included in the group.

3. The storage controller according to claim 1 , wherein

the processor, consequent to the counted number of times of reading from the group reaching the first count and such that the copying control for data of logical addresses included in the group is started, issues a reading request that includes logical addresses included in the group with a second count that is obtained by subtracting the first count from the prescribed number of times, or continues issuing to the storage device, the reading request until a response time to the reading request exceeds a given time, and resets the number of times of reading from the group.

4. The storage controller according to claim 3 , wherein

the processor consequent to issuing for the second count, the reading request that includes logical addresses included in the group or continuously issuing the reading request until the response time to the reading request exceeds the given time, stops issuing the reading request that includes logical addresses included in the group and resets the number of times of reading from the group.

5. The storage controller according to claim 1 , wherein

the processor resets the number of times of reading from the group, in response to an issuance of a writing request that includes logical addresses included in the group to the first storage device.

6. The storage controller according to claim 2 , wherein

the memory stores therein group information concerning the other storage device and created by grouping performed such that logical addresses for a writing destination of the other storage device identified from a writing request are correlated with each of the blocks, and

the processor,

in response to a received data reading request, counts the number of times of reading from a group that includes logical addresses for a reading destination of the other storage device identified from the reading request, based on the group information on the other storage device, and

consequent to the counted number of times of reading from the group reaching a third count that is less than the prescribed number of times and different from the first count, issues for a fourth count obtained by subtracting the third count from the prescribed number of times, a reading request that includes logical addresses included in the group or continues issuing to the other storage device, the reading request until the response time to the reading request exceeds a given time, and then resets the number of time of reading from the group.

7. The storage controller according to claim 1 , wherein

the storage controller controls an other storage device that is a transfer destination storage device different from the storage device and executes data writing in blocks into which the memory area of the semiconductor memory is divided for a given data size, and

the processor

issues to the storage device, when a garbage collection is executed by the storage device, a data transfer request that includes logical addresses included in a plurality of groups created by grouping logical addresses for a writing destination of the storage device identified from a received writing request,

issues the data transfer request so that an interval of transferring data to be transferred from the storage device to the other storage device does not exceed a given interval,

generates group information concerning the other storage device for which logical addresses included in the issued data transfer request are correlated with the blocks and grouped, and

switches an issue destination of the reading request including logical addresses included in the data transfer request to the other storage device.

8. A control method of a storage controller that performs control for storing in a memory area of a storage device, data that is grouped into redundant data in blocks each having a given data size, wherein the memory area is a memory area of a semiconductor memory where copying control for copying data from a first block to a second block is executed when data reading from the first block is executed a prescribed number of times, the control method comprising:

the storage controller counting in response to a received data reading request, a number of times of reading from a group that includes logical addresses for a reading destination identified from the data reading request, based on group information created by grouping performed such that the logical addresses for a writing destination are correlated with the blocks;

the storage controller issuing based on the counted number of times of reading from the group that includes the logical addresses for the reading destination, any one among a reading request that includes the logical addresses for the reading destination and a reading request that includes logical addresses for a storage destination of redundant data corresponding to data of the logical addresses for the reading destination;

the storage controller issuing, consequent to the counted number of times of reading from the group reaching a first count that is less than the prescribed number of times, a reading request including the logical addresses included in the group, such that the copying control for data of the logical addresses included in the group is started; and

the storage controller issuing, in response to an other data reading request received during issuance of the reading request, a reading request including logical addresses for a storage destination of redundant data corresponding to data of logical addresses for a reading destination of the other data reading request.

9. A non-transitory, computer-readable recording medium storing a control program of a storage controller that performs control for storing in a memory area of a storage device, data that is grouped into redundant data in blocks each having a given data size, wherein the memory area is a memory area of a semiconductor memory where copying control for copying data from a first block to a second block is executed when data reading from the first block is executed a prescribed number of times, the control program causing the storage controller to execute a process comprising:

counting in response to a received data reading request, a number of times of reading from a group that includes logical addresses for a reading destination identified from the data reading request, based on group information created by grouping performed such that logical addresses of the reading destination identified from a data writing request are correlated with the blocks;

issuing based on the counted number of times of reading from the group that includes the logical addresses for the reading destination, any one among a reading request that includes the logical addresses for the reading destination and a reading request that includes logical addresses for a storage destination of redundant data corresponding to data of the logical addresses for the reading destination;

issuing, consequent to the counted number of times of reading from the group reaching a first count that is less than the prescribed number of times, a reading request including the logical addresses included in the group, such that the copying control for data of the logical addresses included in the group is started; and

issuing, in response to an other data reading request received during issuance of the reading request, a reading request including logical addresses for a storage destination of redundant data corresponding to data of logical addresses for a reading destination of the other data reading request.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 1, 2014
From: SAITO, HIRONORI
To: FUJITSU LIMITED
Reel/Frame 034288/0864 →
Priority Claims (1)
JP 2013-261843 · Dec 18, 2013 · national
Continuity (1)
Related Publication 20150169240A1 · Jun 18, 2015