IP Library Patent Application 18779442
Patent Application
App. No. 18/779,442

Reconfigurable Processing Element for a Systolic Array

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 None
App. No.
18/779,442
Abstract

A reconfigurable processing element for a systolic array that is configurable for multiplying a first matrix with a second matrix to determine a result matrix in a weight stationary mode or in an output stationary mode is presented. Furthermore, a systolic array for performing matrix multiplication of a first matrix and a second matrix to determine a result matrix is presented that includes a plurality of reconfigurable processing elements that are configurable for operating in a weight stationary mode or in an output stationary mode. Moreover, a method of operating a reconfigurable processing element for a systolic array that is configured for performing matrix multiplication of a first matrix and a second matrix to determine a result matrix in a weight stationary mode or in an output stationary mode is presented.

Claims (63)

1 . A reconfigurable processing element for a systolic array that is configurable for multiplying a first matrix with a second matrix to determine a result matrix in a weight stationary mode or in an output stationary mode, comprising:

first and second input ports;

first and second multiplexer circuitry;

an internal register;

a multiplier circuit that generates a product of a number of the first matrix received from the first input port and a number of the second matrix received from the first multiplexer circuitry, wherein the first multiplexer circuitry routes the number of the second matrix from the internal register to the multiplier circuit in the weight stationary mode and from the second input port to the multiplier circuit in the output stationary mode based on a control signal; and

an adder circuit that generates a sum of the product received from the multiplier circuit and a number of a partially determined element of the result matrix received from the second multiplexer circuitry, wherein the second multiplexer circuitry routes the number of the partially determined element of the result matrix from the second input port to the adder circuit in the weight stationary mode and from the internal register to the adder circuit in the output stationary mode based on the control signal.

2 . The reconfigurable processing element of claim 1 , further comprising:

an output port; and

an output register coupled to the output port that receives the number of the first matrix from the first input port.

3 . The reconfigurable processing element of claim 1 , further comprising:

third multiplexer circuitry that provides as a selected signal the sum from the adder circuit in the weight stationary mode and the number of the second matrix from the second input port in the output stationary mode based on the control signal.

4 . The reconfigurable processing element of claim 3 , further comprising:

an output port; and

an output register coupled to the output port that receives the selected signal from the third multiplexer circuitry.

5 . The reconfigurable processing element of claim 1 , further comprising:

third multiplexer circuitry coupled to the internal register that routes the number of the second matrix from the second input port to the internal register in the weight stationary mode and the sum from the adder circuit to the internal register in the output stationary mode based on the control signal.

6 . The reconfigurable processing element of claim 5 , wherein the internal register comprises a plurality of one-bit registers, and wherein the number of the second matrix is stored in at most half of the plurality of one-bit registers in the weight stationary mode.

7 . The reconfigurable processing element of claim 6 , wherein the internal register is enabled for receiving the number of the second matrix in the weight stationary mode only during a load phase.

8 . The reconfigurable processing element of claim 1 , wherein the first input port has a first bit width and the second input port has a second bit width, and wherein the second bit width is at least twice as large as the first bit width.

9 . The reconfigurable processing element of claim 8 , wherein the number of the second matrix uses the least significant bits of the second bit width.

10 . The reconfigurable processing element of claim 1 , wherein the second multiplexer circuitry comprises at least twice as many two input multiplexers as the first multiplexer circuitry.

11 . The reconfigurable processing element of claim 1 , further comprising:

a configuration storage circuit that stores the control signal.

12 . A systolic array for performing matrix multiplication of a first matrix and a second matrix to determine a result matrix, comprising:

a plurality of reconfigurable processing elements that are configurable for operating in a weight stationary mode or in an output stationary mode, wherein each one of a first, second, third, fourth, and fifth reconfigurable processing element of the plurality of reconfigurable processing elements comprises:

first and second input ports;

first and second multiplexer circuitry;

an internal register;

a multiplier circuit; and

an adder circuit, and wherein in the third reconfigurable processing element:

the multiplier circuit generates a product of a number of the first matrix received from the first input port and a number of the second matrix received from the first multiplexer circuitry, wherein the first multiplexer circuitry routes the number of the second matrix from the internal register to the multiplier circuit in the weight stationary mode and from the second input to the multiplier circuit in the output stationary mode based on a control signal; and

