IP Library Granted Patent US 12,399,860
Granted Patent B2
US 12,399,860 · App. 18/739,272 · Granted Aug 26, 2025

Two-level arbitration in a computing system

Inventors: Manish K. Shah (Austin, TX); John Philipp Baxley (Arlington, VA)
Assignee: SambaNova Systems, Inc.
G06F15/7867
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 12,399,860
App. No.
18/739,272
Granted
Aug 26, 2025
Kind
B2
Abstract

A computing system includes a first network, a second network, multiple first agents connected to the first network, multiple second agents connected to the second network, and an interface circuit interconnecting the two networks. The interface circuit includes multiple request queues, a first arbiter for selecting requests from the second agents for transactions on the first network and entering them into the request queues, and credit counters associated with the first agents. A second arbiter selects requests from the oldest entry of each request queue based on the credit counters, sends transactions over the first network, and removes the selected requests from their respective queues. This system efficiently manages communication between the first and second networks, enhancing overall system performance.

Claims (52)

1. A computing system comprising:

a first network and a second network;

a plurality of first agents coupled to the first network;

a plurality of second agents coupled to the second network; and

an interface circuit coupled between the first network and the second network, interface circuit comprising:

a plurality of request queues;

a first arbiter configured to select a request from requests for transactions on the first network received from the plurality of second agents over the second network, and enter the selected request into a request queue of the plurality of request queues;

a plurality of credit counters associated with respective first agents of the plurality of first agents; and

a second arbiter configured to choose a request from an oldest entry of each request queue of the plurality of request queues based on the plurality of credit counters, send a transaction based on the chosen request over the first network, and remove the chosen request from its respective request queue.

2. The computing system of claim 1 , the interface circuit further comprising:

queue depth check logic configured to track respective depths of the plurality of request queues and provide information about the respective depths of the plurality of request queues to the first arbiter; and

the first arbiter further configured to select the request from the received requests for transactions based on the information from the queue depth check logic.

3. The computing system of claim 1 , the interface circuit further comprising a plurality of links configured to receive, from the plurality of second agents over the second network, the requests for transactions on the first network, wherein the plurality of request queues are associated with respective links of the plurality of links.

4. The computing system of claim 3 , the first arbiter further configured to select the request from pending requests received by links in the plurality of links that have an associated request queue having a depth less than a predetermined value.

5. The computing system of claim 3 , the first arbiter further configured to select a first request received by a first link as the selected request and enter the first request into a first request queue associated with the first link only if the first request queue has a depth less than a predetermined value;

wherein the first request is included in the requests for transactions received by the plurality of links from the plurality of second agents over the second network, the first link is included in the plurality of links, and the first request queue is included in the plurality of request queues.

6. The computing system of claim 5 , wherein the predetermined value is equal to a number of locations in the first request queue.

7. The computing system of claim 1 , the interface circuit further comprising:

address translation circuitry to translate a virtual address of the selected request into a physical address and a destination ID that identifies a destination agent on the first network for the selected request, the destination agent included in the plurality of first agents; and

the first arbiter further configured to enter the physical address and the destination ID into the request queue.

8. The computing system of claim 7 , the interface circuit further comprising:

credit check logic to tag the oldest entry of each request queue of the plurality of request queues based on the destination agent identified by the destination ID entered into the respective oldest entry and a credit counter of the plurality of credit counters associated with the destination agent.

9. The computing system of claim 8 , wherein the tag indicates whether a number of available end-to-end credits for the destination agent exceeds a predetermined threshold.

10. The computing system of claim 1 , the interface circuit further comprising:

credit check logic to tag the oldest entry of each request queue of the plurality of request queues based on a destination agent on the first network of the respective request and a credit counter associated with the destination agent, wherein the tag indicates whether a number of available end-to-end credits for the destination agent exceeds a predetermined threshold.

11. The computing system of claim 10 , the second arbiter configured to choose from only those oldest entries whose tag indicates that the destination agent has a number of available end-to-end credits that exceeds the predetermined threshold.

12. The computing system of claim 1 , the second arbiter further configured to choose from the oldest entries using a round-robin arbitration scheme for the plurality of request queues.

13. The computing system of claim 1 , wherein a first credit counter of the plurality of credit counters associated with a first agent of the plurality of first agents is initialized to zero, incremented in response to sending a first transaction to the first agent over the first network, and decremented in response to receiving a token from the first agent on a credit network of the first network.

14. The computing system of claim 13 , wherein the first credit counter comprises a first request network credit counter, the first transaction is sent over a request network of the first network and the token from the first agent represents end-to-end request credits.

15. A method to arbitrate for a first network in computing system that includes the first network and a second network, a plurality of first agents coupled to the first network, a plurality of second agents coupled to the second network, and an interface circuit coupled between the first network and the second network, the interface circuit having a plurality of request queues, a plurality of credit counters associated with respective first agents of the plurality of first agents, a first arbiter, and a second arbiter, the method comprising:

