Method for copying data in reprogrammable non-volatile memory
First Claim
1. In a memory system comprising a controller and a programmable non-volatile memory, a method for relocating data from a first location of the memory to a second location of the memory, the method comprising:
- reading the data from the first location into a register on the memory;
determining in the controller whether to perform an error detection and correction operation on said data; and
in response to determining that an error detection and correction operation not be performed on said data, writing the data from the register to the second location.
3 Assignments
0 Petitions
Accused Products
Abstract
The present invention presents methods for improving data relocation operations. In one aspect, rather than check the quality of the data based on its associated error correction code (ECC) in every relocation operation, it is determined whether to check ECC based on predetermined selection criteria, and if ECC checking is not selected, causing the memory to perform an on-chip copy the data from a first location to a second location. If ECC checking is selected, the data is transferred to the controller and checked; when an error is found, a correction operation is performed and when no error is found, an on-chip copy is performed. The predetermined selection criteria may comprise a sampling mechanism, which may be random based or deterministic. In another aspect, data transfer flags are introduced to indicate data has been corrected and should be transferred back to the memory. A further aspect considers the header and user data separately if each has a distinct associated ECC.
-
Citations
44 Claims
-
1. In a memory system comprising a controller and a programmable non-volatile memory, a method for relocating data from a first location of the memory to a second location of the memory, the method comprising:
-
reading the data from the first location into a register on the memory;
determining in the controller whether to perform an error detection and correction operation on said data; and
in response to determining that an error detection and correction operation not be performed on said data, writing the data from the register to the second location. - View Dependent Claims (7, 8, 9, 10, 11)
-
-
2. In a memory system comprising a controller and a programmable non-volatile memory, a method for relocating data from a first location of the memory to a second location of the memory, the method comprising:
-
reading the data from the first location into a register on the memory;
determining in the controller whether to perform an error detection and correction operation on said data;
in response to determining that an error detection and correction operation be performed on said data, transferring a copy of said data to the controller while maintaining said data in the register; and
performing an error correction and detection operation on the data in the controller. - View Dependent Claims (3, 4, 5, 6, 12, 13, 14, 15, 16)
-
-
17. In a memory system comprising a controller and a programmable non-volatile memory, a method for relocating data from a first location of the memory to a second location of the memory, wherein the data comprises a user data portion and an overhead portion and wherein the user data has an associated error correction code (ECC) and the overhead portion has a distinct associated error correction code (ECC), the method comprising:
-
reading the data from the first location into a register on the memory;
subsequently transferring a copy of the header portion of the data to the controller while maintaining said data in the register;
performing in the controller an error correction and detection operation on the overhead portion based on the associated overhead ECC;
if the error correction and detection operation on the overhead portion requires correcting the overhead portion, subsequently transferring the corrected overhead back to the register in response to successfully completing the error correction and detection operation on the overhead; and
subsequent to said performing an error correction and detection operation on the overhead portion, determining in the controller whether to perform an error detection and correction operation on the user data portion of the data. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34)
-
-
35. A method for avoiding the transfer of data having an associated error correction code (ECC) from a first location of a reprogrammable non-volatile memory to a memory controller during a copy operation, comprising:
-
applying a sampling method to minimize degradation of the data being copied;
checking the ECC of the data at a predetermined frequency, wherein said frequency is sufficient to avoid significant degradation of the quality of the data. - View Dependent Claims (36, 37, 38, 39)
-
-
40. A method for copying data having an associated error correction code (ECC) from a first location to a second location of a reprogrammable non-volatile memory of a system that includes a memory controller, comprising:
-
reading the data from the first location into a cache on the memory;
determining whether to check the ECC based on predetermined selection criteria, and if ECC checking is not selected, causing the memory to copy the data from the cache to the second location; and
if ECC checking is selected, checking the ECC on the read data in the controller, including;
if an ECC error is found, correcting the ECC error on the read data in the controller and causing the controller to write the corrected data to the second location of the memory; and
if an ECC error is not found, causing the memory to copy the data from the cache to the second location. - View Dependent Claims (41, 42, 43, 44)
-
Specification