IP Library Granted Patent US 10,637,478
Granted Patent B1
US 10,637,478 · App. 16/530,866 · Granted Apr 28, 2020

Bridged integrated circuits

Inventor: Jonathan Ross (Mountain View, CA)
H03K19/17732H03K19/17744H03K19/17796
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 10,637,478
App. No.
16/530,866
Granted
Apr 28, 2020
Kind
B1
Abstract

Methods, systems, and apparatus, including a system that includes a first integrated circuit chip configured to store application logic for one or more executable applications; and a second integrated circuit chip communicatively coupled to the first integrated circuit chip, the second integrated circuit chip including an instruction decoder configured to decode instructions for executing the one or more executable applications; and a communication interface configured to transmit the decoded instructions to the first integrated circuit chip to execute the one or more executable applications on the first integrated circuit chip.

Claims (65)

1. A system comprising:

a first integrated circuit chip comprising application logic for one or more executable applications; and

a second integrated circuit chip communicatively coupled to the first integrated circuit chip, the second integrated circuit chip comprising:

an instruction decoder configured to decode instructions for executing the one or more executable applications; and

a communication interface configured to transmit the decoded instructions to the first integrated circuit chip to execute the one or more executable applications on the first integrated circuit chip, wherein the first integrated circuit chip is an ASIC (Application-Specific Integrated Circuit), and wherein the second integrated circuit chip is a FPGA (Field-Programmable Gate Array).

2. The system of claim 1 , wherein operations of the ASIC and the FPGA are synchronous.

3. The system of claim 1 , further comprising a data store configured to store the instructions for executing the one or more executable applications on the ASIC, and

wherein the instruction decoder is configured to obtain the instructions from the data store.

4. The system of claim 3 , wherein the data store is integrated in the FPGA.

5. The system of claim 3 , wherein the data store is separate from the FPGA.

6. The system of claim 1 , further comprising:

a circuit board comprising an ASIC socket,

wherein the FPGA is permanently bonded to the circuit board, and

wherein the ASIC is plugged in the ASIC socket.

7. The system of claim 1 ,

wherein the system further comprises multiple sets of SerDes (Serializer/Deserializer), and

wherein the ASIC and the FPGA are communicatively coupled using the multiple sets of SerDes.

8. The system of claim 7 ,

wherein the system further comprises a GPIO (general purpose input/output), and

wherein the ASIC and the FPGA are communicatively coupled using the GPIO to provide an interface for debugging errors in a boot sequence.

9. The system of claim 7 ,

wherein the FPGA further comprises:

a processor;

external I/O interface configured to obtain input data from an external component; and

a buffer configured to store a portion of the input data,

wherein the communication interface of the FPGA is further configured to transmit the input data to the ASIC via the multiple sets of SerDes, and

wherein the ASIC further comprises:

a memory store configured to store (i) the decoded instructions from the FPGA, and (ii) the input data from the FPGA.

10. The system of claim 9 ,

wherein the one or more executable applications include a machine learning model,

wherein the decoded instructions from the FPGA instructs the ASIC to generate, based on the input data and using the machine learning model, output data indicating a type of objects, among multiple types of candidate objects, that is included in the input data, and

wherein the ASIC is configured to transmit the output data to the FPGA via the multiple sets of SerDes.

11. The system of claim 10 , wherein the FPGA is configured to transmit the output data to the external component via the external I/O interface.

12. The system of claim 10 ,

wherein the one or more executable applications include a second machine learning model,

wherein the FPGA is configured to:

determine, based on the output data, that a particular portion of the input data requires additional processing; and

in response to determining that the particular portion of the input data requires additional processing, transmit decoded instructions to instruct the ASIC to generate, based on the particular portion of the input data and using the second machine learning model, second output data.

13. The system of claim 9 ,

wherein the one or more executable applications include a video decoder,

wherein the input data includes an encoded signal, and

wherein the decoded instructions from the FPGA instructs the ASIC to generate, based on the input data and using the video decoder, output data representing a decoded signal, and

wherein the ASIC is configured to transmit the output data to the FPGA via the multiple sets of SerDes.

14. A computer-implemented method, comprising:

obtaining, by a first integrated circuit chip, instructions for executing one or more executable applications stored in a second integrated circuit chip;

decoding, by the first integrated circuit chip, the instructions for executing the one or more executable applications;

transmitting, from the first integrated circuit chip and to the second integrated circuit chip, the decoded instructions and input data for the one or more executable applications;

executing, by the second integrated circuit chip and based on the decoded instructions and the input data, the decoded instructions to execute the one or more executable applications to generate output data; and

transmitting, from the second integrated circuit chip to the first integrated circuit chip, the output data,

wherein the decoded instructions are executed in a deterministic manner such that each decoded instruction is executed at a respective predetermined timing.

15. The method of claim 14 , wherein operations of the first integrated circuit chip and the second integrated circuit chip are synchronous.

16. The method of claim 14 , wherein transmitting, from the first integrated circuit chip and to the second integrated circuit chip, the input data further comprises:

encrypting, by the first integrated circuit chip, a first portion of the input data using a first key value;

updating, by the first integrated circuit chip, the first key value to generate a second key value;

decrypting, by the second integrated circuit chip the first portion of the encrypted input data using the first key value without receiving the first key value from the first integrated circuit chip;

updating, by the second integrated circuit chip, the first key value to generate the second key value;

encrypting, by the first integrated circuit chip, a second portion of the input data using the second key value; and

decrypting, by the second integrated circuit chip, the second portion of the encrypted input data using the second key value.

17. A method for executing an executable application, the method comprising:

receiving, from a first integrated circuit chip and by a second integrated circuit chip, data representing (i) decoded instructions, (ii) input data for executing one or more executable applications that are stored in the second integrated circuit chip, and (iii) memory locations for storing the decoded instructions and the input data;

storing, by the second integrated circuit chip, the decoded instructions and the input data at the memory locations;

obtaining, by the second integrated circuit chip, the decoded instructions and the input data from the memory locations;

executing, by the second integrated circuit chip and based on (i) the decoded instructions, (ii) the input data, and (iii) application logic for the one or more executable applications to generate output data; and

transmitting, from the second integrated circuit chip to the first integrated circuit chip, the output data.

18. The method of claim 17 , wherein operations of the first integrated circuit chip and the second integrated circuit chip are synchronous.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2021
From: X DEVELOPMENT LLC
To: GOOGLE LLC
Reel/Frame 057353/0295 →
EMPLOYMENT AGREEMENT Recorded May 4, 2021
From: ROSS, JONATHAN
To: X DEVELOPMENT LLC
Reel/Frame 056135/0670 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 12, 2020
From: ROSS, JONATHAN
To: GOOGLE INC.
Reel/Frame 052923/0099 →
ENTITY CONVERSION Recorded Jun 12, 2020
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 053581/0427 →
Continuity (2)
Continuation In Part 15811191 · Nov 13, 2017
Provisional Application 62423350 · Nov 17, 2016