Convolutional Neural Network Hardware Accelerator for Gesture Recognition

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current human-machine-interface systems face inefficiencies in processing non-contact human-machine interactions, particularly in reducing memory access overheads and power consumption when using convolutional neural networks for gesture recognition and other applications.

Innovation Solution

A human-machine-interface system is designed with a register-file-memory, processing-element-slices, and a controller that optimizes data loading and processing by reducing memory access requests through the use of intermediate-registers and efficient data reuse, enabling low-power, high-efficiency processing of analogue sensor data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Use of energy by moving object

If data is loaded from register-file-memory into each processing element for every operation, then data availability is ensured, but memory access overheads and power consumption increase

Engineering Contradiction:
Improvepower consumptionVSAvoidprocessing efficiency
Core Design Contradiction:
Use of energy by moving objectVSProductivity

Solution Approach 1:

The controller pre-loads input data into the first register from the register-file-memory before the actual convolution processing begins. This preliminary action ensures that data is readily available in fast register storage, eliminating the need for repeated memory access operations during processing and thereby reducing power consumption while maintaining high processing efficiency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The first register acts as an intermediary buffer between the register-file-memory and the processing elements. Instead of processing elements directly accessing memory for every operation, data flows through this intermediate register, reducing memory access overheads and power consumption while ensuring data availability for all processing elements.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If multiple processing elements access the register-file-memory simultaneously, then data access speed is maintained, but voltage overheads and power consumption increase

Engineering Contradiction:
Improvedata access speedVSAvoidvoltage overheads
Core Design Contradiction:
SpeedVSUse of energy by stationary object

Solution Approach 1:

The controller performs preliminary data loading into shared registers before parallel processing begins. This ensures that all processing elements have their required data already available in fast register storage, eliminating simultaneous memory access operations and thereby reducing voltage overheads while maintaining high data access speed through the register interface.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The architecture introduces a temporal dimension to data access by separating the loading phase from the processing phase. Data is loaded into registers in advance (temporal separation), allowing multiple processing elements to access data simultaneously from fast register storage during processing without incurring simultaneous memory access overheads, thus reducing voltage consumption while maintaining access speed.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS11567770B2Human-machine-interface system comprising a convolutional neural network hardware accelerator
Publication Date: 2023.01.31 NXP BV
  • US11567770B2 patent drawing
  • US11567770B2 patent drawing
  • US11567770B2 patent drawing

AI summary

A human-machine-interface system comprising: register-file-memory, configured to store input-data; a first-processing-element-slice, a second-processing-element-slice, and a controller. Each of the processing-slices comprise: a register configured to store register-data; and a processing-element configured to apply an arithmetic and logic operation on the register-data in order to provide convolution-output-data. The controller is configured to: load input-data from the register-file-memory into the first-register as the first-register-data; and load: (i) input-data from the register-file-memory, or (ii) the first-register-data from the first-register, into the second-register as the second-register-data.