SSD Controller Parity Generation Decoupling Codeword Groups
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current solid state storage devices, such as flash memory, face limitations in data recovery due to their reliance on integer numbers of codewords per page, which restricts the use of variable rate error-correcting codes and fails to accommodate non-integer numbers of codewords, leading to inadequate protection against page failures.
Innovation Solution
A mechanism where codewords are configured into groups with an integer number larger than the non-integer number of codewords per page, allowing parity generation and data recovery by decoupling the calculation from physical pages, enabling the use of non-integer codewords and dynamic adjustment of code rates to maximize SSD lifespan and performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If an integer number of codewords is allocated to each page, then parity can be generated for data recovery, but the code rate selection is constrained and storage space usage is not optimized
Solution Approach 1:
The patent segments the codeword allocation from the physical page structure. Instead of requiring each page to contain an integer number of codewords, the system divides codewords into groups that can be non-integer in count per page, while maintaining integer groups for parity generation. This segmentation allows flexible code rate selection without compromising data recovery capability.
Solution Approach 2:
The patent introduces a new dimension of organization by configuring codewords into groups that span across multiple pages. Rather than being constrained by the two-dimensional page structure, codewords are organized in groups that can include fractional pages, enabling non-integer codeword allocation per page while maintaining integer groups for parity calculation.
2Ease of manufacture
If an integer number of codewords is allocated to each page, then parity generation is simplified, but storage space usage is inefficient
Solution Approach 1:
The patent segments the codeword allocation from the physical page structure. Instead of requiring each page to contain an integer number of codewords, the system divides codewords into groups that can be non-integer in count per page, while maintaining integer groups for parity generation. This segmentation allows flexible code rate selection without compromising data recovery capability.
Solution Approach 2:
The patent changes the parameter of codeword count per page from being constrained to integers to allowing non-integer values. By configuring codewords into groups that can span fractional pages, the system optimizes storage space utilization while maintaining the ability to generate parity for data recovery.
3Duration of action of stationary object
If variable rate error-correcting codes are used to optimize SSD lifespan, then performance is improved, but the integer codeword constraint per page limits code rate selection
Solution Approach 1:
The patent segments the codeword allocation from the physical page structure. Instead of requiring each page to contain an integer number of codewords, the system divides codewords into groups that can be non-integer in count per page, while maintaining integer groups for parity generation. This segmentation allows flexible code rate selection without compromising data recovery capability.
Solution Approach 2:
The patent introduces dynamic code rate selection by allowing the number of codewords per page to vary non-integrally. This dynamic allocation enables the system to adjust code rates optimally for different operational conditions, maximizing SSD lifespan and performance while maintaining data recovery capability through integer-based group configurations.
Data Source
AI summary
A method is performed by a solid state device (SSD) controller to generate a parity. The method includes receiving input data to be stored to pages of a storage device, wherein each page is capable of being allocated with multiple codewords; configuring codewords of the pages into multiple groups, wherein each group has an integer number of codewords, at least one of the pages is allocated with a non-integer number of codewords, and wherein the integer number is larger than the non-integer number; obtaining parities for the multiple groups, and storing the parities to reserved spaces of the storage device. With the calculation of a parity decoupled from physical pages, the selection of a rate of code used is unconstrained by an integer number of codewords per page.


