IP Library › Granted Patent US 12,609,142
Granted Patent B2
US 12,609,142 · App. 18/667,444 · Granted Apr 21, 2026

Inversion seed generation using scrambler output sequence

Inventors: Pengfei Huang (San Jose, CA); Fan Zhang (San Jose, CA)
Assignee: SK hynix Inc.
G11C7/1006G06F7/582
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 12,609,142
App. No.
18/667,444
Granted
Apr 21, 2026
Kind
B2
Abstract

A method and associated memory system for randomizing memory storage data. The method and system receive at a randomizer user data and meta data having an inversion seed; generate a random sequence using a scrambling seed; generate a value for the inversion seed; XOR the user data including the meta data with the random sequence to produce an XORed sequence; and depending on the value of the inversion seed, bit-flip the XORed sequence except the inversion seed.

Claims (51)

1 . A method for randomizing memory storage data, comprising:

receiving at a randomizer user data and meta data having an inversion seed;

generating a random sequence using a scrambling seed;

generating a value for the inversion seed;

exclusive ORing (XORing) the user data including the meta data with the random sequence to produce an XORed sequence; and

depending on the value of the inversion seed, bit-flipping the XORed sequence except the inversion seed.

2 . The method of claim 1 , wherein the bit-flipping includes, if the value of the inversion seed is 1, bit-wise flipping the XORed sequence except the inversion seed and output the bit-wise flipped XORed sequence for storage in a memory.

3 . The method of claim 1 , wherein the bit-flipping includes, if the value of the inversion seed is 0, outputting the XORed sequence for storage in a memory.

4 . The method of claim 1 , wherein, at each program-erase cycle (PEC) for programming or erasing memory data, the value for the inversion seed is equal to a value of a PEC-th bit of the random sequence.

5 . The method of claim 1 , wherein, at each program-erase cycle (PEC) for programming or erasing memory data, the value for the inversion seed is equal to a value of a (PEC+PA) % n-th bit of the random sequence, where n is a length of user data and PA is a page physical address for storage of the user data.

6 . The method of claim 1 , wherein, at each program-erase cycle (PEC) for programming or erasing memory data, the value for the inversion seed is equal to a value of a PEC-th bit of the XORed sequence.

7 . The method of claim 1 , wherein, at each program-erase cycle (PEC) for programming or erasing memory data, the value for the inversion seed is equal to a value of a (PEC+PA) % n-th bit of the XORed sequence, where n is a length of user data and PA is a NAND page physical address for storage of the user data.

8 . The method of claim 1 , wherein the XORed sequence or the bit-flipped XORed sequence is stored in a memory as a randomized data sequence with the inversion seed unchanged and having an error correction code appended thereto.

9 . The method of claim 8 , further comprising decoding the randomized data sequence stored in the memory to recover the user data and the meta data by:

a) inputting from the memory to the randomizer the randomized data sequence stored in the memory;

b) generating in the randomizer a random number sequence using as a seed a page physical address where the user data was stored;

c) bitwise XORing the random number sequence generated in the randomizer and the randomized data sequence input from the memory to produce a resultant XORed sequence;

d) after the bitwise XORing, if a bit of the inversion seed is 1, bit-wise flipping the resultant XORed sequence except the inversion seed bit to produce recovered user data and the meta data; and

e) after the bitwise XORing, if the bit of the inversion seed is 0, the resultant XORed sequence without bit flipping is the recovered user data and the meta data.

10 . The method of claim 8 , further comprising decoding the randomized data sequence stored in the memory to recover the user data and the meta data by:

a) inputting the randomized data sequence stored in the memory to the randomizer;

b) generating in the randomizer a random number sequence using as a seed a page physical address where the user data was stored;

c) after the generating of the random number sequence in the randomizer, if a bit of the inversion seed is 1, bit-wise flipping the randomized data sequence input from the memory except the inversion seed bit; and

d) bitwise XORing the random number sequence generated in the randomizer and the bit-wise flipped randomized data sequence to obtain the user data and the meta data.

11 . A memory system, comprising:

a storage;

an encoder coupled to the storage; and

a randomizer coupled to the encoder, wherein the randomizer is configured to:

