IP Library › Granted Patent US 11,086,574
Granted Patent B2
US 11,086,574 · App. 16/831,423 · Granted Aug 10, 2021

Machine perception and dense algorithm integrated circuit

Inventors: Nigel Drego (Burlingame, CA); Aman Sikka (Burlingame, CA); Mrinalini Ravichandran (Burlingame, CA); Ananth Durbha (Burlingame, CA); Robert Daniel Firu (Burlingame, CA); Veerbhan Kheterpal (Burlingame, CA)
Assignee: quadric.io, Inc.
G06F3/0688G06F3/0655G06F3/0685G06F30/36
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,086,574
App. No.
16/831,423
Granted
Aug 10, 2021
Kind
B2
Abstract

A circuit that includes a plurality of array cores, each array core of the plurality of array cores comprising: a plurality of distinct data processing circuits; and a data queue register file; a plurality of border cores, each border core of the plurality of border cores comprising: at least a register file, wherein: [i] at least a subset of the plurality of border cores encompasses a periphery of a first subset of the plurality of array cores; and [ii] a combination of the plurality of array cores and the plurality of border cores define an integrated circuit array.

Claims (71)

1. An integrated circuit comprising:

a first plurality of processing cores and a second plurality of processing cores that define an array of cores within the integrated circuit;

data handling circuitry that interface with one or more memory circuits; and

a subset of the first plurality of processing cores being arranged between the data handling circuitry and the second plurality of processing cores, wherein a circuitry of each of the second plurality of processing cores includes:

a register file; and

a plurality of distinct data processing circuits comprising a plurality of multiply accumulators, each of the plurality of multiply accumulators being arranged adjacent a data input/output port of a respective processing core of the second plurality of processing cores.

2. The integrated circuit according to claim 1 , wherein

the first plurality of processing cores:

(a) accepts data into the array of cores and

(b) transmits data out of the array of cores.

3. The integrated circuit according to claim 1 , wherein

the data handling circuitry:

(a) are arranged outside of the array of cores;

(b) transmits input data from the one or more memory circuits into the first plurality of processing cores; and

(c) accepts output data from the first plurality of processing cores.

4. The integrated circuit according to claim 1 , wherein

each processing core of the second plurality of processing cores interfaces with one or more processing cores of the first plurality of processing cores and one or more neighboring processing cores of the second plurality of cores.

5. The integrated circuit according to claim 1 , wherein

the second plurality of processing cores:

(a) accepts input data from the first plurality of processing cores;

(b) processes the input data;

(c) transmits the processed input data as output data to the first plurality of processing cores.

6. The integrated circuit according to claim 1 , wherein

a subset of the second plurality of processing cores is encompassed entirely by neighboring cores of the second plurality of processing cores.

7. The integrated circuit according to claim 6 , wherein

a distinct subset of the second plurality of processing cores is encompassed by one or more of the second plurality of processing cores and one or more of the first plurality of processing cores.

8. The integrated circuit according to claim 1 , wherein

a circuitry architecture of the first plurality of processing cores is distinct from a circuitry architecture of the second plurality of processing cores.

9. The integrated circuit according to claim 1 , wherein

each processing core of the second plurality of processing cores includes:

a plurality of data input/output ports, wherein a data input/output port of the plurality of data input/output ports is arranged at each side of each processing core of the second plurality of processing cores,

wherein each of the data input/output ports of a given processing core of the second plurality of processing cores interfaces with one or more of the register file and another data input/output port of the given processing core.

10. The integrated circuit according to claim 1 ,

a circuitry of the first plurality of processing cores include:

a register file; and

a plurality of data input/output ports, wherein a data input/output port of the plurality of data input/output ports is arranged at each side of each processing core of the second plurality of processing cores,

wherein each of the data input/output ports of a given processing core of the first plurality of processing cores interfaces with one or more of the register file and another data input/output port of the given processing core.

11. The integrated circuit according to claim 1 , wherein

a propagation of input data within the integrated circuit includes passing the input data from the data handling circuitry into one or more of the plurality of first processing cores and passing the input data from the one or more of the plurality of first processing cores into one or more of the second plurality of processing cores that performs one or more computations against the input data.

