Convolution Circuit Buffer Memory One-Dimensional Data Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Convolutional neural networks require large memory to store two-dimensional input data, which is inefficient in terms of memory usage.
Innovation Solution
A power module comprising a buffer memory and a computation circuit that processes one-dimensional data by reading input elements sequentially, calculating indices for weights within an operation range, multiplying input elements with corresponding weights, and accumulating products in the buffer memory, with the option to store or output values based on predetermined accumulation times.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If two-dimensional input data is stored in memory for convolution operations, then convolution computation can be performed, but memory size must be large
Solution Approach 1:
The patent transforms two-dimensional input data into one-dimensional data by scanning and storing only the necessary elements in a buffer. This dimensionality reduction allows the system to perform convolution operations without storing the entire two-dimensional matrix, significantly reducing memory requirements while maintaining computational capability.
Solution Approach 2:
The patent divides the input data processing into segments by using a sliding window approach. Instead of loading the entire input matrix at once, it processes data in smaller chunks corresponding to the filter size, storing only the current window elements in the buffer. This segmentation enables efficient memory usage during convolution operations.
2Adaptability or versatility
If the entire input matrix is stored in memory, then all convolution operations can be performed, but memory usage increases
Solution Approach 1:
The patent applies partial action by storing only the necessary portion of input data in the buffer at any given time. Instead of storing the complete input matrix, it maintains only the elements within the current sliding window, which are sufficient to perform the convolution operation at each step, thereby reducing overall memory usage.
Solution Approach 2:
The patent performs preliminary action by pre-calculating and storing the indices of the sliding window in the buffer before actual convolution computation. This preliminary organization of data allows the system to quickly access and process only the required elements during convolution, avoiding the need to store and search through the entire input matrix.
Data Source
AI summary
A convolution circuit includes a buffer memory and a computation circuit. The computation circuit receives an input element according to a memory access sequence, and determines whether a filter location corresponding to each weight of a weight matrix is within an operation range. For each weight within the operation range, the computation circuit calculates an index of the buffer memory, reads a temporary value located at the index, multiply the input element and the weight to obtain a product, and accumulate the product to the temporary value. If accumulation times of the temporary value meet a predetermined number of times, the temporary value is output. If the accumulation times do not meet the predetermined number of times, the temporary value is stored back into the buffer memory.


