Write operation with immediate local destruction of old content in non-volatile memory
First Claim
Patent Images
1. A method comprising:
- receiving a host write command from a host device to write a newer copy of user data to a non-volatile memory;
temporarily storing the newer copy of the user data in a local buffer;
searching the non-volatile memory to locate an older, previously stored copy of the user data; and
servicing the host write command by transferring the newer copy of user data from the local buffer to a first selected empty physical location in the non-volatile memory and by concurrently overwriting rubout data onto the older, previously stored copy of the user data stored to a different, second selected occupied physical location in the non-volatile memory, wherein the rubout data are not subsequently erased from the different, second selected occupied physical location in the non-volatile memory during the servicing of the host write command, the different, second physical location comprising a plurality of multi-level cells (MLCs) each adapted to store multiple bits, with a first bit in each MLC in the different, second physical location forming a portion of the older, previously stored copy of the user data and a second bit in each MLC in the different, second physical location forming a portion of a different, second set of user data, the rubout data overwritten by selectively adding charge to the MLCs to alter the bits in the older, previously stored copy of the user data without affecting the bits in the second set of user data.
1 Assignment
0 Petitions
Accused Products
Abstract
Method and apparatus for writing data to a non-volatile memory device, such as a solid state drive (SSD). In accordance with various embodiments, a host write command is serviced by writing a newer copy of user data to a first selected empty physical location in a non-volatile memory, and by concurrently overwriting an older copy of said user data previously stored to a different, second selected occupied physical location of the non-volatile memory.
-
Citations
19 Claims
-
1. A method comprising:
-
receiving a host write command from a host device to write a newer copy of user data to a non-volatile memory; temporarily storing the newer copy of the user data in a local buffer; searching the non-volatile memory to locate an older, previously stored copy of the user data; and servicing the host write command by transferring the newer copy of user data from the local buffer to a first selected empty physical location in the non-volatile memory and by concurrently overwriting rubout data onto the older, previously stored copy of the user data stored to a different, second selected occupied physical location in the non-volatile memory, wherein the rubout data are not subsequently erased from the different, second selected occupied physical location in the non-volatile memory during the servicing of the host write command, the different, second physical location comprising a plurality of multi-level cells (MLCs) each adapted to store multiple bits, with a first bit in each MLC in the different, second physical location forming a portion of the older, previously stored copy of the user data and a second bit in each MLC in the different, second physical location forming a portion of a different, second set of user data, the rubout data overwritten by selectively adding charge to the MLCs to alter the bits in the older, previously stored copy of the user data without affecting the bits in the second set of user data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An apparatus comprising:
-
a non-volatile memory which stores an older copy of user data in a first selected location; and a control circuit which, responsive to receipt of a host write command from a host device to write a newer copy of the user data to the non-volatile memory, temporarily stores the newer copy of the user data in a local buffer, searches the non-volatile memory to locate an older, previously stored copy of the user data, and transfers the newer copy of the user data from the local buffer to a second selected empty physical location in the non-volatile memory and concurrently overwrites rubout data onto the older, previously stored copy of the user data in the first selected location without performing an associated erasure of the rubout data during the servicing of the host write command, the first selected location configured as a plurality of multi-level cells (MLCs) each having a multi-bit programming state so that a first bit of each MLC corresponds to a bit value of the older, previously stored copy of the user data and a second bit of each MLC corresponds to a bit value of a second set of user data, the overwriting of the rubout data onto the older, previously stored copy of the user data comprising selectively adding charge to the MLCs so that the MLCs have new multi-bit programming states that still correspond to the bit values of the second set of data. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A data storage device, comprising:
-
a flash memory array having a first selected location that comprises a plurality of multi-level cells (MLCs) each having a multi-bit programmed state where a first bit of the multi-bit programmed state of each MLC corresponds to a bit value in an older, previously stored copy of user data and a second bit of the multi-bit programmed state of each MLC corresponds to a bit value of a second set of user data; and a controller adapted to, responsive to a host write command received from a host device to write a newer copy of the user data to the flash memory, direct a storage of a newer copy of the user data associated with the received host write command in a local buffer, direct a search of the flash memory array for the older copy of the user data, and to direct a transfer of the newer copy of the user data from the local buffer to a second selected empty physical location in the flash memory array, wherein the controller is further adapted to, responsive to the host write command, to direct a concurrent overwrite of the older copy of the user data with rubout data in the first selected location without an associated erasure of the first selected location , the concurrent overwrite selectively adding charge to the MLCs so that the first bit of the multi-bit programmed state of each MLC corresponds to a bit value in the rubout data and the second bit of the multi-bit programmed state of each MLC corresponds to a bit value in the second set of user data. - View Dependent Claims (17, 18, 19)
-
Specification