Method for scrambling data in which scrambling data and scrambled data are stored in corresponding non-volatile memory locations
AssigneeSanDisk Technologies LLC
InventorsJun Wan, Yupin K. Fong, Man L. Mui
Life of this patent
Estimating the term…
Abstract
A method in which data is randomized before being stored in a non-volatile memory to minimize data pattern-related read failures. Predetermined randomized non-user data is stored in a block or other location of a memory array, and accessed as needed by a memory device controller to randomize user data before it is stored in other blocks of the array. Each portion of the user data which is stored in a block is randomized using a portion of the non-user data which is stored in the same relative location in another block.
Claims25
A method for operating a non-volatile memory device, comprising:
- receiving at least one write command and associated user data to be written to the non-volatile memory device, the non-volatile memory device comprises an array of non-volatile storage elements divided into blocks comprising first and second blocks, the first block comprises rows of non-volatile storage elements, and the second block comprises rows of non-volatile storage elements, the at least one write command identifies at least one of the rows in the first block to store the associated user data;
- identifying at least one of the rows in the second block corresponding to the at least one of the rows in the first block;
- reading predetermined non-user data from the at least one of the rows in the second block;
- encoding the associated user data based on the predetermined non-user data to provide modified user data;
- and
- writing the modified user data in the at least one of the rows in the first block.
A method for operating a non-volatile memory device, comprising:
- receiving at least one write command and associated user data to be written to the non-volatile memory device, the non-volatile memory device comprises an array of non-volatile storage elements on a memory die, the array of non-volatile storage elements is divided into blocks comprising first and second blocks, the first block comprises rows of non-volatile storage elements, and the second block comprises rows of non-volatile storage elements, the at least one write command identifies at least one of the rows in the first block to store the associated user data;
- in response to the at least one write command, reading scrambling data from the at least one of the rows in the second block and storing the scrambling data in sets of latches associated with the array, the sets of latches are on the memory die;
- using processors on the memory die which are associated with the sets of latches, scrambling the associated user data based on the scrambling data to provide scrambled user data;
- storing the scrambled user data in the sets of latches;
- and
- using the sets of latches, writing the scrambled user data in the at least one of the rows in the first block.
A method for operating a non-volatile memory device, comprising:
- receiving at least one read command regarding associated user data to be read from the non-volatile memory device, the non-volatile memory device comprises an array of non-volatile storage elements divided into blocks comprising first and second blocks, the first block comprises rows of non-volatile storage elements, and the second block comprises rows of non-volatile storage elements, the at least one read command identifies at least one of the rows in the first block in which the associated user data is stored as modified user data;
- identifying at least one of the rows in the second block corresponding to the at least one of the rows in the first block;
- reading predetermined non-user data from the at least one of the rows in the second block, the predetermined non-user data comprises descrambling data;
- reading the modified user data from the at least one of the rows in the first block;
- and
- decoding the modified user data based on the predetermined non-user data.
A non-volatile memory device, comprising:
- a memory die;
- a memory array of non-volatile storage elements fabricated on the memory die, the memory array is divided into blocks comprising first and second blocks, the first block comprises rows of non-volatile storage elements, and the second block comprises rows of non-volatile storage elements;
- and
- circuitry fabricated on the memory die, the circuitry:
- receives, from a controller which is not fabricated on the memory die, at least one write command and associated user data to be written to the non-volatile storage elements, the at least one write command identifies at least one of the rows in the first block to store the user data, the circuitry identifies at least one of the rows in the second block corresponding to the at least one of the rows in the first block, performs a read of predetermined non-user data from the at least one of the rows in the second block, performs an encode of the associated user data based on the predetermined non-user data to provide modified user data, and performs a write of the modified user data in the at least one of the rows in the first block.
A method performed at a memory die of a non-volatile memory device, comprising:
- receiving, from a controller which is not fabricated on the memory die, at least one write command and associated data, including user data, to be written to non-volatile storage elements in a memory array on the memory die;
- and
- in response to the at least one write command, providing respective different portions of the associated data to processors on the memory die;
- and
- at the processors:
- generating respective different keys for the respective different portions of the associated data, based on respective different addresses of respective different locations of the memory array;
- encoding the respective different portions of the associated data based on the respective different keys to provide respective different portions of modified data;
- and
- providing the respective different portions of modified data to sense modules on the memory die to be written to the respective different locations of the memory array.
Dependencies are inferred from the claim text.