US 9,811,477 B2
Memory system and method for writing data to a block of an erased page
David Meyer, Lakewood, CO (US); and Satish Vasudeva, Fremont, CA (US)
Assigned to SanDisk Technologies LLC, Plano, TX (US)
Filed by SanDisk Technologies Inc., Plano, TX (US)
Filed on Oct. 7, 2015, as Appl. No. 14/877,614.
Prior Publication US 2017/0103025 A1, Apr. 13, 2017
Int. Cl. H04L 29/06 (2006.01); G06F 12/14 (2006.01); H04L 9/06 (2006.01)
CPC G06F 12/1408 (2013.01) [H04L 9/0618 (2013.01); G06F 2212/1052 (2013.01); H04L 2209/24 (2013.01)] 16 Claims
OG exemplary drawing
 
1. A memory system comprising:
a non-volatile memory comprising a page, wherein the page comprises a plurality of blocks, and wherein the non-volatile memory is configured with storage space for storing a cipher key version number associated with the page; and
a controller in communication with the non-volatile memory, wherein the controller is configured to perform the following in response to a write command:
store data encrypted with a cipher key in one of the blocks of the page in the non-volatile memory;
read the cipher key version number associated with the page from the storage space in the non-volatile memory;
determine whether the cipher key version number associated with the page is different from a cipher key version number of the cipher key used to encrypt the data;
in response to determining that the cipher key version number associated with the page is different from the cipher key version number of the cipher key used to encrypt the data, write a data pattern encrypted with the cipher key into the other blocks of the page, wherein the data pattern indicates data previously stored in the other blocks of the page was previously made unreadable by a change in the cipher key; and
store the cipher key version number of the cipher key used to encrypt the data in the storage space in the non-volatile memory;
wherein the controller is further configured to perform the following in response to a request to read the one of the blocks of the page:
read the cipher key version number associated with the page from the storage space in the non-volatile memory;
determine whether the cipher key version number read from the storage space in the non-volatile memory is out of date; and
in response to determining that the cipher key version number read from the storage space in the non-volatile memory is out of date, return a second data pattern instead of returning data read from the one of the blocks, wherein the second data pattern indicates data previously stored in the one of the blocks was previously made unreadable by a change in the cipher key.