Storage Controller Stream State Management for Memory Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Storage devices, such as SSDs, face challenges with limited volatile memory capacity and write delays due to the need for generating and storing parity data, which consumes valuable memory space and time for data transfer.
Innovation Solution
Implementing a controller that restricts the number of open and active streams, switches streams between active and closed states based on time, and optimizes parity data generation and transfer between RAM1 and RAM2 to manage memory usage efficiently.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple streams are kept open simultaneously to handle multiple write operations, then the storage device can service multiple streams in parallel, but the volatile memory space is consumed excessively and write delays increase
Solution Approach 1:
The patent implements dynamic stream state management where streams can transition between open and closed states based on activity. The controller monitors stream usage and automatically closes inactive streams to free volatile memory resources while keeping active streams open for continued operations, optimizing the balance between parallel processing capability and memory consumption.
Solution Approach 2:
The system changes the operational parameters of streams by introducing time-based thresholds and state transitions. Streams are monitored for inactivity periods, and when exceeding predetermined thresholds, their state changes from open to closed, altering memory allocation parameters and freeing volatile memory for other uses while maintaining serviceability of active streams.
2Reliability
If more volatile memory is allocated to store parity data for multiple open streams, then data protection capability is improved, but the device cost increases and memory availability for other data decreases
Solution Approach 1:
The patent implements dynamic allocation of volatile memory for parity data based on the number of currently open streams. When streams are closed due to inactivity, the parity memory associated with those streams is freed and reallocated to active streams, maintaining adequate data protection for all open streams without requiring excessive total memory capacity.
Solution Approach 2:
The system discards parity data storage for closed streams and recovers that volatile memory space for use by active streams. When a stream transitions from open to closed state, its parity data is no longer maintained in volatile memory, freeing resources that are immediately available for protecting data from currently active streams.
3Productivity
If the number of open streams is increased to improve data throughput, then write capacity is improved, but transfer time between volatile memories increases causing write delays
Solution Approach 1:
The patent implements dynamic stream lifecycle management with automatic activation and deactivation based on usage patterns. By closing inactive streams and activating new ones only when needed, the system maintains an optimal number of concurrent streams that maximizes throughput while keeping data transfer operations within acceptable time limits, preventing write delays.
Data Source
AI summary
The present disclosure generally relates to methods of operating storage devices. The storage device comprises a controller comprising first random access memory (RAM1), second random access memory (RAM2), and a storage unit divided into a plurality of streams. The controller restricts the host to a maximum number of streams that can be in the open and active state at a time. Open streams can be switched to the closed state, and vice versa, upon a predetermined amount of time expiring. The maximum number of open streams is based on one or more amounts of time to: generate parity data, copy the parity data from the RAM2 to the RAM1, update the parity data, switch a stream from the open and active state to the closed state, and the amount of space in a temporary RAM1 buffer.


