Asynchronous Execution Units in Synchronous Processors

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional synchronous CPU architectures are limited by clock frequency, which restricts the execution speed of pipeline stages, leading to reduced CPU utilization and inability to perform computationally-intensive operations efficiently.

Innovation Solution

Incorporating asynchronous execution units that operate independently of a clock, allowing for the performance of asynchronous operations such as matrix multiplication, which can be initiated and completed without synchronizing with the synchronous processor's clock frequency, enabling parallel execution with synchronous operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If synchronous CPU architecture is used with clock frequency limitation, then the processor can maintain stable operation, but the execution speed of pipeline stages is restricted and CPU utilization is reduced

Engineering Contradiction:
Improveexecution speed of pipeline stagesVSAvoidCPU utilization
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The processor is segmented into two distinct execution paths: synchronous pipeline stages for standard instructions and asynchronous execution units for computationally-intensive operations. This segmentation allows each path to operate optimally without being constrained by the other, resolving the contradiction between stable synchronous operation and high-speed computation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically routes instructions to appropriate execution paths based on operation type. Synchronous instructions follow the traditional clocked pipeline, while computationally-intensive operations are dispatched to asynchronous units that operate independently of the clock, enabling adaptive performance optimization.

Inventive Principle:
Principle #15Dynamics

2Productivity

If synchronous processing is used, then operations are performed in a coordinated manner, but computationally-intensive operations cannot be performed efficiently due to clock frequency limits

Engineering Contradiction:
Improveperformance on computationally-intensive operationsVSAvoidprocessor architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

An instruction dispatcher acts as an intermediary between the synchronous control logic and asynchronous execution units. This mediator translates synchronous instructions into appropriate asynchronous operation codes, manages data transfer between synchronous registers and asynchronous units, and coordinates result retrieval, thereby enabling efficient computation without direct complex interactions between synchronous and asynchronous components.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If the processor waits for asynchronous operations to complete, then results are accurate, but the synchronous pipeline stalls and loses productivity

Engineering Contradiction:
Improveaccuracy of computation resultsVSAvoidpipeline throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs preliminary actions by dispatching computationally-intensive operations to asynchronous units before the synchronous pipeline needs the results. The asynchronous units begin computation immediately upon receipt of the operation code, allowing the synchronous pipeline to continue processing subsequent instructions without stalling, while still ensuring accurate results are available when needed.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11960898B2Enabling asynchronous operations in synchronous processors
Publication Date: 2024.04.16 RED HAT INC
  • US11960898B2 patent drawing
  • US11960898B2 patent drawing
  • US11960898B2 patent drawing

AI summary

The technology disclosed herein enables a processor that processes instructions synchronously in accordance with a processor clock to identify a first instruction specifying an asynchronous operation to be processed independently of the processor clock. The asynchronous operation is performed by an asynchronous execution unit that executes the asynchronous operation independently of the processor clock and generates at least one result of the asynchronous operation. A synchronous execution unit executes, in parallel with the execution of the asynchronous operation by the asynchronous execution unit, one or more second instructions specifying respective synchronous operations. Responsive to determining that the asynchronous execution unit has generated the at least one result of the asynchronous operation, the processor receives the at least one result of the asynchronous operation.