Page-Based XOR Randomization for Flash Read Disturbance Control
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Flash memory devices experience read disturbances due to unbalanced logical 0s and 1s in user data, leading to increased read errors, particularly in NAND flash devices where random access is not possible.
Innovation Solution
A method and apparatus that utilize a randomization algorithm to generate a randomized sequence based on page numbers, applying a logical bitwise XOR computation to user data, ensuring balanced logical 0s and 1s in the data before programming it into flash memory, and optionally adjusting the programming order to achieve data balance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If user data is directly programmed into flash memory without randomization, then the programming process is simple and fast, but read disturbances occur due to unbalanced logical 0s and 1s, leading to increased read errors
Solution Approach 1:
The patent applies preliminary action by generating a randomization sequence before programming the user data into flash memory. The randomization sequence is pre-computed based on the page number and XORed with the user data to balance the logical 0s and 1s, preventing read disturbances during subsequent read operations.
Solution Approach 2:
The patent changes the data parameter by transforming the user data through XOR operation with a randomization sequence. This parameter transformation balances the distribution of logical 0s and 1s in the data, converting unbalanced data into balanced data that reduces read disturbances in flash memory.
2Reliability
If randomization sequence is generated and XOR computation is performed on user data, then read disturbances are reduced and data balance is achieved, but the programming process becomes more complex and time-consuming
Solution Approach 1:
The randomization sequence is generated in advance before the programming operation. By pre-computing the randomization sequence based on the page number and storing it in a lookup table, the system avoids complex computations during the actual programming process, thus maintaining programming speed while achieving data balancing.
Solution Approach 2:
The patent uses a lookup table to store pre-computed randomization sequences for different page numbers. Instead of generating the randomization sequence dynamically during programming, the system copies the appropriate pre-computed sequence from the lookup table, significantly reducing the time required for the XOR operation and improving programming throughput.
3Reliability
If data balance is not maintained in flash memory, then the storage system is simpler to operate, but read errors increase due to read disturbances
Solution Approach 1:
The system performs self-service by automatically generating and applying randomization sequences to balance the data without requiring manual intervention. The flash controller autonomously computes the randomization sequence based on the page number and applies the XOR operation to the user data, eliminating the need for user involvement in data balancing while improving read reliability.
Data Source
AI summary
The invention introduces a method for accessing randomized data, performed by a processing unit, includes: obtaining user data sets corresponding to one word line from a host side; calculating a randomization seed according to a page number of a specific page on the word line for each user data set; generating a randomized sequence by using a randomization algorithm according to each randomization seed; performing a logical bitwise XOR computation on each user data set and a corresponding randomized sequence to generate a first randomized data set; and programming each first randomized data set into a designated physical address including a corresponding page number on the word line in the flash module.


