EP2240937B1

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

Abstract

This record has no abstract on file.

EP2240937B1, drawing sheet 1
Sheet 1 of 21

Term

2.3 yearsleft in the term

Expires 31 December 2028.

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

14 claims: 2 independent, 12 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 values;modifying data values in the group by randomizing the group of data values using a deterministic sequence of keys corresponding to the starting key;storing the randomized group of data into a physical page (208, 216, 224) of the non-volatile memory;characterised by : storing, into the physical page (208, 216, 224) of the non-volatile memory, a page offset identifier from which the starting key may be determined without knowledge of the logical page address, the page offset identifier determining the position of the starting key in the deterministic sequence.of keys.
  2. 2
    The method as recited in Claim 1 further comprising:storing the page offset identifier into more than one location within the physical memory page (208, 216, 224), so that even if one location is corrupted, another can still be read to determine the starting key.
  3. 3
    The method as recited in Claim 1 wherein the determining step comprises:determining an index for a sequence of scrambling keys based upon a logical page offset value;and using the index to identify the starting key within a repeating sequence of M-bit scrambling keys corresponding to the seed key.
  4. 4
    The method as recited in Claim 1 further comprising:storing the page offset identifier as randomized information using the deterministic sequence of keys corresponding to the starting key.
  5. 5
    The method as recited in Claim 1 further comprising:determining a page code associated with a logical page offset value;randomizing the page code using the deterministic sequence of keys corresponding to the starting key, to generate a mapped page offset code having a 1:1 correspondence with the logical page offset value;and storing the mapped page offset code as the page offset identifier into a page header of the physical page (208, 216, 224) of the non-volatile memory.
  6. 6
    The method as recited in Claim 5 further comprising initializing the non-volatile memory upon power-up, said initializing comprising:reading a randomized memory page header including a mapped page offset code;extracting a corresponding page offset value from the mapped page offset code;then determining a starting key based upon the page offset value and the seed key;and reading and de-randomizing the memory page using a deterministic sequence of scrambling keys corresponding to the starting key.
  7. 7
    The method as recited in Claim 6 further comprising:determining a second starting key based upon the seed key and a physical page address associated with a second group of data;randomizing the second group of data using a deterministic sequence of keys corresponding to the second starting key;and storing the randomized second group of data into a second physical page (208, 216, 224) of the non-volatile memory;wherein said initializing step is performed on blocks whose starting key is based upon its logical page address and on blocks whose starting key is based upon its physical page address;and wherein the second group of data corresponds to a control block of a flash file system.
  8. 8
    The method as recited in Claim 1 further comprising:ECC encoding the randomized group of data and storing non-randomized ECC redundancy bytes in the non-volatile memory.
  9. 9
    The method as recited in Claim 1 further comprising:randomizing all page header information written into the non-volatile memory;randomizing control blocks for a flash file system using a physical page address rather than a logical page address;and randomizing boot blocks for the flash file system using a predetermined default seed key.
  10. 10
    The method as recited in Claim 1 wherein:the deterministic sequence of keys comprises a number M of separate scrambling keys, each comprising M-bits, wherein each respective scrambling key N corresponds to an N-bit circular rotation of a predetermined seed key, each successive scrambling key in the deterministic sequence being a bit-wise rotation of the seed key by a calculated number of bits, and the calculated number of bits for the successive key depending on the current key;and the randomizing comprises a bit-by-bit XOR operation using the deterministic sequence of M-bit scrambling keys.
  11. 11
    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 values;modify the data values in the group by randomize the group of data values using a deterministic sequence of keys corresponding to the starting key;store the randomized group of data into a physical page (208, 216, 224) of the non-volatile memory;characterised in that the memory controller is further configured to : store, into the physical page (208, 216, 224) of the non-volatile memory, a page offset identifier from which the starting key may be determined without knowledge of the logical page address, the page offset identifier determining the position of the starting key in the deterministic sequence of keys.
  12. 12
    The apparatus as recited in Claim 11 wherein the deterministic sequence of keys comprises:a number M of separate scrambling keys, each comprising M-bits, wherein each respective scrambling key N corresponds to an N-bit circular rotation of a predetermined seed key;the randomizing comprises a bit-by-bit XOR operation using the deterministic sequence of M-bit scrambling keys;and each successive scrambling key in the deterministic sequence is a bit-wise rotation of the seed key by a calculated number of bits.
  13. 13
    The apparatus as recited in Claim 12 wherein the calculated number of bits for the successive key depends on the current key, and also depends on the page offset value and a word offset value of the corresponding successive word relative to a first word of the page.
  14. 14
    The apparatus as recited in Claim 11 wherein the deterministic sequence of keys comprises:a pseudo-random sequence of keys generated by a linear feedback shift register having a starting value corresponding to the starting key.