Virtual Switch for Flexible I/O Fabric Path Control
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The flexibility of I/O fabrics in connecting computer resources is constrained due to the need for Non-Transparent Bridges (NTBs) when connecting root complexes, limiting the path control and resource allocation in datacenter environments.
Innovation Solution
A switching apparatus within a fabric that extracts packet headers, determines operations based on request type, source, and destination, and executes responses, rewrites, or forwards packets, allowing flexible connection of resources without the need for NTBs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If Non-Transparent Bridges (NTBs) are used to connect root complexes in PCI-Express fabric, then data transmission between CPUs is enabled, but the flexibility of I/O fabric path control and resource allocation is constrained
Solution Approach 1:
The patent extracts the NTB functionality from the I/O fabric path and implements it as a separate virtual switch in the data plane. This allows the I/O fabric to maintain full flexibility for path control while the virtual switch handles CPU-to-CPU data transmission independently, resolving the contradiction between reliable data transmission and fabric flexibility.
Solution Approach 2:
The patent introduces a virtual switch as an intermediary component that mediates between the I/O fabric and CPU-to-CPU communication requirements. The virtual switch receives data from the I/O fabric, performs NTB-like translation and forwarding between virtual functions, and returns data to the fabric, thereby enabling reliable CPU communication without constraining the fabric's path control flexibility.
2Reliability
If NTBs are deployed for every CPU pair connection, then inter-CPU communication is achieved, but device complexity and resource overhead increase
Solution Approach 1:
The patent merges multiple NTB functionalities into a single virtual switch that handles all inter-CPU communication for multiple CPU pairs. Instead of deploying separate NTBs for each CPU connection pair, the virtual switch consolidates these functions, reducing device complexity and resource overhead while maintaining reliable inter-CPU communication through its virtual function forwarding capability.
Solution Approach 2:
The virtual switch is designed as a universal component that can handle communication between any pair of CPUs by creating virtual functions dynamically. This multi-functional approach replaces the need for dedicated NTBs for specific CPU pairs, reducing overall device complexity while maintaining the ability to establish reliable communication paths on demand.
3Adaptability or versatility
If resource separation is implemented in datacenters, then flexible resource allocation is achieved, but the need for NTBs increases path control complexity
Solution Approach 1:
The patent extracts path control functionality from complex NTB configurations and implements it in the data plane through a virtual switch. This separation allows resource allocation flexibility to be maintained in the control plane while path control is simplified in the data plane, reducing overall system complexity while supporting resource-separated datacenter architectures.
Solution Approach 2:
The virtual switch implements self-service path control by automatically creating and managing virtual functions based on data transmission requirements. Instead of requiring complex external path control mechanisms for each resource allocation scenario, the system autonomously establishes appropriate communication paths, reducing control complexity while maintaining resource allocation flexibility.
Data Source
AI summary
Provided is a switching apparatus including a processor that allows the switching apparatus to function as: an analysis unit that is configured to extract a header of a received packet and to acquire information of the header; a determination unit that is configured to determine an operation for the packet according to information of a type, request source, and destination of a request included in the header; and an execution unit including a means that is configured to execute, in accordance with the determined operation, at least one of processing for responding to the request included in the packet, processing for rewriting the packet, and processing for transmitting the packet.


