Spanning Tree Cache Coherency Routing in Multi-Processor Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In point-to-point interconnected multi-processor systems with partial connectivity, existing cache coherency methods face challenges in efficiently routing snoop messages without causing conflicts in input snoop ports, particularly due to the need for dynamic configuration changes during reconfiguration events.
Innovation Solution
The implementation of routing software that generates and assigns spanning trees to each processing node, allowing for conflict-free and efficient transmission of snoop messages by determining the optimal routing paths and configuring snoop ports as either forwarding or terminating based on the spanning tree structure, and selectively reusing existing tree paths to avoid configuration conflicts.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If snoop messages are sent directly to all processors in a fully-connected point-to-point interconnection network, then cache coherency is ensured, but hardware cost increases substantially
Solution Approach 1:
The patent segments the fully-connected network into multiple spanning trees, each covering a subset of processors. Instead of establishing direct links between all processor pairs, the network is divided into hierarchical routing domains where snoop messages are routed through intermediate processors along tree paths, reducing the number of required direct connections while maintaining coherency coverage.
Solution Approach 2:
The patent introduces intermediate processors that act as mediators in the spanning tree structure. When a processor needs to send a snoop message to another processor not directly connected, the message is routed through intermediate processors along the tree path. These intermediaries forward messages without requiring direct point-to-point links between all pairs, reducing hardware complexity while preserving coherency functionality.
2Productivity
If spanning trees are generated for each processing node to optimize routing paths, then message transmission efficiency is improved, but configuration complexity increases due to reconfiguration events
Solution Approach 1:
The patent pre-generates spanning trees for each processing node before actual message transmission occurs. During system initialization or reconfiguration events, the routing software computes optimal tree structures in advance and configures the snoop ports accordingly. This preliminary configuration eliminates the need for dynamic path computation during message transmission, improving efficiency while containing configuration complexity to periodic reconfiguration events.
Solution Approach 2:
The patent implements dynamic spanning tree generation that adapts to reconfiguration events. When the system topology changes or reconfiguration events occur, the routing software dynamically regenerates appropriate spanning trees and updates port configurations. This dynamic adaptation allows the system to maintain optimal routing efficiency while responding to changing conditions, balancing performance with configuration flexibility.
3Adaptability or versatility
If snoop ports are dynamically reconfigured during message transmission, then routing flexibility is improved, but transmission conflicts occur due to configuration changes
Solution Approach 1:
The patent configures snoop ports in advance according to the predetermined spanning tree structure before message transmission begins. Each snoop port is assigned a specific role (forwarding or terminating) based on the tree configuration, and this configuration remains stable during message transmission. This preliminary setup eliminates configuration changes during active transmission, preventing conflicts and ensuring reliable message delivery while maintaining routing flexibility through the tree structure design.
Data Source
AI summary
A spanning tree is assigned to a processing node for each processing node in a point-to-point network that connects a plurality of processing nodes. The spanning tree uses the processing nodes as vertices and links of the network as edges. Each processing node includes input snoop ports that can be configured as either terminating or forwarding. According to the assigned spanning trees and the configuration of the input snoop ports, the network routes snoop messages efficiently and without conflicts.