the adder circuit generates a sum of the product received from the multiplier circuit and a number of a partially determined element of the result matrix received from the second multiplexer circuitry, wherein the second multiplexer circuitry routes the number of the partially determined element of the result matrix from the second input port to the adder circuit in the weight stationary mode and from the internal register to the adder circuit in the output stationary mode based on the control signal.

13 . The systolic array of claim 12 , wherein each one of the first, second, third, fourth, and fifth reconfigurable processing element further comprises:

first and second output ports;

first and second output registers; and

third multiplexer circuitry, and wherein in the third reconfigurable processing element:

the first output register is coupled to the first output port and receives the number of the first matrix from the first input port;

the second output register is coupled to the second output port; and

the third multiplexer circuitry routes the sum from the adder circuit to the second output register in the weight stationary mode and the number of the second matrix from the second input port to the second output register in the output stationary mode based on the control signal.

14 . The systolic array of claim 13 , wherein:

the first input port of the third reconfigurable processing element is coupled to the first output port of the second reconfigurable processing element;

the second input port of the third reconfigurable processing element is coupled to the second output port of the first reconfigurable processing element;

the first output port of the third reconfigurable processing element is coupled to the first input port of the fourth reconfigurable processing element; and

the second output port of the third reconfigurable processing element is coupled to the second input port of the fifth reconfigurable processing element.

15 . The systolic array of claim 12 , wherein each one of the first, second, third, fourth, and fifth reconfigurable processing element further comprises:

third multiplexer circuitry coupled to the internal register; and wherein in the third reconfigurable processing element:

the third multiplexer circuitry routes the number of the second matrix from the second input port to the internal register in the weight stationary mode and the sum from the adder circuit to the internal register in the output stationary mode based on the control signal; and

the internal register is enabled for receiving the number of the second matrix in the weight stationary mode only during a load phase.

16 . The systolic array of claim 12 , wherein in each one of the first, second, third, fourth, and fifth reconfigurable processing element:

the first input port has a first bit width and the second input port has a second bit width that is at least twice as large as the first bit width; and

the second multiplexer circuitry comprises at least twice as many two input multiplexers as the first multiplexer circuitry.

17 . A method of operating a reconfigurable processing element for a systolic array that is configured for performing matrix multiplication of a first matrix and a second matrix to determine a result matrix in a weight stationary mode or in an output stationary mode, wherein the reconfigurable processing element comprises first and second input ports, first and second multiplexer circuitry, an internal register, a multiplier circuit, and an adder circuit, comprising:

with the first multiplexer circuitry, routing a number of the second matrix from the internal register to the multiplier circuit in the weight stationary mode and from the second input port to the multiplier circuit in the output stationary mode based on a control signal;

with the multiplier circuit, generating a product of a number of the first matrix received from the first input port and the number of the second matrix received from the first multiplexer circuitry;

with the second multiplexer circuitry, routing a number of a partially determined element of the result matrix from the second input port to the adder circuit in the weight stationary mode and from the internal register to the adder circuit in the output stationary mode based on the control signal; and

with the adder circuit, generating a sum of the product received from the multiplier circuit and the number of the partially determined element of the result matrix received from the second multiplexer circuitry.

18 . The method of claim 17 , wherein the reconfigurable processing element further comprises first and second output registers, and third multiplexer circuitry, further comprising:

with the first output register, receiving the number of the first matrix from the first input port; and

with the third multiplexer circuitry, routing the sum from the adder circuit to the second output register in the weight stationary mode and the number of the second matrix from the second input port to the second output register in the output stationary mode based on the control signal.

19 . The method of claim 17 , wherein the reconfigurable processing element further comprises third multiplexer circuitry coupled to the internal register, further comprising:

with the third multiplexer circuitry, routing the number of the second matrix from the second input port to the internal register in the weight stationary mode and the sum from the adder circuit to the internal register in the output stationary mode based on the control signal.

20 . The method of claim 19 , further comprising:

enabling a write operation to the internal register for receiving the number of the second matrix in the weight stationary mode only during a load phase.

Assignments (2)
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Apr 18, 2025
From: SAMBANOVA SYSTEMS, INC.
To: SILICON VALLEY BANK, A DIVISION OF FIRST-CITIZENS BANK & TRUST COMPANY, AS AGENT
Reel/Frame 070892/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 16, 2024
From: GOTTSCHO, MARK WILLIAM; FARAHINI, NASIM; PRABHAKAR, RAGHU; ZEFFER, HAKAN
To: SAMBANOVA SYSTEMS, INC.
Reel/Frame 068900/0875 →