Dynamic Secondary Backup Block Allocation in Storage Controllers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing storage systems incur inefficiencies and increased costs due to the unnecessary allocation of secondary backup blocks for every write operation, even when primary blocks are not vulnerable to failure, leading to reduced write performance, capacity, and endurance.
Innovation Solution
The controller dynamically allocates secondary backup blocks based on the health and failure probability of primary blocks, using probability estimations to determine when additional backup is necessary, thereby optimizing the use of secondary blocks only for vulnerable memory areas.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If dual-write programming operation is always performed to store data in primary and secondary blocks, then data reliability is improved, but write performance and storage capacity deteriorate
Solution Approach 1:
The patent implements dynamic allocation of secondary backup blocks where the controller determines whether to allocate a secondary block based on real-time assessment of primary block health indicators. This dynamic approach allows the system to switch between single-write and dual-write modes, optimizing write performance when primary blocks are healthy while ensuring data reliability when vulnerability is detected.
Solution Approach 2:
The system monitors parameters such as program-erase cycle counts, read disturbance levels, and error correction code failure rates to assess primary block health. Based on these parameter changes, the controller dynamically adjusts the allocation of secondary backup blocks, changing the operational mode from always-dual-write to condition-based dual-write, thereby resolving the contradiction between reliability and performance.
2Reliability
If secondary backup blocks are allocated for every write operation, then data protection is improved, but storage capacity and endurance deteriorate
Solution Approach 1:
The patent applies local quality by assessing the health status of specific primary blocks and allocating secondary backup blocks only to those showing signs of vulnerability. Instead of uniformly allocating backup blocks across all storage locations, the system selectively applies data protection measures to specific areas where needed, preserving overall storage capacity while maintaining data protection where necessary.
Solution Approach 2:
The system performs partial dual-write operations by allocating secondary backup blocks only for a portion of write operations where primary block vulnerability is detected, rather than for all write operations. This partial action approach reduces the consumption of storage capacity dedicated to backup blocks while maintaining adequate data protection for vulnerable data.
3Reliability
If dual-write programming is performed for all data, then data integrity is improved, but computational overhead and cost increase
Solution Approach 1:
The controller performs self-service by continuously monitoring primary block health indicators and autonomously determining when secondary backup block allocation is necessary. This self-assessment mechanism eliminates the need for external intervention or complex computational algorithms, reducing computational overhead while maintaining data integrity through intelligent, condition-based dual-write operations.
Solution Approach 2:
The system implements feedback loops where the controller monitors health indicators from primary blocks and uses this feedback to dynamically adjust secondary backup block allocation. This feedback mechanism enables the system to respond to actual block conditions rather than using fixed rules, reducing unnecessary computational overhead associated with always-performing dual-write operations while maintaining data integrity when needed.
Data Source
AI summary
A storage system receives data to be stored in its memory. A controller in the storage system allocates a primary block of the memory to store the data and determines the health of the allocated block. If the controller determines that the allocated block is not healthy enough to reliably store the data, the controller allocates a secondary block to redundantly store the data.


