Controller, storage device, and computer program product
Abstract
According to an embodiment, a controller is connected to an external storage device and controls access to a semiconductor storage device including blocks each including memory cell groups each having memory cells. The block includes pages associated with each memory cell group. A writing process for each memory cell group includes writing stages. The controller includes a determining unit configured to determine data to be transferred to the page required in the writing process for a first memory cell group before the writing stage first starts when the writing stage is performed; a reading unit configured to read the determined data from the semiconductor storage device and to store the read data in the external storage device before the writing stage starts; and a writing unit configured to perform the writing process using the data stored in the external storage device when the writing stage is performed.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A controller that is connected to an external storage device storing data and controls access to a semiconductor storage device including a plurality of blocks each of which includes N (N is an integer equal to or greater than 2) memory cell groups each having a plurality of memory cells, the block including a plurality of pages, the page being a predetermined unit storage area, a plurality of pages being associated with each of the memory cell groups, a writing process for each of the memory cell groups including P (P is an integer equal to or greater than 2) writing stages each of which is a unit process of writing data to the memory cell group, at least one of the pages required in the writing process for the memory cell group which is a write target being predetermined in each of the writing stages, the writing stages being performed in a predetermined order, the controller comprising:
a determining unit configured to determine data to be transferred to the page which is required in the writing process for a first memory cell group of the memory cell groups before the writing stage (in which the page required in the writing process for the first memory cell group becomes necessary for the first time when the writing stage is performed in a predetermined order) starts; a reading unit configured to read the determined data from the semiconductor storage device and to store the read data in the external storage device before the writing stage starts; and a writing unit configured to perform the writing stage of the first memory cell group using the data stored in the external storage device as data for the page required in the writing stage of the first memory cell group when the writing stage is performed.
2 . The controller according to claim 1 , further comprising:
a transfer control unit configured to deallocate a storage area of the external storage device storing the data which is written by the writing unit as the data for the page required in the writing stage of the first memory cell group after the writing stage is completed.
3 . The controller according to claim 2 ,
wherein the transfer control unit deallocates the storage area of the external storage device storing the data which is written by the writing unit as the data for the page required in the writing stage of the first memory cell group, before a process of reading data for the page (which is required in a writing stage subsequent to the writing stage) starts after the writing stage is completed.
4 . The controller according to claim 2 ,
wherein, when the storage area of the external storage device storing the determined data is not deallocated, the reading unit does not read the determined data from the semiconductor storage device.
5 . The controller according to claim 1 , further comprising
an update unit configured to be connected to a management information storage unit storing management information in which a logical address and a physical address of data stored in the semiconductor storage device are associated with each other and to update the physical address of the management information associated with the logical address of the data determined by the determining unit to the physical address indicating a writing position of the data in the page associated with the first memory cell group after the last writing stage of the first memory cell group is completed.
6 . The controller according to claim 5 ,
wherein, after the last writing stage of a plurality of the first memory cell groups is completed, the update unit updates the physical addresses of pieces of data written in the pages associated with the plurality of first memory cell groups.
7 . The controller according to claim 5 ,
wherein the update unit performs an access process to the semiconductor storage device and a process of updating the physical address while appropriately switching the processes.
8 . The controller according to claim 5 ,
wherein, when the physical address indicating the writing position of the data in the page associated with the memory cell group before the page associated with the first memory cell group is written is identical to the physical address of the management information associated with the logical address of the data, the update unit updates the physical address of the management information associated with the logical address of the data to the physical address indicating the writing position of the data in the page associated with the first memory cell group.
9 . The controller according to claim 1 , further comprising:
an interface unit configured to receive a request to write data to a storage device address which is address information that is converted into the logical address, from an external apparatus; and a write control unit configured to perform the writing stage of the memory cell group so that the data corresponding to the write request is written to the page associated with the memory cell group.
10 . The controller according to claim 9 ,
wherein a block including the memory cell group to which the write control unit writes the data is different from a block including the first memory cell group.
11 . The controller according to claim 9 ,
wherein a block including the memory cell group to which the write control unit writes the data is the same as a block including the first memory cell group.
12 . A storage device comprising:
an external storage device configured to store data; a semiconductor storage device including a plurality of blocks each of which includes N (N is an integer equal to or greater than 2) memory cell groups each having a plurality of memory cells; and a controller configured to control access to the semiconductor storage device, wherein the block includes a plurality of pages, the page is a predetermined unit storage area, a plurality of pages are associated with each of the memory cell groups, a writing process for each of the memory cell groups includes P (P is an integer equal to or greater than 2) writing stages each of which is a unit process of writing data to the memory cell group, at least one of the pages required in the writing process for the memory cell group which is a write target is predetermined in each of the writing stages, the writing stages are performed in a predetermined order, and the controller includes
a determining unit configured to determine data to be transferred to the page which is required in the writing process for a first memory cell group of the memory cell groups before the writing stage (in which the page required in the writing process for the first memory cell group becomes necessary for the first time when the writing stage is performed in a predetermined order) starts;
a reading unit configured to read the determined data from the semiconductor storage device and to store the read data in the external storage device before the writing stage starts; and a writing unit configured to perform the writing stage of the first memory cell group using the data stored in the external storage device as data for the page required in the writing stage of the first memory cell group when the writing stage is performed.
13 . A computer program product comprising a computer-readable medium containing a program executed by a computer that is connected to an external storage device storing data and controls access to a semiconductor storage device including a plurality of blocks each of which includes N (N is an integer equal to or greater than 2) memory cell groups each having a plurality of memory cells, the block including a plurality of pages, the page being a predetermined unit storage area, a plurality of pages being associated with the memory cell group, a writing process for the memory cell group including P (P is an integer equal to or greater than 2) writing stages each of which is a unit of a process of writing data to the memory cell group, the page required in the writing process for the memory cell group, which is a write target, being predetermined in each of the writing stages, the writing stages being performed in a predetermined order, the program causing the computer to execute:
determining data to be transferred to the page which is required in the writing process for a first memory cell group of the memory cell groups before the writing stage (in which the page required in the writing process for the first memory cell group becomes necessary for the first time when the writing stage is performed in a predetermined order) starts; reading the determined data from the semiconductor storage device; storing the read data in the external storage device before the writing stage starts; and performing the writing stage of the first memory cell group using the data stored in the external storage device as data for the page required in the writing stage of the first memory cell group when the writing stage is performed.Join the waitlist — get patent alerts
Track US2013238838A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.