Storage Device Multi-Stream Data Sorting Mirroring Striping
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current storage devices face challenges in providing differentiated I/O performance and data recovery based on data attributes, as they lack efficient methods to classify and store data according to stream IDs, leading to suboptimal storage and retrieval of system and user data.
Innovation Solution
The storage device employs a multi-stream function by grouping nonvolatile memories into arrays and using mirroring and striping schemes, where system data is mirrored in one array for high stability and user data is striped across another for efficient storage, with stream IDs determining the storage scheme for each type of data.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If data is stored using a single storage scheme in all memory arrays, then device complexity is reduced, but I/O performance and data recovery performance cannot be differentiated based on data attributes
Solution Approach 1:
The memory device is divided into multiple memory arrays (first memory array and second memory array), each configured to store data using different storage schemes. The controller segments incoming data based on stream IDs and directs different types of data to appropriate memory arrays, enabling differentiated performance without requiring a completely complex unified system.
Solution Approach 2:
Different storage schemes are applied to different local regions (memory arrays) based on the specific requirements of the data being stored. System data requiring high stability is stored in the first memory array with a first storage scheme, while user data requiring efficient storage is stored in the second memory array with a second storage scheme, optimizing performance locally for each data type.
2Reliability
If system data is stored using mirroring scheme, then data stability and recovery performance are improved, but storage space efficiency decreases
Solution Approach 1:
The storage system segments different types of data into different memory arrays. The mirroring scheme is applied only to system data in the first memory array where high reliability is critical, while the second memory array uses a different storage scheme for user data, thus applying redundancy only where necessary rather than uniformly across all data.
3Productivity
If user data is stored using striping scheme, then storage space efficiency and I/O performance are improved, but data recovery performance compared to mirroring is reduced
Solution Approach 1:
The striping storage scheme is applied locally to user data in the second memory array where storage efficiency and I/O performance are prioritized. Meanwhile, system data in the first memory array uses a different scheme prioritizing reliability. This local optimization allows each data type to be stored with the most appropriate scheme for its specific requirements.
4Adaptability or versatility
If all data is stored in a single memory array, then device complexity is reduced, but differentiated performance based on data attributes cannot be provided
Solution Approach 1:
The storage device is segmented into multiple memory arrays that can be independently configured with different storage schemes. The controller segments data based on stream IDs and directs appropriate data to appropriate memory arrays, enabling performance differentiation while managing complexity through systematic segmentation rather than a monolithic design.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A storage device (200) includes a memory device (220) including a plurality of first nonvolatile memories (NVM1) and a plurality of second nonvolatile memories (NVM2); and a controller (210) configured to sort pieces of data having different attributes and store the pieces of data that were sorted in different first or second memory arrays of the memory device (220). The controller (210) is configured to store data in the first memory array by a mirroring scheme using the plurality of first nonvolatile memories (NVM1), and configured to store data in the second memory array by a striping scheme using the plurality of second nonvolatile memories (NVM2).