12. The integrated circuit according to claim 1 , wherein

a propagation of output data within the integrated circuit includes after a processing of input data by the second plurality of processing cores, passing the output data from one or more of the second plurality of processing cores into one or more of the first plurality of processing cores, and passing the output data from the first plurality of processing cores into the data handling circuitry arranged outside of the array of cores.

13. The integrated circuit according to claim 1 , wherein

the data handling circuitry controls a movement of data between the array of cores and a hierarchical memory structure of the integrated circuit.

14. The integrated circuit according to claim 13 , wherein

the hierarchical memory structure enables direct memory access between a main memory and array of cores, the hierarchical memory structure includes:

a plurality of dual FIFOs that transmit and accept data on a first-in, first-out basis,

a plurality of periphery load stores that each interface with a respective dual FIFO of the plurality of dual FIFOs and store one or more loads of data that is either received from the respective dual FIFO or that is pending a loading into the respective dual FIFO, and

a plurality of periphery memory that each interface with a respective periphery load store of the plurality of periphery load stores and interfaces with the main memory.

15. The integrated circuit according to claim 1 , wherein

the hierarchical memory structure being implemented as a two-dimensional direct memory access enabling data access and data reshaping during data transfers.

16. The integrated circuit according to claim 1 , further comprising:

a dispatch controller comprising:

a compute instructions generator circuit that provides computation instructions for each of the second plurality of processing cores; and

a data movement generator circuit that provides a data flow schedule that defines predetermined movements of data within the integrated circuit.

17. The integrated circuit according to claim 1 , further comprising:

a broadcast bus arranged in electrical communication with the data handling circuits at a first input terminal of the broadcast bus and in electrical communication with a subset of the array of cores at a plurality of output terminals of the broadcast bus.

18. An integrated circuit comprising:

a first plurality of processing cores and a second plurality of processing cores that define an array of cores within the integrated circuit;

data handling circuitry that interface with one or more memory circuits, wherein the data handling circuitry controls a movement of data between the array of cores and a hierarchical memory structure of the integrated circuit;

a subset of the first plurality of processing cores being arranged between the data handling circuitry and the second plurality of processing cores; and

a hierarchical memory structure that enables direct memory access between a main memory and array of cores, the hierarchical memory structure includes:

a plurality of dual FIFOs that transmit and accept data on a first-in, first-out basis,

a plurality of periphery load stores that each interface with a respective dual FIFO of the plurality of dual FIFOs and store one or more loads of data that is either received from the respective dual FIFO or that is pending a loading into the respective dual FIFO, and

a plurality of periphery memory that each interface with a respective periphery load store of the plurality of periphery load stores and interfaces with the main memory.

19. An integrated circuit comprising:

a first plurality of processing cores and a second plurality of processing cores that define an array of cores within the integrated circuit;

data handling circuitry that interface with one or more memory circuits; and

a subset of the first plurality of processing cores being arranged between the data handling circuitry and the second plurality of processing cores;

a dispatch controller comprising:

a compute instructions generator circuit that provides computation instructions for each of the second plurality of processing cores; and

a data movement generator circuit that provides a data flow schedule that defines predetermined movements of data within the integrated circuit.

Assignments (2)
SECURITY INTEREST Recorded Apr 3, 2025
From: QUADRIC, INC.
To: DECATHLON ALPHA V, L.P.
Reel/Frame 070722/0441 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2020
From: DREGO, NIGEL; SIKKA, AMAN; RAVICHANDRAN, MRINALINI; DURBHA, ANANTH; FIRU, ROBERT DANIEL; KHETERPAL, VEERBHAN
To: QUADRIC.IO, INC.
Reel/Frame 052257/0532 →
Continuity (5)
Continuation 16590999 · Oct 2, 2019
Continuation 16439988 · Jun 13, 2019
Continuation 16290064 · Mar 1, 2019
Provisional Application 62640478 · Mar 8, 2018
Related Publication 20200225884A1 · Jul 16, 2020