IP Library Granted Patent US 11,088,694
Granted Patent B1
US 11,088,694 · App. 16/827,409 · Granted Aug 10, 2021

Application specific integrated circuit accelerators

Inventors: Michial Allen Gunter (Oakland, CA); Charles Henry Leichner, IV (Palo Alto, CA); Tammo Spalink (Mountain View, CA)
Assignee: X Development LLC
H03K19/17744G06F15/8046G06F15/8053G06N3/04G06N3/063G06N3/082H03K19/017509H03K19/017545H03K19/017581H03K19/1774G06F2015/763
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,088,694
App. No.
16/827,409
Granted
Aug 10, 2021
Kind
B1
Abstract

An application specific integrated circuit (ASIC) chip includes: a systolic array of cells; and multiple controllable bus lines configured to convey data among the systolic array of cells, in which the systolic array of cells is arranged in multiple tiles, each tile of the multiple tiles including 1) a corresponding subarray of cells of the systolic array of cells, 2) a corresponding subset of controllable bus lines of the multiple controllable bus lines, and 3) memory coupled to the subarray of cells.

Claims (31)

1. An integrated circuit comprising:

a systolic array of cells, wherein each cell of the systolic array of cells comprises circuitry configured to perform a multiply-accumulate computation, and

wherein the systolic array of cells is arranged in a plurality of subarrays of cells, wherein the plurality of subarrays of cells is arranged as a grid extending along at least a first direction;

a plurality of memory circuits,

wherein each memory circuit of the plurality of memory circuits is arranged adjacent to a different respective subarray of cells of the plurality of subarrays of cells, wherein each memory circuit of the plurality of memory circuits is coupled to the different respective subarray of cells by a corresponding set of controllable bus lines, wherein each memory circuit of the plurality of memory circuits comprises a plurality of RAM, and

wherein, for each memory circuit of the plurality of memory circuits, the corresponding set of controllable bus lines comprises control circuitry configured to switch between (i) transferring data between the memory circuit and the respective subarray of cells and (ii) transferring data to another set of controllable bus lines, and

a vector processing unit configured to receive output data from one or more subarrays of the plurality of subarrays of cells and to compute vector arithmetic computation output values based on the output data,

wherein a first subset of the plurality of subarrays of cells is arranged in a first section on a first side of the vector processing unit, and a second subset of the plurality of subarrays of cells is arranged in a second section on a second side of the vector processing unit that is opposite to the first side of the vector processing unit.

2. The integrated circuit of claim 1 , wherein each cell of the systolic array of cells comprises at least one register.

3. The integrated circuit of claim 1 , wherein the output data comprises an accumulated value from a plurality of multiply-accumulate operations.

4. The integrated circuit of claim 1 , wherein, for each subarray of cells of the plurality of subarrays of cells, activation input values and weight values are stored in the memory circuit for the respective subarray of cells.

5. The integrated circuit of claim 4 , wherein the activation input values and the weight values are associated with a neural network model.

6. The integrated circuit of claim 4 , wherein, for each subarray of cells of the plurality of subarrays of cells, operation instructions for the subarray of cells tile are stored in the memory circuit for the respective subarray of cells.

7. The integrated circuit of claim 6 , wherein the operation instructions for the subarray of cells comprise reading and writing operation instructions for the subarray of cells.

8. The integrated circuit of claim 1 , wherein the first subset of the plurality of subarrays of cells comprises a first half of the systolic array of cells, and the second subset of the plurality of comprises a second half of the systolic array of cells.

9. The integrated circuit of claim 1 , wherein the vector processing unit comprises circuitry arranged in a plurality of segments, wherein each segment is configured to process data received from at least one corresponding subarray of cells of the plurality of subarrays of cells.

10. The integrated circuit of claim 1 , wherein the first subset of the plurality of subarrays of cells comprises a first row comprising multiple columns of subarrays of cells,

wherein the second subset of the plurality of subarrays of cells comprises a second row comprising multiple columns of subarrays of cells,

wherein the vector processing unit comprises a third row comprising multiple columns of circuit segments, each circuit segment comprising circuitry configured to compute a corresponding vector computation output,

wherein each segment of the vector processing unit is aligned with and configured to receive first data from a corresponding column from the first subset of the plurality of subarray of cells, and

wherein each segment of the vector processing unit is aligned with and configured to receive second data from a corresponding column from the second subset of the plurality of subarray of cells.

11. The integrated circuit of claim 10 , wherein the first data comprises first accumulated values from multiply-accumulate operations performed by at least one subarray of cells within the corresponding column from the first subset of the plurality of subarray of cells, and

wherein the second data comprises second accumulated values from multiply-accumulate operations performed by at least one subarray of cells within the corresponding column from the second subset of the plurality of subarray of cells.

12. The integrated circuit of claim 11 , wherein the vector processing unit comprises 32 segments, the first row comprises 32 columns, and the second row comprises 32 columns.

13. The integrated circuit of claim 1 , wherein each subarray of cells comprises 256 cells.

14. The integrated circuit of claim 1 , wherein each subarray of cells comprises a same number of cells.

15. The integrated circuit of claim 1 , wherein each subarray of cells comprises a same subarray size.

16. The integrated circuit of claim 1 , wherein the RAM is SRAM.

17. The integrated circuit of claim 1 , wherein the control circuitry comprises a multiplexer, a demultiplexer, or a combination of a multiplexer and a demultiplexer.

18. The integrated circuit of claim 17 , wherein the control circuitry comprises a flip-flop.

19. The integrated circuit of claim 1 , wherein transferring data to another set of controllable bus lines is arranged to occur along the first direction.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2021
From: X DEVELOPMENT LLC
To: GOOGLE LLC
Reel/Frame 057353/0295 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2020
From: GUNTER, MICHIAL ALLEN; LEICHNER IV, CHARLES HENRY; SPALINK, TAMMO
To: X DEVELOPMENT LLC
Reel/Frame 052521/0698 →
Continuity (2)
Continuation 16042839 · Jul 23, 2018
Provisional Application 62535652 · Jul 21, 2017
Cited By (5)
US 12,423,058 US 12,517,700 US 12,645,425 US 12,663,966 US 12,681,693