Non-blocking Fabric SSD Architecture for High Throughput
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional Solid State Drives (SSDs) face challenges in achieving high throughput, scalability, and reliability due to serial data processing and limited latency management, which hinder their performance and endurance.
Innovation Solution
The implementation of a non-blocking fabric and flash scheduler within the SSD controller architecture, allowing concurrent data movement and priority-based scheduling, along with features like data compression and error correction, enhances data handling and storage efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional serial data processing architecture is used in SSD, then device complexity is reduced, but throughput and performance are limited
Solution Approach 1:
The patent segments the SSD controller architecture into multiple independent processing channels, each capable of handling data operations concurrently. The non-blocking fabric is divided into multiple pathways that can process different data streams simultaneously, transforming the single-threaded serial processing into parallel processing without requiring a complete architectural overhaul.
Solution Approach 2:
The patent introduces a non-blocking fabric as an intermediary layer between the host interface and the flash memory array. This fabric acts as a mediator that enables concurrent data movement between multiple components without creating bottlenecks, allowing multiple operations to proceed simultaneously while maintaining manageable complexity through standardized interface protocols.
2Productivity
If non-blocking fabric with concurrent data movement is implemented, then throughput is improved, but device complexity increases
Solution Approach 1:
The non-blocking fabric employs dynamic routing capabilities that adaptively direct data flow based on current operational conditions. The fabric can dynamically allocate bandwidth and reroute data paths in real-time to optimize throughput, while the flash scheduler dynamically adjusts scheduling priorities based on workload characteristics, achieving high performance without requiring static complex interconnections.
Solution Approach 2:
The non-blocking fabric is designed as a universal interconnect that can handle multiple types of operations (reads, writes, garbage collection, wear leveling) through the same infrastructure. This multi-functional design reduces the need for separate dedicated pathways for each operation type, thereby limiting the increase in device complexity while still enabling concurrent data movement for various functions.
3Loss of time
If flash scheduler with priority-based scheduling is implemented, then latency management is improved, but device complexity increases
Solution Approach 1:
The flash scheduler implements feedback mechanisms that monitor queue depths, operation priorities, and completion statuses to dynamically adjust scheduling decisions. This feedback-driven approach enables the scheduler to optimize latency by prioritizing time-sensitive operations while maintaining simplicity through rule-based decision logic rather than complex algorithms, adapting to changing conditions based on real-time system state information.
4Reliability
If data compression and error correction features are added, then reliability is improved, but device complexity increases
Solution Approach 1:
The controller implements preliminary error correction coding during the data write operation, encoding redundancy information before data is stored in the flash memory. Data compression is also performed preliminarily before writing, reducing the amount of data that needs to be stored and transmitted. These preliminary actions improve reliability and efficiency without requiring complex real-time processing during read operations, as the error correction and compression are already in place.
Data Source
AI summary
Embodiments of apparatus, methods and systems of solid state drive are disclosed. One embodiment of a solid state drive includes a non-blocking fabric, wherein the non-blocking fabric comprises a plurality of ports, wherein a subset of the plurality of ports are each connected to a flash controller that is connected to at least one array of flash memory. Further, this embodiment includes a flash scheduler for scheduling data traffic through the non-blocking fabric, wherein the data traffic comprises a plurality of data packets, wherein the flash scheduler extracts flash fabric header information from each of the data packets and schedules the data traffic through the non-blocking fabric based on the extracted flash fabric header information. The scheduled data traffic provides transfer of data packets through the non-blocking fabric from at least one array of flash memory to at least one other array of flash memory.


