Scheduler Circuitry for Multi-Cluster Execution Unit Dependency Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Data processing circuitry faces challenges in managing dependency between execution units, leading to increased latency due to the need for operand availability checks across clusters, which complicates physical timing and performance as the number of execution units grows.
Innovation Solution
Implementing scheduler circuitry with dependency data management and picker circuitry to select queued processing instructions for execution, ensuring all required source operands are available before execution and inhibiting issue to execution units outside the cluster generating the last awaited operands until a predetermined latency has passed.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If scheduler circuitry checks operand availability across all clusters for every queued processing instruction, then dependency management accuracy is improved, but latency increases and device complexity worsens
Solution Approach 1:
The system segments the dependency checking process by maintaining separate dependency data structures for each cluster. The scheduler circuitry checks operand availability within the local cluster first, and only checks other clusters if the operand is not found locally. This segmentation reduces the average checking scope and latency while maintaining accurate dependency management.
Solution Approach 2:
The system performs preliminary action by pre-maintaining dependency data associated with each queued processing instruction, including information about which cluster generated the last awaited source operand. This preliminary organization allows the scheduler to quickly determine the appropriate cluster to check without performing a full system-wide search, reducing latency while ensuring accurate dependency tracking.
2Productivity
If the number of execution units is increased to improve processing capacity, then productivity is improved, but device complexity and network complexity worsen
Solution Approach 1:
The system segments execution units into multiple clusters, with each cluster maintaining its own dependency data structures. This segmentation allows the system to scale the number of execution units across clusters while keeping the complexity within each cluster manageable. The scheduler circuitry handles inter-cluster coordination, distributing the complexity management burden.
Solution Approach 2:
The scheduler circuitry acts as an intermediary that manages dependency information between clusters. Rather than requiring direct complex interactions between all execution units across all clusters, the scheduler mediates by maintaining and checking dependency data, simplifying the network complexity while enabling high processing capacity through multiple clusters.
3Reliability
If operand availability is checked across all clusters before execution, then dependency accuracy is improved, but device complexity worsens
Solution Approach 1:
The dependency data structure is segmented into cluster-specific portions. Each cluster maintains information about operands it produces, and the scheduler checks the local cluster's dependency data first. This segmentation reduces the complexity of the checking process while maintaining accurate dependency tracking across the entire system.
Solution Approach 2:
The system performs preliminary organization of dependency data by cluster, storing information about which cluster generated each source operand. This preliminary organization allows the scheduler to efficiently check dependency availability without implementing complex global tracking mechanisms, reducing scheduler circuitry complexity while maintaining dependency accuracy.
Data Source
AI summary
Circuitry comprises two or more clusters of execution units, each cluster comprising one or more execution units to execute processing instructions; and scheduler circuitry to maintain one or more queues of processing instructions, the scheduler circuitry comprising picker circuitry to select a queued processing instruction for issue to an execution unit of one of the clusters of execution units for execution; in which: the scheduler circuitry is configured to maintain dependency data associated with each queued processing instruction, the dependency data for a queued processing instruction indicating any source operands which are required to be available for use in execution of that queued processing instruction and to inhibit issue of that queued processing instruction until all of the required source operands for that queued processing instruction are available and is configured to be responsive to an indication to the scheduler circuitry of the availability of the given operand as a source operand for use in execution of queued processing instructions; and the scheduler circuitry is responsive to an indication of availability of one or more last awaited source operands for a given queued processing instruction, to inhibit issue by the scheduler circuitry of the given queued processing instruction to an execution unit in a cluster of execution units other than a cluster of execution units containing an execution unit which generated at least one of those last awaited source operands.


