Arbitrated Shared RAID Buffer Management for SSD Deterministic Performance
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In multi-user storage environments, such as solid state drives (SSDs), existing technologies face challenges in efficiently managing shared resources like RAID buffers to maintain deterministic performance during hot and background data transfers, particularly in allocating resources among concurrent users to ensure adequate storage space and map integrity.
Innovation Solution
A controller circuit divides semiconductor memory dies into die sets, each assigned to a different user, with a shared resource like a RAID buffer managed through time-slice, round-robin, or priority-based approaches to arbitrate the use among die sets, ensuring predictable performance and efficient resource allocation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a shared RAID buffer is used by multiple die sets for background data transfers, then resource utilization is improved, but deterministic performance of hot data transfers deteriorates due to resource contention
Solution Approach 1:
The shared RAID buffer is segmented into multiple dedicated buffers, with each buffer assigned to a specific die set. This segmentation eliminates resource contention between die sets while maintaining high resource utilization, as each die set has guaranteed access to its dedicated buffer portion during hot data transfers.
Solution Approach 2:
The buffer allocation mechanism dynamically adjusts buffer assignment based on operational mode. During hot data transfers, buffers are dynamically allocated to ensure deterministic performance. During background transfers, buffers are reassigned to maximize resource utilization. This dynamic reconfiguration resolves the contradiction between consistent performance and efficient resource use.
2Productivity
If multiple users concurrently access the same memory resource, then system throughput is improved, but resource allocation complexity increases
Solution Approach 1:
The memory resource is segmented into user-specific partitions, with each user assigned dedicated buffer portions. This segmentation simplifies allocation complexity by eliminating the need for dynamic arbitration, while maintaining high throughput through parallel access to segmented resources.
Solution Approach 2:
The system employs periodic time-sliced allocation where buffer access rights are periodically assigned to different users in a predetermined sequence. This periodic action maintains simple allocation logic while achieving high system throughput through coordinated concurrent access patterns.
3Productivity
If background data transfers are performed using shared resources, then resource efficiency is improved, but performance predictability deteriorates
Solution Approach 1:
The buffer allocation system dynamically switches between two operational states: a hot data transfer state with guaranteed deterministic buffer access, and a background transfer state with flexible resource sharing. This dynamic state management maintains performance predictability during critical operations while achieving high resource efficiency during background operations.
Solution Approach 2:
The system periodically alternates between servicing hot data transfers with dedicated buffers and performing background transfers with shared buffers. This periodic alternation ensures that performance-critical operations maintain predictability while resource efficiency is maximized during less critical background operations.
Data Source
AI summary
Apparatus and method for managing shared resources in a data storage device such as a solid-state drive (SSD). In some embodiments, a non-volatile memory (NVM) has a population of semiconductor memory dies to which are connected a number of parallel channel. A controller circuit apportions the semiconductor memory dies into a plurality of die sets each configured to store user data blocks associated with a different user during hot data transfers responsive to a sequence of host access commands. A shared resource is available for use by each of the die sets to support background data transfers not associated with the host access commands, such as a RAID buffer. The controller circuit arbitrates the use of the shared resource by each of the die sets in turn to sequentially perform the background data transfers to maintain a selected level of deterministic performance of the hot data transfers.


