Pipelined CNN Image Cache for Memory Bandwidth Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Convolutional Neural Networks (CNNs) face challenges in responsiveness and memory requirements when incorporated into image processing systems, necessitating improved memory management and processing efficiency for real-time feature classification.

Innovation Solution

A CNN engine with a pipelined image cache architecture that allows for rapid provision of input map information, enabling 3D convolution operations in a minimal number of clock cycles and simultaneous reading of blocks of pixels of varying sizes for efficient processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a CNN engine is incorporated into an image processing system, then feature classification capability is improved, but memory requirements and responsiveness challenges worsen

Engineering Contradiction:
Improvefeature classification capabilityVSAvoidmemory requirements
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The image cache is segmented into multiple banks (first bank, second bank, third bank) that can operate independently and in parallel. This segmentation allows the system to store and retrieve different portions of image data simultaneously, reducing the total memory required at any given time while maintaining the capability to process large images through staged loading and processing.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a temporal dimension to memory access through pipelined architecture, where data is loaded, processed, and retired in overlapping stages across different clock cycles. This allows the system to handle large memory requirements by spreading data access across multiple time steps rather than requiring all data to be available simultaneously.

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

2Speed

If a pipelined image cache architecture is used, then processing speed is improved, but device complexity worsens

Engineering Contradiction:
Improveprocessing speedVSAvoiddevice complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The pipelined image cache is divided into multiple banks with dedicated control logic for each bank. This segmentation allows parallel processing of different data portions simultaneously, achieving high processing speeds while keeping each individual bank's complexity manageable and modular.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic control signals (RWB0-RWB7, RB0-RB7, WB0-WB7) that adaptively manage data flow between cache banks and processing units based on real-time processing needs. This dynamic control enables efficient resource utilization and maintains high processing speeds while avoiding the need for overly complex static interconnection structures.

Inventive Principle:
Principle #15Dynamics

3Productivity

If 3D convolution operations are performed in minimal clock cycles, then productivity is improved, but memory access bandwidth requirements worsen

Engineering Contradiction:
ImproveproductivityVSAvoidmemory access bandwidth requirements
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The system performs preliminary loading of image data into the image cache banks before the actual convolution processing begins. This pre-loading allows the convolution engine to access data from the fast cache memory during processing rather than reading directly from slow external memory, thereby achieving high productivity while reducing the bandwidth burden on the external memory interface.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The pipelined architecture ensures continuous data flow through the system with overlapping load-process-retire cycles. Data is continuously supplied to the convolution engine from the cache banks without idle cycles, maintaining high productivity while the cache structure amortizes the memory bandwidth requirements across continuous operation rather than burst access.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS9665799B1Convolutional neural network
Publication Date: 2017.05.30 FOTONATION LIMITED
  • US9665799B1 patent drawing
  • US9665799B1 patent drawing
  • US9665799B1 patent drawing

AI summary

A convolutional neural network (CNN) for an image processing system comprises an image cache responsive to a request to read a block of N×M pixels extending from a specified location within an input map to provide a block of N×M pixels at an output port. A convolution engine reads blocks of pixels from the output port, combines blocks of pixels with a corresponding set of weights to provide a product, and subjects the product to an activation function to provide an output pixel value. The image cache comprises a plurality of interleaved memories capable of simultaneously providing the N×M pixels at the output port in a single clock cycle. A controller provides a set of weights to the convolution engine before processing an input map, causes the convolution engine to scan across the input map by incrementing a specified location for successive blocks of pixels and generates an output map within the image cache by writing output pixel values to successive locations within the image cache.