Flash Memory Data Correction And Scrub Techniques
First Claim
1. A method of operating a flash memory cell array that is organized into sub-arrays with the sub-arrays including blocks of a minimum number of memory cells that are erasable together and the blocks storing a number of units of data, comprising:
- identifying when a scrub trigger event has occurred for data stored in at least one of the units of data in a first one of the blocks,reading the identified at least one unit of data from the first block,correcting any errors in the data read from the first block to provide corrected first block data,writing the corrected first block data as at least one unit of data to a second one of the blocks, andthereafter copying uncorrected data units of the first block into the second block, thereby to consolidate in the second block corrected and uncorrected units of data originally of the first block.
10 Assignments
0 Petitions
Accused Products
Abstract
In order to maintain the integrity of data stored in a flash memory that are susceptible to being disturbed by operations in adjacent regions of the memory, disturb events cause the data to be read, corrected and re-written before becoming so corrupted that valid data cannot be recovered. The sometimes conflicting needs to maintain data integrity and system performance are balanced by deferring execution of some of the corrective action when the memory system has other high priority operations to perform. In a memory system utilizing very large units of erase, the corrective process is executed in a manner that is consistent with efficiently rewriting an amount of data much less than the capacity of a unit of erase.
-
Citations
12 Claims
-
1. A method of operating a flash memory cell array that is organized into sub-arrays with the sub-arrays including blocks of a minimum number of memory cells that are erasable together and the blocks storing a number of units of data, comprising:
-
identifying when a scrub trigger event has occurred for data stored in at least one of the units of data in a first one of the blocks, reading the identified at least one unit of data from the first block, correcting any errors in the data read from the first block to provide corrected first block data, writing the corrected first block data as at least one unit of data to a second one of the blocks, and thereafter copying uncorrected data units of the first block into the second block, thereby to consolidate in the second block corrected and uncorrected units of data originally of the first block. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of operating a flash memory cell array, comprising:
-
identifying when a scrub trigger event has occurred for data stored in at least one location of the array, reading the data stored in said at least one location in the array, temporarily storing information about said at least one location and the data read therefrom, while this information remains stored, programming or reading other data to or from at least locations within the array other than said at least one location, thereafter determining whether there are any errors in the read data read from said at least one location in the array, utilizing the stored information, correcting any errors in the data read from said at least one location in the array, and writing the corrected data into the array. - View Dependent Claims (8)
-
-
9. A method of operating a flash memory cell array, comprising:
-
identifying when a scrub trigger event has occurred for data stored in at least one location of the array, reading the data stored in said at least one location in the array, thereafter determining whether there are any errors in the read data read from said at least one location in the array, correcting any errors in the data read from said at least one location in the array, temporarily storing the corrected data, while the corrected data remain stored, programming or reading other data to or from at least locations within the array other than said at least one location, and thereafter writing the corrected data into the array. - View Dependent Claims (10)
-
-
11. A method of operating an erasable and re-programmable non-volatile memory system having an array of memory cells organized into blocks of a minimum number of memory cells that are erasable together that include a plurality of pages individually storing one or more units of data, comprising:
-
in response to the occurrence of at least one of a plurality of predefined events, identifying at least one page of at least one block to be scrubbed, reading data stored in said at least one page with a first set of read conditions, determining whether there are any errors in the read data, and, if so, whether the errors can be corrected, in response to determining that the errors in the read data cannot be corrected, re-reading the data stored in said at least one page with a second set of read conditions, determining whether there are any errors in the re-read data, and, if so, whether the errors can be corrected, in response to other memory activity being scheduled, deferring further action with respect to the read or re-read data, after the other memory activity is completed and in response to determining that the errors in either of the read or re-read data can be corrected, correcting such errors to provide corrected data, and writing the corrected data into at least a second page of a second block different from said one block. - View Dependent Claims (12)
-
Specification