RELIABLE WRITE FOR NON-VOLATILE MEMORY
Example embodiments described herein may relate to performing reliable right commands for non-volatile memory devices.
1 . A method, comprising:
storing incoming data associated with a non-volatile memory program command in a program buffer in a non-volatile memory device;
copying data previously stored at a location in the non-volatile memory device targeted by the program command to a non-volatile data backup area in the non-volatile memory; and
copying the incoming data stored in the program buffer to the location in the non-volatile memory device targeted by the program command.
2 . The method of claim 1 , further comprising setting a flag prior to said copying the incoming data stored in the program buffer to the location in the non-volatile memory device targeted by the program command.
3 . The method of claim 2 , further comprising storing an address of the location in the non-volatile memory device targeted by the program command in a non-volatile address field in a non-volatile data backup register.
4 . The method of claim 2 , further comprising clearing the flag at least in part in response to a completion of said copying the incoming data stored in the program buffer to the location in the non-volatile memory device targeted by the program command.
5 . The method of claim 2 , further comprising checking the flag at least in part in response to a non-volatile memory device power-up to determine whether a program command was in process at a time of a previous power loss.
6 . The method of claim 4 , further comprising copying contents of the data backup area to a location in the non-volatile memory device specified by the address stored in the address field of the data backup register at least in part in response to a determination that the flag is set, indicating that the program command was in process at the time of the previous power loss.
7 . The method of claim 6 , further comprising clearing the flag at least in part in response to a completion of said copying the contents of the data backup area to the location in the non-volatile memory device specified by the address stored in the address field of the data backup register.
8 . A non-volatile memory device, comprising:
a program buffer to store incoming data associated with a non-volatile memory program command;
a non-volatile memory array;
a non-volatile data backup area; and
a controller to copy data previously stored at a location in the non-volatile memory array targeted by the program command to the non-volatile data backup area, the controller further to copy the incoming data stored in the program buffer to the location in the non-volatile memory array targeted by the program command.
9 . The memory device of claim 8 , the controller further to set a flag prior to said copying the incoming data stored in the program buffer to the location in the non-volatile memory array targeted by the program command.
10 . The memory device of claim 9 , further comprising a non-volatile data backup register including an address field to store an address of the location in the non-volatile memory array targeted by the program command.
11 . The memory device of claim 9 , the controller further to clear the flag at least in part in response to a completion of said copying the incoming data stored in the program buffer to the location in the non-volatile memory array targeted by the program command.
12 . The memory device of claim 9 , the controller further to check the flag at least in part in response to a power-up of the memory device to determine whether a program command was in process at a time of a previous power loss.
13 . The memory device of claim 12 , the controller further to copy contents of the data backup area to a location in the non-volatile memory device specified by the address stored in the address field of the data backup register at least in part in response to a determination that the flag is set, indicating that the program command was in process at the time of the previous power loss.
14 . The memory device of claim 13 , the controller further to clear the flag at least in part in response to a completion of said copying the contents of the data backup area to the location in the non-volatile memory device specified by the address stored in the address field of the data backup register.
15 . A system, comprising:
a processor; and
a non-volatile memory device coupled to the processor, the processor to issue a program command to the memory device, the memory device comprising
a program buffer to store incoming data associated with the program command;
a non-volatile memory array;
a non-volatile data backup area; and
a controller to copy data previously stored at a location in the non-volatile memory array targeted by the program command to the non-volatile data backup area, the controller further to copy the incoming data stored in the program buffer to the location in the non-volatile memory array targeted by the program command.
16 . The system of claim 15 , the controller further to set a flag prior to said copying the incoming data stored in the program buffer to the location in the non-volatile memory array targeted by the program command.
17 . The system of claim 16 , the memory device further comprising a non-volatile data backup register including an address field to store an address of the location in the non-volatile memory array targeted by the program command.
18 . The system of claim 16 , the controller further to clear the flag at least in part in response to a completion of said copying the incoming data stored in the program buffer to the location in the non-volatile memory array targeted by the program command.
19 . The system of claim 16 , the controller further to check the flag at least in part in response to a power-up of the memory device to determine whether a program command was in process at a time of a previous power loss.
20 . The system of claim 19 , the controller further to copy contents of the data backup area to a location in the non-volatile memory device specified by the address stored in the address field of the data backup register at least in part in response to a determination that the flag is set, indicating that the program command was in process at the time of the previous power loss.