Controller, storage device, and computer program product for writing and transfer process
First Claim
1. A controller that is connected to an external storage device temporarily storing parts of data of a semiconductor storage device, and the controller controls access to the semiconductor storage device, which is configured to include a plurality of blocks, each of the plurality of blocks including N (N is an integer equal to or greater than 2) memory cell groups, each of the memory cell groups having a plurality of memory cells, and each of the plurality of blocks further including that the memory cells in a block are grouped into a plurality of pages, a size of each page of the plurality of pages being a predetermined unit storage area, wherein each of the memory cell groups of the block comprises two or more respective pages of the plurality of the pages, the controller comprising:
- processing circuitry configured to;
perform a writing process transferring parts of the data of the semiconductor storage device from one location to another of the semiconductor storage device by transferring the parts of the data to the memory cell groups of a block of the semiconductor storage device, wherein (i) each part of the writing process includes P (P is an integer equal to or greater than
2) writing stages, the each part of the writing process corresponding to one of the memory cell groups, (ii) the writing stages are performed in a predetermined order, (iii) each writing stage includes at least one destination page, which is in a memory cell group that is a write target of the each writing stage, and (iv), for each of the writing stages, the writing process includesdetermining, for a writing stage in which a given memory cell group is the write target of the writing stage, a first part of the data, wherein (i) the first part of the data corresponds to new required pages, (ii) the new required pages include pages required for the writing stage except pages determined to be required for prior writing stages of the writing process, and (iii) the determining of the first part of the data is performed before the writing stage to the given memory cell group starts,reading the determined first part of the data from source pages of the semiconductor storage device and storing the read data in the external storage device, the reading of the determined first part of the data being performed before the writing stage to the given memory cell group starts,performing the writing stage to the given memory cell group using the stored data in the external storage device as parts of the data for the pages required in the writing stage in which the given memory cell group is the write target; and
deallocate, after the writing stage is complete, a storage area of the external storage device storing the stored data except for a storage area of the external storage device corresponding to parts of the data for pages that are determined to be required in subsequent writing stages of the writing process, whereina capacity of the external storage device is three times or more in size than that of a cell group of the memory cell groups.
1 Assignment
0 Petitions
Accused Products
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.
-
Citations
15 Claims
-
1. A controller that is connected to an external storage device temporarily storing parts of data of a semiconductor storage device, and the controller controls access to the semiconductor storage device, which is configured to include a plurality of blocks, each of the plurality of blocks including N (N is an integer equal to or greater than 2) memory cell groups, each of the memory cell groups having a plurality of memory cells, and each of the plurality of blocks further including that the memory cells in a block are grouped into a plurality of pages, a size of each page of the plurality of pages being a predetermined unit storage area, wherein each of the memory cell groups of the block comprises two or more respective pages of the plurality of the pages, the controller comprising:
-
processing circuitry configured to; perform a writing process transferring parts of the data of the semiconductor storage device from one location to another of the semiconductor storage device by transferring the parts of the data to the memory cell groups of a block of the semiconductor storage device, wherein (i) each part of the writing process includes P (P is an integer equal to or greater than
2) writing stages, the each part of the writing process corresponding to one of the memory cell groups, (ii) the writing stages are performed in a predetermined order, (iii) each writing stage includes at least one destination page, which is in a memory cell group that is a write target of the each writing stage, and (iv), for each of the writing stages, the writing process includesdetermining, for a writing stage in which a given memory cell group is the write target of the writing stage, a first part of the data, wherein (i) the first part of the data corresponds to new required pages, (ii) the new required pages include pages required for the writing stage except pages determined to be required for prior writing stages of the writing process, and (iii) the determining of the first part of the data is performed before the writing stage to the given memory cell group starts, reading the determined first part of the data from source pages of the semiconductor storage device and storing the read data in the external storage device, the reading of the determined first part of the data being performed before the writing stage to the given memory cell group starts, performing the writing stage to the given memory cell group using the stored data in the external storage device as parts of the data for the pages required in the writing stage in which the given memory cell group is the write target; and deallocate, after the writing stage is complete, a storage area of the external storage device storing the stored data except for a storage area of the external storage device corresponding to parts of the data for pages that are determined to be required in subsequent writing stages of the writing process, wherein a capacity of the external storage device is three times or more in size than that of a cell group of the memory cell groups. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A storage device, comprising:
-
an external storage device configured to store data; a semiconductor storage device configured to include a plurality of blocks, each of the plurality of blocks including N (N is an integer equal to or greater than
2) memory cell groups, each of the memory cell groups having a plurality of memory cells, each of the plurality of blocks further including that the memory cells in a block are grouped into, and the semiconductor storage device being configured to output the data in units of a page, which is a predetermined unit storage area, wherein each of the memory cell groups of the block comprises two or more respective pages of the plurality of the pages; anda controller configured to control access to the data of the semiconductor storage device, and, for a block of the plurality of blocks, the controller controls the access to the data by writing the data to the block using a writing process, transferring parts of the data from one location to another of the semiconductor storage device by transferring the parts of the data to the memory cell groups of a block, wherein (i) each part of the writing process includes P (P is an integer equal to or greater than
2) writing stages, the each part of the writing process corresponding to one of the memory cell groups, (ii) the writing stages are performed in a predetermined order, (iii) each writing stage includes at least one destination page, which is in a memory cell group that is a write target of the each writing stage, and (iv), for each of the writing stages, the writing process includesdetermining, for a writing stage in which a given memory cell group is the write target of the writing stage, a first part of the data, wherein (i) the first part of the data corresponds to new required pages, and (ii) the new required pages include pages required for the writing stage except pages determined to be required for prior writing stages of the writing process, reading the determined first part of the data from source pages of the semiconductor storage device and storing the read data in the external storage device, the reading of the determined first part of the data being performed before the writing stage starts, performing the writing stage to the given memory cell group using the stored data in the external storage device as parts of the data for the pages required in the writing stage in which the given memory cell group is the write target, and deallocating, after each the writing stage is complete, a storage area of the external storage device storing the stored data except for a storage area of the external storage device corresponding to parts of the data for pages that are determined to be required in subsequent writing stages of the writing process, wherein a capacity of the external storage device is three times or more in size than that of a cell group of the memory cell groups.
-
-
12. A non-transitory computer-readable recording medium containing a program executed by a computer that is connected to an external storage device temporarily storing parts of data of a semiconductor storage device, and the computer controls access to a semiconductor storage device, which is configured to include a plurality of blocks, each of the plurality of blocks including N (N is an integer equal to or greater than 2) memory cell groups, each of the memory cell groups having a plurality of memory cells, and each of the plurality of blocks further including that the memory cells in a block are grouped into the memory cells into a plurality of pages each of which is includes another plurality of memory cells, a size of each page of the plurality of pages being a predetermined unit storage area, wherein each of the memory cell groups of the block comprises two or more respective pages of the plurality of the pages, the program causing the computer to execute:
-
a writing process transferring parts of the data from one location to another of the semiconductor storage device by transferring the parts of the data to the memory cell groups of a block, wherein (i) each part of the writing process includes P (P is an integer equal to or greater than
2) writing stages, the each part of the writing process corresponding to one of the memory cell groups, (ii) the writing stages are performed in a predetermined order, (iii) each writing stage includes at least one destination page, which is in a memory cell group that is a write target of the each writing stage, and (iv), for each of the writing stages, the writing process includesdetermining, for a writing stage in which a given memory cell group is the write target of the writing stage, a first part of the data, wherein (i) the first part of the data corresponds to new required pages, and (ii) the new required pages include pages required for the writing stage except pages determined to be required for prior writing stages, reading the determined first part of the data from source pages of the semiconductor storage device, storing the read data in the external storage device before the writing stage, performing each of the writing stages of the memory cell group using the data stored in the external storage device as data for the page target pages of the writing stages of the memory cell group when each of the writing stages is performed, and deallocating, after the writing stage is complete, a storage area of the external storage device storing the stored data except for a storage area of the external storage device corresponding to parts of the data for pages that are determined to be required in subsequent writing stages of the writing process, wherein a capacity of the external storage device is three times or more in size than that of a cell group of the memory cell groups.
-
-
13. A controller that is controls access to a first storage device, which is configured to include a plurality of blocks, each of the plurality of blocks including N (N is an integer equal to or greater than 2) memory cell groups, each of the memory cell groups having a plurality of memory cells, and each of the plurality of blocks further including that the memory cells in a block are grouped into a plurality of pages, a size of each page of the plurality of pages being a predetermined unit storage area, each of the memory cell groups being associated with two or more respective pages of the plurality of the pages, the controller comprising:
-
processing circuitry configured to perform a writing process transferring parts of the data of the first storage device from one location to another of the first storage device by transferring the parts of the data to for each of the memory cell groups of a block of the first storage device, wherein (i) each part of the writing process includes P (P is an integer equal to or greater than
2) writing stages, the each part of the writing process corresponding to one of the memory cell groups, (ii) the writing stages being performed in a predetermined order, (iii) each writing stage includes at least one destination page, which is in a memory cell group that is a write target of the each writing stage, and (iv), for each of the writing stages being performed bydetermining, for a writing stage in which a given memory cell group is the write target of the writing stage, a first part of the data, wherein (i) the first part of the data corresponds to new required pages, and (ii) the new required pages include pages required for the writing stage except pages determined to be required for prior writing stages of the writing process, reading the determined first part of the data from the first storage device and storing the read data in a second storage device, the reading of the determined first part of the data being performed before the writing stage to the given memory cell group starts, performing each of the writing stage to stages using the stored data in the second storage device as parts of the data for the pages required in the writing stage; and deallocating, after the writing stage is complete, a storage area of the second storage device storing the stored data except for a storage area of the second storage device corresponding to parts of the data for pages that are determined to be required in subsequent writing stages of the writing process, wherein a capacity of the second storage device is three times or more in size than that of a cell group of the memory cell. - View Dependent Claims (14, 15)
-
Specification