Multiplier Array Operand Rearrangement for Multiply-Accumulate

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data processing technologies face inefficiencies in performing multiply-and-accumulate-products (MAP) instructions, requiring additional adders that increase circuit area and latency, especially in digital signal processing applications like FFTs and DCTs.

Innovation Solution

The technique reuses the existing L×M multiplier array by rearranging operands to allow existing adders to accumulate multiple partial products within the array, eliminating the need for additional adders and reducing latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If additional adders are used to perform MAP instructions, then the functionality to accumulate multiple products is improved, but the circuit area and latency increase

Engineering Contradiction:
Improvefunctionality to accumulate multiple productsVSAvoidcircuit area
Core Design Contradiction:
Adaptability or versatilityVSArea of stationary object

Solution Approach 1:

The existing multiplier array is designed to perform both standard multiplication and MAP operations by reconfiguring the same hardware resources. The instruction decoder detects MAP instructions and reuses the existing adders for accumulating multiple partial products, making the multiplier array universal that can handle both regular multiplication and accumulate multiple products operations without requiring dedicated additional adder circuits

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

Solution Approach 2:

The patent merges the functionality of separate multiplication and accumulation operations into a single unified operation. By rearranging operands and reusing the existing adder array, the MAP instruction combines multiple multiply-accumulate operations into one instruction cycle, effectively merging what would traditionally require separate functional units into a single integrated operation

Inventive Principle:
Principle #5Merging (Combining)

2Adaptability or versatility

If additional adders are used to perform MAP instructions, then the capability to handle complex operations is improved, but the processing latency increases

Engineering Contradiction:
Improvecapability to handle complex operationsVSAvoidprocessing latency
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The instruction decoder performs preliminary detection and identification of MAP instructions before execution. By detecting the MAP instruction format in advance and preparing the operand rearrangement, the system can immediately reuse the existing adder array without waiting for additional circuits to be configured, thereby reducing the overall processing latency

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes the operational parameters of the existing adder array by reconfiguring how operands are arranged and fed into the multiplier. By transforming the input operands into a specific arrangement that aligns with the adder array's existing structure, the system enables the adders to perform accumulation functions without any physical modification, thus avoiding the latency that would result from additional hardware configuration

Inventive Principle:
Principle #35Parameter changes

3Area of stationary object

If the multiplier array is reused for MAP instructions by rearranging operands, then the circuit area is reduced, but the complexity of operand rearrangement increases

Engineering Contradiction:
Improvecircuit areaVSAvoidcomplexity of operand rearrangement
Core Design Contradiction:
Area of stationary objectVSDevice complexity

Solution Approach 1:

The instruction decoder acts as an intermediary that translates MAP instructions into appropriate operand arrangements for the existing multiplier array. Rather than requiring complex physical reconfiguration of the hardware, the decoder mediates between the high-level MAP instruction and the low-level hardware operations, automatically handling the operand rearrangement through control logic that selects and prepares operands in the required format

Inventive Principle:
Principle #24Intermediary (Mediator)

4Ease of operation

If standard multiply instructions are maintained, then the simplicity of operation is preserved, but the efficiency for accumulate multiple products operations is limited

Engineering Contradiction:
Improvesimplicity of operationVSAvoidefficiency for accumulate multiple products operations
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The multiplier array is designed with universal functionality that allows it to execute both simple standard multiply instructions and complex MAP instructions using the same hardware resources. The instruction decoder identifies MAP instructions and reuses the existing adder array for accumulating multiple partial products, enabling the system to maintain operational simplicity while significantly improving productivity for accumulate multiple products operations

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

Data Source

PatentUS10409592B2Multiply-and-accumulate-products instructions
Publication Date: 2019.09.10 ARM LTD
  • US10409592B2 patent drawing
  • US10409592B2 patent drawing
  • US10409592B2 patent drawing

AI summary

An apparatus has processing circuitry comprising an L×M multiplier array. An instruction decoder associated with the processing circuitry supports a multiply-and-accumulate-product (MAP) instruction for generating at least one result element corresponding to a sum of respective E×F products of E-bit and F-bit portions of J-bit and K-bit operands respectively, where 1<E<J≤L and 1<F<K≤M. In response to the MAP instruction, the instruction decoder controls the processing circuitry to rearrange F-bit portions of the second K-bit operand to form a transformed K-bit operand, and to control the L×M multiplier array in dependence on the first J-bit operand and the transformed K-bit operand to add the respective E×F products using a subset of the adders used for accumulating partial products for a conventional multiplication.