Dynamic ECC Adjustment in Solid-State Storage Subsystems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Solid-state storage subsystems face a challenge in balancing the need for increased error correction codes (ECC) with performance demands, as higher ECC levels decrease performance and require additional storage space.
Innovation Solution
A solid-state storage subsystem that automatically adjusts the ECC level based on monitored conditions such as temperature, power signal stability, ECC error rate, wear level, vibration, and voltage, allowing for dynamic selection of ECC levels to enhance data protection when errors are likely, and storing ECC metadata for later use.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the quantity of ECC bits stored per unit of data is increased, then the ability to detect and correct errors is improved, but the performance of the storage subsystem decreases
Solution Approach 1:
The patent implements dynamic adjustment of ECC levels based on monitored operating conditions. The system transitions from static ECC configuration to dynamic adaptation, selecting different ECC levels (e.g., Level 1 with 4 ECC bytes vs. Level 2 with 8 ECC bytes) based on real-time conditions such as temperature, power stability, and error rates, thereby optimizing the balance between reliability and performance
Solution Approach 2:
The system changes the parameter of ECC bit quantity based on operating conditions. By monitoring parameters like temperature, power stability, and error rates, the system adjusts the ECC level parameter dynamically, using higher ECC levels when conditions indicate increased error risk and lower ECC levels when conditions are favorable, thus resolving the contradiction between error correction capability and performance
2Reliability
If the quantity of ECC data is increased, then the error correction capability is improved, but additional off-sector storage space is required
Solution Approach 1:
The patent applies dynamic adjustment of ECC data quantity based on monitored conditions. Instead of allocating fixed off-sector storage space for maximum ECC capability, the system dynamically determines the appropriate ECC level and allocates storage space accordingly, using more ECC space only when conditions warrant increased protection
Solution Approach 2:
The system changes the parameter of ECC data quantity and storage space allocation based on operating conditions. By adjusting the ECC level parameter dynamically, the system optimizes the ratio of ECC data to user data, ensuring adequate error protection while minimizing the overhead storage requirement
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A storage subsystem (1 12) monitors one or more conditions related to the probability of a data error occurring. Based on the monitored condition or conditions, the storage subsystem adjusts an error correction setting, and thus the quantity of ECC data (121) used to protect data received from a host system. To enable blocks of data to be properly checked when read from memory, the storage subsystem stores ECC metadata indicating the particular error correction setting used to store particular blocks of data. The storage subsystem may be in the form of a solid-state non- volatile memory card or drive that attaches to the host system.