receiving, at the interface circuit, requests for transactions on the first network from the plurality of second agents over the second network;

selecting, by the first arbiter, a request from the received requests for transactions;

entering the selected request into a request queue of the plurality of request queues;

choosing, by the second arbiter, a chosen request from an oldest entry of each request queue of the plurality of request queues based on the plurality of credit counters;

sending a transaction based on the chosen request over the first network; and

remove the chosen request from its respective request queue.

16. The method of claim 15 , the interface circuit including a plurality of links associated with respective request queues of the plurality of request queues, the method further comprising:

receiving the requests for transactions at the plurality of links;

selecting the request queue for the selected request based on a link of the plurality of links that received the selected request; and

using, by the first arbiter, a round-robin arbitration scheme to select the request from pending requests received by links in the plurality of links that have an associated request queue that is not full.

17. The method of claim 15 , further comprising:

translating a virtual address of the selected request into a physical address and a destination ID that identifies a destination agent on the first network for the selected request, the destination agent included in the plurality of first agents; and

entering the physical address and the destination ID into the request queue.

18. The method of claim 15 , further comprising:

tagging the oldest entry of each request queue of the plurality of request queues based on a destination agent on the first network of the respective request and a credit counter associated with the destination agent, the destination agent included in the plurality of first agents;

wherein the tag indicates whether a number of available end-to-end credits for the destination agent exceeds a predetermined threshold.

19. The method of claim 18 , further comprising:

choosing, by the second arbiter, from only those oldest entries whose tag indicates that its destination agent has a number of available end-to-end credits that exceeds the predetermined threshold.

20. The method of claim 15 , further comprising:

initializing a first credit counter of the plurality of credit counters associated with a first agent of the plurality of first agents to zero;

incrementing the first credit counter in response to sending a first transaction to the first agent over a request network of the first network; and

decrementing the first credit counter in response to receiving a token representing an end-to-end request credit from the first agent on a credit network of the first network.

Assignments (2)
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Apr 18, 2025
From: SAMBANOVA SYSTEMS, INC.
To: SILICON VALLEY BANK, A DIVISION OF FIRST-CITIZENS BANK & TRUST COMPANY, AS AGENT
Reel/Frame 070892/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2024
From: SHAH, MANISH K; BAXLEY, JOHN PHILIPP
To: SAMBANOVA SYSTEMS, INC.
Reel/Frame 068782/0701 →
Continuity (5)
Continuation 18107690 · Feb 9, 2023
Continuation In Part 18107613 · Feb 9, 2023
Provisional Application 63349733 · Jun 7, 2022
Provisional Application 63308899 · Feb 10, 2022
Related Publication 20240330236A1 · Oct 3, 2024
References Cited (57)
US 5684980A · Casselman · 1997 [cited by applicant]
US 8321618B1 · Keil et al. · 2012 [cited by applicant]
US 10698853B1 · Grohoski et al. · 2020 [cited by applicant]
US 10886921B1 · Koganti et al. · 2021 [cited by applicant]
US 10908914B2 · Vorbach et al. · 2021 [cited by applicant]
US 11055141B2 · Prabhakar et al. · 2021 [cited by applicant]
US 11615038B2 · Tørudbakken et al. · 2023 [cited by applicant]
US 20050257012A1 · Hughes · 2005 [cited by applicant]
US 20090300262A1 · Vorbach · 2009 [cited by applicant]
US 20100191911A1 · Heddes et al. · 2010 [cited by applicant]
US 20100293304A1 · Alexandron et al. · 2010 [cited by applicant]
US 20150227490A1 · Seo et al. · 2015 [cited by applicant]
US 20160055120A1 · Vorbach et al. · 2016 [cited by applicant]
US 20160188469A1 · Nagarajan et al. · 2016 [cited by applicant]
US 20180089132A1 · Atta et al. · 2018 [cited by applicant]
US 20190158396A1 · Yu et al. · 2019 [cited by applicant]
US 20190227979A1 · Ganesh et al. · 2019 [cited by applicant]
US 20220171716A1 · Benisty et al. · 2022 [cited by applicant]
US 20230070690A1 · Mugu et al. · 2023 [cited by applicant]
US 20230244748A1 · Natarja et al. · 2023 [cited by applicant]
US 20230251839A1 · Shah et al. · 2023 [cited by applicant]
US 20230251993A1 · Shah et al. · 2023 [cited by applicant]
US 20240020261A1 · Jordan et al. · 2024 [cited by applicant]
EP 1877927B1 · 2011 [cited by applicant]
WO 2010142987A1 · 2010 [cited by applicant]
CA 3125707—First Office Action, dated Jan. 21, 2022, 3 pages. [cited by applicant]
CA 3125707—Voluntary Amendments, dated Jan. 4, 2022, 8 pages. [cited by applicant]
EP 20702339.8—Response to Rules 161(1) and 162 Communication, filed Feb. 25, 2022, 10 pages. [cited by applicant]
EP 20702939.8—Rules 161(1) and 162 Communication, dated Aug. 18, 2021, 3 pages. [cited by applicant]
Koeplinger et al., Spatial: A Language and Compiler for Application Accelerators, PLDI '18, Jun. 18-22, 2018, Association for Computng Machinery, 16 pages. [cited by applicant]
M. Emani et al., Accelerating Scientific Applications With Sambanova Reconfigurable Dataflow Architecture, in Computing in Science & Engineering, vol. 23, No. 2, pp. 114-119, Mar. 26, 2021, [doi: 10.1109/MCSE.2021.30572… [cited by applicant]
Ming et al., A Reconfigurable Soc for Block Ciphers with a Programmable Dataflow Structure, dated Apr. 18-20, 2011, Third International Conference on Communications and Mobile Computing, 4 pages. [cited by applicant]
PCT/US2020/012079—International Preliminary Report on Patentability, dated May 7, 2021, 14 pages. [cited by applicant]
PCT/US2020/012079—International Search Report and Written Opinion mailed Apr. 29, 2020, 18 pages. [cited by applicant]
PCT/US2020/012079—Second Article 34 Amendment {Response to Informal Communication by Telephone) dated Feb. 2, 2021, as filed on Apr. 2, 2021, 5 pages. [cited by applicant]
PCT/US2023/012723—International Search Report and Written Opinion, dated May 31, 2023, 13 pages. [cited by applicant]
Podobas et al, A Survey on Coarse-Grained Reconfigurable Architectures From a Performance Perspective, IEEEAccess, vol. 2020.3012084, Jul. 27, 2020, 25 pages. [cited by applicant]
Prabhakar et al., Plasticine: A Reconfigurable Architecture for Parallel Patterns, ISCA, Jun. 24-28, 2017, 14 pages. [cited by applicant]
Prabhakar et al., SambaNova SN10 RDU: A 7nm Dataflow Architecture to Accelerate Software 2.0, dated Feb. 20-26, 2022, IEEE International Solid-State Circuits Conference, 3 pages. [cited by applicant]
TW 108148376—Notice of Allowance dated Oct. 23, 2020, 5 pages. [cited by applicant]
TW 108148376—Request for Exam and Voluntary Amendment filed Jun. 30, 2020, 17 pages. [cited by applicant]
TW 110101760—First Office Action dated Mar. 29, 2022, 12 pages. [cited by applicant]
TW110101760—Notice of Allowance, dated Sep. 21, 2022, 2 pages. [cited by applicant]
U.S. Appl. No. 16/239,252—Notice of Allowance dated Feb. 12, 2020, 10 pages. [cited by applicant]
U.S. Appl. No. 16/239,252—Notice of Allowance dated May 14, 2020, 15 pages. [cited by applicant]
U.S. Appl. No. 16/239,252—Office Action dated Aug. 7, 2019, 8 pages. [cited by applicant]
U.S. Appl. No. 16/239,252—Response to Final Office Action dated Jan. 8, 2020 filed Jan. 24, 2020, 14 pages. [cited by applicant]
U.S. Appl. No. 16/239,252—Response to Office Action dated Aug. 7, 2019, filed Sep. 26, 2019, 6 pages. [cited by applicant]
U.S. Appl. No. 16/239,252 Final Office Action, dated Jan. 8, 2020, 13 pages. [cited by applicant]
U.S. Appl. No. 16/862,445—Notice of Allowance, dated Sep. 17, 2021, 15 pages. [cited by applicant]
U.S. Appl. No. 16/862,445—Response to Office Action dated Mar. 18, 2021, filed Jun. 9, 2021, 12 pages. [cited by applicant]
U.S. Appl. No. 18/107,613—Non-Final Rejection dated May 13, 2024, 8 pages. [cited by applicant]
U.S. Appl. No. 18/107,690—Notice of Allowance, dated Mar. 6, 2024, 9 pages. [cited by applicant]
U.S. Appl. No. 18/199,361—Non-Final Rejection dated Dec. 21, 2023, 12 pages. [cited by applicant]
U.S. Appl. No. 18/199,361—Non-Final Rejection dated Jul. 3, 2024, 17 pages. [cited by applicant]
U.S. Appl. No. 18/383,718—Notice of Allowance, dated Jul. 15, 2024, 12 pages. [cited by applicant]
Yan Ming, Yang Ziyu, Li Sikun, “A Reconfigurable Soc for Block Ciphers with a Programmable Dataflow Structure,” 2011 ThirdInternational Conference on Communications and Mobile Computing (Year: 2011) 4 pages. [cited by applicant]