Dynamic Execution Unit Assignment for Processor Parallelism

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In instruction pipelining, the inefficiency arises from grouping multicycle instructions together and assigning them to the same execution unit, which fails to utilize available parallelism due to data dependencies, requiring significant additional logic to change unit assignments.

Innovation Solution

A local scheduler in the execution engine dynamically assigns execution resources to operations, ensuring parallelism and addressing data dependencies by allowing operations to be executed by different units once dependent data is available, using multiplexers to provide necessary operands.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If instructions are grouped and assigned to the same execution unit early in the pipeline, then device complexity is reduced, but parallelism utilization deteriorates due to data dependencies

Engineering Contradiction:
Improveexecution unit assignment logicVSAvoidparallelism utilization
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent implements dynamic execution unit assignment by introducing a scheduler that can reassign operations to different execution units based on real-time resource availability and data dependency status. The system transitions from static early-pipeline grouping to dynamic late-pipeline assignment, allowing execution units to be reassigned without significant additional logic while maximizing parallelism utilization.

Inventive Principle:
Principle #15Dynamics

2Ease of operation

If multicycle instructions are grouped together in the same execution unit, then ease of operation is improved, but loss of time increases due to failed parallelism utilization

Engineering Contradiction:
Improveinstruction grouping managementVSAvoidexecution delay
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent segments multicycle instructions into multiple independent operations that can be scheduled and executed separately by different execution units. By breaking down complex multicycle instructions into finer-grained operations, the system can identify data dependencies more precisely and allow independent operations to execute in parallel, reducing overall execution time while maintaining ease of operation through automated scheduler management.

Inventive Principle:
Principle #1Segmentation

3Productivity

If execution unit assignment is changed to maximize parallelism, then productivity is improved, but device complexity increases due to additional logic requirements

Engineering Contradiction:
Improveparallelism utilizationVSAvoidassignment change logic
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements a self-service scheduling mechanism where the scheduler automatically monitors execution unit availability and data dependency status, then autonomously reassigns operations to optimal execution units without requiring complex external control logic. The system uses simple availability flags and dependency tracking that allow dynamic reassignment with minimal additional logic, enabling high parallelism utilization while keeping device complexity manageable.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11256511B2Instruction scheduling during execution in a processor
Publication Date: 2022.02.22 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11256511B2 patent drawing
  • US11256511B2 patent drawing
  • US11256511B2 patent drawing

AI summary

A method of performing instruction scheduling during execution in a processor includes receiving, at an execution unit of the processor, an initial assignment of an assigned execution resource among two or more execution resources to execute an operation. An instruction includes two or more operations. Based on determining that the assigned execution resource is not available, the method also includes determining, at the execution unit, whether another execution resource among the two or more execution resources is available to execute the operation. Based on determining that the other execution resource is available, the method further includes executing the operation with the other execution resource.