RECOVERY WHILE PROGRAMMING NON-VOLATILE MEMORY (NVM)
First Claim
1. A method of performing recovery in conjunction with programming an array of NVM cells comprising:
- erasing the array cells and loading a first SRAM with user data;
when programming the cells, flip bits in the first SRAM which are successfully programmed;
if programming is not successful, reading the failed data from the array, and if the first SRAM bits were not successfully programmed, do not change them, and writing other bits which were not programmed or which were successfully programmed from the array to the first SRAM.
5 Assignments
0 Petitions
Accused Products
Abstract
A method of performing recovery in conjunction with programming an array of NVM cells. First, erasing the array cells and loading an SRAM with user data. When programming the cells, flip bits in the SRAM which are successfully programmed (pass PV). If programming is not successful, read the failed data from the array, and if the SRAM bits were not successfully programmed, do not change them. Write the other bits (not programmed or successfully programmed) from the array to the SRAM. Before reading the failed data, the SRAM may be copied to a second SRAM. If the restore did not work, an ED mechanism may be applied, and if the ED bits to not align with the data, move a read reference (RD), copy the second SRAM to the original SRAM, and attempt reading again, until the data is successfully recovered.
125 Citations
20 Claims
-
1. A method of performing recovery in conjunction with programming an array of NVM cells comprising:
-
erasing the array cells and loading a first SRAM with user data; when programming the cells, flip bits in the first SRAM which are successfully programmed; if programming is not successful, reading the failed data from the array, and if the first SRAM bits were not successfully programmed, do not change them, and writing other bits which were not programmed or which were successfully programmed from the array to the first SRAM. - View Dependent Claims (2, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
3. A method of performing recovery in conjunction with programming a portion of an array of non-volatile memory (NVM) cells, wherein:
- at least a portion of each cell may be set to a first threshold voltage level and at least one second threshold voltage level, a read reference (RD) is associated with at least one of the threshold voltage levels, and user data to be programmed to the cells is first written to bits of a first volatile storage medium, and the bits represent a first binary number and at least one second binary numbers, the method comprising;
setting an initial condition for the NVM cells which is representative of a selected one of the threshold voltage levels; programming the NVM cells based on the user data in the volatile storage medium; flipping the bits of the volatile storage medium as corresponding bits of NVM cells are successfully programmed to the second state; and if programming fails, performing recovery by performing the steps of; (a) reading data from the portion of the array; (b) if the first volatile storage medium bit comprises the second binary number, do not change it; and (c) if the first volatile storage medium bit comprises the first binary number, write to the first volatile storage medium from the array. - View Dependent Claims (4, 5)
- at least a portion of each cell may be set to a first threshold voltage level and at least one second threshold voltage level, a read reference (RD) is associated with at least one of the threshold voltage levels, and user data to be programmed to the cells is first written to bits of a first volatile storage medium, and the bits represent a first binary number and at least one second binary numbers, the method comprising;
-
14. A method of performing recovery in conjunction with programming a portion of an array of non-volatile memory (NVM) cells, wherein user data to be programmed is first written to a volatile storage medium, the method comprising:
-
flipping a state of bits in the volatile storage medium based on successfully programming corresponding bits in the portion of the array; and in case of failed programming of the NVM cells, reconstructing the user data based on a portion of the data in the non-volatile memory cells and a portion of the data in the volatile storage medium. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification