IP Library › Granted Patent US 11,474,557
Granted Patent B2
US 11,474,557 · App. 17/021,746 · Granted Oct 18, 2022

Multichip timing synchronization circuits and methods

Inventors: Gregory Michael Thorson (Palo Alto, CA); Srivathsa Dhruvanarayan (Saratoga, CA)
Assignee: GROQ, INC.
G06F1/12G06N5/02
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,474,557
App. No.
17/021,746
Granted
Oct 18, 2022
Kind
B2
Abstract

In one embodiment, the present disclosure includes multichip timing synchronization circuits and methods. In one embodiment, hardware counters in different systems are synchronized. Programs on the systems may include synchronization instructions. A second system executes synchronization instruction, and in response thereto, synchronizes a local software counter to a local hardware counter. The software counter on the second system may be delayed a fixed period of time corresponding to a program delay on the first system. The software counter on the second system may further be delayed by an offset to bring software counters on the two systems into sync.

Claims (50)

1. A method performed by a slave system, the method comprising:

receiving a timing reference from a master system;

synchronizing a first counter of the slave system with a first counter of the master system in response to the timing reference;

synchronizing a second counter of the slave system with the first counter of the slave system in response to at least one timing marker reached by a program executing on the slave system to synchronize the program executing on the slave system with a program executing on the master system;

upon synchronizing the program executing on the slave system with the program executing on the master system, transmitting another timing reference to another slave system for synchronizing a first counter of the other slave system with the first counter of the slave system; and

synchronizing a second counter of the other slave system with the first counter of the other slave system in response to one or more timing markers reached by a program executing on the other slave system to synchronize the program executing on the other slave system with the program executing on the slave system.

2. The method of claim 1 , further comprising:

upon synchronizing the program executing on the slave system with the program executing on the master system, initiating synchronization of the program executing on the other slave system coupled to the slave system with the program executing on the slave system.

3. The method of claim 1 , wherein the program executing on the slave system and the program executing on the master system comprise a plurality of timing markers executing on a plurality of same cycles in each program.

4. The method of claim 1 , wherein the program executing on the slave system and the program executing on the master system are generated by a compiler.

5. The method of claim 1 , wherein the program executing on the slave system and the program executing on the master system are components of a deterministic program that is part of an artificial intelligence algorithm.

6. The method of claim 1 , wherein synchronizing the second counter of the slave system comprises delaying the second counter of the slave system by a nominal amount plus an offset.

7. The method of claim 6 , wherein:

the nominal amount comprises a fixed delay of a second counter of the master system synchronized with the first counter of the master system; and

the offset comprises a difference between a value in the first counter of the slave system and a value in the second counter of the slave system.

8. The method of claim 1 , further comprising:

receiving the timing reference embedded with data transmitted from the master system.

9. The method of claim 1 , further comprising:

receiving a coarse tune trigger from the master system;

resetting and starting a third counter of the slave system, in response to the coarse tune trigger; and

setting the second counter of the slave system to a fixed delay adjusted by the third counter to bring the second counter of the slave system and a second counter of the master system into coarse alignment.

10. The method of claim 1 , wherein:

the program executing on the slave system stops execution until the second counter of the slave system reaches zero; and

the program executing on the master system stops execution until a second counter of the master system reaches zero.

11. A slave system comprising:

an interface circuit configured to receive a timing reference from a first counter of a master system;

a first counter of the slave system configured to synchronize with the first counter of the master system in response to the timing reference; and

a second counter of the slave system configured to synchronize with the first counter of the slave system in response to at least one timing marker reached by a program executing on the slave system to synchronize the program executing on the slave system with a program executing on the master system, wherein

the interface circuit is further configured to, upon synchronizing the program executing on the slave system with the program executing on the master system, transmit another timing reference to another slave system for synchronizing a first counter of the other slave system with the first counter of the slave system, and

the second counter of the other slave system is synchronized with the first counter of the other slave system in response to one or more timing markers reached by a program executing on the other slave system to synchronize the program executing on the other slave system with the program executing on the slave system.

12. The slave system of claim 11 , wherein the interface circuit is further configured to, upon synchronizing the program executing on the slave system with the program executing on the master system, initiate synchronization of the program executing on the other slave system coupled to the slave system with the program executing on the slave system.

13. The slave system of claim 11 , wherein the program executing on the slave system and the program executing on the master system comprise a plurality of timing markers executing on a plurality of same cycles in each program.

14. The slave system of claim 11 , wherein:

the second counter of the slave system is configured to synchronize with the first counter of the slave system by delaying the second counter of the slave system by a nominal amount plus an offset;

the nominal amount comprising a fixed delay of a second counter of the master system synchronized with the first counter of the master system; and

the offset comprising a difference between a value in the first counter of the slave system and a value in the second counter of the slave system.

15. The slave system of claim 11 , wherein the interface circuit is further configured to receive the timing reference embedded with data transmitted from the master system.

16. A multichip system comprising:

a master system configured to transmit a timing reference;

a slave system configured to:

receive the timing reference from the master system,

synchronize a first counter of the slave system with a first counter of the master system in response to the timing reference,

synchronize a second counter of the slave system with the first counter of the slave system in response to at least one timing marker reached by a program executing on the slave system to synchronize the program executing on the slave system with a program executing on the master system, and

upon synchronizing the program executing on the slave system with the program executing on the master system, transmit another timing reference to another slave system; and

the other slave system configured to:

receive the other timing reference from the slave system,

synchronize a first counter of the other slave system with the first counter of the slave system in response to the other timing reference, and

synchronize a second counter of the other slave system with the first counter of the other slave system in response to one or more timing markers reached by a program executing on the other slave system to synchronize the program executing on the other slave system with the program executing on the slave system.

17. The multichip system of claim 16 , wherein the slave system is further configured to:

upon synchronizing the program executing on the slave system with the program executing on the master system, initiate synchronization of the program executing on the other slave system with the program executing on the slave system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2020
From: THORSON, GREGORY MICHAEL; DHRUVANARAYAN, SRIVATHSA
To: GROQ, INC.
Reel/Frame 053785/0911 →
Continuity (2)
Continuation 16247053 · Jan 14, 2019
Related Publication 20210004043A1 · Jan 7, 2021
Cited By (1)
US 12,277,444