IP Library › Granted Patent US 11,327,884
Granted Patent B2
US 11,327,884 · App. 16/837,315 · Granted May 10, 2022

Self-seeded randomizer for data randomization in flash memory

Inventors: Zhengang Chen (San Jose, CA); Jianmin Huang (San Carlos, CA)
Assignee: Micron Technology, Inc.
G06F12/0246G06F12/1408G06F13/1668G11C11/5628H04L9/0662H04L9/0869G06F2212/7207
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 11,327,884
App. No.
16/837,315
Granted
May 10, 2022
Kind
B2
Abstract

Disclosed in some examples are methods, systems, devices, and machine-readable mediums that provide for techniques for scrambling and/or updating meta-data that enable an efficient internal copyback operation. In some examples, improved data distribution techniques decouple the scrambling key from a physical address to allow for copyback operations while maintaining data distribution requirements across a memory device. The controller may generate a seed value that is used by a scrambling algorithm to scramble the host-data and meta-data prior to the data being written. The seed value is then encoded and written to the page with encoded versions of the scrambled user data and meta-data—the random seed is written without scrambling the random seed.

Claims (60)

1. A method for storing data on a non-volatile memory device, the method comprising:

receiving data to write to a plurality of memory cells of the memory device, the data including host-data from a host and meta-data created by a controller of the memory device;

responsive to receiving the data, generating a scrambler seed value for the data;

scrambling the data by transforming the data using a scrambling algorithm and the seed value to produce scrambled data;

encoding both the seed value and the scrambled data to create encoded data, the seed value and the meta-data separately encoded from the host-data, the encoded data including an encoded seed value, encoded meta-data, and encoded host-data;

causing the encoded data to be written to a first plurality of memory cells of a first die the memory device;

identifying that the encoded data is to be copied to a second plurality of memory cells within the first die; and

responsive to identifying that the encoded data is to be copied to the second plurality of memory cells:

receiving the encoded seed value and the encoded meta-data from the first memory die of the memory device;

sending to the first memory die updated encoded metadata; and

causing updated encoded data comprising the updated encoded metadata, the encoded seed value, and the encoded host-data to be copied to the second plurality of memory cells without the encoded host-data being transferred from the first die to the controller of the non-volatile memory device.

2. The method of claim 1 , wherein generating the seed value comprises obtaining a random number.

3. The method of claim 2 , wherein obtaining the random number comprises using a hardware random number generator.

4. The method of claim 2 , wherein the random number is a pseudo-random number generated from a pseudo-random number generator.

5. The method of claim 1 , wherein the seed value is an encryption key.

6. The method of claim 1 , wherein the scrambling algorithm is an XOR algorithm and wherein scrambling the data comprises XORing the data with a random sequence generated with the seed value to produce the scrambled data.

7. The method of claim 1 , wherein the scrambling algorithm is an encryption algorithm and wherein scrambling the data by transforming the data using the encryption algorithm and the seed value to produce the scrambled data comprises encrypting the data with the seed value.

8. The method of claim 1 , further comprising:

receiving a read request for the data;

reading the encoded data from the second plurality of memory cells;

decoding the encoded data to produce the scrambled data and the seed value; and

unscrambling the scrambled data with the seed value to produce the data.

9. A memory device comprising:

a first memory die including a plurality of memory cells;

a controller, configured to perform operations comprising:

receiving data to write to the plurality of memory cells, the data including host-data from a host and meta-data created by the controller;

responsive to receiving the data, generating a scrambler seed value for the data;

scrambling the data by transforming the data using a scrambling algorithm and the seed value to produce scrambled data;

encoding both the seed value and the scrambled data to create encoded data, the seed value and the meta-data separately encoded from the host-data, the encoded data including an encoded seed value, encoded meta-data, and encoded host-data;

causing the encoded data to be written to a first plurality of memory cells of the first die;

identifying that the encoded data is to be copied to a second plurality of memory cells within the first die; and

responsive to identifying that the encoded data is to be copied to the second plurality of memory cells:

receiving the encoded seed value and the encoded meta-data from the first memory die of the memory device;

sending to the first memory die updated encoded metadata; and

causing updated encoded data comprising the updated encoded metadata, the encoded seed value, and the encoded host-data to be copied to the second plurality of memory cells without the encoded host-data being transferred from the first die to the controller of the memory device.

10. The memory device of claim 9 , wherein the operations of generating the seed value comprises obtaining a random number.

11. The memory device of claim 10 , wherein the memory device comprises a hardware random number generator and wherein the operations of obtaining the random number comprises obtaining the random number from the hardware random number generator.

12. The memory device of claim 10 , wherein the random number is a pseudo-random number generated from a pseudo-random number generator.

13. The memory device of claim 9 , wherein the seed value is an encryption key.

14. The memory device of claim 9 , wherein the scrambling algorithm is an XOR algorithm and wherein the operations of scrambling the data comprises XORing the data with a random sequence generated with the seed value to produce the scrambled data.

15. The memory device of claim 9 , wherein the scrambling algorithm is an encryption algorithm and wherein the operation of scrambling the data by transforming the data using the encryption algorithm and the seed value to produce the scrambled data comprises encrypting the data with the seed value.

16. The memory device of claim 9 , wherein the operations further comprise:

receiving a read request for the data;

reading the encoded data from the second plurality of memory cells;

decoding the encoded data to produce the scrambled data and the seed value; and

unscrambling the scrambled data with the seed value to produce the data.

17. A non-transitory machine-readable medium, storing instructions, which when executed, cause a memory device to perform operations comprising:

receiving data to write to a plurality of memory cells of the memory device, the data including host-data from a host and meta-data created by a controller of the memory device;

responsive to receiving the data, generating a scrambler seed value for the data;

scrambling the data by transforming the data using a scrambling algorithm and the seed value to produce scrambled data;

encoding both the seed value and the scrambled data to create encoded data, the seed value and the meta-data separately encoded from the host-data, the encoded data including an encoded seed value, encoded meta-data, and encoded host-data;

causing the encoded data to be written to a first plurality of memory cells of the first die;

identifying that the encoded data is to be copied to a second plurality of memory cells within the first die; and

responsive to identifying that the encoded data is to be copied to the second plurality of memory cells:

receiving the encoded seed value and the encoded meta-data from the first memory die of the memory device;

sending to the first memory die updated encoded metadata; and

causing updated encoded data comprising the updated encoded metadata, the encoded seed value, and the encoded host-data to be copied to the second plurality of memory cells without the encoded host-data being transferred from the first die to the controller of the memory device.

18. The non-transitory machine-readable medium of claim 17 , wherein the operations of generating the seed value comprises obtaining a random number.

19. The non-transitory machine-readable medium of claim 18 , wherein the memory device comprises a hardware random number generator and wherein the operations of obtaining the random number comprises obtaining the random number from the hardware random number generator.

20. The non-transitory machine-readable medium of claim 18 , wherein the random number is a pseudo-random number generated from a pseudo-random number generator.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2020
From: CHEN, ZHENGANG; HUANG, JIANMIN
To: MICRON TECHNOLOGY, INC.
Reel/Frame 052584/0255 →
Continuity (1)
Related Publication 20210311868A1 · Oct 7, 2021