APPARATUS FOR DETECTING AND RECOVERING FROM DATA DESTRUCTION CAUSED IN AN UNACCESSED MEMORY CELL BY READ, AND METHOD THEREFOR
First Claim
1. A non-volatile data storage apparatus, comprising:
- a plurality of memory cells; and
a memory controller coupled to the plurality of memory cells, for controlling data write and read in the plurality of memory cells,wherein each of the memory cells includes a field effect transistor having a floating gate,wherein each of the memory cells is included in one of a plurality of management areas,wherein the management areas each include at least two of the memory cells, andwherein the memory controller is configured to;
write, in the plurality of memory cells, data and an error correction code calculated from the data;
count, for each of the management areas, how many times data read processing has been executed in the memory cells within the management area;
read, when the data read processing count that is counted for a first management area, which is one of the plurality of management areas, exceeds a first threshold, the data and the error correction code that are stored in the memory cells within the first management area;
decode the read error correction code; and
write, when a count of errors included in the read data exceeds a second threshold, the data corrected by decoding the error correction code in other management areas than the first management area.
1 Assignment
0 Petitions
Accused Products
Abstract
Read disturb in a flash memory destroys data that is not requested to be read, and an efficient read disturb check method is therefore needed. In addition, data may be destroyed beyond repair by error correction before a read disturb check is run. Thus, this invention provides a non-volatile data storage apparatus including a plurality of memory cells and a memory controller, in which the memory controller is configured to: count how many times data read processing has been executed in memory cells within the management area; read, when the data read processing count that is counted for a first management area exceeds a first threshold, data and an error correction code that are stored in the memory cells within the first management area; decode the read error correction code; and write the data corrected by decoding the error correction code in other management areas than the first management area.
-
Citations
18 Claims
-
1. A non-volatile data storage apparatus, comprising:
-
a plurality of memory cells; and a memory controller coupled to the plurality of memory cells, for controlling data write and read in the plurality of memory cells, wherein each of the memory cells includes a field effect transistor having a floating gate, wherein each of the memory cells is included in one of a plurality of management areas, wherein the management areas each include at least two of the memory cells, and wherein the memory controller is configured to; write, in the plurality of memory cells, data and an error correction code calculated from the data; count, for each of the management areas, how many times data read processing has been executed in the memory cells within the management area; read, when the data read processing count that is counted for a first management area, which is one of the plurality of management areas, exceeds a first threshold, the data and the error correction code that are stored in the memory cells within the first management area; decode the read error correction code; and write, when a count of errors included in the read data exceeds a second threshold, the data corrected by decoding the error correction code in other management areas than the first management area. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A storage system, comprising:
-
a plurality of non-volatile data storage apparatuses; and a storage controller for sending a data write request and a data read request to the plurality of non-volatile data storage apparatuses, wherein the storage controller writes, in at least one of the plurality of non-volatile data storage apparatuses, data that provides redundancy to data written in at least one of the non-volatile data storage apparatuses, which exclude the at least one non-volatile data storage apparatus holding the redundant data, wherein each of the non-volatile data storage apparatuses has a plurality of memory cells and a memory controller coupled to the plurality of memory cells, for controlling data write and read in the memory cells, wherein each of the memory cells includes a field effect transistor having a floating gate, wherein each of the memory cells is included in one of a plurality of management areas, wherein the management areas each include at least two of the memory cells, wherein the memory controller is configured to; write, in the plurality of memory cells, data requested by the storage controller to be written and an error correction code calculated from the data; count, for each of the management areas, how many times data read processing has been executed in the memory cells within the management area; read, when the data read processing count that is counted for a first management area, which is one of the plurality of management areas, exceeds a first threshold, the data and the error correction code that are stored in the memory cells within the first management area; decode the read error correction code; write, when a count of errors included in the read data exceeds a second threshold, the data corrected by decoding the error correction code in other management areas than the first management area; and send, when the read data includes an error that cannot be corrected by decoding the error correction code, information indicating an address assigned to an area that holds the data including the error that cannot be corrected by decoding of the error correction code, and wherein the storage controller is configured to; send, to the plurality of non-volatile data storage apparatuses, a data read request for the area that holds the data including the error that cannot be corrected by decoding of the error correction code and an area that holds data for providing redundancy to the data including the error that cannot be corrected by decoding of the error correction code; restore the data including the error that cannot be corrected by decoding of the error correction code from the data read in response to the read request; and send, to the plurality of non-volatile data storage apparatuses, a request to write the restored data and data that provides redundancy to the restored data. - View Dependent Claims (8, 9)
-
-
10. A method of controlling a storage system including a non-volatile data storage apparatus that has a plurality of memory cells and a memory controller which is coupled to the plurality of memory cells, for controlling data write and read in the memory cells, each of the memory cells being a field effect transistor with a floating gate and included in one of a plurality of management areas, the management areas each including at least two of the memory cells, the method comprising the steps of:
-
writing, by the memory controller, data and an error correction code, which is calculated from the data, in the plurality of memory cells; counting, by the memory controller, for each of the management areas, how many times data read processing has been executed in the memory cells within the management area; reading, by the memory controller, when the data read processing count of a first management area, which is one of the plurality of management areas, exceeds a first threshold, the data and the error correction code that are stored in the memory cells within the first management area; decoding, by the memory controller, the read error correction code; and writing, by the memory controller, when a count of errors included in the read data exceeds a second threshold, the data corrected by decoding the error correction code in other management areas than the first management area. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
Specification