Virtual Channel Segmentation for Interconnect Gridlock Isolation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In high-performance computer systems with multiple internal communication paths, failures in endnodes or switches can cause blockages that affect multiple communication paths, leading to gridlock and system shutdown, as the existing interconnection fabric lacks effective mechanisms to identify and isolate the failing node without impacting other parts of the system.
Innovation Solution
A method is implemented where nodes exchange information about data storage availability, including specific credit information, to determine if data should be transferred, allowing for the identification and isolation of failing nodes, thereby alleviating blockages by disposing of destined transactions and disabling affected communication links.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If multiple internal communication paths are provided for redundancy, then system reliability is improved, but the system becomes vulnerable to gridlock when a failure occurs because the failure blocks multiple paths simultaneously
Solution Approach 1:
The patent segments the communication fabric into virtual channels (VC0, VC1, VC2, VC3) that can be independently controlled. When a failure is detected in a particular endnode, the system can selectively block only the virtual channels affected by that failure while keeping other virtual channels operational. This segmentation allows the system to maintain partial throughput even when some paths are blocked, resolving the contradiction between reliability and productivity.
2Productivity
If a failing endnode is isolated to prevent gridlock, then system productivity is improved, but the complexity of detecting and isolating the failure increases
Solution Approach 1:
The patent implements a feedback mechanism where endnodes monitor the status of their communication partners and report failures to the system. When an endnode detects that another endnode is not responding or has failed, it sends a feedback signal to block the affected virtual channels. This automated feedback system reduces the complexity of failure detection by distributing the monitoring task across all endnodes rather than requiring centralized control.
Solution Approach 2:
The system takes preliminary anti-action by pre-configuring virtual channels and their associated blocking mechanisms. When a failure is detected, the system can immediately block the affected channels without needing to analyze the failure in real-time. The virtual channel architecture is designed in advance to allow rapid isolation of failures, reducing the complexity of the response process.
3Productivity
If all communication paths are kept available for maximum throughput, then system productivity is improved, but the system becomes vulnerable to widespread shutdown when a failure occurs
Solution Approach 1:
The patent implements dynamic control of communication paths through virtual channels. The system can dynamically adjust which virtual channels are active based on the operational status of endnodes. When all endnodes are healthy, all virtual channels operate at full capacity for maximum throughput. When a failure is detected, the system dynamically blocks only the affected channels while maintaining others, thus adapting to changing conditions to balance productivity and reliability.
Data Source
AI summary
A method for controlling data transfers through a computer system is provided. First information is transferred to a first node of the computer system regarding availability of a first data storage area within a second node of the computer system for data to be transferred through the second node. Also transferred to the first node is second information regarding availability of a second data storage area within the second node for data to be consumed within the second node. The first information and the second information are then processed to determine if data within the first node destined for the second node is to be transferred to the second node.


