IP Library Granted Patent US 12705472
Granted Patent B2
US 12705472 · App. 18/386,037 · Granted Aug 11, 2026

Prefetching weights for use in a neural network processor

Inventor: Jonathan Ross (Mountain View, CA)
Assignee: Google LLC
G06N3/063G06F15/8046
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12705472
App. No.
18/386,037
Granted
Aug 11, 2026
Kind
B2
Abstract

A circuit for performing neural network computations for a neural network, the circuit comprising: a systolic array comprising a plurality of cells; a weight fetcher unit configured to, for each of the plurality of neural network layers: send, for the neural network layer, a plurality of weight inputs to cells along a first dimension of the systolic array; and a plurality of weight sequencer units, each weight sequencer unit coupled to a distinct cell along the first dimension of the systolic array, the plurality of weight sequencer units configured to, for each of the plurality of neural network layers: shift, for the neural network layer, the plurality of weight inputs to cells along the second dimension of the systolic array over a plurality of clock cycles and where each cell is configured to compute a product of an activation input and a respective weight input using multiplication circuitry.

Claims (45)

1 . A system for performing neural network computations for a neural network having a plurality of neural network layers, the system comprising:

a matrix computation unit comprising circuitry configured to:

obtain a weight input for a neural network layer of the plurality of neural network layers;

receive a control signal; and

determine, based on the control signal, whether to reuse the weight input for a different neural network layer of the plurality of neural network layers at a subsequent clock cycle.

2 . The system of claim 1 , wherein the circuitry is further configured to, in response to a determination to reuse the weight input, shift the weight input.

3 . The system of claim 1 , wherein the circuitry is further configured to:

obtain an activation input for the neural network layer; and

determine, based on the control signal, whether to reuse the activation input at a subsequent clock cycle.

4 . The system of claim 3 , wherein obtaining the activation input comprises obtaining the activation input from a value loader.

5 . The system of claim 3 , wherein:

obtaining the weight input comprises obtaining a shifted weight input; and

obtaining the respective activation input comprises obtaining a shifted activation input.

6 . The system of claim 3 , further comprising:

a first memory configured to provide activation inputs for the plurality of neural network layers; and

a second memory configured to provide weight inputs for the plurality of neural network layers.

7 . The system of claim 6 , further comprising a vector computation unit comprising circuitry configured to:

receive one or more accumulated values from the matrix computation unit;

determine a vector based on the one or more accumulated values; and

provide the vector to the first memory.

8 . The system of claim 6 , further comprising sequencer circuitry configured to provide one or more control signals to at least one of the first memory, the second memory, the vector computation unit, or the matrix computation unit.

9 . The system of claim 1 , wherein obtaining the weight input comprises obtaining the weight input from a weight fetcher interface.

10 . The system of claim 1 , wherein determining, based on the control signal, whether to reuse the weight input comprises determining that the control signal meets a predetermined value.

11 . The system of claim 1 , wherein the circuitry comprises:

one or more weight control registers configured to store the control signal; and

one or more weight registers configured to load the weight input.

12 . The system of claim 1 , further comprising a sequencer comprising circuitry configured to provide the control signal to the matrix computation unit.

13 . The system of claim 12 , wherein the circuitry of the sequencer comprises decrement circuitry configured to decrement, at each clock cycle, a value of the control signal.

14 . A method for performing neural network computations for a neural network having a plurality of neural network layers, the method comprising:

obtaining, by a matrix computation unit, a weight input for a neural network layer of the plurality of neural network layers;

receiving, by the matrix computation unit, a control signal; and

determining, based on the control signal, whether to reuse the weight input for a different neural network layer of the plurality of neural network layers at a subsequent clock cycle.

15 . The method of claim 14 , further comprising, in response to determining to reuse the weight input, shifting the weight input.

16 . The method of claim 14 , further comprising:

obtaining, by the matrix computation unit, an activation input for the neural network layer; and

determining, based on the control signal, whether to reuse the activation input at a subsequent clock cycle.

17 . The method of claim 14 , wherein determining, based on the control signal, whether to reuse the weight input comprises determining that the control signal meets a predetermined value.

18 . A matrix computation unit for performing neural network computations for a neural network having a plurality of neural network layers, the matrix computation unit comprising circuitry configured to:

obtain a weight input for a neural network layer of the plurality of neural network layers;

receive a control signal; and

determine, based on the control signal, whether to reuse the weight input for a different neural network layer of the plurality of neural network layers at a subsequent clock cycle.

19 . The matrix computation unit of claim 18 , wherein the circuitry is further configured to, in response to a determination to reuse the weight input at the subsequent clock cycle, shift the respective weight input.

20 . The matrix computation unit of claim 18 , wherein the circuitry is further configured to:

obtain an activation input for the neural network layer; and

determine, based on the control signal, whether to reuse the activation input at a subsequent clock cycle.