Patent ID: 8832357
Filing Date: 2014-09-09
Classification: G06F

Abstract:
1. A memory system comprising: a non-volatile semiconductor memory including a plurality of first storage areas, and being capable of having: one or more second storage areas which are included in the plurality of first storage areas and in which no valid data is stored, the valid data being data stored at a physical address associated with a logical address, the logical address being an address specified from the host, the physical address indicating a data storage position in a storage area of a semiconductor memory; a plurality of third storage areas which are included in the plurality of first storage areas and which are obtained by copying and storing therein data received from a host; and a plurality of fourth storage areas which are included in the plurality of first storage areas and which are obtained by copying and storing therein data stored in the third storage areas or stored in the fourth storage areas; a first storage unit configured to store therein first management information that indicates which area of the plurality of first storage areas is the second storage area; a second storage unit configured to store therein second management information that indicates which areas of the plurality of first storage areas are the third storage areas; a third storage unit configured to store therein third management information that indicates which areas of the plurality of first storage areas are the fourth storage areas; a first receiving unit configured to receive write request data which is data requested to be written by the host; an acquisition unit configured to acquire one second storage area from the one or more second storage areas on the basis of the first management information; a first write unit configured to write the write request data to the second storage area acquired by the acquisition unit in a first mode; a selection unit configured to select, in response to the number of the second storage areas being smaller than or equal to a first threshold value, a plurality of storage areas from the plurality of third storage areas on the basis of the second management information or a plurality of storage areas from the plurality of fourth storage areas on the basis of the third management information such that the selection is limited to either the third storage areas or fourth storage areas, but not both; a second write unit configured to write valid data stored in the storage areas selected by the selection unit to the second storage areas acquired by the acquisition unit in a second mode; a management information update unit configured to, when the second write unit writes the valid data, delete the selected storage areas from the second management information or the third management information and add the selected storage areas to the first management information; a second receiving unit configured to receive a read request of data from the host; and a read unit configured to read data in the first mode when data requested to be read by the read request has been written to the third storage area and read data in the second mode when data requested to be read by the read request has been written to the fourth storage area, wherein