receive user data and meta data having an inversion seed;

generate a random sequence using a scrambling seed;

generate a value for the inversion seed;

exclusive OR (XOR) the user data including the meta data with the random sequence to produce an XORed sequence; and

depending on the value of the inversion seed, bit-flip the XORed sequence except the inversion seed.

12 . The memory system of claim 11 , wherein, if the value of the inversion seed is 1, the XORed sequence is bit-wise flipped except the inversion seed and the bit-wise flipped XORed sequence is programmed in the storage.

13 . The memory system of claim 11 , wherein, if the value of the inversion seed is 0, the XORed sequence is programmed in the storage.

14 . The memory system of claim 11 , wherein, at each program-erase cycle (PEC) for programming or erasing memory data, the value for the inversion seed is equal to a value of a PEC-th bit of the random sequence.

15 . The memory system of claim 11 , wherein, at each program-erase cycle (PEC) for programming or erasing memory data, the value for the inversion seed is equal to a value of a (PEC+PA) % n-th bit of the random sequence, where n is a length of user data and PA is a page physical address for storage of the user data.

16 . The memory system of claim 11 , wherein, at each program-erase cycle (PEC) for programming or erasing memory data, the value for the inversion seed is equal to a value of a PEC-th bit of the XORed sequence.

17 . The memory system of claim 11 , wherein, at each program-erase cycle (PEC) for programming or erasing memory data, the value for the inversion seed is equal to a value of a (PEC+PA) % n-th bit of the XORed sequence, where n is a length of user data and PA is a NAND page physical address for storage of the user data.

18 . The memory system of claim 11 , wherein the XORed sequence or the bit-flipped XORed sequence is stored in a memory as a randomized data sequence with the inversion seed unchanged and having an error correction code appended thereto.

19 . The memory system of claim 18 , wherein the encoder is configured to decode the randomized data sequence stored in the memory to recover the user data and the meta data by:

a) inputting from the memory to the randomizer the randomized data sequence stored in the memory;

b) generating in the randomizer a random number sequence using as a seed a page physical address where the user data was stored;

c) bitwise XORing the random number sequence generated in the randomizer and the randomized data sequence input from the memory to produce a resultant XORed sequence;

d) after the bitwise XORing, if a bit of the inversion seed is 1, bit-wise flipping the resultant XORed sequence except the inversion seed bit to produce recovered user data and the meta data; and

e) after the bitwise XORing, if the bit of the inversion seed is 0, the resultant XORed sequence without bit flipping is the recovered user data and the meta data.

20 . The memory system of claim 18 , wherein the encoder is configured to decode the randomized data sequence stored in the memory to recover the user data and the meta data by:

a) inputting the randomized data sequence stored in the memory to the randomizer;

b) generating in the randomizer a random number sequence using as a seed a page physical address where the user data was stored;

c) after the generating of the random number sequence in the randomizer, if a bit of the inversion seed is 1, bit-wise flipping the randomized data sequence input from the memory except the inversion seed bit; and

d) bitwise XORing the random number sequence generated in the randomizer and the bit-wise flipped randomized data sequence to obtain the user data and the meta data.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 17, 2025
From: SK HYNIX MEMORY SOLUTIONS AMERICA INC.
To: SK HYNIX INC.
Reel/Frame 070536/0574 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2024
From: HUANG, PENGFEI; ZHANG, FAN
To: SK HYNIX MEMORY SOLUTIONS AMERICA INC.
Reel/Frame 067449/0119 →
Continuity (1)
Related Publication 20250356887A1 · Nov 20, 2025
References Cited (9)
US 20130124783A1 · Yoon · 2013 [cited by examiner]
US 20130227213A1 · Choi · 2013 [cited by examiner]
US 20180074791A1 · Atsumi · 2018 [cited by examiner]
US 20190096485A1 · Jung · 2019 [cited by examiner]
US 20190189223A1 · Yun · 2019 [cited by examiner]
US 20210191656A1 · Hong · 2021 [cited by examiner]
US 20210225451A1 · Seo · 2021 [cited by examiner]
US 20210311868A1 · Chen · 2021 [cited by examiner]
US 20230315623A1 · Chen et al. · 2023 [cited by applicant]