Storage Controller Link Prioritization via PCIe Switch Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In storage systems with commodity processors having only one virtual channel, the transfer performance of control data deteriorates due to congestion with user data, leading to increased data transfer times and decreased system response performance.
Innovation Solution
The storage system configures separate data transfer paths for user and control data using multiple virtual channels and traffic classes, prioritizing control data transfer over user data on the inter-controller link, ensuring efficient data transfer even during congestion.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If user data and control data are transferred in a congested manner on the same inter-controller link, then the throughput of control data decreases and data transfer time increases, but using separate physical paths would double the amount of wiring and increase cost
Solution Approach 1:
The patent segments the data transfer paths by introducing a PCIe switch that separates user data transfer and control data transfer into different paths. The PCIe switch has first and second ports connected to storage controllers, with a first link for user data and a second link for control data, eliminating congestion while avoiding the need for completely separate physical wiring paths.
Solution Approach 2:
The patent uses a PCIe switch as an intermediary device between storage controllers to manage data transfer. The PCIe switch mediates both user data and control data transfers, directing them through appropriate links while maintaining priority for control data, thus resolving the contradiction between performance and complexity.
2Reliability
If multiple virtual channels are used to prioritize control data transfer, then control data transfer performance is maintained during congestion, but commodity processors with only one virtual channel cannot utilize this mechanism
Solution Approach 1:
The patent employs non-transparent bridges (NTBs) as intermediary devices that replicate and extend the virtual channel functionality. The NTBs receive control data from the processor and prioritize them through their own virtual channel mechanisms, effectively copying the QoS functionality needed for control data priority without requiring the processor itself to support multiple virtual channels.
Solution Approach 2:
The patent introduces non-transparent bridges as intermediaries between the processor and storage controllers. These bridges handle the virtual channel prioritization for control data, allowing commodity processors with single virtual channel to still benefit from prioritized control data transfer by shifting the complexity to the intermediary devices.
3Loss of time
If control data is transferred with high priority on a shared link, then control data transfer time is reduced, but user data transfer is affected during congestion
Solution Approach 1:
The patent segments the data transfer paths by introducing a PCIe switch that separates user data transfer and control data transfer into different links. The first link handles user data while the second link handles control data with priority, preventing interference between the two types of data transfers and maintaining both user data throughput and control data priority.
Data Source
AI summary
A first storage controller includes a first processor, a first memory, and a first switch having a first port. A second storage controller includes a second processor, a second memory, and a second switch having a second port. A storage system connects the first port and the second port by a first link. The first processor and the first switch are connected by a second link configured to transfer user data and a third link configured to transfer control data. The second processor and the second switch are connected by a fourth link configured to transfer user data and a fifth link configured to transfer control data. The first port and the second port transfer the control data in preference to the user data on the first link.


