# US 2025/0165786 A1 · Systems and methods for reducing memory requirements in neural networks

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2025/0165786 A1
- Document ID: US20250165786A1
- Status: Published application
- Kind: A1
- Application number: 19/031,168
- Filed: 2025-01-17
- Published: 2025-05-22
- Earliest claimed: 2020-01-08
- Assignees: Maxim Integrated Products, Inc.
- Applicants: Maxim Integrated Products, Inc.
- Inventors: Mark Alan Lovell; Robert Michael Muchsel
- Web page: https://patentgrep.com/patent/US20250165786A1

## CPC

- G06N 3/063: using electronic means
- G06N 3/08: Learning methods
- G06N 3/04: Architecture, e.g. interconnection topology
- G06N 3/045: Combinations of networks
- G06N 3/0464: Convolutional networks [CNN, ConvNet]
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

Described herein are systems and methods for efficiently processing large amounts of data when performing complex neural network operations, such as convolution and pooling operations. Given cascaded convolutional neural network layers, various embodiments allow for commencing processing of a downstream layer prior to completing processing of a current or previous network layer. In certain embodiments, this is accomplished by utilizing a handshaking mechanism or asynchronous logic to determine an active neural network layer in a neural network and using that active neural layer to process a subset of a set of input data of a first layer prior to processing all of the set of input data.

## Claims

### Claim 1

A method for processing neural network data, the method comprising:
determining one or more active neural network layers in a neural network using counters, wherein the counters control a set of input data by counting bytes of data into the one or more active neural network layers relative to at least one value to identify the one or more active neural network layers;
using the one or more active neural network layers to process a subset of the set of input data of a first neural network layer, the subset having a data size that is less than the size of the set of input data;
outputting a first set of output data from the first neural network layer;
using the first set of output data in a second neural network layer; and
outputting a second set of output data from the second neural network layer prior to processing all of the set of input data.

### Claim 2 (depends on 1)

The method according to claim 1, further comprising discarding at least some of the subset of the set of input data after outputting the first set of output data.

### Claim 3 (depends on 1)

The method according to claim 1, wherein the size of the subset of input data depends at least on one of a pooling stride or a type of convolution, or the type of the neural network.

### Claim 4 (depends on 1)

The method according to claim 1, wherein outputting the first set of output data comprises generating an output pixel in response to using input data up to and including a first input pixel and ignoring input data following the first input pixel.

### Claim 5 (depends on 1)

The method according to claim 1, wherein the set of input data comprises at least one of audio data or image sensor data, the input data being scanned row-by-row and the first set of output data is sequenced row-by-row.

### Claim 6 (depends on 1)

The method according to claim 1, further comprising using at least one of a handshaking mechanism, a sequencing mechanism, or asynchronous logic that determines the one or more active neural network layers.

### Claim 7 (depends on 1)

The method according to claim 1, wherein the set of input data is shifted row-by-row into a memory device in a sequential fashion such that data that has been shifted from one or more rows is available for processing.

### Claim 8 (depends on 1)

The method according to claim 1, wherein the data size is less than the size of the input data, and wherein a dimension of an output of the first neural network layer is greater than a dimension of an output of the second neural network layer.

### Claim 9

A method for processing neural network data, the method comprising:
determining one or more active neural network layers in a neural network using counters, wherein the counters control a set of input data by counting input pixels into the one or more active neural network layers relative to at least one value to identify the one or more active neural network layers;
using the one or more active neural network layers to process a subset of the set of input data of a first neural network layer, the subset having a data size that is less than the size of the set of input data;
outputting a first set of output data from the first neural network layer;
using the first set of output data in a second neural network layer; and
outputting a second set of output data from the second neural network layer prior to processing all of the set of input data.

### Claim 10 (depends on 9)

The method according to claim 9, further comprising discarding at least some of the subset of the set of input data after outputting the first set of output data.

### Claim 11 (depends on 9)

The method according to claim 9, wherein the size of the subset of the set of input data depends at least on one of a pooling stride or a type of convolution, or the type of the neural network.

### Claim 12 (depends on 9)

The method according to claim 9, wherein outputting the first set of output data comprises generating an output pixel in response to using input data up to and including a first input pixel and ignoring input data following the first input pixel.

### Claim 13 (depends on 9)

The method according to claim 9, wherein the set of input data comprises at least one of audio data or image sensor data, the input data being scanned row-by-row and the first set of output data is sequenced row-by-row.

### Claim 14 (depends on 9)

The method according to claim 9, further comprising using at least one of a handshaking mechanism, a sequencing mechanism, or asynchronous logic that determines the one or more active neural network layers.

### Claim 15 (depends on 9)

The method according to claim 9, wherein the set of input data is shifted row-by-row into a memory device in a sequential fashion such that data that has been shifted from one or more rows is available for processing.

### Claim 16 (depends on 9)

The method according to claim 9, wherein the data size is less than the size of the input data, and wherein a dimension of an output of the first neural network layer is greater than a dimension of an output of the second neural network layer.

### Claim 17

A system for processing large amounts of neural network data, the system comprising:
a processor; and
a non-transitory computer-readable medium comprising instructions that, when executed by the processor, cause steps to be performed, the steps comprising:
determining one or more active layers in a neural network using counters, wherein the counters control a set of input data by counting at least one of input bytes of data and input pixels into the one or more active neural network layers relative to at least one value to identify the one or more active neural network layers;
using the one or more active layers to process a subset of the set of input data of a first neural network layer the subset having a data size that is less than the size of the set of input data;
outputting a first set of output data from the first network layer;
using first set of output data in a second neural network layer; and
outputting a second set of output data from the second network layer prior to processing all of the set of input data.

### Claim 18 (depends on 17)

The system according to claim 17, further comprising a rolling buffer coupled to the processor, the rolling buffer that processes the subset of the set of input data.

### Claim 19 (depends on 17)

The system according to claim 17, wherein the rolling buffer stores a result associated with the set of input data as an intermediate data set.

### Claim 20 (depends on 17)

The system according to claim 17, further comprising a convolutional neural network (CNN) accelerator circuit coupled to the processor and a sensor, the CNN accelerator streams the subset from the sensor to the processor.
