Configurable DSP Block for Mixed-Precision Multiplication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current integrated circuit devices face challenges in performing both digital signal processing and machine learning applications efficiently, as circuitry suited for one application is not well-suited for the other, limiting their versatility.

Innovation Solution

A digital signal processing (DSP) block is designed to perform fixed-point and floating-point operations, including double precision floating-point multiplication, using a configurable architecture with multiple multipliers and a summation block, enabling efficient execution of various mathematical operations across different precision modes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If dedicated circuitry is designed for digital signal processing, then DSP performance is improved, but suitability for machine learning deteriorates

Engineering Contradiction:
ImproveDSP performanceVSAvoidMachine learning suitability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The DSP block is designed with a configurable architecture that can operate in multiple modes (DSP mode and machine learning mode) to perform different functions. The block includes configurable elements such as multiplier precision (full precision or halved precision for second operand) and summation block configurations that can be adjusted via control signals to optimize for either DSP or machine learning workloads, enabling a single circuit to serve multiple purposes effectively.

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

2Reliability

If dedicated circuitry is designed for machine learning, then machine learning performance is improved, but suitability for digital signal processing deteriorates

Engineering Contradiction:
ImproveMachine learning performanceVSAvoidDSP suitability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The same DSP block that is optimized for DSP operations can be reconfigured for machine learning tasks. The configurable architecture allows the block to switch between precision modes and operational configurations to accommodate machine learning algorithms, thereby providing dedicated machine learning capability without requiring separate specialized circuitry.

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

3Adaptability or versatility

If a single circuit is designed to handle both applications, then versatility is improved, but performance for either specific application deteriorates

Engineering Contradiction:
ImproveApplication versatilityVSAvoidApplication-specific performance
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The DSP block employs dynamic reconfiguration capabilities where control signals can change the operational characteristics of the block during runtime. The multiplier precision and summation block behavior can be dynamically adjusted based on the current workload requirements, allowing the circuit to optimize its performance for the specific application being executed at any given moment.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS12182534B2High precision decomposable DSP entity
Publication Date: 2024.12.31 ALTERA CORP
  • US12182534B2 patent drawing
  • US12182534B2 patent drawing
  • US12182534B2 patent drawing

AI summary

A digital signal processing (DSP) block includes a plurality of multipliers and a summation block separate from the plurality of multipliers. The DSP block is configurable to perform a first multiplication operation to determine a first product of a first floating-point value and a second floating-point value using only a first multiplier of the plurality of multipliers. Additionally, the DSP block is configurable to perform a second multiplication operation between a third floating-point value and a fourth floating-point value by receiving, at each of the plurality of multipliers, two integer values generated from the third floating-point value and the fourth floating-point value, generating, via the plurality of multipliers, a plurality of subproducts by multiplying, at each of the multipliers, the two integer values, and generating a second product of the second multiplication operation by adding, via the summation block, the plurality of subproducts.