Hardware Address Generator for CNN Multi-Dimensional Data Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Convolutional neural networks (CNNs) face high computational complexity due to the need for simultaneous access and manipulation of large, multi-dimensional data arrays, which is inefficient and energy-intensive, especially in deep learning applications where high-dimensional convolutions and extensive data operations are required.

Innovation Solution

A memory address generator is developed to efficiently access multi-dimensional data by generating addresses using a combination of iteration variables, convolutional strides, and bounds, utilizing MUL-ADD units to compute memory addresses for input, coefficient, and output data, allowing for pre-fetching and instant calculation, thereby improving data access and computation efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If traditional 'for' statements are used to generate iteration variables for multi-dimensional data access, then the programming approach is simple and widely supported, but the computational complexity and data access efficiency are poor

Engineering Contradiction:
Improveprogramming simplicityVSAvoiddata access efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent replaces software-based iteration variable generation (using 'for' statements) with a dedicated hardware address generator that uses multiplication and addition circuits to compute memory addresses directly from iteration variables, substituting the mechanical/software process with an electronic/hardware solution to achieve faster data access

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The address generator performs preliminary computation of memory addresses by pre-calculating the address arithmetic operations (multiplication and addition) before data access occurs, allowing the memory system to be prepared in advance and improving overall data retrieval efficiency

Inventive Principle:
Principle #10Preliminary action

2Productivity

If hardware-based address generation with MUL-ADD units is implemented, then data access speed and computational efficiency are improved, but the device complexity increases

Engineering Contradiction:
Improvedata processing speedVSAvoidaddress generator structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The address generator is designed as a universal module that can handle multiple data types and access patterns through a single unified architecture, where the same MUL-ADD units and iteration variable generator can service different memory access requirements without requiring separate dedicated circuits for each function

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

Solution Approach 2:

The patent implements nested iteration variables where inner iteration variables are multiplied by stride values and added to outer iteration variable contributions in a hierarchical nested structure, allowing complex multi-dimensional addressing to be built up from simpler nested components

Inventive Principle:
Principle #7Nested doll (Nesting)

3Adaptability or versatility

If multiple iteration variables are used to access multi-dimensional arrays, then comprehensive data coverage is achieved, but the computational complexity and energy consumption increase

Engineering Contradiction:
Improvedata coverage capabilityVSAvoidcomputational energy consumption
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

Solution Approach 1:

The patent extracts the address calculation functionality from the main computational loop and places it in a dedicated address generator unit, separating the memory access computation from the data processing computation, which reduces the energy consumption of the overall system by optimizing the memory access path independently

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS20230244600A1Process for Generation of Addresses in Multi-Level Data Access
Publication Date: 2023.08.03 CEREMORPHIC INC
  • US20230244600A1 patent drawing
  • US20230244600A1 patent drawing
  • US20230244600A1 patent drawing

AI summary

A process for iterating through a multi-dimensional array has an iteration process and an address generation process. In one example of the invention an input address process, a coefficient address process, and an output address process generate addresses for a convolutional neural network (CNN. Each of the input address process, coefficient address process, and output address process is coupled to a plurality of iteration variables generated by an iteration variable process, each iteration variable process having an associated with a bound and stride for each iteration variable, thereby generating an input address, a coefficient address, and an output address.