| CPC G06F 3/0604 (2013.01) [G06F 3/0634 (2013.01); G06F 3/0641 (2013.01); G06F 3/0659 (2013.01); G06F 3/0679 (2013.01); G06F 12/0246 (2013.01); G06F 2212/1016 (2013.01); G06F 2212/1024 (2013.01); G06F 2212/1044 (2013.01); G06F 2212/214 (2013.01); G06F 2212/7201 (2013.01); G06F 2212/7205 (2013.01)] | 15 Claims |

|
1. A memory system comprising:
a nonvolatile semiconductor memory comprising a plurality of blocks, each of the blocks comprising a plurality of memory cells, each of the memory cells configured to store i-bits data, i being equal to or larger than 2, and
a controller circuit configured to perform a write operation to the nonvolatile semiconductor memory in a first mode, wherein
the controller circuit is configured to perform the write operation in the first mode in response to a request from a host device,
the controller circuit is configured to read data from one of the blocks written in the first mode and write the read data to another one of the blocks in a second mode, as a first operation,
the controller circuit is configured to calculate a total amount of valid data stored in the memory system, the valid data being data assigned to logical addresses,
the controller circuit is configured to determine whether to perform the first operation based on a result of the calculation of the total amount of the valid data,
the controller circuit is configured to read data from one of the blocks written in the second mode and write the read data to another one of the blocks in the second mode, as a second operation,
only j-bits data is written into each of memory cells in the first mode,
j is smaller than i, and
k-bits data is written into each of memory cells in the second mode, k being larger than j and equal to or smaller than i.
|