IP Library Granted Patent US 11,829,321
Granted Patent B2
US 11,829,321 · App. 17/703,479 · Granted Nov 28, 2023

General-purpose systolic array

Inventors: Reginald Clifford Young (Palo Alto, CA); Trevor Gale (Boston, MA); Sushma Honnavara-Prasad (Los Gatos, CA); Paolo Mantovani (New York, NY)
Assignee: Google LLC
G06F15/8046G06F15/8069G06F15/8084
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 11,829,321
App. No.
17/703,479
Granted
Nov 28, 2023
Kind
B2
Abstract

A systolic array cell is described, the cell including two general-purpose arithmetic logic units (ALUs) and register-file. A plurality of the cells may be configured in a matrix or array, such that the output of the first ALU in a first cell is provided to a second cell to the right of the first cell, and the output of the second ALU in the first cell is provided to a third cell below the first cell. The two ALUs in each cell of the array allow for processing of a different instruction in each cycle.

Claims (41)

1. A systolic cell, comprising:

a crossbar switch;

a first arithmetic logic unit (ALU) coupled to a first output of the crossbar switch;

a second ALU coupled to a second output of the crossbar switch; and

a register file configured to:

receive, as input to the register file, output from the first ALU and the second ALU; and

provide, as output from the register file, input to the crossbar switch.

2. The systolic cell of claim 1 , wherein the crossbar switch is configured to receive, as input to the crossbar switch, output from one or more adjacent systolic cells.

3. The systolic cell of claim 1 , wherein at least one of the first or second ALUs comprises a multiplier.

4. The systolic cell of claim 1 , further comprising a multiplexer coupled to the input to the register file and the outputs from the first ALU and the second ALU.

5. The systolic cell of claim 1 , wherein the crossbar switch is a 4×4 crossbar switch, configured to receive two inputs from the register file and two inputs from adjacent cells, and to provide two outputs to the first ALU and two outputs to the second ALU.

6. The systolic cell of claim 1 , further comprising a third arithmetic logic unit coupled between the crossbar switch and the register file.

7. A systolic array, comprising:

a plurality of cells arranged such that a first output of a first cell is provided as input to a second adjacent cell, and a second output of the first cell is provided as input to a third adjacent cell, wherein each cell comprises:

a crossbar switch;

a plurality of arithmetic logic units (ALUs) coupled to outputs of the crossbar switch; and

a register file configured to:

receive, as input to the register file, output from the plurality of ALUs; and

provide, as output from the register file, input to the crossbar switch.

8. The systolic array of claim 7 , wherein at least one of the plurality of cells further comprises a multiplexer coupled to the input to the register file and the outputs of the plurality of ALUs.

9. The systolic array of claim 7 , wherein at least one of the plurality of ALUs comprises a multiplier.

10. The systolic array of claim 7 , wherein the plurality of ALUs comprises a first ALU coupled to a first output of a crossbar switch of the first cell and a second ALU coupled to a second output of the crossbar switch of the first cell.

11. The systolic array of claim 10 , wherein a crossbar switch of a fourth cell of the plurality of cells is configured to receive, as input to the crossbar switch of the fourth cell, output from the first ALU of the third adjacent cell and output from the second ALU of the second adjacent cell.

12. The systolic array of claim 7 , wherein the systolic array is configured to receive two source vectors and produce at least one result vector per cycle.

13. A computing system, comprising:

one or more memories;

one or more processors in communication with the one or more memories;

a plurality of cells in communication with the one or more processors, the plurality of cells arranged such that a first output of a first cell is provided as input to a second adjacent cell, and a second output of the first cell is provided as input to a third adjacent cell, wherein each cell comprises:

a crossbar switch;

a plurality of arithmetic logic units (ALUs) coupled to outputs of the crossbar switch; and

a register file configured to:

receive, as input to the register file, output from the one or more ALUs; and

provide, as output from the register file, input to the crossbar switch.

14. The computing system of claim 13 , wherein the one or more processors comprise at least one of a scalar core and a vector processing unit.

15. The computing system of claim 13 , wherein the one or more memories comprise a vector data cache.

16. The computing system of claim 13 , further comprising a sequencer configured to control instructions sent to the one or more processors and the plurality of cells.

17. The computing system of claim 13 , wherein the systolic array is configured to receive two source vectors and produce at least one result vector per cycle.

18. The computing system of claim 13 , wherein at least one of the plurality of cells further comprises a multiplexer coupled to the input to the register file and the outputs of the plurality of ALUs.

19. The computing system of claim 13 , wherein each crossbar switch is configured to receive, as input to the crossbar switch, output from one or more adjacent cells.

20. The computing system of claim 13 , wherein at least one of the plurality of ALUs comprises a multiplier.

21. The computing system of claim 13 , wherein the plurality of ALUs comprises a first ALU coupled to a first output of a crossbar switch of the first cell and a second ALU coupled to a second output of the crossbar switch of the first cell.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2025
From: GOOGLE LLC
To: GDM HOLDING LLC
Reel/Frame 071109/0342 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2023
From: HONNAVARA-PRASAD, SUSHMA
To: GOOGLE LLC
Reel/Frame 062686/0972 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 25, 2022
From: YOUNG, REGINALD CLIFFORD; GALE, TREVOR; PRASAD, SUSHMA HONNAVARA; MANTOVANI, PAOLO
To: GOOGLE LLC
Reel/Frame 059402/0705 →