Processing Unit Spiral Algorithm Convolution Hardware

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Processing units that compute convolutions require multiple processing elements and discrete memories, leading to high chip area and energy consumption, especially in applications like image processing, AI, and machine learning, and existing systolic arrays with data setup logic blocks are also costly.

Innovation Solution

A processing unit employing an array of processing elements and a hardware-implemented spiral algorithm to compute convolutions, eliminating the need for a discrete data setup logic block by pre-loading activation values and using a spiral pattern to select weight values, allowing parallel multiply-accumulate operations in a low number of clock cycles independent of activation and weight values.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple processing elements with discrete memories are used to compute convolution, then the computation can be completed, but chip area consumption increases

Engineering Contradiction:
Improveconvolution computation capabilityVSAvoidchip area consumption
Core Design Contradiction:
ProductivityVSArea of stationary object

Solution Approach 1:

The patent merges the memory function into the processing elements themselves. Each processing element in the array includes local storage to hold activation values, eliminating the need for separate discrete memories for each PE. This integration reduces overall chip area while maintaining the capability to perform convolution computations across multiple processing elements.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The processing elements are designed with multi-functionality, serving both as computation units and as storage units. The same processing element that performs multiply-accumulate operations also contains local memory to store activation values, thereby reducing the total number of memory components needed in the system and decreasing chip area consumption.

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

2Productivity

If multiple processing elements with discrete memories are used to compute convolution, then the computation can be completed, but energy consumption increases

Engineering Contradiction:
Improveconvolution computation capabilityVSAvoidenergy consumption
Core Design Contradiction:
ProductivityVSUse of energy by stationary object

Solution Approach 1:

By merging memory and processing functions into unified processing elements, the patent eliminates the need for frequent data transfers between separate memory components and processing units. This reduction in data movement significantly decreases energy consumption, as memory access and data transfer are among the most energy-intensive operations in computing systems.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent implements preliminary loading of activation values into the local storage of processing elements before the convolution computation begins. This pre-positioning of data ensures that processing elements have immediate access to required values during computation, eliminating the need for repeated energy-consuming memory accesses during the actual convolution operation.

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If a data setup logic block is used to reorganize data in systolic arrays, then data inputs are in proper order for processing, but chip area consumption increases

Engineering Contradiction:
Improvedata input organizationVSAvoidchip area consumption
Core Design Contradiction:
Ease of operationVSArea of stationary object

Solution Approach 1:

The patent extracts and eliminates the separate data setup logic block from the systolic array architecture. Instead of having a dedicated component for reorganizing data, the patent integrates the data organization functionality directly into the processing elements themselves, which can reorganize and position data locally as needed for convolution computations, thereby reducing chip area.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The data setup and processing functions are merged into the processing elements. Each processing element is capable of both organizing its local data and performing computations, eliminating the need for a separate data setup logic block and reducing overall chip area while maintaining proper data organization for processing.

Inventive Principle:
Principle #5Merging (Combining)

4Ease of operation

If a data setup logic block is used to reorganize data in systolic arrays, then data inputs are in proper order for processing, but energy consumption increases

Engineering Contradiction:
Improvedata input organizationVSAvoidenergy consumption
Core Design Contradiction:
Ease of operationVSUse of energy by stationary object

Solution Approach 1:

The patent removes the separate data setup logic block that would consume energy during data reorganization. Instead, data organization is performed locally by processing elements using their integrated storage and control logic, which consumes significantly less energy than a dedicated data setup block would require.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Data is organized and positioned in the local storage of processing elements in advance before computation begins. This preliminary organization eliminates the need for continuous energy-consuming data reorganization operations during processing, as data is already in the proper order for convolution computations.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11669733B2Processing unit and method for computing a convolution using a hardware-implemented spiral algorithm
Publication Date: 2023.06.06 MARVELL ASIA PTE LTD
  • US11669733B2 patent drawing
  • US11669733B2 patent drawing
  • US11669733B2 patent drawing

AI summary

Disclosed is a processing unit for computing a convolution of an activations matrix (e.g., a N×N activations matrix) and a weights kernel (e.g., a M×M weights kernel). The processing unit specifically employs an array of processing elements and a hardware-implemented spiral algorithm to compute the convolution. Due to this spiral algorithm, the need for a discrete data setup logic block is avoided, activation values from the activations matrix can be pre-loaded into processing elements only one time so that the need to repeatedly access the activations matrix is avoided, and the computation can be completed in a relatively low number of clock cycles, which is independent of the number of activation values in the activation matrix and which is equal to the number of weight values in a weights kernel. Also disclosed is an associated processing method.