USRE45697E

System, method and memory device providing data scrambling compatible with on-chip copy operation

Claim Score by NHIP

Read claim 57, the broadest

Abstract

Data scrambling techniques implemented externally to a flash memory device are disclosed which can be used in concert with flash memory on-chip copy functionality operating internally to the flash device, thus supporting high performance copying operations. All the data stored in the flash may be scrambled, including headers and control structures. Robust file system operation may be achieved, including the capability to tolerate a power loss at any time, and yet be able to relocate data internally within the flash without having to de-scramble and then re-scramble the data. An exemplary hardware based solution has little or no impact on overall system performance, and may be implemented at very low incremental cost to increase overall system reliability. The data scrambling technique preferably uses a logical address, such as logical block address or logical page address, rather than a physical address, to determine a seed scrambling key.

USRE45697E, drawing sheet 1
Sheet 1 of 18

Term

2.3 yearsleft in the term

Expires 30 December 2028.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

71 claims: 7 independent, 64 dependent

  1. 1
    A method for storing information in a non-volatile memory, said method comprising:determining a starting key based upon a seed key and a logical page address associated with a group of data;randomizing the group of data using a deterministic sequence of keys corresponding to the starting key;storing the randomized group of data into a physical page of the non-volatile memory;and storing, into the physical page of the non-volatile memory, additional information from which the starting key may be determined without knowledge of the logical page address, wherein the additional information is stored as randomized information using the deterministic sequence of keys corresponding to the starting key.
  2. 5
    A method for storing information in a non-volatile memory said method comprising:determining a starting key based upon a seed key and a logical page address associated with a group of data;randomizing the group of data using a deterministic sequence of keys corresponding to the starting key;storing the randomized group of data into a physical page of the non-volatile memory;and storing, into the physical page of the non-volatile memory, additional information from which the starting key may be determined without knowledge of the logical page address, wherein the additional information comprises a mapped page offset code having a 1:1 correspondence with a page offset value.
  3. 32
    An apparatus comprising:a non-volatile memory;and a memory controller configured to: determine a starting key based upon a seed key and a logical page address associated with a group of data;randomize the group of data using a deterministic sequence of keys corresponding to the starting key;store the randomized group of data into a physical page of the non-volatile memory;and store, into the physical page of the non-volatile memory, additional information from which the starting key may be determined without knowledge of the logical page address, wherein the additional information is stored as randomized information using the deterministic sequence of keys corresponding to the starting key.
  4. 36
    An apparatus comprising:a non-volatile memory;and a memory controller configured to: determine a starting key based upon a seed key and a logical page address associated with a group of data;randomize the group of data using a deterministic sequence of keys corresponding to the starting key;store the randomized group of data into a physical page of the non-volatile memory;and store, into the physical page of the non-volatile memory, additional information from which the starting key may be determined without knowledge of the logical page address, wherein the additional information comprises a mapped page offset code having a 1:1 correspondence with a page offset value.
  5. 55
    A method for storing information in a non-volatile memory, said method comprising:determining a starting key based upon a seed key and a logical page address associated with a group of data;randomizing the group of data using a deterministic sequence of keys corresponding to the starting key;and storing the randomized group of data into a physical page of the non-volatile memory;wherein the deterministic sequence of keys comprises a number M of separate scrambling keys, each comprising M-bits, wherein each respective scrambling key N (KeyN) corresponds to an N-bit circular rotation of a predetermined seed key (Key 0 );wherein the randomizing comprises a bit-by-bit XOR operation using the deterministic sequence of M-bit scrambling keys;wherein each successive scrambling key in the deterministic sequence is a bit-wise rotation of the seed key by a calculated number of bits;and wherein the calculated number of bits for the successive key depends on the current key and also depends on the page offset value and the D-word offset value of the corresponding successive word.
  6. 56
    An apparatus comprising:a non-volatile memory;and a memory controller configured to: determine a starting key based upon a seed key and a logical page address associated with a group of data;randomize the group of data using a deterministic sequence of keys corresponding to the starting key;and store the randomized group of data into a physical page of the non-volatile memory;wherein the deterministic sequence of keys comprises a number M of separate scrambling keys, each comprising M-bits, wherein each respective scrambling key N (KeyN) corresponds to an N-bit circular rotation of a predetermined seed key (Key 0 );wherein the randomizing comprises a bit-by-bit XOR operation using the deterministic sequence of M-bit scrambling keys;wherein each successive scrambling key in the deterministic sequence is a bit-wise rotation of the seed key by a calculated number of bits;and wherein the calculated number of bits for the successive key depends on the current key and also depends on the page offset value and the D-word offset value of the corresponding successive word.
  7. 57
    Broadest claimClaim Score 68, broad(NHIP)A method for storing information in a non-volatile memory, said method comprising:determining a starting key based upon a seed key and a logical page address associated with a group of data;randomizing the group of data using a deterministic sequence of keys corresponding to the starting key;storing the randomized group of data into a physical page of the non-volatile memory;and storing, into more than one location within the physical page of the non-volatile memory, additional information from which the starting key may be determined without knowledge of the logical page address.