Reconfigurable Hardware Engine for Dynamic Instruction Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional hardware acceleration engines face a tradeoff between efficiency and flexibility, as they can only provide efficiency boosts for primitive operations designed at the time of hardware development, making them inflexible to implement new instructions or primitives that emerge in rapidly changing fields like Machine Learning.

Innovation Solution

A reconfigurable hardware engine that supports user-defined instructions and can be modified after deployment, featuring a vector processor capable of parallelized computations, with a flexible instruction processing system that merges multiple instruction fields, uses a profile access content-addressable memory for opcode translation, and implements microcode for controlling datapath operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional hardware acceleration engines are designed with fixed instructions at the time of hardware development, then they can provide efficient performance for those specific primitive operations, but they cannot implement new instructions or primitives that emerge in rapidly changing fields like Machine Learning

Engineering Contradiction:
Improvecomputational efficiencyVSAvoidinstruction flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The hardware engine transitions from static fixed instructions to dynamic reconfigurable instructions through a state machine that can be programmed with different instruction sequences. The state machine's next-state logic and output signals allow the engine to adapt its behavior based on input conditions, enabling it to implement new primitives without hardware redesign.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the operational parameters of the hardware engine by loading different instruction sequences into the state machine. By modifying the instruction set parameters (opcode mappings, state transitions, output selections) through programming rather than hardware modification, the engine can efficiently execute new Machine Learning primitives while maintaining its optimized computational architecture.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If hardware acceleration engines are designed to support multiple operations, then they can provide broader functionality, but they may sacrifice the efficiency boosts that come from specialized hardware design

Engineering Contradiction:
Improveoperation rangeVSAvoidcomputational efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The state machine is designed as a universal control unit that can execute multiple different instruction sequences through programming. The configurable opcode-to-state mapping and parameterizable output selection allow a single hardware engine to perform various Machine Learning operations (convolutions, pooling, normalization, etc.) while maintaining efficient specialized execution for each operation type.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Ease of manufacture

If the hardware engine specification remains fixed during the development period, then the design process is straightforward, but designers risk choosing incorrect instructions at the start of a hardware project

Engineering Contradiction:
Improvedesign simplicityVSAvoidinstruction selection accuracy
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The state machine is pre-configured with a framework that supports multiple instruction types and operations. By establishing this reconfigurable structure in advance, designers can later program the appropriate instruction sequences for specific Machine Learning tasks without returning to the drawing board, ensuring both design simplicity and instruction selection flexibility.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11507378B1Hardware engine with configurable instructions
Publication Date: 2022.11.22 AMAZON TECH INC
  • US11507378B1 patent drawing
  • US11507378B1 patent drawing
  • US11507378B1 patent drawing

AI summary

In one example, an integrated circuit comprises: a memory configured to store a first mapping between a first opcode and first control information and a second mapping between the first opcode and second control information; a processing engine configured to perform processing operations based on the control information; and a controller configured to: at a first time, provide the first opcode to the memory to, based on the first mapping stored in the memory, fetch the first control information for the processing engine, to enable the processing engine to perform a first processing operation based on the first control information; and at a second time, provide the first opcode to the memory to, based on the second mapping stored in the memory, fetch the second control information for the processing engine, to enable the processing engine to perform a second processing operation based on the second control information.