Scheduler Circuitry for Multi-Cluster Execution Unit Dependency Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvedependency management accuracyVSAvoiddependent execution latency
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If the number of execution units is increased to improve processing capacity, then productivity is improved, but device complexity and network complexity worsen

Engineering Contradiction:
Improveprocessing capacityVSAvoidnetwork complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If operand availability is checked across all clusters before execution, then dependency accuracy is improved, but device complexity worsens

Engineering Contradiction:
Improvedependency accuracyVSAvoidscheduler circuitry complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11989583B2Circuitry and method
Publication Date: 2024.05.21 ARM LTD
  • US11989583B2 patent drawing
  • US11989583B2 patent drawing
  • US11989583B2 patent drawing

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.