IP Library Granted Patent US 8,370,561
Granted Patent B2
US 8,370,561 · App. 11/808,905 · Granted Feb 5, 2013

Randomizing for suppressing errors in a flash memory

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,370,561
App. No.
11/808,905
Granted
Feb 5, 2013
Kind
B2
Abstract

Original data to be stored in a nonvolatile memory are first randomized while preserving the size of the original data. In response for a request for the original data, the randomized data are retrieved, derandomized and exported without authenticating the requesting entity. ECC encoding is applied either before or after randomizing; correspondingly, ECC decoding is applied either after or before derandomizing.

Claims (29)

1. A method comprising:

randomizing user data to provide randomized user data, wherein the randomizing includes using a seed, wherein the seed is a function of a logical unit address associated with the user data; and

storing the randomized user data in a first physical unit of a nonvolatile memory; and

moving the randomized user data from the first physical unit of the nonvolatile memory to a second physical unit of the nonvolatile memory and storing the randomized user data in the second physical unit of the nonvolatile memory.

2. The method of claim 1 , wherein randomizing using the seed includes applying a randomizing function to the user data, wherein the randomizing function is functionally dependent on the seed.

3. The method of claim 2 , wherein applying the randomizing function includes summing the user data, modulo 2, with a pseudorandom bit sequence generated using the seed.

4. The method of claim 2 , wherein the pseudorandom bit sequence is generated by a linear feedback shift register using the seed to generate the pseudorandom bit sequence.

5. The method of claim 1 , further comprising after the randomized user data is moved to the second physical unit, when the user data is requested, derandomizing the randomized user data stored in the second physical unit.

6. The method of claim 5 , wherein the derandomizing includes applying a derandomizing function to the randomized user data stored at the second physical unit, wherein the derandomizing function is functionally dependent on the seed.

7. The method of claim 6 , wherein applying the derandomizing function further includes summing the randomized user data, modulo 2, with a pseudorandom bit sequence generated using the seed.

8. The method of claim 1 , wherein the nonvolatile memory is a flash memory and wherein each of the first physical unit and the second physical unit is a block of the flash memory.

9. The method of claim 1 , wherein the nonvolatile memory is a flash memory and wherein each of the first physical unit and the second physical unit is a page of the flash memory.

10. A method comprising:

randomizing user data to provide randomized user data, wherein the randomizing includes using a seed value, wherein the seed value is calculated according to a seed-calculating function that functionally depends on a first page number, wherein the first page number is associated with a first page of a nonvolatile memory in which the randomized user data is stored;

storing the randomized user data in the first page; and

moving the randomized user data from the first page to a second page of the nonvolatile memory and storing the randomized user data in the second page, wherein the second page has an associated second page number and wherein a substitution of the second page number instead of the first page number into the seed-calculating function does not change the calculated seed value.

11. The method of claim 10 , wherein randomizing using the seed value includes summing the user data, modulo 2, with a pseudorandom bit sequence generated using the seed value.

12. The method of claim 10 , further comprising after the randomized user data is moved to the second page, when the user data is requested, derandomizing the randomized user data stored in the second page, wherein the derandomizing uses the seed value.

13. The method of claim 12 , wherein the derandomizing the randomized user data includes summing the randomized user data, modulo 2, with a pseudorandom bit sequence generated using the seed value.

14. The method of claim 10 , wherein the user data has a first number of data bits and the randomized user data has the first number of randomized data bits.

15. A method comprising:

randomizing user data to provide randomized user data, wherein the randomizing includes using a seed that is a function of a first unit number of a first unit of a nonvolatile memory, wherein the nonvolatile memory is partitioned into a plurality of units and each unit has a corresponding unit number;

storing the seed with the randomized user data in the first unit of the nonvolatile memory;

moving the randomized user data and the seed from the first unit to a second unit of the nonvolatile memory and storing the randomized user data and the seed in the second unit;

after storing the randomized user data and the seed in the second unit, when the user data is requested, derandomizing the randomized user data stored in the second unit, wherein the derandomizing uses the seed stored in the second unit.

16. The method of claim 15 , wherein randomizing the user data using the seed includes applying a randomizing function to the user data, wherein the randomizing function is functionally dependent on the seed.

17. The method of claim 15 , wherein derandomizing the randomized user data in the second unit using the seed in the second unit includes applying a derandomizing function to the randomized user data in the second unit, wherein the randomizing function is functionally dependent on the seed stored in the second unit.

18. The method of claim 15 , wherein the nonvolatile memory is a flash memory and wherein each of the first unit and the second unit is a block of the flash memory.

19. The method of claim 15 , wherein the nonvolatile memory is a flash memory and wherein each of the first unit and the second unit is a page of the flash memory.

Assignments (6)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038809/0600 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2014
From: SANDISK IL LTD.
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 033070/0041 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 13, 2007
From: SHARON, ERAN; ALROD, IDAN
To: SANDISK IL LTD.
Reel/Frame 019475/0887 →