主权项 |
1. A storage system coupled to a host apparatus for sending a write command, comprising:
a nonvolatile semiconductor storage medium; and a controller configured to control the nonvolatile semiconductor storage medium, wherein the nonvolatile semiconductor storage medium is configured by multiple blocks that are multiple physical areas, wherein each block of the multiple blocks is configured by multiple pages that are multiple sub-areas, wherein the multiple pages are two or more first kind pages and two or more second kind pages, wherein each of the two or more second kind pages is a page whose write performance is lower than that of each of the two or more first kind pages, wherein, on the each block of the multiple blocks, a page to be a write destination of data, is supposed to change because it is impossible to overwrite the data to the same page, wherein the controller is configured to perform, when a write command is received from the host apparatus, a host write process including the following processes:
(a1) selecting W blocks from the multiple blocks, wherein W is a natural number; and(a2) writing write target data in accordance with the write command, to the W next write destination pages which the W blocks include respectively, wherein each block selected by the process (a1) is a block whose next write destination page is the first kind page, wherein the controller is configured to perform a non-host write process including the following processes:
(b1) selecting a migration source block from the multiple blocks;(b2) selecting a block whose next write destination page is the second kind page, as a migration destination block from the multiple blocks; and(b3) writing one or more data including migration target data in the source block, to the migration destination block until the next write destination page on the migration destination block becomes the first kind page, wherein the process (b3) includes compressing the migration target data in a reversible fashion, and writing the one or more data including the compressed migration target data, to the migration destination block, wherein the controller is configured to manage a number of margin pages based on a number of saved pages, the saved pages being the write destination of data consumed by the compression of the migration target data, wherein the controller is configured to perform, when the number of the blocks whose next write destination page is of the first kind page is less than a first value, and vet the number of the margin pages is equal to or larger than a second value, a dummy write process including the following processes: (c1) selecting a block whose next write destination page is the second kind (c2) writing dummy data until the next write destination page on the selected block becomes the first kind page, and (c3) subtracting the number of the pages to be the write destination of the dummy write from the number of the margin pages, wherein the controller is configured to manage a number of the blocks whose next write destination page is the first kind page per multiple block groups, wherein a block selected at the process (a1) is a block selected from the block group with a most abundant number of the blocks whose next write destination page is the first kind page, wherein a block selected at the process (b2) is a block selected from the block group with a least number of the blocks whose next write destination page is the first kind page, and wherein a block selected at the process (c1) is a block selected from the block group with the least number of the blocks whose next write destination page is the first kind page. |