Unified Hardware Accelerator Language for Processor Integration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for integrating hardware accelerators with processors are limited by the need for separate design and validation of hardware accelerators, leading to increased time and complexity, and are restricted to simple instructions that require single-step execution, resulting in processor inefficiency due to micromanagement and communication delays.

Innovation Solution

The approach integrates hardware accelerators with extensible processors using a unified language for describing instructions and hardware execution, enabling state machine management and external register file interactions to facilitate multi-step instruction execution and improve processor utilization through smarter scheduling and latency handling.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If hardware accelerator is integrated with processor using separate design methods, then hardware accelerator functionality is achieved, but design validation time and complexity increase

Engineering Contradiction:
Improvehardware accelerator functionalityVSAvoiddesign validation time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent combines hardware accelerator design and processor design into a unified language framework. The accelerator description language (ADL) allows both the processor and hardware accelerator to be described using the same language, enabling integrated simulation and validation. This merging eliminates the need for separate design methodologies and reduces validation time by allowing concurrent development and testing of both components together.

Inventive Principle:
Principle #5Merging (Combining)

2Ease of manufacture

If hardware accelerator executes simple single-step instructions, then implementation is straightforward, but processor efficiency decreases due to micromanagement

Engineering Contradiction:
Improveimplementation simplicityVSAvoidprocessor efficiency
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent introduces dynamic instruction execution capability where hardware accelerators can execute multi-step instructions autonomously. The unified language framework enables the description of complex multi-cycle operations that the hardware accelerator can manage independently through built-in state machine logic. This dynamic capability allows the processor to issue high-level instructions without micromanaging each sub-step, thereby improving processor efficiency while maintaining implementation feasibility through systematic design methods.

Inventive Principle:
Principle #15Dynamics

3Reliability

If processor controls each sub-step of hardware accelerator execution, then precise control is achieved, but communication delays increase

Engineering Contradiction:
Improvecontrol precisionVSAvoidcommunication delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent introduces an intermediary control mechanism where the hardware accelerator includes an internal state machine that autonomously manages sub-step execution. The processor communicates high-level instructions to the accelerator, and the accelerator's internal controller handles the detailed sub-step coordination. This intermediary layer reduces communication overhead between processor and accelerator, minimizing communication delays while maintaining precise control through the accelerator's internal state management system.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11513818B1Method, product, and system for integrating a hardware accelerator with an extensible processor
Publication Date: 2022.11.29 CADENCE DESIGN SYST INC
  • US11513818B1 patent drawing
  • US11513818B1 patent drawing
  • US11513818B1 patent drawing

AI summary

An approach includes the use of a description of instructions for invoking hardware accelerator and for a hardware accelerator to execute those instructions. In some embodiments, the instructions for invoking hardware accelerator and for a hardware accelerator to execute those instructions are described using a single language. These descriptions are then compiled into other languages for use in tool chains for generating simulators (a hardware and instruction set simulator and a hardware accelerator simulator). In some embodiments, the approach illustrated herein can be combined with state machine functionality to manage the execution of instructions that require multiple states. In some embodiments, the approach illustrated herein can be combined with an external register file for transferring information between a processor and a hardware accelerator.