Split Accumulator MAC Architecture for Lower Memory Bandwidth

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing multiply accumulate (MAC) units face bandwidth constraints and power efficiency challenges due to memory requirements for accumulating outputs from numerous units, particularly in neural network computations.

Innovation Solution

Implementing a MAC unit with two or more stages of accumulators, where a first accumulator accumulates products and a second accumulator periodically accumulates the running total, decoupling memory bandwidth and using a shared adder and multiplexor to switch accumulation operations between stages.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a single accumulator is used in each MAC unit, then the device complexity is low, but the memory bandwidth requirement increases significantly when numerous MAC units need to read outputs simultaneously

Engineering Contradiction:
Improveaccumulator structure complexityVSAvoidmemory bandwidth requirement
Core Design Contradiction:
Device complexityVSQuantity of substance

Solution Approach 1:

The accumulator is divided into multiple stages (first accumulator and second accumulator) that operate in sequence. The first accumulator performs initial accumulation and then hands off to the second accumulator, which completes the accumulation process. This segmentation allows the memory to be accessed less frequently, reducing bandwidth requirements while maintaining functional simplicity.

Inventive Principle:
Principle #1Segmentation

2Device complexity

If a single accumulator is used in each MAC unit, then the device complexity is low, but the power consumption increases due to continuous memory operations

Engineering Contradiction:
Improveaccumulator structure complexityVSAvoidpower consumption
Core Design Contradiction:
Device complexityVSUse of energy by moving object

Solution Approach 1:

By segmenting the accumulator into two stages, the system reduces the frequency of memory access operations. The first accumulator handles initial computations locally, then transfers to the second accumulator which completes the task. This reduces power consumption by minimizing memory transactions while keeping the overall structure relatively simple.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The second accumulator acts as an intermediary between the first accumulator and the final memory output. It receives partial results from the first accumulator and completes the accumulation process, reducing the need for continuous memory access and thereby reducing power consumption.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If memory bandwidth is increased to accommodate numerous MAC units, then the productivity improves, but the device complexity and resource utilization increase

Engineering Contradiction:
Improvecomputational throughputVSAvoidmemory architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The accumulator is segmented into two stages that can operate in a pipelined manner. While the first accumulator is processing one set of data, the second accumulator is preparing to receive and complete the accumulation. This segmentation enables higher productivity without requiring increased memory bandwidth, as the pipelined structure allows overlapping operations.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS20250224929A1Multiply accumulate (MAC) unit with split accumulator
Publication Date: 2025.07.10 TENSORDYNE INC
  • US20250224929A1 patent drawing
  • US20250224929A1 patent drawing
  • US20250224929A1 patent drawing

AI summary

In a multiply accumulate (MAC) unit, an accumulator may be implemented in two or more stages. For example, a first accumulator may accumulate products from the multiplier of the MAC unit, and a second accumulator may periodically accumulate the running total of the first accumulator. Each time the first accumulator's running total is accumulated by the second accumulator, the first accumulator may be initialized to begin a new accumulation period. In one embodiment, the number of values accumulated by the first accumulator within an accumulation period may be a user-adjustable parameter. In one embodiment, the bit width of the input of the second accumulator may be greater than the bit width of the output of the first accumulator. In another embodiment, an adder may be shared between the first and second accumulators, and a multiplexor may switch the accumulation operations between the first and second accumulators.