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 chips; and
a memory controller coupled to the plurality of memory chipswherein each of the memory chips includes a plurality of management areas,wherein the memory controller is configured to;
write, in the plurality of memory chips, data and an error correction code calculated from the data;
count the number of data read processing for each of the management areas;
read, when the number of data read processing that is counted for a first management area of the plurality of management areas, exceeds a first threshold, the data and the error correction code that are stored in the first management area;
decode the error correction code read from the first management area; and
write the data corrected by decoding the error correction code in other management areas than the first management area,wherein the first threshold is decreased with increasing an erase count in the first management area.
1 Assignment
0 Petitions
Accused Products
Abstract
Read error 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 error check is run. 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 chips; and a memory controller coupled to the plurality of memory chips wherein each of the memory chips includes a plurality of management areas, wherein the memory controller is configured to; write, in the plurality of memory chips, data and an error correction code calculated from the data; count the number of data read processing for each of the management areas; read, when the number of data read processing that is counted for a first management area of the plurality of management areas, exceeds a first threshold, the data and the error correction code that are stored in the first management area; decode the error correction code read from the first management area; and write the data corrected by decoding the error correction code in other management areas than the first management area, wherein the first threshold is decreased with increasing an erase count in the first management area. - View Dependent Claims (3, 4)
-
-
2. 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 error correction code read from the first management area; 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, wherein the memory controller is further configured to; count how many times the processing of writing corrected data in other management areas than the first management area has been executed as a result of the error count of data read out of the first management area exceeding the second threshold; and use, when the execution count of the processing of writing corrected data in other management areas than the first management area exceeds a fifth threshold, a sixth threshold in place of the first threshold, the sixth threshold being smaller than the first threshold.
-
-
5. 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 error correction code read from the first management area; 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, wherein the non-volatile data storage apparatus is coupled to a host device for sending a data write request and a data read request to the non-volatile data storage apparatus, and wherein the memory controller is further configured to send, when the data read out of the memory cells in the first management area includes an error that cannot be corrected by decoding the error correction code, information indicating an address assigned to an area in which the error that cannot be corrected by decoding of the error correction code has been written to the host device.
-
-
6. 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 (7, 8)
-
-
9. A method of controlling a storage system including a non-volatile data storage apparatus that has a plurality of memory chips and a memory controller which is coupled to the plurality of memory chips, each of the memory chips includes a plurality of management areas, 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 chips; counting, by the memory controller, the number of data read processing for each of the management areas reading, by the memory controller, when the number of data read processing 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 first management area; decoding, by the memory controller, the error correction code read from the first management area; and writing, by the memory controller, the data corrected by decoding the error correction code in other management areas than the first management area, wherein the first threshold is decreased with increasing an erase count in the first management area. - View Dependent Claims (11, 12)
-
-
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; 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; and counting, by the memory controller, how many times the processing of writing corrected data in other management areas than the first management area has been executed as a result of the error count of data read out of the first management area exceeding the second threshold, wherein, when the execution count of the processing of writing corrected data in other management areas than the first management area exceeds a fifth threshold, the memory controller uses a sixth threshold in place of the first threshold, the sixth threshold being smaller than the first threshold.
-
-
13. 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, wherein the non-volatile data storage apparatus is coupled to a host device for sending a data write request and a data read request to the non-volatile data storage apparatus, and wherein the method further comprises the step of sending, by the memory controller, when the data read out of the memory cells in the first management area includes an error that cannot be corrected by decoding the error correction code, information indicating an address assigned to an area in which the error that cannot be corrected by decoding of the error correction code has been written to the host device. - View Dependent Claims (14, 15, 16)
-
-
17. A storage system comprising:
-
a plurality of non-volatile data storage apparatus; and a storage controller coupled to the plurality of non-volatile data storage apparatus, wherein each non-volatile data storage apparatus comprises; a plurality of memory chips, and a memory controller coupled to the plurality of memory chips, wherein each of the memory chips includes a plurality of management areas, wherein the memory controller is configured to; write, in the plurality of memory chips, data and an error correction code calculated from the data; count the number of data read processing for each of the management areas; read, when the number of data read processing that is counted for a first management area of the plurality of management areas, exceeds a first threshold, the data and the error correction code that are stored in the first management area; decode the error correction code read from the first management area; and write the data corrected by decoding the error correction code in other management areas than the first management area, wherein the first threshold is decreased with increasing an erase count in the first management area. - View Dependent Claims (18)
-
Specification