Semiconductor storage device and data control method thereof
First Claim
1. A semiconductor storage device, comprising:
- a plurality of flash memory chips, comprising a plurality of physical blocks, each of which is a unit of erasing data, and comprises a plurality of physical pages, each of which is a unit of reading or writing data; and
a flash memory controller configured to control a reading or writing operation to the plurality of flash memory chips,wherein the flash memory controller is configured to;
receive write data;
compress the write data to compressed data;
store the compressed data into at least one physical page of the plurality of flash memory chips when a number of physical pages required to store the compressed data is smaller than a number of physical pages required to store the write data;
manage a logical address space which is an access target of an access request source by dividing the logical address space into a plurality of logical pages, and manage each of the pages in association with the physical pages which belong to an of the physical blocks, and when any of the logical pages is designated in response to a write request from the access request source;
select one, two or more of the physical pages as physical pages which correspond to the designated logical pages; and
store compressed write data on the selected physical pages, form a virtual physical page for storing the compressed write data as data when the compressed write data is virtually decompressed, and change the corresponding relationship between the designated logical page and the one, two or more of the physical pages of the physical block corresponding to the logical page into a corresponding relationship between the designated logical page and the virtual physical pages;
when a logical page, which is the same as the designated logical page, is designated in response to a subsequent access request, process the virtual physical page as an access destination;
accumulate write data which is added to each of the write requests each time a write request is received from the access request source, and batch-compress a plurality of the accumulated write data;
when a compression effect of the compressed write data is greater than a designated value, assuming said condition is fulfilled, store the compressed write data on the selected physical page; and
when the compression effect of the compressed write data is smaller than a designated value, assuming said condition is fulfilled, store the write data added to each of the write requests on the selected physical page.
1 Assignment
0 Petitions
Accused Products
Abstract
The flash memory controller compresses data in response to a write request. On condition that there is a compression effect with respect to the compressed data, the flash memory controller writes the compressed data to the base area of a physical block of a flash memory. As physical pages assigned to the physical block, the flash memory controller reduces the physical pages assigned to the base area from 102 down to 59, and increases the physical pages assigned to the update area from 26 up to 69. Therefore, it is possible to suppress exhaustion of physical pages which are assigned to the update area, to reduce the number of erases of the physical block, and to consequently prolong device operating life.
17 Citations
14 Claims
-
1. A semiconductor storage device, comprising:
-
a plurality of flash memory chips, comprising a plurality of physical blocks, each of which is a unit of erasing data, and comprises a plurality of physical pages, each of which is a unit of reading or writing data; and a flash memory controller configured to control a reading or writing operation to the plurality of flash memory chips, wherein the flash memory controller is configured to; receive write data; compress the write data to compressed data; store the compressed data into at least one physical page of the plurality of flash memory chips when a number of physical pages required to store the compressed data is smaller than a number of physical pages required to store the write data; manage a logical address space which is an access target of an access request source by dividing the logical address space into a plurality of logical pages, and manage each of the pages in association with the physical pages which belong to an of the physical blocks, and when any of the logical pages is designated in response to a write request from the access request source; select one, two or more of the physical pages as physical pages which correspond to the designated logical pages; and store compressed write data on the selected physical pages, form a virtual physical page for storing the compressed write data as data when the compressed write data is virtually decompressed, and change the corresponding relationship between the designated logical page and the one, two or more of the physical pages of the physical block corresponding to the logical page into a corresponding relationship between the designated logical page and the virtual physical pages; when a logical page, which is the same as the designated logical page, is designated in response to a subsequent access request, process the virtual physical page as an access destination; accumulate write data which is added to each of the write requests each time a write request is received from the access request source, and batch-compress a plurality of the accumulated write data; when a compression effect of the compressed write data is greater than a designated value, assuming said condition is fulfilled, store the compressed write data on the selected physical page; and when the compression effect of the compressed write data is smaller than a designated value, assuming said condition is fulfilled, store the write data added to each of the write requests on the selected physical page. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A data control method for a semiconductor storage device, the method comprising:
-
controlling, by a flash memory controller, a reading or writing operation to a plurality of flash memory chips, comprising a plurality of physical blocks, each of which is a unit of erasing data, and comprises a plurality of physical pages, each of which is a unit of reading or writing data, wherein each of the physical blocks is divided into a base area configured to store new write data among write data and into an update area configured to update data stored in the base area, and a plurality of physical pages are respectively assigned to the base area and the update area; receiving, by the flash memory controller, write data; compressing, by the flash memory controller, write data to compress data; and storing, by the flash memory controller, the compressed data into at least one physical page of the plurality of flash memory chips when a number of physical pages required to store the compressed data is smaller than a number of physical pages required to store the write data; managing a logical address space which is an access target of an access request source by dividing the logical address space into a plurality of logical pages, and managing each of the logical pages in association with the physical pages which belong to any of the physical blocks, and when any of the logical pages is designated in response to a write request from the access request source; selecting one, two or more of the physical pages as physical pages which correspond to the designated logical pages; and storing compressed write data on the selected physical pages, forming a virtual physical page for storing the compressed write data as data when the compressed write data is virtually decompressed, and changing the corresponding relationship between the designated logical page and the one, two or more of the physical pages of the physical block corresponding to the logical page into a corresponding relationship between the designated logical page and the virtual physical pages; when a logical page, which is the same as the designated logical page, is designated in response to a subsequent access request, processing the virtual physical page as an access destination; accumulating write data which is added to each of the write requests each time a write request is received from the access request source, and batch-compressing a plurality of the accumulated write data; when a compression effect of the compressed write data is greater than a designated value, assuming said condition is fulfilled, storing the compressed write data on the selected physical page; and when the compression effect of the compressed write data is smaller than a designated value, assuming said condition is fulfilled, storing the write data added to each of the write requests on the selected physical page. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A storage system comprising:
-
a plurality of semiconductor storage devices, and a storage controller configured to control the plurality of semiconductor storage devices as a RAID group, wherein each of the plurality of semiconductor storage devices comprises; a plurality of flash memory chips which comprise a plurality of physical blocks, each of which is a unit of erasing data, and comprises a plurality of physical pages, each of which is a unit of reading or writing data; and a flash memory controller which is configured to; control reading or writing operation to the plurality of flash memory chips; receive write data; compress the write data to compressed data; store the compressed data into at least one physical page of the plurality of flash memory chips when a number of a physical page required to store the compressed data is smaller than a number of physical pages required to store the write data; manage a logical address space which is an access target of an access request source by dividing the logical address space into a plurality of logical pages, and manage each of the logical pages in association with the physical pages which belong to any of the physical blocks, and when any of the logical pages is designated in response to a write request from the access request source; select one, two or more of the physical pages as physical pages which correspond to the designated logical pages; and store compressed write data on the selected physical pages, form a virtual physical page for storing the compressed write data as data when the compressed write data is virtually decompressed, and change the corresponding relationship between the designated logical page and the one, two or more of the physical pages of the physical block corresponding to the logical page into a corresponding relationship between the designated logical page and the virtual physical pages; when a logical page, which is the same as the designated logical page, is designated in response to a subsequent access request, process the virtual physical page as an access destination; accumulate write data which is added to each of the write requests each time a write request is received from the access request source, and batch-compress a plurality of the accumulated write data; when a compression effect of the compressed write data is greater than a designated value, assuming said condition is fulfilled, store the compressed write data on the selected physical page; and when the compression effect of the compressed write data is smaller than a designated value, assuming said condition is fulfilled, store the write data added to each of the write requests on the selected physical page.
-
Specification